Está en la página 1de 15

ALGORITMOS Y ESTRUCTURAS DE DATOS

Ejercicios Resueltos: CUADERNILLO DE PRACTICA

PRIMERA PARTE

PROGRAM EJER2(input. VAR divi:REAL. READLN(num2). WRITE (divi). output).mul:INTEGER. END. res:=num1 .num 2) Mul ß (num1 * num 2) Divi ß (num1 / num 2) Mostrar (‘el resultado de la suma es ’.num2. Chapín . mul:=num1 * num2. mul) Mostrar (‘el resultado de la división es ’. WRITELN (sum). divi:=num1 / num2. READLN(num1). salida. multiplica y divide 2 numeros enteros} VAR num1. VAR sum. sum:=num1 + num2.Algoritmos y Estructuras de Datos Práctica 1 I . num2) Sum ß (num1 + num 2) Res ß (num1 . Ejer2 Leer (num1. sum) Mostrar (‘el resultado de la resta es ’. BEGIN WRITELN ('Escriba dos numeros enteros'). WRITE ('EL RESULTADO DE LA MULTIPLICACION: ').num2:INTEGER.res. res) Mostrar (‘el resultado de la multiplicación es ’. WRITELN (mul). resta. WRITE ('EL RESULTADO DE LA DIVISION: '). WRITE ('EL RESULTADO DE LA RESTA: ').Entrada. WRITE ('EL RESULTADO DE LA SUMA: '). asignación de datos Ejercicio Resuelto: Dados dos números enteros obtener su suma. 2 . WRITELN (res). resta. divi) Programa Pascal. multiplicación y división. {suma.

min. seg_res:INTEGER.' mi nutos '.' segundos'). Ejer3 Seg ß 6250 Hor ß seg div 3600 min ß (seg mod 3600) div 60 seg_res ß (seg mod 3600) . min.' hora'.Algoritmos y Estructuras de Datos Práctica 1 Ejercicio Resuelto: Determinar el número de horas. seg_res. seg_res) Programa Pascal. seg_res:= (seg mod 3600) . ‘y segundos: ’. Chapín . END.(min * 60). ‘segundos hay: ') Mostrar ( ‘Horas: ’ hor. minutos y segundos que hay en 6250 segundos. Chapín . seg. II . WRITE (hor.hor.seg. VAR seg. BEGIN seg= 6250. Ejer4 Leer (num1) Num1 >0 V Mostrar (‘el número es positi vo’) F F Num1 < 0 V Mostrar ('El Número es Negativo’) 3 . WRITELN ('EN '. output). ‘ Minutos: ’. PROGRAM EJER3(input.(min * 60) Mostrar ('En’.' SEGUNDOS HAY: ').min. hor:= seg div 3600. min:= (seg mod 3600) div 60.Estructuras de decisión simple Ejercicio Resuelto: Dado un número determinar si es positivo o negativo.

PROGRAM EJER5(input. WRITE ('Introduzca el tercer numero (3) : ').num2. BEGIN WRITE ('Introduzca un numero entero: ').Algoritmos y Estructuras de Datos Práctica 1 Programa Pascal.num3) Num1 > Num2 V F Mostrar (‘No están ordenados Num2 > Num3 de menor a mayor’) V F Mostrar ('No Mostrar( están ordena . 4 . distintos. READLN (num1). WRITE ('Introduzca el segundo numero (2) : '). READLN (num2). END. output) VAR num1. VAR num1:INTEGER.num3:INTEGER. Chapín . Enteros.‘Si están dos de menor ordenados de a mayor’) < a >’) Programa Pascal. es 0').num2. PROGRAM EJER4 (input. IF num1 > 0 THEN WRITE ('El numero es positivo') ELSE IF num < 0 THEN WRITE ('El numero es negativo') ELSE WRITE ('El numero no es positivo ni negativo. READLN (num1). Ejercicio Resuelto: Ingresar tres nros. READLN (num3). Determinar y mostrar si ingresaron en orden creciente. output). BEGIN WRITE ('Introduzca el primer numero : '). Ejer5 Leer (num1.

Algoritmos y Estructuras de Datos Práctica 1 IF num1 > num2 THEN WRITE ('Los numeros no están ordenados de menor a mayor') ELSE IF num2 > num3 THEN WRITE ('Los numeros no están ordenados de menor a mayor') ELSE WRITE ('Los numeros están ordeados de menor a mayor'). END. Ejer6 Leer (num) Num= 1 V Mostrar (‘Lunes’) F Num = 2 V Mostrar (‘Martes’) F V F Mostrar (‘Miércoles’) Num = 3 Num = 4 V Mostrar (‘Jueves’) F Num = 5 V Mostrar (‘Viernes’) V F Mostrar (‘Sábado’) V F Mostrar (‘Domingo’) Num = 7 Num = 6 F 5 . Chapín utilizando Sentencia condicional simple. Ejercicio Resuelto: Dado un número del 1 a 7 determinar el nombre del día de la semana que corresponde.

output). Ejer6 Leer (num) num 1 2 3 4 5 6 7 Mostrar( Mostrar( Mostrar( Mostrar( Mostrar( Mostrar( Mostrar( ‘Lunes’) ‘Martes’) ‘Miercoles’ ‘Jueves’) ‘Viernes’) ‘Sabado’) ‘Domingo’) Programa Pascal. 4: WRITELN('Jueves'). IF num=1 THEN WRITE ('Lunes'). PROGRAM EJER6(input. IF num=6 THEN WRITE ('Sabado'). BEGIN WRITE('Ingrese un número entre 1 y 7 '). IF num=7 THEN WRITE ('Domingo'). Chapín utilizando Sentencia condicional múltiple. IF num=5 THEN WRITE ('Viernes'). IF num=2 THEN WRITE ('Martes'). 2: WRITELN('Martes'). READLN(num). BEGIN WRITE ('Escriba un numero para ver que día corresponde: '). IF num=3 THEN WRITE ('Miercoles'). VAR num:INTEGER. 6 . END. READLN (num). VAR num:INTEGER. 3: WRITELN('Miercoles'). PROGRAM EJER6(input. IF num=4 THEN WRITE ('Jueves'). output).Algoritmos y Estructuras de Datos Práctica 1 Programa Pascal. CASE num OF 1: WRITELN('Lunes').

6: WRITELN('Sabado'). SUMA := SUMA + NOTA END.Algoritmos y Estructuras de Datos Práctica 1 5: WRITELN('Viernes'). END. NOTA : REAL. PROGRAM EJER10 (INPUT. Ejercicio Resuelto: Se desea obtener la suma de los N números naturales posteriores al número 300 inclusive.- Chapín 7 . FOR N := 1 TO 45 DO BEGIN WRITE (' INGRESE NOTA '). BEGIN SUMA := 0. END. SUMA/45 :4:2) END. WRITE (' EL PROMEDIO DEL CURSO ES = '. READLN ( NOTA).Chapín Ejer10 Suma ß0 para n = 1 hasta 45 hacer leer(nota) suma ß suma + nota mostrar( suma / 45) Programa Pascal. se desea obtener la nota promedio del curso.Estructuras de Iteración Ejercicio Resuelto: Dadas las notas de un parcial de los 45 alumnos de un curso. 7: WRITELN('Domingo'). OUTPUT). III . VAR N : INTEGER. SUMA .

Chapín Ejer12 Suma ß 0 leer(num) mientras num <> 0 hacer suma ß suma + num leer(num) mostrar(suma) 8 . SUMA : REAL.'NROS NATURALES >= 300 ES'.N:4. III. BEGIN WRITE ('INGRESE CANTIDAD DE NROS.'). FOR I := 300 TO N + 300 DO SUMA := SUMA + I. III. Se lo denomina también "dato centinela". su tipo debe ser compatible con aquellos.1) Estructura Mientras Ejercicio Resuelto: Se van ingresando números distintos de cero. SUMA:10:0) END. SUMA := 0.2) Con cantidad desconocida de veces FIN DE DATOS: es una marca o señal que se agrega al final del conjunto de datos a procesar para indicar el fin de dicho conjunto. READLN (N). Debido a que se adiciona a los datos. salvo el último valor. Determinar su suma. I : INTEGER.2. VAR N . OUTPUT).Algoritmos y Estructuras de Datos Práctica 1 Ejer11 Leer(n) suma ß 0 para i = 300 a n + 300 suma ßsuma + i mostrar(suma) Programa Pascal. PROGRAM EJER11 ( INPUT. WRITE ('LA SUMA DE LOS'.

WRITE ('INGRESE NUMERO'). PROGRAM EJER13(INPUT. A tal fin se tienen como datos: el código de vendedor y el importe de cada una de las ventas. OUTPUT). WHILE NUM <> 0 DO BEGIN SUMA := SUMA + NUM. PROGRAM EJER12(INPUT. WRITE ('LA SUMA ES = '. tot impmax < tot v f impmax:=tot codmax:=ant mostrar(codmax . el código de vendedor con mayor importe vendido y dicho importe.Algoritmos y Estructuras de Datos Práctica 1 Programa Pascal. SUMA:9:2) END.-ESTOS DATOS ESTAN ORDENADOS POR CODIGO DE VENDEDOR. VAR NUM . un vendedor puede haber realizado más de una venta. READLN (NUM) END. {EJEMPLO DE CORTE DE CONTROL} 9 . impmax) Programa Pascal. No se sabe la cantidad de vendedores que tiene la empresa ni la cantidad de ventas hechas por cada vendedor (un código de vendedor igual a cero es fin de datos).Chapín Ejer13 Impmax ß 0 leer(cod) mientras cod <> 0 tot ß0 ant ßcod mientras ant = cod leer(impor) tot ß tot + impor leer (cod) mostrar(ant . READLN (NUM). OUTPUT). Exhibir cada código de vendedor y su total correspondiente y al final. SUMA : REAL. Ejercicio Resuelto: Se desea saber el total de ventas de cada uno de los vendedores de una empresa. BEGIN SUMA := 0. WRITE ('INGRESE NUMERO').

WRITE ('EL VENDEDOR :'. READLN (COD). READLN (IMPOR). WRITE ('INGRESE CODIGO'). WRITE ('EL VENDEDOR'.ANT:4.' VENDIO $ '.Chapín Ejer14 leer(x) fx ß 3 * x + 2 mostrar(x . BEGIN IMPMAX := 0. END. CODMAX := ANT END. READLN (COD) END.CODMAX:4. IMPMAX : REAL. ANT . fx) mostrar('continúa o finaliza?: c/f') leer(rta) hasta rta = 'f' Programa Pascal.TOT:15:2).2) Estructura Repetir – Hasta Ejercicio Resuelto: Evaluar y tabular la función f(X) = 3X + 2 para diferentes valores de X .2. 10 .Algoritmos y Estructuras de Datos Práctica 1 VAR COD . TOT := TOT + IMPOR. WHILE COD <> 0 DO BEGIN TOT := 0. WRITE ('INGRESE CODIGO'). IMPMAX:15:2) END. TOT .'TUVO MAYOR IMPORTE: $'. IF TOT > IMPMAX THEN BEGIN IMPMAX := TOT. WHILE ANT = COD DO BEGIN WRITE ('INGRESE IMPORTE'). IMPOR . ANT := COD. III. CODMAX : INTEGER.

S4 . IV . S3 ß 0 . S5 . READLN (X). S4 . S2 . 3. S4 ß 0 .Estructuras de Selección Múltiple Ejercicio Resuelto: Se tienen como datos los importes de las ventas de cada una de las sucursales de una empresa. FX := 3 * X + 2.. FX : INTEGER. IMP : REAL. junto con el código de sucursal (1. Los datos no están ordenados por código de sucursal. S1 . OUTPUT). S2 . 4 ó 5).Obtener el total de ventas para cada sucursal. PROGRAM EJER15 (INPUT. VAR COD : INTEGER. Un código igual a cero indica fin de datos. VAR X . 2. READLN (RTA) UNTIL RTA = 'F' END. S2 ß 0 . RTA : CHAR. OUTPUT). 11 5 S5ß S5 + IMP hasta ..Algoritmos y Estructuras de Datos Práctica 1 PROGRAM EJER14(INPUT. S5 ß 0 leer(COD) hasta COD >= 0 y COD <= 5 Mientras COD <> 0 Leer( IMP ) 1 S1ß S1 2 COD +IMP S2ß S2 3 + IMP S3ß S3 4 + IMP S4ß S4 + IMP leer(COD) COD >= 0 y COD <= 5 Mostrar(S1 .Cada sucursal puede tener varias ventas.Chapín Ejer15 S1 ß 0 . BEGIN REPEAT WRITE ('INGRESE VALOR '). S3 . S3 . WRITE ('CONTINUA O FINALIZA INGRESANDO? C/F '). S5) Programa Pascal.

cuando cada uno llega a 9 se debe poner en 0. WRITELN ('TOTAL SUCURSAL 4 :':30. 2 : S2 := S2 + IMP. READLN (IMP). Chapín EjerGlob1 Para xß 0 a 999 Para Yß 0 a 999 Para Zß 0 a 999 Mostrar (x. Debe comenzar con tres dígitos iguales a 0 0 0.z : INTEGER. PROGRAM EjerGlob1 (INPUT. READLN (COD) UNTIL ( COD >= 0 ) AND ( COD <= 5 ). variar de a un dígito por vez. WRITELN ('TOTAL SUCURSAL 1 :':30. S4:12:2). S2:= 0. S2:12:2). CASE COD OF 1 : S1 := S1 + IMP.y.z) Programa Pascal. READLN (COD) UNTIL ( COD >= 0 ) AND ( COD <= 5) END. REPEAT WRITE ('INGRESE CODIGO'). S3:= 0. S3:12:2). 4 : S4 := S4 + IMP. S1:12:2). WRITELN ('TOTAL SUCURSAL 3 :':30. WRITE ('TOTAL SUCURSAL 5 :':30. WHILE COD <> 0 DO BEGIN WRITE ('INGRESE IMPORTE'). S4:= 0. 3 : S3 := S3 + IMP. S5:12:2) END. WRITELN ('TOTAL SUCURSAL 2 :':30.Ejercicios Globalizadores Ejercicio Resuelto: Simular un contador de vueltas de tres dígitos de un grabador.Algoritmos y Estructuras de Datos Práctica 1 BEGIN S1:= 0. y reiniciar la operación hasta que los 3 dígitos lleguen a 9 (9 9 9). OUTPUT). REPEAT WRITE ('INGRESE CODIGO').y. VI . S5:= 0. 12 . 5 : S5 := S5 + IMP END. VAR X.

PROGRAM EjerGlob2 (INPUT. read (num). For x:= 2 to n do Begin read ( num ). Ejercicio Resuelto: Ingresar un conjunto de N (validar que N sea mayor ó igual que 2) valores numéricos desordenado. until n >=2. Hallar y exhibir su rango. mayor. BEGIN Repeat read (n).Algoritmos y Estructuras de Datos Práctica 1 BEGIN FOR X:= 0 TO 999 DO FOR Y:=0 TO 999 DO FOR Z:=0 TO 999 DO WRITE (X.Z) END. IF num > mayor then mayor:= num. OUTPUT). esto es: la diferencia entre su valor máximo y su valor mínimo. Chapín EjerGlob2 Leer (n) Hasta n >=2 Leer (num) Mayorß num Menor ß num Para xß 2 a n Leer ( num ) V Num>mayor F Mayorß num V Num<menor F Menor ß num Difß mayor – menor Mostrar (Dif) Programa Pascal. menor : INTEGER. VAR N. Menor := num. IF num < menor then menor := num. 13 .Y. num. Mayor := num.

Repeat read (tex[x]. Con :=0.” Con ß 0 Para Y ß 1 a X-1 V Tex[y] = let1 tex [y+1]=let2 V F conßcon+1 F mostrar (con) Programa Pascal. 14 . X:=1. let1. Se sabe que el texto no cuenta con caracteres de puntuación. y : INTEGER.let2:char. Chapín EjerGlob3 Let1 ß “l” Let2 ß”a” Xß 1 Leer (tex[x] Xß x+1 Hasta x =191 o tex[x] =”. tex:array [1. VAR x. con) END. OUTPUT). Write ( ´la cantidad de veces que aparece la silaba LA es: ´. Dif:= mayor – menor. X:=x+1: Until x =191 or tex[x] =”.. PROGRAM EjerGlob3 (INPUT. FOR Y := 1 to X-1 DO If Tex[y] = let1 then IF tex [y+1]=let2 then conßcon+1. Determinar cuantas veces aparece la sílaba “la”. BEGIN Let1:= “l”. Ejercicio Resuelto: Se cuenta con un texto de hasta 190 caracteres.”.190] of char. Let2:=”a”.Algoritmos y Estructuras de Datos Práctica 1 End. Write (`la diferencia entre elmayor y elmenor es:´dif) END.

Conf:= 0. car:char. Write( “Frecuencia relativa: “.Algoritmos y Estructuras de Datos Práctica 1 Ejercicio Resuelto: Se tiene una sucesión de grupos que contienen caracteres (los caracteres vienen sin ningún orden específico). VAR cong. conf) END. Luego de cada grupo viene una 'X' y al final de todos los grupos una 'Z'. While car <> “X” do BEGIN If car = “F” then Cong:=cong+1. Write (“Frecuencia Absoluta: ”. conf : INTEGER. Chapín EjerGlob4 Leer (car) ConF ß 0 Mientras Car<> “Z” ConGß0 Mientras Car <> “X” V Car = “F” ConGß conG +1 Leer (car) Mostrar (conG) ConF ß ConF + ConG Mostrar (ConF) F Programa Pascal. Conf:=conf+cong END. 15 . PROGRAM EjerGlob4 (INPUT.cong). Read(Car) END. OUTPUT). While car <> “Z” do BEGIN Cong:=0. Se desea determinar la frecuencia relativa y absoluta de la letra 'F'. BEGIN Read(car).