Algoritmos PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 188

Diseño de algoritmos

El contenido fue extraído del libro Metodología de la


Programación de Osvaldo Cairo

2 de agosto de 2017
Diseño de algoritmos
Solución de problemas

Contenido
1 Solución de problemas

2 Problemas secuenciales básicos

3 Problemas secuenciales con pseudocódigo

4 Ejercicios de problemas secuenciales

5 Estructura selectiva simple

6 Estructura selectiva doble

7 Estructura selectiva múltiple

8 Estructuras condicionales anidadas

9 Ejercicios de estructuras condicionales

10 Estructura de repetición FOR

11 Ejercicios con la estructura de repetición FOR

12 Estructura de repetición MIENTRAS

13 Estructura de repetición REPETIR ... MIENTRAS

14 Ejercicios con la estructura de repetición MIENTRAS

15 Funciones especiales de Pse Int


Diseño de algoritmos
Solución de problemas

Figura 1 : Pasos para resolver un problema


Diseño de algoritmos
Solución de problemas

Definición de algoritmo

Se puede definir como una secuencia de instrucciones que representan un modelo de


solución para determinado tipo de problemas.

O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener


la solución de un problema.

Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos
permite solucionar un problema.

Los algoritmos son independientes de los lenguajes de programación. En cada problema


el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación.
Diseño de algoritmos
Solución de problemas

Características de un algoritmo

Precisión: cada uno de sus pasos debe indicar de manera precisa e inequívoca
que se debe hacer.

Definido: debe producir los mismos resultados para las mismas condiciones de
entrada.

Finito: debe tener un número limitado de pasos.

Puede tener cero o más elementos de entrada.

Debe producir un resultado. Los datos de salida serán los resultados de efectuar
las instrucciones.
Diseño de algoritmos
Solución de problemas

Figura 2 : Símbolos para construir diagramas de flujo


Diseño de algoritmos
Solución de problemas

Operadores aritméticos
Operador Operación Ejemplo Resultado
^ Potencia 2^3 8
* Producto 15.5*2 31.0
/ División 19/2.0 9.5
+ Suma 12.3+15.89 28.19
- Resta 12.3-15.89 -3.59
19 mod 3
mod, % Residuo 1
19 % 3
Diseño de algoritmos
Solución de problemas

Jerarquía de los Operadores Aritméticos


Operador Precedencia Operación
^ Mayor Potencia
*, /, mod ↓ Producto, división, residuo
+, - Menor Suma, resta
Diseño de algoritmos
Solución de problemas

Operadores relacionales
Operador Operación Ejemplo Resultado
= Igual a 10 = 22 Falso
6= 9 6= 10
Diferente a Verdadero
!= 9 != 10
< Menor que 5<9 Verdadero
> Mayor que 9>12 Falso
≤ 9 ≤ 10
Menor o igual a Verdadero
<= 9<=10
≥ 10 ≥ 12
Mayor o igual a Falso
>= 10>=12
Diseño de algoritmos
Solución de problemas

Operadores lógicos
Operador Jerarquía Expresión Lógica Significado
No No P No P
Not Mayor Not P No es cierto que P
!  !P Es FALSO que P
Y 
 P YQ PYQ
AND 
y P AND Q P sin embargo Q
POQ
O POQ
O P O Q O ambas
OR Menor P OR Q
Mínimo P O Q
Diseño de algoritmos
Solución de problemas

Tabla de verdad de los operadores lógicos Not, AND y OR


P Q Not P P AND Q P OR Q
Falso Falso Verdadero Falso Falso
Falso Verdadero Verdadero Falso Verdadero
Verdadero Falso Falso Falso Verdadero
Verdadero Verdadero Falso Verdadero Verdadero
Diseño de algoritmos
Solución de problemas

Operadores Jerarquía
()
^ Mayor
*, /, mod
+, -
=, <,>, ↓
NO
Y Menor
O
Diseño de algoritmos
Solución de problemas

Evaluar las siguientes expresiones:


12/3 + 2 ∗ 2 − 1
12/(3 + 2) ∗ 2 − 1
(12/3) + 2 ∗ (2 − 1)
12/(3 + 2 ∗ (2 − 1))
(12/3 + 2) ∗ 2 − 1
25 ∗ 3 + 4 − 7/12 + 3 − 1 ∗ 2
(25 ∗ 3 + 4) − 7/12 + (3 − 1) ∗ 2
25 ∗ (3 + 4) − (7/12) + (3 − 1 ∗ 2)
25 ∗ (3 + (4 − 7 = 12 + (3 − 1) ∗ 2))
25 ∗ (3 + 4 − 7/12) + (3 − 1 ∗ 2)
Diseño de algoritmos
Solución de problemas

Evaluar las siguientes expresiones:


3 ∗ (4 − 2) − 5 ∗ (1 − 4) − (8 + 9)
−8 − (2 − 3 ∗ (5 − 2 ∗ (1 − 3) + 4 ∗ (8 − 10))) + 3 ∗ (2 − 5 ∗ (1 − 3) − 10)
−4 ∗ (2 − 3 − 1) + 2 ∗ (8 − 5) + 3 ∗ (4 − 5)
−(−6 + 4 ∗ (2 − 5 ∗ (4 − 3 ∗ (4 − 3) + 2 ∗ (7 − 3))) + 2) − 1
6 − (4 − 3 ∗ (4 − 2)) − (7 − 5 ∗ (4 − 2 ∗ (7 − 1)))
12 + 3 ∗ (−6 + 2 ∗ (5 − 4 ∗ (3 − 2) + 5 ∗ (7 − 8)) − 5)
−2 ∗ (−7 + 11) − 5 − (−2 + (−3 + 5) − (4 − (2 + 3)))
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática-algorítmica (usando operadores


aritméticos: +,-,*,/ y paréntesis, de ser necesario) para resolver cada
uno de los siguientes problemas:
Para preparar un pastel se emplean los siguientes ingredientes:
1 12 kg de harina, 12 kg de huevo, una taza de leche que
equivale a 41 kg y azúcar 58 kg. ¿Cuántos kilogramos pesan en
total estos ingredientes?

Javier repartió 160 kilogramos de arroz entre un grupo de


personas, de tal forma que a cada una le tocaron 6 32 kg,
¿cuántas personas eran?

Una fotografía 5 31 pulgadas de ancho por 12 14 pulgadas de


ancho. Si esta fotografía se coloca en un marco que tiene un
5
ancho constante de 12 pulgadas. ¿cuáles son las dimensiones
del marco?
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática (usando operadores aritméticos: +,-,*,/


y paréntesis, de ser necesario) equivalente para cada una de las siguientes
expresiones y obtenga una fracción simplificada equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga una fracción simplificada y el número real
equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga una fracción simplificada y el número real
equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga el número real equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga el número real equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga el número real equivalente:
Diseño de algoritmos
Solución de problemas

Escribir una expresión matemática equivalente para cada una de las si-
guientes expresiones. Obtenga el número real equivalente:
Diseño de algoritmos
Problemas secuenciales básicos

