juanperezu.com

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

Problema 1

Imprima su nombre, genero, edad y estado civil
Observe en la solución Escriba(Lea) de acuerdo a los que estan pidiendo

Problema 2

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
  1. Inicio
  2. Escriba("Juan Pérez")
  3. Escriba("Masculino")
  4. Escriba("50")
  5. Escriba("Soltero")
  6. Fin

Problema 2
  1. Inicio
  2. entero edad=0
  3. cadena nombre="",genero="",estado_civil=""
  4. Escriba("Ingrese su edad")
  5. Lea(edad)
  6. Escriba("Ingrese nombre")
  7. Lea(nombre)
  8. Escriba("Ingrese su género Masculino ó Femenino")
  9. Lea(genero)
  10. Escriba("Ingrese su estado cívil")
  11. Lea(estado_civil)
  12. Escriba(edad,nombre,genero,estado_civil)
  13. Fin

Implementación en un Lenguaje de Programación(javascript)

Problema 1

  1. <script>
  2. document.write("Juan Pérez");
  3. document.write("Masculino");
  4. document.write("50");
  5. document.write("Soltero");
  6. </script>

Problema 2

  1. <script>
  2. edad=0;
  3. nombre="", genero="",estado_civil="";
  4. edad=prompt("Ingrese su edad");
  5. nombre=prompt("Ingrese su nombre");
  6. genero=prompt("Ingrese género");
  7. estado_civil=prompt("Ingrese el estado cívil");
  8. document.write("<br>Edad "+ edad);
  9. document.write("<br>Nombre "+ nombre);
  10. document.write("<br>Género "+ genero);
  11. document.write("<br>Estado cívil "+ estado_civil);
  12. </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


  1. Inicio
  2. entero num=0
  3. Escriba("Ingrese un número")
  4. Lea(num)
  5. si(num>0)
  6. Escriba(num)
  7. fin si
  8. 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


  1. Inicio
  2. entero num=0
  3. Escriba("Ingrese un número")
  4. Lea(num)
  5. si(num>0)
  6. Escriba(num,"Número es mayor que cero(0)")
  7. si no
  8. Escriba(num,"Número es menor que cero(0)")
  9. fin si
  10. 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


  1. Inicio
  2. entero n=100
  3. para(entero i=0,i< n, i=i +1)
  4. Escriba(i)
  5. fin para
  6. 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


  1. Inicio
  2. entero num=0,n=0,i=0
  3. Escriba("Ingrese cantidad de números")
  4. Lea(n)
  5. mientras(i<=n)haga< /li>
  6. Escriba("Ingrese número")
  7. Lea(num)
  8. si(num>0)
  9. Escriba(num,"Es mayor que cero(0)")
  10. si no
  11. Escriba(num,"Es menor que cero(0)")
  12. fin si
  13. i= i+1
  14. fin para
  15. 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
puede agregar mas casos con productos


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


  1. Inicio
  2. entero n=0
  3. Escriba("Ingrese un número de laa semana")
  4. Lea(n)
  5. caso(n)
  6. 1:
  7. Escriba("Lunes")
  8. 2:
  9. Escriba("Martes")
  10. 3:
  11. Escriba("Miercoles")
  12. 4:
  13. Escriba("Jueves")
  14. 5:
  15. Escriba("Viernes")
  16. 6:
  17. Escriba("Sábado")
  18. 7:
  19. Escriba("Domingo")
  20. Fin caso
  21. 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>

Preparado por juanperezu.com