41
Material de trabajo Algoritmica Algoritmos Prof.: Patricia Sotelo Material para Trabajar en Clases 1 de 41

Material para trabajar PIAP114 Algoritmica

Embed Size (px)

Citation preview

Page 1: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Algoritmica Algoritmos Prof.: Patricia Sotelo

Material para Trabajar en Clases

1 de 41

Page 2: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas Secuenciales

1) Calcular la cantidad de Bs. Que se le debe entregar a alguien en la casa de cambio, sabiendo que trae 179 Dólares y que el cambio oficial es: 2250 Bs por cada Dólar. Resolver con Pseudo, Diagrama de Flujo y Corrida en frío.

A.Análisis:

Leamos el problema y subrayemos donde hay información relevante? Qué nos piden? Qué nos dan? Qué necesitamos? Quedaría algo así: Calcular la cantidad de Bs. Que se le debe entregar a alguien en la casa de cambio, sabiendo que trae 179 Dólares y que el cambio oficial es: 2250 Bs por cada Dólar.

Qué me piden averiguar, datos de salida? Cantidad de Bs, esto sería la variable de salida, digamos que se llama CantBs Qué me están dando? Qué es conocido? La cantidad de Dólares que trae la persona, son 179, guardemos esto en la variable CantDol Cuál es el dato para aplicar la regla de tres? El cambio que me dan, si viene un dólar le doy 2250 Bs. Entonces sería aplicar la regla de tres: Cantidad Dólares Cantidad de Bs. 1 Dólar equivale a 2250 Bs

179 dólares son X Bs. (Esto es CantBs) Aquí X es lo que nos están pidiendo, es decir: CantBs = (2250 * 179) / 1 B.Una Solución en Pseudo Algoritmo CasaCambio Var CantBs, CantDol : entero (aquí se declaran las variables y su tipo) Inicio CantDol = 179 (esta es la 1ra instrucción) CantBs = 2250 * CantDol (esta es la 2da. Instrucción) Escribir “ Por los 179 dolares le daremos”, CantBs, “ en Bs” (3era ) Fin

2 de 41

Page 3: Material para trabajar PIAP114 Algoritmica

Material de trabajo

C.Diagrama de Flujo: Es como el Pseudo pero usa los símbolos de DF y se conectan con flechas. Y se agregan las variables a la tabla de variables.

Inicio

CantDol = 179

CantBs = CantDol * 2250

Escribir “ Por los 179 dolares le daremos”, CantBs, “ en Bs”

Tabla de Var y Const CantDol: entero CantBs: entero

Fin

D.Corrida en Frio, consiste en ir ejecutando cada instrucción del algoritmo como si fuéramos la máquina. Tenemos que declarar: Datos de Entrada, Variables y Salida.

Datos de Entrada: en caso de que el usuario introduzca algún valor que será guardado en una variable cuando aparezca la instrucción de lectura. Variables: Declaramos las variables y a medida que se actualicen con alguna instrucción entonces le cambiamos su valor. Salida: A medida que haya una instrucción que pida escribir un resultado la ejecutamos escribiendo lo que diga la instrucción en la zona de salida.

3 de 41

Page 4: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Corrida en frío del ejemplo: Datos de entrada: No hay, puesto que no se introduce ningún valor desde el teclado Variables CantBs = 2250*179= 402750 (con la 2da instrucción) CantDol= 179 (con la 1era instrucción) Salida Por los 179 dolares le daremos 402750 en Bs (con la 3ra instrucción)

2) Calcular la cantidad de Bs. Que se le debe entregar a alguien en la casa de cambio, sabiendo que trae una cantidad Y de Dólares y que el cambio oficial es: 2250 Bs por cada Dólar. Resolver con Pseudo, Diagrama de Flujo y Corrida en frio.

Comentario: En este caso Y es un dato de entrada que deberá leerse. Resuélvelo y comparte tu solución con los compañeros.

3) Dada una cantidad en Bs. obtener la equivalencia en dólares, asumiendo que la unidad cambiaria oficial es 2600 Bs. por Dólar.

a)En Pseudo, define tus variables. b) En DF con tabla de variables

c) Corrida en frio con dato entrada 260 mil Comentario: En este caso, fíjate que lo que se da como entrada es la cantidad en Bs. Entonces esto hay que leerlo Resuélvelo y comparte tu solución con los compañeros.

4) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra y cúanto fue el descuento en bs. que se le dio.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