Problema 1
Supongamos que las variables I, ACUM y J son de tipo entero. REA y SUM de tipo real,
CAR de tipo caracter y BAND de tipo booleana. Consideremos también que tenemos
que realizar las siguientes asignaciones:
1 I←0
2 I ←I +1
3 ACU M ← 0
52
4 J← 3
5 CAR ← a
J
6 ACU M ← I
ACU M
7 REA ← 3
8 BAN D ← (8 > 5)Y (15 < 23 )
M ∗5
9 SU M ← ACUJ2
10 I ← I ∗ 3
11 REA ← REA 5
12 BAN D ← BAN D O (I = J)
13 I ← REA
14 CAR ← J
Diseño de algoritmos
Problemas secuenciales básicos
Diseño de algoritmos
Problemas secuenciales básicos

Problema 2

Construya un diagrama de flujo tal que dado los datos A, B. C y D que representan
números enteros, escriba los mismos en orden inverso.
Diseño de algoritmos
Problemas secuenciales básicos

Construya un diagrama de flujo tal que dado los datos A, B. C y D que representan
números enteros, escriba los mismos en orden inverso.
Diseño de algoritmos
Problemas secuenciales básicos

Problema 3

Construya un diagrama de flujo al que dado los datos enteros A y B, escriba el resultado
de la siguiente expresión:

(A + B)2
3
Diseño de algoritmos
Problemas secuenciales básicos

Problema 3
Construya un diagrama de flujo al que dado los datos enteros A y B, escriba el resultado
(A+B)2
de la siguiente expresión: 3
Diseño de algoritmos
Problemas secuenciales básicos
Diseño de algoritmos
Problemas secuenciales básicos

Problema 4

Dada la matrícula y 5 calificaciones de un alumno obtenidas a lo largo del semestre,


construya un diagrama de flujo que imprima la matrícula del alumno y el promedio de
sus calificaciones.

Donde:
MAT es una variable de tipo entero que representa la matrícula del alumno.
CAL1, CAL2, CAL3, CAL4 y CAL5 son variables de tipo real que representan
las 5 calificaciones del alumno.
Diseño de algoritmos
Problemas secuenciales básicos
Diseño de algoritmos
Problemas secuenciales básicos

Problema 5

Escriba un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de


un número entero positivo NUM.
Diseño de algoritmos
Problemas secuenciales básicos

Problema 6

Construya un diagrama de flujo tal que dado como datos la base y la altura de un
rectángulo, calcule el perímetro y la superficie del mismo.
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Programa

El concepto de programa fue desarrollado por John von Neumann en 1946.

Es un conjunto de instrucciones que sigue la computadora para alcanzar un resultado


especifico.

El programa se escribe en un lenguaje de programación a partir de un diagrama de flujo


diseñado con anterioridad.

Un lenguaje de programación, por otra parte, está constituido por un conjunto de reglas
sintácticas (especifica la formación de instrucciones válidas) y semánticas (especifica el
significado de estas instrucciones) que hacen posible escribir un programa.
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Pseudocódigo

Para resolver un problema de tipo algorítmico (tiene una solución determinística), pri-
mero se desarrolla el algoritmo, que proporciona una solución muy general.
Posteriormente, se construye el diagrama de flujo, que esquematiza gráfica y detalla-
damente la solución del problema, y a partir de éste, escribimos el programa en algún
lenguaje de programación estructurado.

La tarea intelectual que requiere de un pensamiento profundo, capacidad de razona-


miento flexible y crítica, es la de la construcción del diagrama de flujo, que representa
la solución detallada del problema.
La escritura del programa puede ser más simple, conociendo las reglas sintácticas y
semánticas que constituyen el lenguaje de programación.

El lenguaje a usar para la construcción de los programas es el lenguaje algoritmico de


pseudocódigo, éste es independiente de cualquier lenguaje de programación.

Esta característica es muy importante, ya que permite comprender las estructuras de da-
tos y los algoritmos asociados a ellas sin ser relacionados a un lenguaje de programación
en particular.
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Problema 7
Escriba el pseudocódigo para el problema 2, a partir de su diagrama de flujo.
Construya un diagrama de flujo tal que dado los datos A, B. C y D que representan
números enteros, escriba los mismos en orden inverso.
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Problema 8
Escriba el pseudocódigo para el problema 3, a partir de su diagrama de flujo:
Construya un diagrama de flujo al que dado los datos enteros A y B, escriba el resultado
(A+B)2
de la siguiente expresión: 3
CALCULA
El programa, dados como datos los enterios A y B, calcula el resul-
tado de una expresión.

A y B son variables de tipo entero. RES es una variable de tipo real.


1 Leer A,B
(A+B)2
2 RES ← 3
3 Escribir RES
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Problema 9

Escriba el pseudocódigo para el problema 4, a partir de su diagrama de flujo:


Dada la matrícula y 5 calificaciones de un alumno obtenidas a lo largo del semestre,
construya un diagrama de flujo que imprima la matrícula del alumno y el promedio de
sus calificaciones.

Datos: MAT, CAL1, CAI2, CAL3, CAL4, CAL5

Donde:
MAT es una variable de tipo entero que representa la matrícula del alumno.
CAL1, CAL2, CAL3, CAL4 y CAL5 son variables de tipo real que representan
las 5 calificaciones del alumno.
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Problema 10

Escriba el pseudocódigo para el problema 5, a partir de su diagrama de flujo:


Escriba un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de
un número entero positivo NUM.
CUADRADI_CUBO
El programa, dado como dato un número entero positivo, calcula el
cuadrado y el cubo de dicho número.

NUM es una variable de tipo entero. CUA y CUB son variables de


tipo real.
1 Leer NUM
2 CU A ← N U M ∗ N U M y CU B ← N U M 3
3 Escribir CUA y CUB
Diseño de algoritmos
Problemas secuenciales con pseudocódigo

Problema 11

Escriba el pseudocódigo para el problema 6, a partir de su diagrama de flujo:


Construya un diagrama de flujo tal que dado como datos la base y la altura de un
rectángulo, calcule el perímetro y la superficie del mismo.
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 1

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
tal que dado el costo de un artículo vendido y la cantidad de dinero entregada por el
cliente, calcule e imprima el cambio que se debe entregar al mismo.
Considere:
PREPRO es una variable de tipo real que representa el precio del producto.
PAGO es una variable de tipo real que representa el pago que realiza el cliente.
Asuma que el pago del cliente es mayor que el precio del producto.
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 2

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
tal que dadas la base y la altura de un triángulo, calcule e imprima su superficie
Considere:
BASE es una variable de tipo real que indica la base del triángulo.
ALTU es una variable de tipo real que representa la altura del triángulo.
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 3

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
tal que dado como datos el nombre de un dinosaurio, su peso y su longitud, expresados
estos dos últimos en libras y pies respectivamente; escriba el nombre del dinosaurio, su
peso expresado en kilogramos y su longitud expresada en metros.

Asuma:
1 libra = 0.453592 Kg
1 pie = 0.3047 Mts
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 4

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema que tienen en una gasolinera:
Los surtidores de la gasolinera registran lo que surten en galones, pero el precio de la
gasolina está fijado en litros. Se debe calcular e imprimir lo que hay que cobrarle al
cliente (en litros).

