Algoritmo
características que debe cumplir un algoritmo   Todo algoritmo debe:  1. Ser  preciso , es decir, que las operaciones tengan un orden claro de ejecución.  2. Ser  finito , es decir, que debe finalizar en algún momento.  3. Ser  correcto , es decir, que debe conducir a la solución del problema.  4. Estar  definido , es decir, que siempre se obtiene el mismo resultado si las condiciones iniciales son las mismas.
Estructuras de Selección Estructuras de selección El formato de la estructura de selección es:    si   (condición)  entonces              instrucción 1   instrucción 2    ...................              instrucción n   si no              instrucción a              instrucción b              ...................              instrucción z fin si    Ejemplo: Si A = 5 entonces Imprimir("A es 5")  si no              imprimir("A no es igual a 5") fin si
Estructuras de Repetición Estructuras de repetición El formato de la estructura de repetición es:    mientras (condición) instrucción 1 instrucción 2 ..... instrucción n  fin mientras Ejemplo: Leer (contraseña) mientras (contraseña < > &quot;joshua&quot;) imprimir(&quot;La contraseña es incorrecta !&quot;) leer (contraseña) fin-mientras imprimir(&quot;Ha tecleado la contraseña correcta&quot;) Nota: El bucle se repetirá mientras que contraseña <> “joshua” sea verdadero  
Estructura  Para Estructura PARA:   Permite realizar una acción un número determinado de veces. El formato de esta estructura es el siguiente:   para  variable  de  inicio  a  fin inicio conjunto de acciones; finpara Ejemplo:  Algoritmo que pide 20 números por teclado y calcula su media. suma = 0; Para  n  de  1  a  20 inicio escribir(&quot;Introduzca nº&quot;, n); leer (numero); suma = suma + numero; finpara media = suma / (n-1); escribir(&quot;La media es &quot;, media);
Ejercicios de Algoritmo y Diagrama de Flujo
PROGRAMA: Millas_y_metros Variables y constanste : MILL_METR Numérico Entero= 1852 Dmillas  Dmetros INICIO Escribir “Distancia en millas: ” Leer Dmillas Dmetros = Dmillas * MILL_METR Escribir “Distancia en metros:”, metros FIN Diseñar el algoritmo (Diagrama de flujo  y pseudocódigo) correspondiente a un programa que lea el valor correspondiente a una distancia en millas marinas y las escriba expresadas en metros. Sabiendo que 1 milla marina equivale a 1852 metros. INICIO Leer Dmillas Escribir “Distancias en millas” FIN Escribir  “ Distancia en metros:”, metros   Dmetros = Dmillas * MILL_METR
PROGRAMA: Descuento INICIO DATOS: Tarifa, Precio, Dto , Pd  Leer Tarifa Leer Precio Dto = Tarifa – Precio Pd = Dto * 100 / Tarifa Escribir “Porcentaje de descuento:”, Pd FIN 2. Diseñar el algoritmo (pseudocódigo) correspondiente a un programa que escribe el porcentaje descontado en una compra, introduciendo por teclado el precio de la tarifa y el precio pagado. INICIO Leer Tarifa FIN Escribir  “ Porcentaje de descuento:”, Pd Dto = Tarifa – Precio Leer Precio Pd = Dto * 100 / Tarifa
ENTRADAS:  i, j: es de tipo  REAL;  Valores sobre los que se realizan las operaciones aritméticas SALIDAS:  suma: es de tipo  REAL ; Resultado de sumar “i” mas “j”  resta: es de tipo  REAL ; Resultado de restar “i” menos “j”  division: de tipo  REAL ; Resultado de dividir “i” entre “j”  multiplicacion:de tipo  REAL ; Resultado de multiplicar “i” por “j”  3. Diseñar un algoritmo que lea dos valores reales y nos muestre los resultados de sumar, restar, dividir y multiplicar dichos números.  INICIO  ESCRIBIR  “Introduzca el primer valor: ”  LEER  i  ESCRIBIR  “Introduzca el segundo valor: ”  LEER  j  suma =i  +  j  resta 􀃅= i  -  j  division = i  /  j  Multiplicacion= i  *  j  ESCRIBIR  i, “ + ”, j, “ = ”, suma  ESCRIBIR  i, “ - ”, j, “ = ”, resta  ESCRIBIR  i, “ / ”, j, “ = ”, division  ESCRIBIR  i, “ * ”, j, “ = ”, multiplicacion  FIN
ENTRADAS:  jamon:  ENTERO;  Cantidad de bocadillos de jamón  queso:  ENTERO;  Cantidad de bocadillos de queso  refrescos:  ENTERO;  Cantidad de refrescos  jugo:  ENTERO;  Cantidad de jugo  SALIDAS:  total:  ENTERO;  La cuenta total   4.- El siguiente es el menú de un restaurante de bocadillos. Diseñar un algoritmo capaz de leer el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total. Bocadillo de jamón (5,5 BF), Bocadillo de queso (4 BF)  Refresco (1,75 bf), Jugos (3 BF)   INICIO  ESCRIBIR “I ntroduzca la cantidad servida de ...”  ESCRIBIR  “... bocadillos de jamón: ”  LEER  jamon  ESCRIBIR  “... bocadillos de queso: ”  LEER  queso  ESCRIBIR  “... refrescos: ”  LEER  refrescos  ESCRIBIR  “...Jugos: ”  LEER  jugo total = jamon* 5,5  +  queso*4  +  refrescos * 1,75  +  jugo*3  ESCRIBIR  “El total de la factura es: ”, total  FIN
ENTRADAS:  L1, L2, L3:  ENTEROS;  Longitudes de los lados del triángulo  SALIDAS:  area:  REAL ; Área del triángulo definido por L1, L2 y L3  VARIABLES:  SP:  REAL   5.-Diseñar un algoritmo para leer las longitudes de los tres lados de un triángulo (L1, L2, L3) y calcular el área del mismo de acuerdo con la siguiente fórmula  donde:  SP=(L1  +  L2  +  L3)  /  2  y area = √ (SP * (SP - L1) *   (SP - L2) *   (SP - L3))  INICIO  ESCRIBIR  “Introduzca la longitud de lado 1 del triángulo: ”  LEER  L1  ESCRIBIR  “Introduzca la longitud de lado 2 del triángulo: ”  LEER  L2 ESCRIBIR  “Introduzca la longitud de lado 3 del triángulo: ”  LEER  L3  SP=(L1  +  L2  +  L3)  /  2  area =raiz(SP * (SP - L1) *   (SP - L2) *   (SP - L3))  ESCRIBIR  “El área del triángulo es: ”, area  FIN
ENTRADAS:  L1, L2, L3:  ENTEROS;  Longitudes de los lados del triángulo  SALIDAS:  area:  REAL ; Área del triángulo definido por L1, L2 y L3  VARIABLES:  SP:  REAL   6.-Diseño del algoritmo correspondiente a un programa que lee un número entero positivo y determina el número de dígitos decimales necesarios para la representación de dicho valor. INICIO  ESCRIBIR  “Introduzca la longitud de lado 1 del triángulo: ”  LEER  L1  ESCRIBIR  “Introduzca la longitud de lado 2 del triángulo: ”  LEER  L2 ESCRIBIR  “Introduzca la longitud de lado 3 del triángulo: ”  LEER  L3  SP=(L1  +  L2  +  L3)  /  2  area =raiz(SP * (SP - L1) *   (SP - L2) *   (SP - L3))  ESCRIBIR  “El área del triángulo es: ”, area  FIN
7.- Algoritmo que lee dos valores numéricos ‘X’ e ‘Y’, determina si son iguales y, en caso de no serlo, indica cuál de ellos es el mayor. INICIO Leer X, Y Si X > Y Escribir “El Mayor es:”, X Sino Si X = Y Escribir “Son iguales” Sino Escribir “El Mayor es:”, Y FinSi FinSi FIN DATOS X Numérico Real Y Numérico Real
8.-Diseño del algoritmo correspondiente a un programa que suma todos aquellos números leídos mientras no sean negativos. INICIO Suma = 0 Leer Num Mientras Num >= 0 Suma = Suma + Num Leer Num FinMientras Escribir “La Suma es:”, Suma FIN DATOS: Suma Numérico Entero Num :Numérico Entero
9.- Algoritmo que lee cinco valores numéricos y calcula su producto. INICIO P = 1 Para C de 1 a 5 con Inc = 1 Leer N P = P * N FinPara Escribir “Producto”, P FIN DATOS: P Es el producto de tipo Numérico Entero C contador de tipo Numérico Entero N Numero de tipo Numérico Entero :
10.- Realizar un algoritmo dado un número del 1 al 7, establecer al día de la semana. INICIO leer numero Si (numero = 1) entonces imprimir &quot;Domingo&quot; sino Si (numero = 2) entonces Imprimir &quot;Lunes&quot; sino Si (numero = 3) entoces imprimir &quot;Martes&quot; sino Si (numero = 4) entonces imprimir &quot;Miércoles&quot; sino Si (Numero = 5) entonces imprimir &quot;Jueves&quot; sino Si (numero = 6) entonces imprimir &quot;Viernes&quot; sino Si (numero = 7) entonces imprimir &quot;Sábado&quot; sino imprimir &quot;El número debe estar entre 1 y 7&quot; Finsi Finsi Finsi Finsi Finsi Finsi Finsi FIN
11.-  Diseñe un algoritmo que lea tres números y determine el número mayor.   . INICIO       LEER  numero1, numero2, numero3     numeroMayor = numero1       SI ( numero2 > numeroMayor )             numeroMayor = numero2       SI ( numero3 > numeroMayor )             numeroMayor = numero3          IMPRIMIR  mayor FIN   Datos      numero1 de tipo  REAL numero2 de tipo  REAL numero3 de tipo  REAL   numeroMayor de tipo  REAL
12 .- Diseñe un algoritmo que lea tres números enteros y determine el menor valor positivo. Si los números positivos son iguales, dar como menor a cualquiera de ellos.   INICIO       LEER n1, n2, n3    // Determina el menor menor = n1     SI( n2 < menor ) entonces menor = n2     SI( n3 < menor ) entonces          menor = n3     // Determina el mayor     mayor = n1     SI( n2 > mayor ) entonces          mayor = n2     SI( n3 > mayor ) entonces          mayor = n3     // Determina el medio     medio = n1 + n2 + n3 – mayor - menor      //  Imprime en orden ascendente      IMPRIMIR menor, medio, mayor      // Imprime en orden descendente     IMPRIMIR mayor, medio, menor FIN Datos n1  de tipo  REAL n2  de tipo  REAL  n3  de tipo  REAL  mayor  de tipo  REAL menor  de tipo  REAL medio   de tipo  REAL