c) Corrida en frio con dato entrada 100 mil Comentario: En este caso, fíjate que se tiene el total de la compra hecha por el cliente (TC) ,esto habrá que leerlo. Y se pide el total a pagar (TP), una vez que le hacen el descuento(D). Resuélvelo y comparte tu solución con los compañeros.

4 de 41

Page 5: Material para trabajar PIAP114 Algoritmica

Material de trabajo

5) Un maestro desea saber que porcentaje de hombres y que porcentaje de

mujeres hay en un grupo de estudiantes.Se tiene la cantidad de hombres y la cantidad de mujeres que hay en el grupo.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

Comentario: En este caso, fíjate que datos son de entrada? Y cúal es la salida? Hay alguna regla de tres para aplicar? Resuélvelo y comparte tu solución con los compañeros.

5 de 41

Page 6: Material para trabajar PIAP114 Algoritmica

Material de trabajo

6) Preguntas de Reflexión para afianzar mi aprendizaje, SECUENCIALES

• Qué hace la instrucción Leer, con tus palabras? • Cuándo se usa la instrucción Leer?

• Cuándo se usa la instrucción Asignación?

• Cuándo se usa una regla de tres?

• Cuándo se usa la instrucción escribir?

• Cuáles son los símbolos en DF para leer, escribir y asignar?

• Puedo de un enunciado separar la información que es de entrada? Y declarar la variable que llevará esto?

• Puedo en un enunciado separar la información que será de salida? Y declarar la(s) variable(s) para esto?

• Puedo analizar un problema y ver cual sería el proceso para conseguir la salida con los datos de entrada dados?

6 de 41

Page 7: Material para trabajar PIAP114 Algoritmica

Material de trabajo

• Puedo formular un problema que requiera leer, asignar y escribir?

Hazlo

7 de 41

Page 8: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas Condicionales 7) Calcular el total que una persona debe pagar en una cauchera, sabiendo

que el precio de cada caucho es de 10mil Bs. si se compran menos de 5 cauchos y es de 8mil Bs. si se compran 5 o más. Hacer dos corridas en frio, con 2 y 10 cauchos respectivamente como dato de entrada.

A.Análisis: Leamos el problema y subrayemos donde hay información relevante? Qué nos piden? Qué nos dan? Qué necesitamos? Quedaría algo así: Calcular el total que una persona debe pagar en una cauchera, sabiendo que el precio de cada caucho es de 10mil Bs. si se compran menos de 5 cauchos y es de 8mil Bs. si se compran 5 o más. Hacer dos corridas en frío, con 2 y 10 cauchos respectivamente como dato de entrada.

Qué me piden averiguar, datos de salida? Total que una persona debe pagar (Tp) . Al leer el enunciado se ve que el total a pagar depende de cuántos cauchos compré. El precio de cada caucho varía de acuerdo a cuántos cauchos compré. Aquí hay un tabla con dos posibilidades o un estudio de casos.

Qué me están dando? Qué es conocido? Me dan la cantidad de cauchos que compró el cliente (Can) y dependiendo de cuántos sean será el precio unitario de un caucho. Cantidad de Cauchos Comprados (Can) Precio de un caucho

Menos de 5 es Can < 5 10 000

5 o más es Can > = 5 8 000

Qué , en el enunciado, me está dando una pista? Aquí menciona que

si sucede algo se da un precio y que si sucede otra cosa se da otro precio. Se

8 de 41

Page 9: Material para trabajar PIAP114 Algoritmica

Material de trabajo

puede ver como para el precio del caucho hay dos posibilidades, esto implica llevar los dos casos. Si el enunciado te da una tabla de posibilidades o casos para una variable esto significa tomar en cuenta cada caso. B.Una Solución en Pseudo Algoritmo Cauchera /* Can : Cantidad de Cauchos */ Var /* Tp : Total a pagar */

Can , Tp : Entero Inicio Leer Can /* Se lee la Cantidad de Cauchos para */ /* llenar la variable Can */ Si (Can < 5) entonces /* Se evalúa la expresión condicional para */ Tp = Can * 10000 /* determinar el total a pagar */ Sino /* depende de la cant. de cauchos comprada */ Tp = Can * 8000 Fin si Escrib ir “El Total a pagar es de Bs: ”, Tp /* Se escribe la salida */ Fin

C.Diagrama de Flujo Tabla V.

Inicio Can, Tp: Entero

Fin

Leer Can