Asuma:
1 Galón = 3.785 Lts
Precio por litro: $8.20
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 5

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
Dados como datos el radio y la altura de un cilindro, calcule e imprima el área y su
volumen.
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 6

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
Calcule e imprima el número de segundos que hay en un determinado número de días.
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 7

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
Dados los tres lados de un triángulo, determinar su área.
Considerar:
S = (L1 + L2 + L3 )/2.
p
Area = S × (S − L1 ) × (S − L2 ) × (S − L3 )
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio 8

Construya un diagrama de flujo, pseudocódigo y una tabla de pruebas para el siguiente


problema:
Calcule la distancia entre dos puntos, dado como datos las coordenadas de los puntos
P1 y P2
Diseño de algoritmos
Ejercicios de problemas secuenciales

Ejercicio Extra

Suponga que se leen las dimensiones (T1 , T2 ) de un terreno con forma rectangular y las
dimensiones del área que abarca una casa (C1 , C2 ) dentro del terreno (asuma que la
casa está dentro del terreno completamente). Calcular el costo total de cortar el pasto
del terreno suponiendo que te cobrarían $20.0 por metro cuadrado.
Diseño de algoritmos
Estructura selectiva simple

Estructura selectiva simple - diagrama de flujo


Diseño de algoritmos
Estructura selectiva simple

Estructura selectiva simple - pseudocódigo


Diseño de algoritmos
Estructura selectiva simple

Ejemplo 1
Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el
pseudocódigo correspondiente para el siguiente problema:
Dado como dato el sueldo de un trabajador, aplíquele un aumento del 15 % si su sueldo
es inferior a $1000. Imprima en este caso el nuevo sueldo del trabajador.
Diseño de algoritmos
Estructura selectiva simple
Diseño de algoritmos
Estructura selectiva simple
Diseño de algoritmos
Estructura selectiva simple

Ejemplo 2

Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el


pseudocódigo correspondiente para el siguiente problema:
Dado como dato la calificación de un alumno en un examen, escriba aprobado en caso
de que esa calificación sea mayor a 8.
Diseño de algoritmos
Estructura selectiva doble

Estructura selectiva doble - diagrama de flujo


Diseño de algoritmos
Estructura selectiva doble

Estructura selectiva doble - pseudocódigo


Diseño de algoritmos
Estructura selectiva doble

Ejemplo 3
Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el
pseudocódigo correspondiente para el siguiente problema:
Dado como dato la calificación de un alumno en un examen, escriba aprobado si su
calificación es mayor o igual que 8 y reprobado en caso contrario.
Diseño de algoritmos
Estructura selectiva doble

*** Ejecución Iniciada. ***


calificacion
> 3
Reprobado
*** Ejecución Finalizada. ***

*** Ejecución Iniciada. ***


calificacion
> 8.1
Aprobado
Diseño de algoritmos
Estructura selectiva doble

Ejemplo 4

Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el


pseudocódigo correspondiente para el siguiente problema:
Dado como dato el sueldo de un trabajador, aplicar un aumento del 15 % si su sueldo
es inferior a $1000 y 12 % en caso contrario. Imprima el nuevo sueldo del trabajador.
Diseño de algoritmos
Estructura selectiva doble

sueldo
> 1500
nuevo sueldo 1725

sueldo
> 500
nuevo sueldo 575
Diseño de algoritmos
Estructura selectiva múltiple

Estructura selectiva múltiple - diagrama de flujo


Diseño de algoritmos
Estructura selectiva múltiple

Estructura selectiva múltiple - pseudocódigo


Diseño de algoritmos
Estructura selectiva múltiple

Ejemplo 5

Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el


pseudocódigo correspondiente para el siguiente problema:
Dados como datos la categoría y el sueldo de un trabajador, calcule el aumento corres-
pondiente teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y
su nuevo sueldo.
Diseño de algoritmos
Estructura selectiva múltiple

sueldo
> 500.0
categoria
> 4
categoria 4 nuevo sueldo 535

sueldo
> 100
categoria
> 1
categoria 1 nuevo sueldo 115
Diseño de algoritmos
Estructuras condicionales anidadas

Estructuras condicionales anidadas


Diseño de algoritmos
Estructuras condicionales anidadas

Estructuras condicionales anidadas


Diseño de algoritmos
Estructuras condicionales anidadas

Estructuras condicionales anidadas


Diseño de algoritmos
Estructuras condicionales anidadas
Diseño de algoritmos
Estructuras condicionales anidadas

sueldo
> 500.0
categoria
> 4
categoria 4 nuevo sueldo 535

sueldo
> 100
categoria
> 1
categoria 1 nuevo sueldo 115
Diseño de algoritmos
Estructuras condicionales anidadas

Ejemplo 6
Construya un diagrama de flujo , escriba una tabla de datos de prueba y escriba el
pseudocódigo correspondiente para el siguiente problema:
Dados los datos A, B y C que representan números enteros diferentes, describa un
algoritmo para escribir estos números en forma descendente.
Diseño de algoritmos
Estructuras condicionales anidadas
Diseño de algoritmos
Estructuras condicionales anidadas
Diseño de algoritmos
Estructuras condicionales anidadas

Algunas pruebas

> 1
> 9
> 5
9 5 1

> 9
> 3
> -6
9 3 -6

> -8
> 3
> -1
3 -1 -8
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 1

El número de sonidos emitidos por un grillo en un minuto, es una función de la tempera-


tura. Como resultado de esto, es posible determinar el nivel de la temperatura haciendo
uso de un grillito como termómetro.

T = N/4 + 40 (1)
Escriba la temeratura en caso de tener un número N>0 de sonidos.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 2

Dados como datos los valores enteros P y Q, determine si los mismos satisfacen la
siguiente expresión:

P 5 + Q4 − 2 ∗ P 2 < 680 (2)


En caso afirmativo debe imprimir los valores P y Q.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 3

Las raíces reales de la expresión ax2 + bx + c = 0 se obtienen a través de la fórmula:



−b + / − b2 − 4ac
x= (3)
2a
Asuma que a 6= 0. Describa un algoritmo que calcule las raíces reales de ser posible
para una ecuación de segundo grado.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 4

Dados como datos la matrícula y 5 calificaciones de un alumno; imprima la matrícula,


el promedio y la palabra aprobado si el alumno tiene un promedio mayor o igual que 6,
y el texto no aprobado en caso contrario.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 5

Dado como entrada un número entero, determine e imprima si el mismo es positivo,


negativo o nulo.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 6

Dado un número entero A, describa un algoritmo para determinar si es par, impar o


nulo.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 7

Dados como datos de entrada tres números enteros, determine si los mismos están en
orden creciente.
Diseño de algoritmos
Ejercicios de estructuras condicionales
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 8

En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra.
El descuento se efectúa con base en el siguiente criterio:
Si el monto es menor que $500 - no hay descuento.
Si el monto está comprendido entre $500 y $1 000 (inclusive) - 5 % de
descuento.
Si el monto está comprendido entre $1 000 y $7 000 (inclusive) - 11 % de
descuento.
Si el monto está comprendido entre $7 000 y $15 000 (inclusive) - * 18 % de
descuento.
Si el monto es mayor a $15 000 - 25 % de descuento.
Describa un algoritmo que reciba el monto de la compra de un cliente y determine lo
que el mismo debe pagar.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 9

