Algoritmos
Se define como un cojunto de pasos para resolver un problema
Básicamente se definen en
dos:
Cualitativos: Denota la descripción de los pasos para resolver un problema de cualquier tipo.
Describen los pasos utilizando palabras.
Ejempo: pasos para ir de tu casa a tu colegio ó trabajo.
Cuantitativos:Denota aquellos problemas que definen de tipo matemático, científico etc.
Utilizan cálculos numéricos para definir los pasos del proceso.
Hallar el promedio de una serie de datos, el área de un triángulo rectángulo.
Pseudocódigo
Es una especie de lenguaje entendible a los seres humanos,ya que es mas complicado enterder el lenguaje de máquina. El pseudocódigo omite detalles para el ser humano como son el proceso de almacenamiento de datos directos del lenguaje de programación sobre los computadores. El pseudocódigo hace mas fácil realizar un algoritmo en su parte lógica.Es un lenguaje natural.
Intrucciones básicas:
Lea, Escriba,Inicio, Fin
Entrada y salida de la información
Las dos operaciones básicas de cada salida son las de lectura y de escritura. La
lectura es equivalente a la asignación en cuanto que va a haber una variable que
recibe un valor, pero este valor no resulta de evaluar ninguna expresión, sino que
el valor lo vamos a leer de un dispositivo externo de entrada.
Lea (nombre de la variable).
El valor introducido por el dispositivo externo,
tiene que ser del mismo tipo del que la variable que se le asigne.
La operación de escritura lo que hace es mostrar el valor de una variable en un
dispositivo externo de salida.
Escriba (variable)La operación de escritura no es una operación destructivo en
memoria.Al pedir un valor al usuario hay que decirle que es lo que se le quiere pedir
escribiendo un mensaje.
Los tipos de datos pueden ser:
- Simples: Un elemento(Numéricos, Lógicos,Alfanuméricos)
Numéricos
- Entero: Subconjunto finito del conjunto matemático de los numéros enteros. No tiene parte decimal.
El rango de
los valores depende del tamaño que se les da en memoria.
- Real:
Subconjunto finito del conjunto matemático de los números reales. Llevan signo y parte decimal. Se almacenan en 4 Bytes (dependiendo de los modificadores). Si se utilizan números reales muy grandes, se puede usar notación científica que se divide en mantisa, base y exponente; tal que el valor se obtiene multiplicando la mantisa por la base elevada al exponente.
Lógicos o booleanos: - Aquel que sólo puede tomar uno de los dos valores, verdadero o falso (1/0).
Alfanuméricos: - Abarca al conjunto finito y ordenado de caracteres que reconoce la computadora (letras, digitos, carácteres especiales, ASCII).
Tipo de cadena o String: Conjunto de caracteres, que van a estar entre " ". El propio lenguaje puede añadir más tipos, o se pueden añadir modificadores.
Entero : Int, Long int En algunos lenguajes se definen tipos especiales de fecha y hora, sobre todo en los más modernos.
Constante y variables:
- Constantes: Tienen un valor fijo que se le da cuando se define la constante y que ya no puede ser modificado durante la ejecución.
- Variables:
El valor puede cambiar durante la ejecución del algoritmo, pero nunca varia su nombre y su tipo. Antes de usar una variable hay que definirla o declararla, al hacerlo hay que dar su nombre y su tipo. El nombre que le damos tiene que ser un nombre significativo, va a ser un conjunto de caracteres que dependiendo del lenguaje hay restricciones. Tiene que empezar por una letra, y el tamaño depende del lenguaje.
-Identificador: Palabra que no es propia del lenguaje. El valor de la variable si al declararla no se la inicializa, en algunos lenguajes toma una por defecto. En cualquier caso el valor de la variable podemos darle uno incial o podemos ir variandolo a lo largo de la ejecución.
-Las constantes: Pueden llevar asociados un nombre o no, si no lo llevan, se llaman literales. Su valor hay que darlo al definir la constante y ya no puede cambiar a lo largo de la ejecución, y en cuanto al tipo, dependiendo de los lenguajes en algunos hay que ponerlo, y en otros no hace falta ponerlo porque toma el tipo del dato que se le asigna.
Ejemplo Const PI=3,1416. Hay que inicializar todas las variables. La ventaja de usar constantes con nombre es que en cualquier lugar donde quiera que vaya la constante, basta con poner su nombre y luego el compilador lo sustituira por su valor.
Las constantes sin nombres son de valor constante: 5, 6, 'a', "hola". Cuando una cadena es de tipo carácter, se encierra entre '' 'a'.
Relación entre variables y constantes en memoria:
Al detectar una variable o una constante con nombre, automáticamente se reserva en memoria espacio para guardar esa variable o constante. El espacio reservado depende del tipo de la variable. En esa zona de memoria es en la que se guarda el valor asociado a la variable o constante y cuando el programa use esa variable, ira a esa zona de memoria a buscar su valor.
Estructura secuencial
Se define así por que se hace de una manera de secuencia ordenada veamos el siguiente ejemplo
Imprima su nombre, genero, edad y estado civil
Observe en la solución Escriba(Lea) de acuerdo a los que estan pidiendo
Lea e Imprima su nombre, género, edad y estado civil
Observe en la solución las entradas de datos(Lea)
Observe en la solución las salidas Escriba(Lea)
Ejercicios Propuestos
Aquí
Realice el análisis del problema
Datos de entrada, datos de salidad
Realice el pseudocódigo
Implemente el algoritmo en javascript y haga las pruebas
Problema 1
- Inicio
- Escriba("Juan Pérez")
- Escriba("Masculino")
- Escriba("50")
- Escriba("Soltero")
- Fin
Problema 2
- Inicio
- entero edad=0
- cadena nombre="",genero="",estado_civil=""
- Escriba("Ingrese su edad")
- Lea(edad)
- Escriba("Ingrese nombre")
- Lea(nombre)
- Escriba("Ingrese su género Masculino ó Femenino")
- Lea(genero)
- Escriba("Ingrese su estado cívil")
- Lea(estado_civil)
- Escriba(edad,nombre,genero,estado_civil)
- Fin
Implementación en un Lenguaje de Programación(javascript)
Problema 1
- <script>
- document.write("Juan Pérez");
- document.write("Masculino");
- document.write("50");
- document.write("Soltero");
- </script>
- <script>
- edad=0;
- nombre="", genero="",estado_civil="";
- edad=prompt("Ingrese su edad");
- nombre=prompt("Ingrese su nombre");
- genero=prompt("Ingrese género");
- estado_civil=prompt("Ingrese el estado cívil");
- document.write("<br>Edad "+ edad);
- document.write("<br>Nombre "+ nombre);
- document.write("<br>Género "+ genero);
- document.write("<br>Estado cívil "+ estado_civil);
- </script>
Si simple
Esta estructura permite evaluar una expresión solamente si cumple una condición, y ejecutar un bloque de instrucciones
Solución:
Problema 1
Descripción
Leer un número e imprimirlo si este es positivo
Ejercicios Propuestos AquíRealice el análisis del problema
Datos de entrada, datos de salidad
Realice el pseudocódigo
Implemente el algoritmo en javascript y haga las pruebas
Algoritmo
Solución
- Inicio
- entero num=0
- Escriba("Ingrese un número")
- Lea(num)
- si(num>0)
- Escriba(num)
- fin si
- Fin
Implementación en un lenguaje
javascript
<script>
num=0;
num=parseInt(prompt("Ingrese un número"));
if(num>0){ // si
document.writeln("Edad "+ num);
}// fin si
</script>
Si compuesto
Permite ejecutar el algoritmo una serie de operaciones, sentencias cuando al expresión es verdadera y en caso contrario evalua otro grupo de operaciones de acuerdo a la lógica de la solución
Problema 1
Descripción
Leer un número e imprimirlo si este es mayor que cero y en caso contrario Escribir el número es que menor que cero
Ejercicios Propuestos
Aquí
Realice el análisis del problema
Datos de entrada, datos de salidad
Realice el pseudocódigo
Implemente el algoritmo en javascript y haga las pruebas
Algoritmo
Solución
- Inicio
- entero num=0
- Escriba("Ingrese un número")
- Lea(num)
- si(num>0)
- Escriba(num,"Número es mayor que cero(0)")
- si no
- Escriba(num,"Número es menor que cero(0)")
- fin si
- Fin
Implementación en un lenguaje
javascript
<script>
num=0;
num=parseInt(prompt("Ingrese un número"));
if(num>0){ // si
document.writeln(num+ " Número es mayor que > cero(0) ");
}else{
document.writeln(+ num+ " Número es menor que < cero(0) ");
}
</script>
Ciclos Repetitivo
Son un tipo de estructuras algoritmicas utilizadas, cuando las acciones se deben ejecutar un número
de veces
Básicamente son:
Ciclo para(for)
Ciclo Mientras que(while)
Ciclo haga Mientras(do while)
Ciclo Para
Es un ciclo repetitvo muy eficiente, implementado en la mayoria de los lenguajes de programación
Sintáxis
para(entero i =0, i< n,i=i+1)
{Acciones}
entero i=0 : Variable de control del ciclo(contador)
i< n : Expresión que evalua para determinar donde termina el ciclo
i=i+1 : Incremento de la variable contador (i++ en la mayoría de los Lenguajes)
Problema 5
Descripción
Generar los 100 primeros 100 números enteros naturales incluyendo 100 y el 0
Ejercicios Propuestos
Aquí
Realice el análisis del problema.
Datos de entrada, datos de salida.
Realice el pseudocódigo.
Implemente el algoritmo en javascript y haga las pruebas
Algoritmo
Solución
- Inicio
- entero n=100
- para(entero i=0,i< n, i=i +1)
- Escriba(i)
- fin para
- Fin
Implementación en un lenguaje
javascript
<script>
n=100;
for(var i=0 ; i<n;i++){
document.write("<br> "+i);
}
</script>
Mientras Que
El código se n veces siempre y cuando este cumpla la condición:
mientras(condición):Se valida la condición
haga :Se ejecutan las acciones
Problema 6
Descripción
Leer n números y determinar si son positivos ó negativos
Ejercicios Propuestos
Aquí
Realice el análisis del problema.
Datos de entrada, datos de salida.
Realice el pseudocódigo.
Implemente el algoritmo en javascript y haga las pruebas
Algoritmo
Solución
- Inicio
- entero num=0,n=0,i=0
- Escriba("Ingrese cantidad de números")
- Lea(n)
- mientras(i<=n)haga< /li>
- Escriba("Ingrese número")
- Lea(num)
- si(num>0)
- Escriba(num,"Es mayor que cero(0)")
- si no
- Escriba(num,"Es menor que cero(0)")
- fin si
- i= i+1
- fin para
- Fin
Implementación en un lenguaje
javascript
<script>
num=0, n=0,i=0;
n=parseInt(prompt("Ingrese cantidad de números"));
while( i<n){
num=parseInt(prompt("Ingrese número"));
if(num>0){
document.write("<br>Número es mayor > 0 ");
}else{
document.write("<br>Número es menor < 0 ");
}
i++;
}//fin mientras
</script>
Estructura caso(switch)
La instrucción switch es una alternativa para remplazar en algunas situaciones
los si-sino-finsi.
Es aplicable en ciertas situaciones donde la condición se verifica si es igual a cierto valor.
No podemos preguntar por mayor o menor.
lea(n) Se lee el caso un valor entero
caso(n)Se ejecutan las acciones
1:(acciones) Se ubica en el nro del caso,
2:(acciones) y realiza las acciones
n:(aciones)
fin caso
Problema 8
Descripción
Realice un programa que permita escribir mostrar el nombre del dia de la semana
Sólo se debe el ingresar el número del dia. Veamos la solución: »»
Ejercicios Propuestos:
1.Escriba una algoritmo que permita imprimir el nombre del mes, de acuerdo al número del mes.
Realice un programa que permita calcular el valor total a pagar en un almacen, de acuerdo al código del producto, y la cantidad del producto
codigo | Nombre | valor |
1 | Lápiz 2H | 34000 |
2 | Cuaderno argollado | 35000 | 3 | Lápices de colores | 35000 |
Realice el análisis del problema.
Datos de entrada, datos de salida.
Realice el pseudocódigo.
Implemente el algoritmo en javascript y haga las pruebas
Algoritmo
Solución
- Inicio
- entero n=0
- Escriba("Ingrese un número de laa semana")
- Lea(n)
- caso(n)
- 1:
- Escriba("Lunes")
- 2:
- Escriba("Martes")
- 3:
- Escriba("Miercoles")
- 4:
- Escriba("Jueves")
- 5:
- Escriba("Viernes")
- 6:
- Escriba("Sábado")
- 7:
- Escriba("Domingo")
- Fin caso
- Fin
Implementación en un lenguaje
javascript
<meta charset="UTF-8">
<script>
n=0;
n = parseInt(prompt('Un número de la semana:'));
switch (n) {
case 1:
document.write('Lunes');
break;
case 2:
document.write('Martes');
break;
case 3:
document.write('Miercoles');
break;
case 4:
document.write('Jueves');
break;
case 5:
document.write('Viernes');
break;
case 6:
document.write('Sábado');
break;
case 7:
document.write('Domingo');
break;
default:
document.write('Debe ingresar un valor comprendido entre 1 y 7.');
}
</script>