No Si Can< 5 Tp = Can * 8000 Tp = Can * 10000

Escribir “El Total a pagar es de Bs:”, Tp

9 de 41

Page 10: Material para trabajar PIAP114 Algoritmica

Material de trabajo

D. Corrida en frío Nro1: Datos de entrada: 2 (es el nro de cauchos que compra un cliente) Variables Cant = 2 (con la 1ra instrucción, la lectura hace que 2 quede en Cant) Tp= 2 * 10 000 = 20 000 (con la 2da. Instrucción se evalua: 2 < 5 ? Si, por eso va por la rama donde el total a pagar será Cant * 10 000, ya que de acuerdo a la tabla es este caso, cada caucho vale Bs. 10 000) Salida El Total a pagar es de Bs: 20 000 (con la 3ra instrucción, Escritura ) Corrida en frío Nro2: Datos de entrada: 10 (es el nro de cauchos que compra un cliente) Variables Cant = 10 (con la 1ra instrucción, la lectura hace que 10 quede en Cant) Tp= 10 * 8 000 = 80 000 (con la 2da. Instrucción se evalua: 10 < 5 ? No, por eso va por la rama donde el total a pagar será Cant * 8000, ya que de acuerdo a la tabla es este caso, cada caucho vale Bs. 8000) Salida El Total a pagar es de Bs: 80 000 (con la 3ra instrucción, Escritura ) E. Comentarios: Este problema se pudo resolver con dos condicionales simples en vez de utilizar un condicional doble. Se puede trabajar cada condición separada:

Caso Cant < 5 y resolverlo Caso Cant >= 5 y resolverlo F. Ejercicio: Intenta resolverlo con condicionales simples , haz Pseudo, DF y Corrida en Frio. Discute la solución con tus compañeros.

8) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:

Si trabaja 40 horas o menos se le paga Bs10 mil por hora Si trabaja más de 40 horas se le paga Bs. 10mil por cada una de las primeras 40 horas y Bs 20 mil por cada hora extra.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, con 30 horas trabajadas d) Corrida en frio con 50 horas trabajadas

Comentario: En este caso, fíjate que datos son de entrada? Y cuál es la salida? Hay algún caso o condición en el planteamiento?

10 de 41

Page 11: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Resuélvelo y comparte tu solución con los compañeros.

9) Se tienen como datos el código del celular al que se llamó y la duración de la llamada, en minutos, que se hizo desde un cantv fijo, escriba a qué línea llamó y cuánto costó la llamada. Sabiendo:

Código del Celular

Línea a la que se llamó

Costo en Bs. por un minuto hablado

0412 Digitel 200 0414 Movistar 400 0416 Movilnet 600

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, con 0416 30 d) Corrida en frio con 0412 50

Comentario: En este caso, fíjate que datos son de entrada? Y cuál es la salida? Hay algún caso o condición en el plantamiento? Se tiene que desde un CANTV fijo se puede llamar a un celular, y que hay tres tipos o casos de celulares. Cada celular es un caso. Resuélvelo y comparte tu solución con los compañeros. Resuélvelo con Condicionales Independientes, cada caso por separado Resuélvelo con Condicionales Anidados, cada caso se va trabajando y los que quedan se van resolviendo luego de manera inclusiva.

10) Determinar, escribiendo el mensaje correspondiente, si un alumno aprueba a reprueba un curso, sabiendo que aprobará si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario. La calificacación va del 0 al 100

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, con 50 100 90 Comentario: En este caso, fíjate que datos son de entrada? Y cuál es la salida? Hay algún caso o condición en el planteamiento? Se tiene que puede aprobar o puede no aprobar, y que depende de cuál fue su promedio. Cómo se calcula un promedio?

11 de 41

Page 12: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Resuélvelo y comparte tu solución con los compañeros.

11) Hacer un Pseudo que lea dos números y los escriba en forma ascendente. Es decir, primero el menor y luego el mayor.

Corrida en Frio con 64 40

12 de 41

Page 13: Material para trabajar PIAP114 Algoritmica

Material de trabajo

12) Preguntas de Reflexión para afianzar mi aprendizaje CONDICIONAL

• Qué hace la instrucción Condicional?

• Cuándo se usa la instrucción Condicional?

• Cuáles son los símbolos en DF para un Condicional Simple, Doble, Anidado, Independiente?

• Puedo de un enunciado separar la información que indica la condición? Cómo?