En un cierto país el impuesto que se debe pagar por los artículos se calcula mediante la
siguiente regla: los primeros $20 no causan impuesto, los siguientes $20 tienen el 30 %
de impuesto y el resto el 40 % de impuesto, pero si el costo del producto es mayor a
$500, entonces en lugar del 40 % se cobra el 50 %.
Diseñe un algoritmo que lea el costo básico de un artículo y calcule su precio total
(precio total = precio básico + impuesto).
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 10

Dado como datos tres números reales, muestre el valor mayor o los mayores (en caso
de empate). Considere que los números pueden ser iguales. Desarrolle el algoritmo
correspondiente.
Por ejemplo si los valores de entada son: 5 6 9, deberá imprimir 9. Por otro lado si los
valores de entrada son: 5 2 5, deberá imprimir 5 5 (el valor mayor es 5 y aparece 2
veces).
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 11

El costo de las llamadas telefónicas internacionales depende de la zona geográfica en


la que se encuentre el país destino y del número de minutos hablados. En la siguiente
tabla se presenta el costo del minuto por zona. A cada zona se le ha asociado una clave.

Construya un algoritmo que le permita calcular e imprimir el costo total de una llamada.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 12

Escriba un diagrama de flujo que permita calcular lo que hay que pagarle a un trabajador
teniendo en cuenta su sueldo y las horas extras trabajadas. Para el pago de horas extras
se toma en cuenta la categoría del trabajador.

CATEGORIA PRECIO
HORA EXTRA
1 30
2 38
3 50
4 70

Cada trabajador puede tener como máximo 30 horas extras, si tienen más sólo se les
pagarán 30. A los trabajadores con categoría mayor a 4 no debemos pagarle horas extras.
El algoritmo recibirá como entrada el sueldo, la categoría y la cantidad de horas extras
que ha trabajado.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 13

Construya un diagrama de flujo tal que dado como datos la matricula de un alumno,
la carrera (1,2,3 o 4) en la que está inscrito, su semestre y su promedio; determine
si el mismo es apto para pertenecer a alguna de las facultades menores que tiene la
universidad. Si el alumno es aceptado teniendo en cuenta las especificaciones que se
listan abajo, se debe imprimir su matrícula, carrera y la palabra aceptado o la el texto
no aceptado en caso contrario
Especificaciones para pertenecer a las facultades menores:

Carrera Semestre mínimo Promedio mínimo


(1) Economía 6 8.5
(2) Computación 7 8.8
(3) Administración 7 8.5
(4) Contabilidad 7 8.5
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 14

En un hospital se ha hecho un estudio sobre los pacientes registrados durante los últimos
10 años, con el objeto de hacer una aproximación de los costos de internación por
paciente. Se obtuvo un costo promedio diario según el tipo de enfermedad que aqueja
al paciente.
Además se pudo determinar que en promedio todos los pacientes con edad entre 14 y 22
años implican un costo adicional del 10 %. La siguiente tabla expresa los costos diarios,
según el tipo de enfermedad.

Tipo de Costo / paciente


enfermedad /dia
1 25
2 16
3 20
4 32

Construya un algoritmo que calcule e imprima el costo total que representa un paciente.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 15 a 18

15 Lea un número entero positivo N.


Indique si el número es o no par.
Indique si el número es o no múltiplo por 6.
Indique si el número es o no multiplo de 10.
Realice este programa usando únicamente módulos sobre 2, sobre 3 y sobre 5.

16 Ingresar 3 números y mostrarlos ordenados de manera descendente.


Por ejemplo si los números son: 4.3, -5.15 y 10. Ordenados descendentemente
son: 10.000 4.300 -5.150.

17 Se reciben dos horas en el formato HH:MM:SS y mostrar la suma


correspondiente. Para las horas no es necesario considerarlas en el rango de 0 a
23, es decir si la suma da más de 23 imprimirla como tal.
Por ejemplo para las entradas 02:25:30 y 02:25:30 la respuesta es: 4:51:00

18 Tomar como entrada un número entre 1 y 99, y mostrar su equivalente en


Romano. Por ejemplo para el valor 23, el número romano es XXIII.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 19 y 20

19 Leer 3 valores enteros e indicar si dichos valores corresponden a los lados de un


triángulo escaleno, isosceles o equilatero. En caso de no poder corresponder a
ninguno, imprimir inválido.
Por ejemplo si los valores de entrada son: 5 3 5, es un tríangulo isósceles.
Considerar casos como si alguno de los lados ingresado es cero o negativo, ...

20 Leer 3 números a,b y c mismos que corresponden a los coeficientes de una


equación cuadrática de 2o grado. A partir de estos datos imprimir el valor de las
raíces en cuales quiera de los 3 casos :
2 raíces reales
1 raíz real

2 raíces imaginarias (forma a + bi donde i = −1 )
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 21 y 22
21 Leer N, un valor entero positivo mayor a 0. Suponga que se desea dar el valor N
en billetes de 500, 200, 100, 50 y 20, dando prioridad a los de mayor
denominación. Posteriormente, en términos de monedas de 10, 5, 2 y 1 pesos.
Por ejemplo, si la entrada es: 2705, la salida debería indicar:
5 billetes de 500 pesos
1 billete de 200 pesos
1 moneda de 5 pesos
22 Leer dos fechas A y B, (suponga que siempre A < B) en el formato
dd/mm/aaaa. Indicar el número de días que hay entre ambas fechas. Simplifique
el problema al no considerar el caso de los años bisiestos.
Para las fechas A = 09/03/2016 y B = 13/06/2016, la cantidad de días
transcurridos es: 96
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio 23 y 24

23 Lea 5 valores de tipo real y calcule el valor mayor, el menor y el promedio.

24 Leer dos fechas: A que corresponde a la fecha de nacimiento de una persona, y


B que corresponde a la fecha actual (A<B). Calcule cuántos años tiene la
persona.

25 Lea dos horas en el formato hh:mm:ss. Suponga que A es una hora anterior y B
es la hora actual. Calcule el tiempo en formato hh:mm:ss que ha transcurrido
entre A y B. Cuando A > B, significa que A es una hora del día anterior.
A B tiempo transcurrido
1:25:19 2:35: 20 1:10:1
2:35:20 1:25:19 22:49:59

26 Leer un entero positivo que corresponde a un año. Indicar si el año es bisiesto o


no lo es.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio Extra
Se ingresan los valores de horas y minutos. Suponga que se tiene un reloj analógico.
Imprimir el valor absoluto del ángulo menor que existe entre las manecillas indicadas.
Por ejemplo para las 12:00, el ángulo es de 0o , para las 9:00, el ángulo es de 90o o para
las 8:10 el ángulo es de 175o

Ejemplo, para 10:35


el ángulo menor tiene : 107,5o
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio Extra

Se ingresará un valor entero positivo (0 ≤ N ≤ 999). Escriba un programa para mostrar


el número en palabras.

N Salida
25 veinticinco
578 quinientos setenta y ocho
981 novecientos ochenta y uno
Diseño de algoritmos
Ejercicios de estructuras condicionales