Algoritmo

  • 1.
  • 2.
    características que debecumplir un algoritmo Todo algoritmo debe: 1. Ser preciso , es decir, que las operaciones tengan un orden claro de ejecución. 2. Ser finito , es decir, que debe finalizar en algún momento. 3. Ser correcto , es decir, que debe conducir a la solución del problema. 4. Estar definido , es decir, que siempre se obtiene el mismo resultado si las condiciones iniciales son las mismas.
  • 3.
    Estructuras de SelecciónEstructuras de selección El formato de la estructura de selección es:   si   (condición) entonces             instrucción 1   instrucción 2   ...................             instrucción n   si no             instrucción a             instrucción b             ...................             instrucción z fin si    Ejemplo: Si A = 5 entonces Imprimir(&quot;A es 5&quot;) si no             imprimir(&quot;A no es igual a 5&quot;) fin si
  • 4.
    Estructuras de RepeticiónEstructuras de repetición El formato de la estructura de repetición es:   mientras (condición) instrucción 1 instrucción 2 ..... instrucción n fin mientras Ejemplo: Leer (contraseña) mientras (contraseña < > &quot;joshua&quot;) imprimir(&quot;La contraseña es incorrecta !&quot;) leer (contraseña) fin-mientras imprimir(&quot;Ha tecleado la contraseña correcta&quot;) Nota: El bucle se repetirá mientras que contraseña <> “joshua” sea verdadero  
  • 5.
    Estructura ParaEstructura PARA: Permite realizar una acción un número determinado de veces. El formato de esta estructura es el siguiente:   para variable de inicio a fin inicio conjunto de acciones; finpara Ejemplo: Algoritmo que pide 20 números por teclado y calcula su media. suma = 0; Para n de 1 a 20 inicio escribir(&quot;Introduzca nº&quot;, n); leer (numero); suma = suma + numero; finpara media = suma / (n-1); escribir(&quot;La media es &quot;, media);
  • 6.
    Ejercicios de Algoritmoy Diagrama de Flujo
  • 7.
    PROGRAMA: Millas_y_metros Variablesy constanste : MILL_METR Numérico Entero= 1852 Dmillas Dmetros INICIO Escribir “Distancia en millas: ” Leer Dmillas Dmetros = Dmillas * MILL_METR Escribir “Distancia en metros:”, metros FIN Diseñar el algoritmo (Diagrama de flujo y pseudocódigo) correspondiente a un programa que lea el valor correspondiente a una distancia en millas marinas y las escriba expresadas en metros. Sabiendo que 1 milla marina equivale a 1852 metros. INICIO Leer Dmillas Escribir “Distancias en millas” FIN Escribir “ Distancia en metros:”, metros Dmetros = Dmillas * MILL_METR
  • 8.
    PROGRAMA: Descuento INICIODATOS: Tarifa, Precio, Dto , Pd Leer Tarifa Leer Precio Dto = Tarifa – Precio Pd = Dto * 100 / Tarifa Escribir “Porcentaje de descuento:”, Pd FIN 2. Diseñar el algoritmo (pseudocódigo) correspondiente a un programa que escribe el porcentaje descontado en una compra, introduciendo por teclado el precio de la tarifa y el precio pagado. INICIO Leer Tarifa FIN Escribir “ Porcentaje de descuento:”, Pd Dto = Tarifa – Precio Leer Precio Pd = Dto * 100 / Tarifa
  • 9.
    ENTRADAS: i,j: es de tipo REAL; Valores sobre los que se realizan las operaciones aritméticas SALIDAS: suma: es de tipo REAL ; Resultado de sumar “i” mas “j” resta: es de tipo REAL ; Resultado de restar “i” menos “j” division: de tipo REAL ; Resultado de dividir “i” entre “j” multiplicacion:de tipo REAL ; Resultado de multiplicar “i” por “j” 3. Diseñar un algoritmo que lea dos valores reales y nos muestre los resultados de sumar, restar, dividir y multiplicar dichos números. INICIO ESCRIBIR “Introduzca el primer valor: ” LEER i ESCRIBIR “Introduzca el segundo valor: ” LEER j suma =i + j resta 􀃅= i - j division = i / j Multiplicacion= i * j ESCRIBIR i, “ + ”, j, “ = ”, suma ESCRIBIR i, “ - ”, j, “ = ”, resta ESCRIBIR i, “ / ”, j, “ = ”, division ESCRIBIR i, “ * ”, j, “ = ”, multiplicacion FIN
  • 10.
    ENTRADAS: jamon: ENTERO; Cantidad de bocadillos de jamón queso: ENTERO; Cantidad de bocadillos de queso refrescos: ENTERO; Cantidad de refrescos jugo: ENTERO; Cantidad de jugo SALIDAS: total: ENTERO; La cuenta total 4.- El siguiente es el menú de un restaurante de bocadillos. Diseñar un algoritmo capaz de leer el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total. Bocadillo de jamón (5,5 BF), Bocadillo de queso (4 BF) Refresco (1,75 bf), Jugos (3 BF) INICIO ESCRIBIR “I ntroduzca la cantidad servida de ...” ESCRIBIR “... bocadillos de jamón: ” LEER jamon ESCRIBIR “... bocadillos de queso: ” LEER queso ESCRIBIR “... refrescos: ” LEER refrescos ESCRIBIR “...Jugos: ” LEER jugo total = jamon* 5,5 + queso*4 + refrescos * 1,75 + jugo*3 ESCRIBIR “El total de la factura es: ”, total FIN
  • 11.
    ENTRADAS: L1,L2, L3: ENTEROS; Longitudes de los lados del triángulo SALIDAS: area: REAL ; Área del triángulo definido por L1, L2 y L3 VARIABLES: SP: REAL 5.-Diseñar un algoritmo para leer las longitudes de los tres lados de un triángulo (L1, L2, L3) y calcular el área del mismo de acuerdo con la siguiente fórmula donde: SP=(L1 + L2 + L3) / 2 y area = √ (SP * (SP - L1) * (SP - L2) * (SP - L3)) INICIO ESCRIBIR “Introduzca la longitud de lado 1 del triángulo: ” LEER L1 ESCRIBIR “Introduzca la longitud de lado 2 del triángulo: ” LEER L2 ESCRIBIR “Introduzca la longitud de lado 3 del triángulo: ” LEER L3 SP=(L1 + L2 + L3) / 2 area =raiz(SP * (SP - L1) * (SP - L2) * (SP - L3)) ESCRIBIR “El área del triángulo es: ”, area FIN
  • 12.
    ENTRADAS: L1,L2, L3: ENTEROS; Longitudes de los lados del triángulo SALIDAS: area: REAL ; Área del triángulo definido por L1, L2 y L3 VARIABLES: SP: REAL 6.-Diseño del algoritmo correspondiente a un programa que lee un número entero positivo y determina el número de dígitos decimales necesarios para la representación de dicho valor. INICIO ESCRIBIR “Introduzca la longitud de lado 1 del triángulo: ” LEER L1 ESCRIBIR “Introduzca la longitud de lado 2 del triángulo: ” LEER L2 ESCRIBIR “Introduzca la longitud de lado 3 del triángulo: ” LEER L3 SP=(L1 + L2 + L3) / 2 area =raiz(SP * (SP - L1) * (SP - L2) * (SP - L3)) ESCRIBIR “El área del triángulo es: ”, area FIN
  • 13.
    7.- Algoritmo quelee dos valores numéricos ‘X’ e ‘Y’, determina si son iguales y, en caso de no serlo, indica cuál de ellos es el mayor. INICIO Leer X, Y Si X > Y Escribir “El Mayor es:”, X Sino Si X = Y Escribir “Son iguales” Sino Escribir “El Mayor es:”, Y FinSi FinSi FIN DATOS X Numérico Real Y Numérico Real
  • 14.
    8.-Diseño del algoritmocorrespondiente a un programa que suma todos aquellos números leídos mientras no sean negativos. INICIO Suma = 0 Leer Num Mientras Num >= 0 Suma = Suma + Num Leer Num FinMientras Escribir “La Suma es:”, Suma FIN DATOS: Suma Numérico Entero Num :Numérico Entero
  • 15.
    9.- Algoritmo quelee cinco valores numéricos y calcula su producto. INICIO P = 1 Para C de 1 a 5 con Inc = 1 Leer N P = P * N FinPara Escribir “Producto”, P FIN DATOS: P Es el producto de tipo Numérico Entero C contador de tipo Numérico Entero N Numero de tipo Numérico Entero :
  • 16.
    10.- Realizar unalgoritmo dado un número del 1 al 7, establecer al día de la semana. INICIO leer numero Si (numero = 1) entonces imprimir &quot;Domingo&quot; sino Si (numero = 2) entonces Imprimir &quot;Lunes&quot; sino Si (numero = 3) entoces imprimir &quot;Martes&quot; sino Si (numero = 4) entonces imprimir &quot;Miércoles&quot; sino Si (Numero = 5) entonces imprimir &quot;Jueves&quot; sino Si (numero = 6) entonces imprimir &quot;Viernes&quot; sino Si (numero = 7) entonces imprimir &quot;Sábado&quot; sino imprimir &quot;El número debe estar entre 1 y 7&quot; Finsi Finsi Finsi Finsi Finsi Finsi Finsi FIN
  • 17.
    11.- Diseñeun algoritmo que lea tres números y determine el número mayor. . INICIO      LEER numero1, numero2, numero3     numeroMayor = numero1     SI ( numero2 > numeroMayor )             numeroMayor = numero2     SI ( numero3 > numeroMayor )             numeroMayor = numero3        IMPRIMIR mayor FIN Datos      numero1 de tipo REAL numero2 de tipo REAL numero3 de tipo REAL numeroMayor de tipo REAL
  • 18.
    12 .- Diseñeun algoritmo que lea tres números enteros y determine el menor valor positivo. Si los números positivos son iguales, dar como menor a cualquiera de ellos. INICIO       LEER n1, n2, n3   // Determina el menor menor = n1     SI( n2 < menor ) entonces menor = n2     SI( n3 < menor ) entonces         menor = n3    // Determina el mayor     mayor = n1     SI( n2 > mayor ) entonces         mayor = n2     SI( n3 > mayor ) entonces         mayor = n3    // Determina el medio     medio = n1 + n2 + n3 – mayor - menor      // Imprime en orden ascendente      IMPRIMIR menor, medio, mayor     // Imprime en orden descendente     IMPRIMIR mayor, medio, menor FIN Datos n1 de tipo REAL n2 de tipo REAL n3 de tipo REAL mayor de tipo REAL menor de tipo REAL medio de tipo REAL