• Puedo analizar un problema y construir la tabla que maneje la condición planteada?

13 de 41

Page 14: Material para trabajar PIAP114 Algoritmica

Material de trabajo

• Puedo formular un problema que requiera el uso de un condicional doble ? Hazlo

14 de 41

Page 15: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas iterativos con lazo PARA Aquí se sabe, a priori, cuantas veces el proceso se repite dentro del lazo. Se chequea si entra al lazo en cada vuelta.

13) Al cerrar una tienda de ventas de naranjas, 3 clientes que aún no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuanto pagará cada cliente y cuanto percibirá la tienda por esas compras.

Resolver con Pseudo, Diagrama de Flujo y Corrida en frio.

A.Análisis: Leamos el problema y subrayemos dónde hay información relevante? Qué nos piden? Qué nos dan? Qué necesitamos? Quedaría algo así:

Al cerrar una tienda de ventas de naranjas, 3 clientes que aún no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagará cada cliente y cuánto percibirá la tienda por esas compras.

Resolver con Pseudo, Diagrama de Flujo y Corrida en frio.

Qué me piden averiguar, datos de salida? Cuánto pagará cada cliente (Pago), cuánto percibirá la tienda (Ventas)

Qué me están dando de entrada? Qué es conocido? Qué variables hay de control que no aparecen en el enunciado? ), Descuento en Bs. que se le dá a un cliente (Des),Kilos comprados por un cliente (Kilo), Costo de un Kilo de naranjas (Cos_k), Variable que controla en que cliente voy, pues debo atender a los tres clientes. Con cada cliente se hará lo mismo, por eso hay un contador de clientes (Vc) Análisis: Puedo pensar que sucede con un cliente y resolverlo así y luego saber que esto colocarlo como proceso que se englobará dentro de un Para, puesto que se ejecutará tres veces, son tres clientes. O puedo buscar construir el Para sabiendo que son tres clientes y luego la rutina interna que aplica a un cliente. Al usar un Para se requiere una variable de Control del lazo, un valor inicial y un valor final.

15 de 41

Page 16: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Si uso DF debo tener presente que el símbolo de condición o Diamante debe estar al comienzo del lazo y con respuesta Si iterará sobre si mismo dando vueltas. Con la respuesta No se saldrá del lazo. B.Una Solución en Pseudo Algoritmo Naranja Var /* Vc es la variable de control del ciclo PARA */ Vc: Entero /* Ventas es cuanto vendió en total la tienda*/ kilo, Cos_K, Des, Ventas, Pago: Real /* Pago es cuanto paga cada cliente */ Inicio /* Cos_K es el costo de un kilo de naranjas */ /* Des es el descuento hecho al cliente */