Ejercicio Extra
Suponga que se leen las dimensiones (T1 , T2 ) de un terreno con forma rectangular y se
tiene a dos vacas amarradas en esquinas opuestas del terreno con cordones de longitud
menores o iguales al valor mayor de T1 y T2 . Para el problema considere a las vacas
como puntos.
Escriba un algoritmo e ilustre con imágenes diferentes casos que ese pueden
presentar para calcular el área total de pasto que comen las vacas.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Examen estructuras selectivas - problema 01


Dado un valor entero que representa un año (0 ≤ N ≤ 2020) indicar si el año es bisiesto
o no.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Examen estructuras selectivas - problema 02


Dadas:
La fecha de nacimiento de una persona (día, mes, año)
Una fecha distinta, mayor a la fecha de nacimiento (día, mes, año)
Calcular la edad de la persona.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Examen estructuras selectivas - problema 03

Calcular el índice de masa corporal

peso
BM I = (4)
altura2

El peso se ingresa en kilogramos y la altura en metros.


Si BMI se encuentra entre 18.5 y 25 (ambos límites incluidos) indicar que se
encuentra en buen peso.
Si BMI < 18.5 indicar que se encuentra debajo de su peso
Si BMI >25 indicar que se encuentra sobre su peso
En cada caso indicar además el BMI calculado.
Diseño de algoritmos
Ejercicios de estructuras condicionales

Examen estructuras selectivas - problema 03


Diseño de algoritmos
Ejercicios de estructuras condicionales

Examen estructuras selectivas - problema 04


Leer un entero N, que corresponde a uno de los valores {1, 2, 3, 4, 5}, para convertir
al correspondiente día de la semana {Lunes, M artes, M ircoles, Jueves, V iernes}.
Informar que el día es incorrecto en caso de recibir un valor incorrecto.
Diseño de algoritmos
Estructura de repetición FOR

Estructura de repetición FOR - Introducción

La estructura repetir conocida comúnmente como FOR, es la estructura


algorítmica adecuada para utilizar en un ciclo que se ejecutará un número
definido de veces.

Por ejemplo cuando necesitamos calcular la nómina total de la empresa,


tenemos que sumar los sueldos de los N empleados de la misma. Cuando
necesitamos obtener el promedio de calificaciones de un curso, debemos sumar
las N calificaciones de los alumnos y dividir esa suma entre N.

Es decir, sabemos de antemano cuántas veces tenemos que repetir una


determinada operación, acción o tarea.
Diseño de algoritmos
Estructura de repetición FOR

Estructura de repetición FOR - Diagrama de flujo


Diseño de algoritmos
Estructura de repetición FOR

Estructura de repetición FOR - Pseudocódigo

...
Hacer V ← VI
Repetir con V desde VI hasta VF
...
{ Proceso }
Hacer V ← V + ID
...
{ Fin del ciclo}
...
Diseño de algoritmos
Estructura de repetición FOR

Estructura de repetición FOR - PseInt


Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 1
Construya un algoritmo que reciba como datos los sueldos de los 10 trabajadores de
una empresa, obtenga el total de nómina de la misma. Considera además que no puede
utilizar estructuras algorítmicas repetitivas en la solución del problema.
Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 2
La solución del problema anterior, utilizando una estructura algorítmica repetitiva FOR.
Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 2 - tabla de pruebas

En la siguiente tabla podemos observar el seguimiento del algoritmo para los siguientes
datos (SUE): $1500, $890, $700, $950, $2300, $1650, $1800, $1400, $760, $900.
Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 2 - Pseuducódigo

NOMINA
{El programa calcula el total de la nómina de un grupo de 10 empleados }
{I es una variable de tipo entero. SUE y NOMINA son variables de tipo real }
1. Hacer NOMINA ← 0 e I ← 1
2. Repetir con I desde 1 hasta 10
Leer SUE
Hacer NOMINA ← NOMINA + SUE e I ← I + 1
3. {Fin del ciclo del paso 2 }
4. Escribir NOMINA
Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 2
La solución del problema anterior, utilizando una estructura algorítmica repetitiva FOR.
Diseño de algoritmos
Estructura de repetición FOR

Ejemplo 3

Construya un algoritmo que reciba como datos N números enteros y obtenga el número
de ceros, de valores positivos y de valores negativos que hay entre estos números.
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Ejercicios con la estructura de repetición FOR

1 Leer N números enteros positivos y obtener la suma de los números pares y la


de los impares.
Por ejemplo, para una entrada N = 5, deberá pedir 5 valores enteros, supongamos 2, 4, 5, 5 y 8.
Deberá mostrar la suma de los pares y de los impares, 14 y 10, para el ejemplo indicado.

2 Calcular la suma de los primeros N (N > 0, leído como entrada) números


enteros positivos.
Por ejemplo, para una entrada N = 5, deberá generar de manera interna los valores 1,2,3,4 y 5.
Debe mostrar como resultado 15.

3 Calcular la suma de los primeros N (N > 0, leído como entrada) números


enteros positivos impares.
Por ejemplo, para una entrada N = 5, deberá generar de manera interna los valores 1, 3, 5, 7 y
9. Debe mostrar como resultado 25.
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Ejercicios con la estructura de repetición FOR

4 Mostrar los primeros N (N > 0, leído como entrada) números enteros positivos
que son divisibles por 3 y también por 5.
Por ejemplo, para una entrada N = 5, deberá mostrar los valores 15, 30, 45, 60 y 75 .

5 Mostrar los primeros N (N > 0 , leído como entrada) números enteros positivos
que son divisibles por 3 o por 5.
Por ejemplo, para una entrada N = 5, deberá mostrar los valores 3, 5, 6, 9 y 10.

6 Mostrar en romano los primeros N (1 ≤ N < 100), leído como entrada)


números enteros a partir de 1.
Por ejemplo, para una entrada N = 25, deberá mostrar los primeros 25 números romanos: I, II,
III, IV, ... , XXV
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Num de valores a ingresar


> 3
1) valor?
> 5
2) valor?
> 8
3) valor?
> 2
suma de los pares 10
suma de los impares 5

ejercicio 01
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Cuantos elementos?
> 5
RESULTADO 25

ejercicio 03
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Cuantos elementos?
> 10
1) 3
2) 5
3) 6
4) 9
5) 10
6) 12
7) 15
8) 18
9) 20
10) 21

ejercicio 05
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Ejercicios con estructuras de repetición FOR


7 Mostrar los primeros N (N > 0, leído como entrada) elementos de la siguiente
serie: 1, 2, 4, 7, 11, · · ·

8 Mostrar los primeros N (N > 0, leído como entrada)elementos de la siguiente


serie: 0, 1, 1, 2, 3, 5, 8, · · ·

9 Calcular la suma de los primeros N (N > 0, leído como entrada) términos de la


serie 1 − 21 + 13 − 14 + 15 · · · N
1

10 Calcular el factorial de un valor N (N ≥ 0, leído como entrada) ingresado. Por


ejemplo si N = 4, 4! = 1 × 2 × 3 × 4

11 Calcular el producto de dos enteros positivos N × M ingresados usando sumas.