Ventas = 0 /* Se inicializa el acumulador Ventas */ Leer Cos_K Para Vc = 1 a 3 hacer /* Esto dará 3 vueltas o bucles

Leer kilo Si (Kilo > 10) entonces

Des = (kilo * Cos_K) * 0,15 /* El 0,15 corresponde al15% Sino Des = 0 /* Se usa en el cálculo que sigue Finsi Pago = (kilo * Cos_k) – Des /* Se calcula el pago del cliente

Ventas = Ventas + Pago /* Se acumula las ventas de la tienda Escribir “Total a pagar por el cliente es ”, Pago

FinPara Escribir “Total de Ventas es ”, Ventas/* Se escribe el total ventas

Fin Escribe tus comentarios y Reflexiones aquí. Por qué se inicializa en cero las ventas? Por qué se lee Cos_K al principio?

16 de 41

Page 17: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Cómo funciona este Para de 1 a 3 ? Por qué leer Kilo es la primera instrucción dentro del lazo? Por qué hay un Condicional Doble dentro del lazo? Por qué se utiliza Ventas como acumulador, y se incrementa dentro del lazo? Por qué se escribe el total de Ventas al salir del lazo?

17 de 41

Page 18: Material para trabajar PIAP114 Algoritmica

Material de trabajo

18 de 41

C.Diagrama de Flujo: Rellena la Tabla de variables: Inicio

Leer Cos_K

Vc <= 3

Vc = 1

Ventas = 0

Leer Kilo

Kilo > 10

Des = 0 Des = (Cos_K * kilo) * 0,15

Pago = (kilo * Cos_k) – Des Ventas = Ventas + Pago

Escribir “Total de Ventas es ”, Ventas

Escribir “Total a pagar por el cliente es ”, Pago

Vc = Vc + 1

Fin

No

Si

No Si

Page 19: Material para trabajar PIAP114 Algoritmica

Material de trabajo

D. Corrida en frío del ejemplo: Tomar en cuenta que debes ir viendo por que instrucción va la secuencia y si esa instrucción cambia el valor de una variable entonces tacha el valor anterior y coloca el nuevo. Hacerla la Corrida aquí. Datos de entrada: 1000 5 10 20 (donde 1000 es el precio de un kilo y 5, 10 y 20 son los kilos comprados por cada cliente) Variables Salida

19 de 41

Page 20: Material para trabajar PIAP114 Algoritmica

Material de trabajo

14) Genera y escribe los números del 1 al 5. a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, no hay datos de entrada, tú generas los números

15) Leer 5 números enteros y obtener para cada uno su cubo y su cuarta.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, con dato de entrada: 5, 2, 3, 4, 7

16) Leer 5 números enteros y escribir solamente los números positivos

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en frio, con dato de entrada: -4, 2, 3, 0, -9

17) Leer N números enteros y escribe cuántos son positivos, cuántos negativos y cuántos nulos. Fíjate que la cantidad de algo se sabe luego de haber revisado toda la población.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables Pista: Primero hay que leer N para que adquiera un valor límite

18) Se tienen 30 deportistas.Para cada uno se tiene: Nombre, Sexo(F/M) y

Edad . Obtener y escribir:

a) el número de pulsaciones que debe tener cada deportista por hacer ejercicio aeróbico; la fórmula que se aplica es:

num. pulsaciones = (220 - edad)/10 b) la cantidad de mujeres deportistas c) la cantidad de hombres deportistas

En Pseudo, define tus variables. Usa lazo Para

20 de 41

Page 21: Material para trabajar PIAP114 Algoritmica

Material de trabajo

19) Preguntas de Reflexión para afianzar mi aprendizaje PARA • Qué hace la instrucción Para? • Cuándo se usa la instrucción Para?

• Cuáles son los símbolos en DF para un Para?

• Puedo de un enunciado separar la información que indica el uso de un Para?

• Puedo analizar un problema y construir el proceso interno que se realiza en cada vuelta o iteración del lazo? Qué hago?

21 de 41

Page 22: Material para trabajar PIAP114 Algoritmica

Material de trabajo

• Puedo formular un problema que requiera el uso de un lazo ?

Hazlo

22 de 41

Page 23: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas iterativos con lazo MIENTRAS Aquí el proceso dentro del lazo puede que nunca ocurra. Se chequea si entra al lazo en cada vuelta.

20) Se introducen por teclado una serie de números enteros positivos. El último número a introducir será -1. Calcule y escriba:

a)cuánto vale la suma de todos los valores positivos que se introdujeron?. b)cuántos valores positivos había en la serie? Datos: num1, mum2, …,-1 Donde: numi es el iésimo valor entero introducido por teclado

Pista: Hay que ir leyendo el dato tecleado y sumando ese valor. Cuando aparezca el -1 se acabó el proceso, luego se puede reportar en cuánto quedó la suma. Ejemplo: Te dan como entrada 10, 30, 5, -1 suma será 45 y el proceso de ir sumando cada vez que se teclea un valor diferente de -1 se hizo 3 veces, o sea hubo 3 valores positivos en la serie (Es un ejemplo de caso Centinela, donde un dato final con valor diferente a los anteriores indica que se acabaron los datos válidos.) A.Análisis:

Leamos el problema y subrayemos dónde hay información relevante? Qué nos piden? Qué nos dan? Qué necesitamos? Quedaría algo así: Se introducen por teclado una serie de números enteros positivos. El último número a introducir será -1. Calcule y escriba:

a)cuánto vale la suma de todos los valores positivos que se introdujeron?. b)cuántos valores positivos había en la serie? Datos: num1, mum2, …,-1 Donde: numi es el iésimo valor entero introducido por teclado

Pista: Hay que ir leyendo el dato tecleado y sumando ese valor. Cuando aparezca el -1 se acabó el proceso, luego se puede reportar en cuánto quedó la suma. Ejemplo: Te dan como entrada 10, 30, 5, -1 suma será 45 y el proceso de ir sumando cada vez que se teclea un valor diferente de -1 se hizo 3 veces, o sea hubo 3 valores positivos en la serie Resolver con Pseudo, Diagrama de Flujo y Corrida en frio.

23 de 41

Page 24: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Qué me piden averiguar, datos de salida? la suma de todos los valores positivos que se introdujeron (Sum), iré sumando un valor a medida que aparezca y sea dif. . Y la cantidad de valores positivos que había en la serie (Cont), iré contando uno a medida que aparezca y sea dif.-1

Qué me están dando de entrada? Qué es conocido? Qué variables hay de control que no aparecen en el enunciado? ), Me están dando los números, se que debo ir procesando uno a uno. Las variables de control son el sumador (Sum )y el Contador (Cont) Análisis: Aquí no se cuántos números positivos vendrán. Pero sé que el último será -1. Así que para cada número leído debo hacer lo siguiente: leerlo y si es dif.-1 entonces lo sumo y lo cuento como positivo. En el momento que consiga el -1 significa que se acabó el proceso y debo terminar para reportar los resultados que fui acumulando en el sumador y en el contador. B.Una Solución en Pseudo /AQUÍ FALTA ALGO, qué es? Y dónde va? Algoritmo LlevaSuma Var. Num: Entero /* Número que lleva lo que se está tecleando Sum: Entero /* Para acumular la suma de los valores tecleados dif.-1 Cont: Entero /* Lleva cuántos valores positivos se han leído Inicio Cont = 0 /* Se inicializa el Contador de positivos en 0

Sum=0 /* Se inicializa variable sumador

Leer Num /* Se captura el primer valor tecleado en Num

Mientras (Num <> -1) /* Cuando el Num dif.-1 entra al lazo Sum = Sum + Num /* Se le añade a Sum el nuevo valor pos. Leer Num /* Se captura el sig. valor tecleado /* FinMientras

Esc “La suma de los valores es”,Sum Esc. “La serie tiene”,Cont, “Valores positivos” Fin

24 de 41

Page 25: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Escribe tus comentarios y Reflexiones aquí. Por qué se usa un contador? Por qué se usa un sumador? Por qué se inicializa en cero el Cont y el Sum? Por qué se lee Num al principio? Cómo funciona este lazo Mientras Num <> -1 ? Por qué leer Num es la última instrucción dentro del lazo? Por qué se escriben los valores de Sum y Cont al salir del lazo? Por qué se utiliza Sum como acumulador? Qué concepto no manejo y debo repasar?

25 de 41

Page 26: Material para trabajar PIAP114 Algoritmica

Material de trabajo

C.Diagrama de Flujo: Tabla de variables: Num, Sum, Cont : entero

Inicio

Cont = 0Sum = 0

Leer Num

Num <> -1

Sum = Sum + Num

Leer Num

Esc. “La suma de los valores es”,Sum

Esc. . “La serie tiene”,Cont, “Valores positivos”

Fin

Si

No

26 de 41

Page 27: Material para trabajar PIAP114 Algoritmica

Material de trabajo

D. Corrida en frío del ejemplo: Hacerla la Corrida aquí. Datos de entrada: 10, 30, 5, -1 (Al revisar y correrlo mentalmente debe quedar en Sum 45 y en Cont 3) Variables Num = Cont = Sum = Salida E. Haz otra corrida en frío. Inventa tus datos Datos de entrada: Variables Num = Cont = Sum = Salida

27 de 41

Page 28: Material para trabajar PIAP114 Algoritmica

Material de trabajo

21) Genera y escribe los números del 1 al 5 usando el lazo Mientras

a)En Pseudo, define tus variables. b) En DF, con tabla de variables c) Corrida en Frío, no hay datos de entrada

22) Diseñe un algoritmo que lea los 2500 votos otorgados a los 3 candidatos

a gerente e imprima el número del gerente ganador y su cantidad de votos.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

23) Se tienen las edades de un grupo de vendedores de computadoras.

Obtener y escribir: a) cuánto suman todas las edades del grupo b) cuántos vendedores habían en el grupo Se sabe que la última edad que se tiene es el valor centinela –1. a)En Pseudo, define tus variables.

b) En DF, con tabla de variables c) Corrida en Frío con datos de Entrada: 20 21 19 18 20 -1

24) Chequee que una opción de menú sea válida. Mientras no lo sea hay

que permitirle al usuario que teclee una vez más. Cuando la opción sea una de las letras válidas, felicítalo y escribe la opción válida que el usuario tecleó.

Pista: La opción válida incluye una de estas letras: A para agregar, E de eliminar y M de modificar

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

c) Corrida en Frío con Datos de Entrada: C P L O A

25) Se tienen: las calificaciones de un grupo de alumnos que presentaron una prueba.

Obtener y escribir: cuántos alumnos presentaron la prueba. Se sabe que la última calificación que se tiene es el valor centinela –1.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

28 de 41

Page 29: Material para trabajar PIAP114 Algoritmica

Material de trabajo

26) Preguntas de Reflexión para afianzar mi aprendizaje MIENTRAS

• Qué hace la instrucción Mientras?

• Cuándo se usa la instrucción Mientras?

• Cuáles son los símbolos en DF para un Mientras?

• Puedo de un enunciado separar la información que indica el uso de un Mientras? Qué hago?

• Puedo analizar un problema y construir el proceso interno que se realiza en cada vuelta o iteración del lazo?

29 de 41

Page 30: Material para trabajar PIAP114 Algoritmica

Material de trabajo

• Puedo formular un problema que requiera el uso de un lazo

Mientras ? Hazlo

30 de 41

Page 31: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas iterativos con lazo Repetir. Aquí el proceso dentro del lazo ocurre por lo menos una vez. Entra al lazo y da la primera vuelta

27) Construya un programa que lea el nombre y la población de los países del mundo y que calcule y muestre:

1. Total de la población mundial. 2. Nombre y población del país con mayor población. 3. Total de países.

Se leerán datos hasta que aparezca una población menor o igual a cero. Al menos se debe leer un país válido. A.Análisis:

Leamos el problema y subrayemos dónde hay información relevante? Qué nos piden? Qué nos dan? Qué necesitamos? Quedaría algo así: Construya un programa que lea el nombre y la población de los países del mundo y que calcule y muestre:

1. Total de la población mundial. 2. Nombre y población del país con mayor población. 3. Total de países.

Se leerán datos hasta que aparezca una población menor o igual a cero. Al menos se debe leer un país válido. Resolver con Pseudo, Diagrama de Flujo y Corrida en frio.

Qué me piden averiguar, datos de salida? Total de la población mundial. Nombre y población del país con mayor población y Total de países.

Qué me están dando de entrada? Qué es conocido? Qué variables hay de control que no aparecen en el enunciado? Nombre y la población de los países del mundo. Necesito controlar en qué país voy con un contador. Necesito un acumulador para llevar el total de la población. Para buscar el de mayor población requiere una variable que lleve ese mayor.

31 de 41

Page 32: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Análisis: Aquí no se cuántos países vienen, solo que el último viene con un valor de población menor o igual a cero B.Una Solución en Pseudo Algoritmo Mundo Var sum_pobla, max_pob, cont_pais, pobla: Entera pais, max_pais: String Inicio sum_pob = 0 /* Contadores y acumuladores */ max_pob = 0 /* se inicializan siempre en cero */ cont_pais = 0 Leer pais, pobla Repetir /* uso Repetir porque hay por lo menos 1 pais */ sum_pobla = sum_pobla + pobla cont_pais = cont_pais + 1 Si pobla > max_pob entonces/* pregunto si la poblacion es mas */ max_pob = pobla /* grande que max_pobla, que en la */ max_pais = pais /* primera vuelta vale cero */ Fin si Leer pais, pobla /* vuelvo a leer para preparar la próxima */ Hasta (pobla <=0) /* vuelta con nuevos datos y que estos */