Por ejemplo si N = 3, M = 2, 2 × 3 = 2 + +2 + 2, es decir M veces N.

12 Calcular N M (M entero) ingresados usando multiplicaciones. Por ejemplo si


N = 3, M = 2, 32 = 3 × 3, es decir N veces M.
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

cuantos?
> 10
1) 1
2) 2
3) 4
4) 7
5) 11
6) 16
7) 22
8) 29
9) 37
10) 46
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Num de elementos ?
> 4
incremento 1 (acumulado) 1
incremento -0.5 (acumulado) 0.5
incremento 0.33333 (acumulado) 0.8333
incremento -0.25 (acumulado) 0.58333

Respuesta 0.58333
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

valores N y M?
> 3
> 4
3 x 4 = 12

valores N y M?
> 8
> 17
8 x 17 = 136
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Ejercicios con estructuras de repetición FOR

13 Ingresar N (N ≥ 1) números y calcular el mayor de ellos.

14 Ingresar N (N ≥ 1) números y calcular el mayor, menor y promedio.

15 Calcular la suma de los primeros N números de la serie: 1, 2, 4, 8, · · · 2N −1 .

16 Calcular la suma de los primeros N términos de la siguiente secuencia :


12 + 22 + 32 + 42 + · · · + N 2 .

17 Suponga que se ingresan N números positivos, calcule la suma y cuántos de


ellos están en los rangos
De 1 a 100.
De 101 a 200.
Mayores a 200.
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

Cu\’antos n\’umeros?
> 5
valor?
> 1
valor?
> -6
valor?
> 6
valor?
> 12
valor?
> 19
El mayor de los valores es 19

Cu\’antos n\’umeros?
> 6
valor?
> -8
valor?
> -5
valor?
> -3
valor?
> -11
valor?
> -666
valor?
> -97
El mayor de los valores es -3
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

18 Ingresar N (N ≥ 1). Deberá generar N números enteros positivos en el rango de


1 a 6 de manera aleatoria y mostrarlos en pantalla. Al terminar mostrar de
manera tabular cuántos de cada tipo se generaron.
Cu\’antos n\’umeros?
> 10
Generados: 6 5 2 1 3 2 5 1 5 4
# de 1’s: 2
# de 2’s: 2
# de 3’s: 1
# de 4’s: 1
# de 5’s: 3
# de 6’s: 1

19 Ingresar N (N ≥ 1). Deberá generar N números enteros positivos en el rango de


1 a 1000 de manera aleatoria y mostrarlos en pantalla. Mostrar los 3 valores
diferentes más grandes.
Cu\’antos n\’umeros?
> 5
Generados: 6 128 41 935 523
Los tres mayores son: 935, 523, 128
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

20 Ingresar N (N ≥ 1). Muestre todos los números que dividen exactamente a N.


Indique cuántos divisores tiene el valor N.
Valor de N?
> 18

Divisores
1
2
3
6
9

Hay 5 valores que dividen exactamente a 18.


Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

21 Ingresar N y P (N ≥ 1). Muestre todos los números en el rango de 1 a 1000


que son divisibles exactamente por N, por P, o por ambos. Indique cuántos
números cumplieron con dicha propiedad.
¿Valores de N y P?
> 250 ¿Valores de N y P?
> 125 > 331
125 (125) > 221
250 (250) (125) 221 (221)
375 (125) 331 (331)
500 (250) (125) 442 (221)
625 (125) 662 (331)
750 (250) (125) 663 (221)
875 (125) 884 (221)
1000 (250) (125) 993 (331)
Existen 7 valores que son divisibles entre 331 y 22 e
Existen 8 valores que son divisibles entre 250 y 125 en el rango de 1 a 1000
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR
Diseño de algoritmos
Ejercicios con la estructura de repetición FOR

22 Ingresar una hora (horas, minutos, segundos). Ingrese una cantidad de


repeticiones R. Imprima la primer hora. Posteriormente, agregregue una
cantidad aleatoria Q (1 ≤ Q ≤ 500) de segundos y muestre la nueva hora
después de incrementar dicha hora, realice esta operación R veces.
Ingrese la hora inicial (h, m, s)
Ingrese la hora inicial (h, m, s) > 2
> 1 > 38
> 0 > 59
> 0 ¿Cu\’antas repeticiones?
¿Cu\’antas repeticiones? > 5
> 4 2:38:59
1:0:0 incremento en segundos 55
incremento en segundos 21 2:39:54
1:0:21 incremento en segundos 140
incremento en segundos 458 2:42:14
1:7:59 incremento en segundos 96
incremento en segundos 207 2:43:50
1:11:26 incremento en segundos 276
incremento en segundos 170 2:48:26
1:14:16 incremento en segundos 399
2:55:5
Diseño de algoritmos
Estructura de repetición MIENTRAS

Estructura de repetición MIENTRAS

Características importantes:
Comúnmente conocida como WHILE.
Se usa generalmente cuando no sabemos el número de veces que se debe repetir
un ciclo, ya que dicho número depende de las proposiciones dentro del ciclo.

Algunos ejemplos de uso.


Calcular el promedio de calificaciones de un grupo de alumnos cuando no se
conoce cuántos son. En este caso el ciclo se ejecuta mientras haya calificaciones.
Calcular la mayor potencia de 2 que es menor o igual a un número. Por ejemplo
la potencia de 2 más grande que es menor o igual a 10 es 3 (83 ≤ 10).
Diseño de algoritmos
Estructura de repetición MIENTRAS

Elementos de un ciclo MIENTRAS (WHILE)

Partes de la estructura MIENTRAS


Ciclo: Conjunto de instrucciones
que se ejecutarán repetidamente.

Condición de terminación: La
evaluación de esta condición
permite decidir cuándo finalizará la
ejecución del ciclo. La condición se
evalúa al inicio del mismo.
Diseño de algoritmos
Estructura de repetición MIENTRAS

MIENTRAS - Pseudocódigo

...
Hacer PI ← Proposición inicial
Mientras PI es verdadero, repetir
...
{ Proceso }
Hacer PI ← Modificación de PI
...
{ Fin del ciclo}
...
Diseño de algoritmos
Estructura de repetición MIENTRAS

Ejercicio 04

Supongamos que se desea calcular la suma de gastos realizados durante las vacaciones.
Suponga que se ingresarán valores enteros positivos representando cada uno de los
gastos. Detenerse al ingresar un valor negativo (que no será procesado). Imprimir la
suma de los gastos y cuántos gastos se hicieron.

Gasto ??
> 1
Gasto ??
> 2
Gasto ??
> 3
Gasto ??
> -1
El total de gastos 6
Diseño de algoritmos
Estructura de repetición MIENTRAS
Diseño de algoritmos
Estructura de repetición MIENTRAS
Diseño de algoritmos
Estructura de repetición REPETIR ... MIENTRAS

Estructura de repetición HACER ... MIENTRAS

Partes de la estructura REPETIR ...


MIENTRAS
La diferencia básica con el ciclo
MIENTRAS es que la prueba de
condición es hecha al finalizar el
ciclo, es decir, las instrucciones se
ejecutan cuando menos una vez
porque primero ejecuta las
instrucciones y al final evalúa la
condición.
También se le conoce por esta
razón como ciclo de condición de
salida.