/* datos sean validos, es decir, mayor a cero */ EscSl “Total población mundial ”, sum_pobla Esc “País con mayor población es ”, max_pais EscSl “Y su cantidad es ”, max_pob Esc “Total de países ”, cont_pais Fin

32 de 41

Page 33: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Escribe tus comentarios y Reflexiones aquí. Cuáles son los contadores? Cuáles son los acumuladores? Cuál es la condición de fin de lazo? Por qué hay un condicional dentro del lazo? Por qué escribo al final del lazo?

33 de 41

Page 34: Material para trabajar PIAP114 Algoritmica

Material de trabajo

C.Diagrama de Flujo: Inicio

Si

No Si

No

EscSl “Total población mundial”, sum_pobla

Fin

sum_pobla = sum_pobla + pobla cont_pais = cont_pais + 1

pobla > max pob

max_pob = pobla max_pais = pais

Leer pais, pobla

sum_pobla=0

Tabla de Variables: Sum_pobla, max_pob, cont_pais, pobla: Entera Pais, max_pais: String

Leer pais, pobla

pobla <= 0

Esc “País con mayor población es ”, max_pais

Esc “Total de países ”, cont_pais

EscSl “Y su cantidad es ”, max_pob

34 de 41

Page 35: Material para trabajar PIAP114 Algoritmica