Al igual que en las otras


estructuras de control de
repetición, el control del ciclo se
realiza a través de contadores,
acumuladores, etc.
Diseño de algoritmos
Estructura de repetición REPETIR ... MIENTRAS

REPETIR ... MIENTRAS - Pseudocódigo

...
Hacer PI ← Proposición inicial
REPETIR
...
{ Proceso }
Hacer PI ← Modificación de PI
...
Mientras PI es verdadero
...
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con la estructura de repetición MIENTRAS

1 Leer números enteros y detenerse al ingresar cualquier número negativo.


Para este ejercicio deberá pedir números, MIENTRAS ese número sea mayor o igual a cero debe
continuar el ciclo. Pero si ingresa un valor negativo, debe salir del ciclo. No se pide imprimir
nada.

2 Leer números enteros y detenerse al ingresar cero. Calcular de los números


ingresados la suma de los valores positivos y también la de los negativos.
Para este ejercicio deberá pedir números e inicializar dos acumuladores, uno para cada tipo de
números. Deberá salir del ciclo cuando se detecte un 0, en caso contrario acumular según el tipo.

3 Ingresar un número entero positivo N N > 1, mostrar los números de la


siguiente secuencia N, N/2, N/4, · · · 1 usando división entera. Por ejemplo para
N = 10, la secuencia es: 10, 5, 2, 1.
Puede calcular los divisores 1, 2, 4, ... y en cada iteración dividir N por el valor indicado del
divisor. Cuando la división no sea mayor o igual a 1, debe deternerse. Otra forma de hacer el
problema es usar la asignación valor ← valor div 2
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con la estructura de repetición MIENTRAS

4 Mostrar los primeros elementos de la siguiente serie: 0, 1, 1, 2, 3, 5, 8, · · · que


sean menores a un valor N (N > 1) ingresado. Por ejemplo si N = 5, deberá
mostrar los valores: 0, 1, 1, 2, 3.
Hacer las cuentas a mano es muy importante para detectar cuántas variables son necesarias y
cómo van cambiando.

N
5 Ingresar dos valores enteros positivos N y M y calcular el cociente entero M
10
usando restas. Por ejemplo para N = 10 y M = 3, el cociente entero de 3 = 3
Si ingresa el valor 10 como dividendo y como divisor 3, tiene que hacer un proceso como el
siguiente:
10 − 3 = 7
7−3=4
4−3=1
1 − 3 = −2
debe detectar las condiciones necesarias para identificar el cociente e incluso (aunque no se pide)
poder calcular el residuo de la división.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS

6 Ingresar un número N y mostrar los elementos de la serie de Collatz que