Material de trabajo

D. Corrida en frío del ejemplo: Hacerla la Corrida aquí. Datos de entrada: vzla , 25, col, 32, zzz, 0 Variables Salida

35 de 41

Page 36: Material para trabajar PIAP114 Algoritmica

Material de trabajo

28) Se tienen muchos viajeros. Por lo menos hay uno. Para cada uno se tiene: Nombre, tipo de viaje (valores: 1 , 2) donde: Nombre es alfanumer. Tipo de viaje es entero con dos posibles valores: 1 (negocios) 2 (placer) Obtener y escribir: a) la cantidad de viajeros que habían. b) la cantidad de viajeros que viajaban por negocios.

Usa lazo Repetir a)En Pseudo, define tus variables. b) En DF, con tabla de variables

29) Genera y escribe los números del 1 al 99 con lazo Repetir

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

30) En una tienda de descuento las personas que van a pagar el importe de

su compra llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra. Determinar la cantidad que pagara cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento.

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

31) El usuario quiere informarte cuando dejará de introducir edades.

Hasta que no llegue ese momento debes reportar la edad introducida. a)En Pseudo, define tus variables. b) En DF, con tabla de variables

36 de 41

Page 37: Material para trabajar PIAP114 Algoritmica

Material de trabajo

32) Preguntas de Reflexión para afianzar mi aprendizaje REPETIR • Qué hace la instrucción Repetir?