converge a 1. La secuencia se define de la siguiente manera:
(
Ni /2, si Ni es impar
Ni+1 = (5)
3Ni + 1, si Ni es impar

detenerse si N = 1.

por ejemplo para N = 5, los elementos de la serie son: 5, 16, 8, 4, 2, 1.

7 Invertir los dígitos de un número usando módulos y divisiones enteras.


Por ejemplo, si se ingresa el número 1256 se debe generar el número
6000 + 500 + 20 + 1 = (((6) × 10 + 5) × 10 + 2) × 10 + 1 = 6521
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS

8 Suponga que se han realizado votaciones en una escuela, y existen 3 candidatos.


Realiza un algoritmo para calcular el conteo de los votos e indicar al ganador, en
cado de no existir un ganador, indicar quienes formarían el empate. Los datos se
ingresan como una sencuencia de números entre 1 y 3. El último valor ingresado
es 0 que indica el final de la lista de votos (y no se procesa).
Por ejemplo para la entrada: 3, 1, 2, 3, 2, 3, 2, 3, 1, 1, 1, 2, 3, hay 4 votos para el
candidato 1, 4 para el candidato 2 y 5 para el candidato 3, por lo que el ganador
es el candidato 3.

9 Ingresar un número entero positivo mayor a 1, e indicar si el número es primo o


no.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS


10 Ingresar un número entero positivo y calcular sus factores primos.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS

11 Ingresar dos números enteros positivos y calcular su máximo común divisor.


Obtención del máximo común divisor (método de factores primos*)
Paso 1 Obtenga la factorización con números primos de cada número.
Paso 2 Elija todos los primos comunes de todas las factorizaciones, con cada primo elevado al
exponente mínimo que tiene en cualquier factorización.
Paso 3 Realice el producto de todos los números del paso 2. Este producto es el máximo común
divisor.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Obtención del máximo común divisor (algoritmo euclidiano)


Para obtener el máximo común divisor de dos números diferentes, se divide el más grande entre el más
pequeño. Se anota el residuo y se divide el divisor anterior entre este residuo. Continúe el proceso hasta
obtener un residuo igual a 0. El máximo común divisor es el último residuo positivo obtenido1 .

1
*Matemática: Razonamiento y aplicaciones, Charles Miller et al
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS

12 Ingresar dos números enteros positivos y calcular su mínimo común multiplo.


Obtenclón del minimo común múltiplo (método de factores primos)
Paso 1 Obtenga la factorización con números primos de cada número.
Paso 2 Elija todos los primos pertenecientes a cualquiera de las factorizaciones, con cada primo
elevado a la potencia indicada por el exponente más grande.
Paso 3 Desarrolle el producto de todos los números del paso 2. Este producto es el mínimo
común múltiplo.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS


13 En un estadio se tienen 5 tipos diferentes de localidades, las cuales se identifican
por una clave numérica que es un valor comprendido entre 1 y 5. Los precios de
cada localidad y los datos referentes a las ventas de boletos para el próximo
juego se proporcionan como sigue:
P1 , P 2 , P 3 , P 4 , P 5
Clave1 , Cant1
Clave2 , Cant2
...
−1, −1
Donde:
P1 , P2 , P3 , P4 , P5 son variables de tipo real que representan los precios de
las localidades 1, 2, 3, 4 y 5, respectivamente.
Clavei es una variable de tipo entero que representa el tipo de localidad
de la venta i.
Canti es una variable de tipo entero que indica la cantidad de boletos
vendidos de un cierto tipo, en la venta i.
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicios con estructuras de repetición MIENTRAS


13 (cont) Asumiendo que los valores de entrada siempre son correctos. Escriba un
algoritmo que:
1 Lea los precios.
2 Lea los datos de las ventas de boletos.
3 Imprima para cada venta, la clave, la cantidad y el importe total de los
boletos vendidos en esta venta.
4 Calcule e imprima la cantidad de boletos vendidos de cada tipo.
5 Calcule e imprima la recaudación total del estadio.

14 Mostrar todos los números primos menores o iguales a un número entero


positivo N (N > 1) ingresado.
Por ejemplo, si se ingresa el valor N=10, se deberán mostrar los siguientes
números: 2, 3, 5 y 7

15 Un número es perfecto si "la suma de sus divisores excepto él mismo es igual al


propio número". Haga un algoritmo para calcular e imprimir los números
perfectos menores o iguales que N.
Los divisores de 28 son: 1, 2, 4, 7 y 14, sumados dan 28
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

> 9
> 6
> 10
> 0
> -6 (salir del ciclo)

> 256
> 2643
> 2
> 52
> -55 (salir del ciclo)
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Numero ?
> 6
Numero ?
> 9
Numero ?
> -3
Numero ?
> -6
Numero ?
> 0
Suma de positivos 15
Suma de negativos -9
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

> 16905
50961

> 983218
812389

> 123
321
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

> 7
7
> 5
22
5
11
16
34
8
17
4
52
2
26
1
13
40
20
10
5
16
8
4
2
1
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

17 Dibujar un triángulo de *’s usando


16 Dibujar un triángulo de *’s usando ciclos anidados de n a 1:
ciclos anidados de 1 a n: >9
>5 *********
* ********
** *******
*** ******
**** *****
***** ****
***
>8 **
* *
**
*** >5
**** *****
***** ****
****** ***
******* **
******** *
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Proceso while16
Definir n,i,j Como Entero
Leer n
Para i<-1 Hasta n Hacer
Para j<-1 Hasta i Hacer
Escribir ’*’ Sin Saltar
FinPara
Escribir ’’
FinPara
FinProceso
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Proceso while17
Definir n,i,j Como Entero
Leer n
Para i<-n Hasta 1 Con Paso -1 Hacer
Para j<-1 Hasta i Hacer
Escribir ’*’ Sin Saltar
FinPara
Escribir ’’
FinPara
FinProceso
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

18 Dibujar espacio + triángulo de


tamaño n:
19 Dibujar espacio + triángulo de
> 9 tamaño n:
*********
> 5
********
*
*******
**
******
***
*****
****
****
*****
***
**
> 8
*
*
**
> 6
***
******
****
*****
*****
****
******
***
*******
**
********
*
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

21 Dibujar un cuadrado con rombo


20 Dibujar un tablero de ajedrez de vacío de tamaño n:
m×n : > 15
10 ***************
******* *******
-*-*-*-*-* ****** ******
*-*-*-*-*- ***** *****
-*-*-*-*-* **** ****
*** ***
*-*-*-*-*- ** **
-*-*-*-*-* * *
*-*-*-*-*- ** **
*** ***
-*-*-*-*-* **** ****
*-*-*-*-*- ***** *****
****** ******
-*-*-*-*-* ******* *******
*-*-*-*-*- ***************

> 9
6 *********
-*-*-* **** ****
*-*-*- *** ***
** **
-*-*-* * *
*-*-*- ** **
-*-*-* *** ***
**** ****
*-*-*- *********
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

23 Dibujar un rombo vacío de tamaño


n:
> 11
22 Dibujar una línea de m rombos de *
tamaño n : * *
Dame el tamaño del rombo (impar>0) * *
> 9 * *
Cuántos rombos en la fila * *
> 5 * *
* * * * * * *
*** *** *** *** *** * *
***** ***** ***** ***** ***** * *
******* ******* ******* ******* ******* * *
********************************************* *
******* ******* ******* ******* *******
***** ***** ***** ***** ***** > 5
*** *** *** *** *** *
* * * * * * *
* *
* *
*
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

24 Serie de números en tríangulo, 25 Serie de números en tríangulo


mostrar las primeras n filas de la (versión 2), mostrar las primeras n
serie: filas de la serie:
> 5 > 9
1 1
2 3 3 2
4 5 6 6 5 4
7 8 9 10 10 9 8 7
11 12 13 14 15 15 14 13 12 11
21 20 19 18 17 16
> 9 28 27 26 25 24 23 22
1 36 35 34 33 32 31 30 29
2 3 45 44 43 42 41 40 39 38 37
4 5 6
7 8 9 10 > 6
11 12 13 14 15 1
16 17 18 19 20 21 3 2
22 23 24 25 26 27 28 6 5 4
29 30 31 32 33 34 35 36 10 9 8 7
37 38 39 40 41 42 43 44 45 15 14 13 12 11
21 20 19 18 17 16
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

26 Suma de dígitos de un número


entero positivo hasta obtener un
dígito: 27 Leer un número entero positivo N y
Dame un número: mostrarlo en base B :
> 123456789 Número a convertir:
Valores temporales: > 63588
45 A qué base?
9 > 2
Respuesta: 9 Respuesta: 1111100001100100 (base 2)

Dame un número: Número a convertir:


> 123456999 > 1024532
Valores temporales: A qué base?
48 > 8
12 Respuesta: 3721024 (base 8)
3
Respuesta: 3
Número a convertir:
> 63588
Dame un número: A qué base?
> 9999999999 > 16
Valores temporales: Respuesta: F864 (base 16)
46
10
1
Respuesta: 1
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicio 28
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

28 Obtener una aproximación del área bajo la curva limite inferior ?


para la función: > 0
limite superior ?
> 2
f (x) = x2 incremento ?
> 0.5
Que trata de aproximar la integral definida entre 0 ) 0.0
los puntos a y b, usando la sumatoria indicada 0.5) 0.125
1 ) 0.5
como: 1.5) 1.125
2 ) 2.0
Z b b
X suma total 3.75
x2 dx ≈ x2i × ∆
a xi ←a+∆ limite inferior ?
> 0
Es decir, calcule la suma de los rectángulos de limite superior ?
base ∆ con altura x2i , cuyos valores van desde a > 2
incremento ?
hasta b. Recordar que xi+1 ← xi + ∆. > 0.01
suma total 2.6867

Deberá pedir los valores de a, b y ∆, asuma la


función f (x) = x2 . Muestre el resultado de la limite inferior ?
> -2
sumatoria de los valores calculado (ver ejemplos limite superior ?
para mayor detalle). > 2
Pruebe con otras funciones como: f (x) = x, incremento ?
> 0.01
f (x) = x3 , f (x) = sin(x) y f (x) = ex suma total 5.3734
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

Ejercicio 28
Diseño de algoritmos
Ejercicios con la estructura de repetición MIENTRAS

29 Usted tiene un equipo de futbol soccer. Está haciendo un sistema en que desea
mostrar cuántos partidos ha ganado, cuántos ha perdido, y cuántos ha
empatado, así como la cantidad de puntos y la diferencia de goleo (goles
anotados menos goles recibidos). La entrada tendrá parejas de números enteros,
el primer valor indica la cantidad de goles anotados y el segundo valor, los goles
recibidos. Se deberá detener cuando ingrese dos valores negativos.

marcador (favor, contra)


> 2
marcador (favor, contra) > 3
> 5 marcador (favor, contra)
> 3 > 6
marcador (favor, contra) > 0
> 2 marcador (favor, contra)
> 1 > 3
marcador (favor, contra) > 2
> 2 marcador (favor, contra)
> 2 > 4
marcador (favor, contra) > 1
> 1 marcador (favor, contra)
> 3 > 5
marcador (favor, contra) > 5
> -1 marcador (favor, contra)
> -1 > -2
Ganados 2 > -2
Empatados 1 Ganados 3
Perdidos 1 Empatados 1
Puntos totales 7 Perdidos 1
Diferencia de goles 1 Puntos totales 10
Diferencia de goles 9
Diseño de algoritmos
Funciones especiales de Pse Int

Funciones de Pse Int

También podría gustarte