• Cuándo se usa la instrucción Repetir?

• Cuáles son los símbolos en DF para un Repetir?

• Puedo de un enunciado separar la información que indica el uso de un Repetir? Qué hago?

• Puedo analizar un problema y construir el proceso interno que se realiza en cada vuelta o iteración del lazo?

37 de 41

Page 38: Material para trabajar PIAP114 Algoritmica

Material de trabajo

Problemas iterativos con lazo dentro de otro lazo.

33) Construya un programa que de 3 vueltas y que en cada vuelta de 10 vuelticas. Que escriba en que vuelta y en que vueltica se encuentra.

Haz el DF correspondiente. No hay lectura de datos.

Algoritmo Informa Var Vuelta, Vueltica : entero Inicio Para Vuelta= 1 a 3 Para Vueltica = 1 a 10 EscSL “Vuelta grande es”, Vuelta, “ Y Vueltica vale”, Vueltica Finpara Finpara Fin Construye el DF y revisa que un lazo está contenido dentro del otro.

38 de 41

Page 39: Material para trabajar PIAP114 Algoritmica

Material de trabajo

34) Escriba como salida en pantalla

1 2 2 3 3 3 ...... 50 50 50 50 ........ 50

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

35) Genere y escriba el factorial de cada uno de los números de la serie del 1 al 200

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

36) Escriba como salida en pantalla 1 1 2 1 2 3 ...... 1 2 3 …….. 50

a)En Pseudo, define tus variables. b) En DF, con tabla de variables

39 de 41

Page 40: Material para trabajar PIAP114 Algoritmica

Material de trabajo

40 de 41

Problemas iterativos con Arreglos de una dimensión.

37) Llenar un arreglo que contenga el IRA de los estudiantes del CUFM de la carrera Informática, selecciona los que son mayores de 18 e informarle que está becado. (Son 150 estudiantes)

ALGORITMO Becas VAR. IRA: Arreglo [1..150] de real /*Arreglo con 150 casillas, c/u real */ i : entero /* para manejar el subíndice del arreglo */ INICIO

Para i= 1 a 150 /* Se llena el arreglo con los IRAS de c/alumno */ Esc. “Indique el ira del alumno:” Leer IRA[ i ] finpara Para i=1 a 150 Si ( IRA[ i ] > 18,0 ) entonces Esc. “El estudiante: “, i , “ esta becado” finsi finpara FIN Elabora el DF.

Page 41: Material para trabajar PIAP114 Algoritmica

Material de trabajo

38) Almacenar 300 números en un vector, imprimir cuantos son ceros,

cuantos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

39) Almacenar 150 números en un vector, almacenarlos en otro vector

en orden inverso al vector original e imprimir el vector resultante.

40) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son.

Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.

41 de 41