Sei sulla pagina 1di 35

Ejercicios de Programación 02/04/13

Todos los ejercicios se harán en clase usando pseint, se recomienda que el estudiante los haga usando el
mismo entorno o el Raptor, para que desarrolle su lógica.

PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un
simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite
centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las
dificultades propias de un lenguaje real y proporcionando un entorno de trabajo con numerosas ayudas y
recursos didácticos.
Para contactarse con el autor (para reportar bugs, solicitar mejoras, dejar comentarios o sugerencias, etc) siga
este enlace http://pseint.sourceforge.net/
El proyecto se distribuye como software libre bajo licencia GPL.
Copyleft 2003-2014, por Pablo Novara (zaskar_84@yahoo.com.ar).

La siguiente información se obtuvo de la ayuda de pseint

Paneles acoplables:

Panel de Variables: muestra las


variables identificadas en un
algoritmo, organizadas por proceso y
subprocesos. El ícono representa el
tipo de dato. Notar que esta
información se extrae antes de
ejecutar el algoritmo, por lo que
algunos tipos de datos pueden no
estar completamente determinados,
y algunos arreglos pueden no tener
dimensiones bien definidas.

Panel de Operadores y Funciones:


presenta un catálogo con las
funciones y constantes predefinidas
en PSeInt y la lista de posibles
operadores, organizado por
categorías. Al hacer click sobre uno
de ellos se inserta en el
pseudocódigo en la posición actual
del cursor de texto, reemplazando al texto seleccionado en caso de haberlo.

Panel de Comandos: permite introducir acciones o estructuras de control en su algoritmo mediante un click. Se
ubica por defecto en la parte izquierda de la ventana y al seleccionar una de sus primitivas introduce en el
código del proceso actual la plantilla de la misma, marcando con recuadros las partes de la misma que debe
completar (expresiones, acciones, valores, etc). Puede mostrar u ocultar este panel mediante el ítem Mostrar
Panel de Comandos del menú Configuración.

Tipos de Datos Simples


Existen tres tipos de datos básicos:
• Numérico: números, tanto enteros como reales. Para separar decimales se utiliza el punto. Ejemplos:
12 23 0 -2.3 3.14
• Lógico: solo puede tomar dos valores: VERDADERO o FALSO.
• Carácter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples).
Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc'
Los tipos de datos simples se determinan al declarar las variables con la instrucción DEFINIR. Una vez
determinado el tipo de dato, deberá permanecer constante durante toda la ejecución del proceso; en caso
contrario el proceso será interrumpido.

Vale la pena revisar en la ayuda las secciones Expresiones y Acciones secuenciales para conocer más
respecto al entorno de trabajo del pseint.

Valentín Belisario Domínguez Vera 1/35


Ejercicios de Programación 02/04/13

Estructuras secuenciales.

Ejercicio1.
Elabore un algoritmo que pida el nombre del usuario y le de la bienvenida a la clase.

¿Qué vamos a hacer? Vamos a definir una variable llamada “name” como carácter para guardar el nombre del
estudiante, y luego vamos a pedir el nombre mediante un aviso o letrero en pantalla, el usuario escribirá el
nombre y finalmente se mostrará la bienvenida a la clase.

Valentín Belisario Domínguez Vera 2/35


Ejercicios de Programación 02/04/13

ejercicio2.
Introducir dos valores enteros cualquiera y hacer las cuatro operaciones aritméticas básicas desplegando el
valor de c/u de ellas.

¿Qué vamos a hacer? Vamos a usar las variables num1 y num2 que almacenarán los valores enteros
introducidos por el usuario; sum, rest, mult serán variables que recogerán los resultados de sumar, restar y
multiplicar los dos valores. Como los resultados son enteros las definiremos de ese tipo.
Div será la variable que recogerá el resultado de dividir los dos valores. Como es posible que al dividir dos
números enteros resulten decimales, vamos a definirla como real.
Será necesario pedir los valores mediante un aviso o letrero.
Realizar las cuatro operaciones y guardar los resultados en la variable respectiva.
Finalmente, mostrar los resultados de cada operación.

Valentín Belisario Domínguez Vera 3/35


Ejercicios de Programación 02/04/13

Una alternativa al diagrama de flujo es hacer un diagrama Nassi Schneiderman como el siguiente

Pseudocódigo

Valentín Belisario Domínguez Vera 4/35


Ejercicios de Programación 02/04/13

ejercicio3.
Algoritmo para determinar la Energía potencial de un cuerpo. Fórmula Ep = m * h * g

¿Qué vamos a hacer? Vamos a definir la masa “m” y la altura “h” como enteros (si la definen como real podrán
introducir valores enteros con decimales).
La energía potencial “Ep” y la gravedad “g” las definiremos como real; ya que como la gravedad es 9.81 y es
real, la Ep será también un real.
Pedir la masa y la altura mediante un aviso o letrero.
Calcular la Energía potencial y guardar el resultado en Ep.
Finalmente, mostrar resultados.

Valentín Belisario Domínguez Vera 5/35


Ejercicios de Programación 02/04/13

ejercicio4.
Elabore el algoritmo que pida el nombre del estudiante y dos calificaciones, luego que calcule el promedio de
las calificaciones; en pantalla muestre el nombre del estudiante y el promedio que obtuvo.

¿Qué vamos a hacer? Necesitamos lo siguiente:


Definir la variable “nom” como carácter para guardar el nombre del estudiante.
Definir las variables “cal1” y “cal2” para guardar las calificaciones, vamos a suponer que las calificaciones son
enteras, asi que las variables van a definirse de ese tipo.
Al calcular el promedio necesitamos dividir entre dos, y puede ser que el resultado tenga enteros y decimales,
así que definiremos la variable “prom” como real, para que almacene el promedio que se obtendrá de la
operación.
Finalmente, mostrar resultados en pantalla.

Valentín Belisario Domínguez Vera 6/35


Ejercicios de Programación 02/04/13

Diagrama Nassi-Schneiderman

Pseudocódigo

Valentín Belisario Domínguez Vera 7/35


Ejercicios de Programación 02/04/13

ejercicio5.
Algoritmo que determina la altura en problemas de caída libre. fórmula h = V(i)*t + (g*t^2)/2

¿Qué vamos a hacer? Vamos a hacer lo siguiente...


Supondremos que la velocidad serán sólo números enteros, así que la variable vel_ini sera declarada como
entera. Debido a que “g” es 9.81 y la “g” afecta al valor de “h”, vamos a declarar ambas como reales.
Los valores que no tenemos los vamos a solicitar al usuario mediante un letrero o aviso, solicitaremos la
velocidad inicial y el tiempo. Aplicaremos la fórmula guardando el resultado en “h” y finalmente se muestran los
resultados.

Valentín Belisario Domínguez Vera 8/35


Ejercicios de Programación 02/04/13

Diagrama Nassi-Schneiderman

Pseudocódigo

Valentín Belisario Domínguez Vera 9/35


Ejercicios de Programación 02/04/13

ejercicio6.
Algoritmo para calcular el cuadrado y el cubo de un número, con operador de potencia. Luego a esas potencias
sacarles la raiz cuadrada y cúbica

¿Qué vamos a hacer? Podemos declarar la variable “num” como entera o como real; para tener mayor
flexibilidad a la hora de teclear datos, la declararemos como real. Por lo anterior, las variables siguientes
también serán declaradas como real: “cuad”, “cubo”, “raiz_cuad” y “raiz_cub”.
Habrá que solicitar el valor del número con el que queremos trabajar, esto lo haremos mediante un letrero o
aviso. Aplicaremos el operador de potencia para calcular el cuadrado y el cubo del valor de entrada, los
resultados se guardarán en las variables “cuad” y “cubo” respectivamente. Podemos mostrar esos resultados.
Calcularemos las raices cuadrada y cúbica de los valores residentes en “cuad” y “cubo”; los resultados se
guardarán en “raiz_cuad” y “raiz_cub” respectivamente. Se mostrarán los resultados mediante avisos.

Hacer el siguiente ejercicio como tarea.


ejercicio7.
calcular la calificación final de un estudiante si la ponderación en la materia es
Examen1 – 25% Examen2 – 35% Tareas – 15% Exposición de clase – 25%

Valentín Belisario Domínguez Vera 10/35


Ejercicios de Programación 02/04/13

Condicional Si-Entonces

Al ejecutarse esta instrucción, se evalúa la Expresión Lógica, también llamada condición, que es una
proposición que puede ser verdadera o falsa, y se ejecutarán las instrucciones que correspondan según el valor
de verdad que tenga la condición: las acciones o instrucciones A si la condición es verdadera, o las acciones o
instrucciones B si la condición es falsa.
Las acciones o instrucciones de la parte verdadera deben aparecer siempre, pero las de la parte falsa
aparecerán sólo si es necesario. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la
ejecución del programa continúa con la instrucción siguiente.

VARIANTE ejercicio2.
introducir dos valores enteros cualquiera y hacer las cuatro
operaciones aritméticas básicas desplegando el valor de c/u
de ellas. Hacer que la resta siempre sea positiva

¿Qué vamos a hacer? Vamos a ver cómo está hecho el


ejercicio 2 y partiremos de ahí para modificar lo que sea
necesario. El cambio respecto al ejercicio2 es la
introducción del si...entonces. Para lograr que la resta
siempre sea positiva habrá que determinar cuál de las dos
variables “num1” y “num2” contiene el número mas grande y
hacer la resta en consecuencia. El resto del algoritmo no
tiene cambios respecto al ejercicio2.

Valentín Belisario Domínguez Vera 11/35


Ejercicios de Programación 02/04/13

ejercicio8.
En el siguiente ejercicio vamos a proceder de forma diferente, ya que realizaremos una prueba de escritorio,
que consiste en seguir el flujo del algoritmo asignando valores a las variables, realizar las acciones y
operaciones que vienen ahí hasta obtener un resultado. Introduciremos dos o tres conjuntos de datos para
obtener dos o tres resultados y, de este análisis, trataremos de escribir la redacción del problema que se
soluciona con el algoritmo revisado.

Variables enteras
cal1
cal2
cal3
Variables reales
prom
Variables carácter
status

Imaginemos que tenemos la pantalla de la


computadora y nos muestra

Dame la primera calif,


(y tecleamos) 8 (que se guarda en cal1)
Dame la segunda calif.
(introducimos) 9 (y se guarda en cal2)
Dame la tercera calif.
(y tecleamos) 10 (y se guarda en cal3)
Internamente se calcula el promedio
prom ← (8+9+10)/3 = 8 (que se asigna a prom)

Se hace la comparación, que resulta negativa y el


flujo sale por el NO
Internamente se asigna status ← “Reprobado”

Finalmente, nos muestra


El promedio es 8 y estás Reprobado

Conclusión1. El algoritmo calcula el promedio de 3


calificaciones para determinar si un estudiante está
aprobado o reprobado, sólo que no sabíamos que
se comparaba contra un 70. Este valor se dice que
es la mínima aprobatoria.

Ya que sabemos esto introduzcamos otro conjunto


de datos pero de 0 a 100.
Hazlo en tu libreta. Genera una Conclusión2 y
compara ambas conclusiones, con ellas plantea
una conclusión final que te ayudará a proponer la redacción del problema.

La redacción del problema, palabras más, palabras menos, podría ser...

Redacción del ejercicio8.


Hacer un algoritmo que permita calcular, y mostrar en pantalla, el promedio teniendo como datos 3
calificaciones de un alumno, además mostrar en pantalla si el estudiante está aprobado o no. La mínima
aprobatoria es 70.

Valentín Belisario Domínguez Vera 12/35


Ejercicios de Programación 02/04/13

ejercicio9.
Veamos el siguiente diagrama y hagamos otra prueba de escritorio.
Variables enteras
num
residuo

La pantalla nos muestra


Dame un numero entero
(introducimos) 8 (se guarda en
num)
(se calcula la división de 8/2 y se
obtiene el residuo) 0 (que se
guarda en residuo)

Se hace la comparación que


resulta verdadera y el flujo sale por
el SI
Finalmente nos muestra
el numero 8 es par

Revisando el resto del algoritmo


podemos llegar a la siguiente
Conclusión1. El algoritmo
determina si un número introducido
es par o impar.

Introduzca otro conjunto de datos y en la libreta obtenga el resultado al que llega. Pruebe con un número impar,
por ejemplo, 11.

La posible redacción del problema podría quedar como se muestra a continuación.

Redacción del ejercicio9.


Hacer un algoritmo que identifique si un número es par o impar mostrando un mensaje en la pantalla

Valentín Belisario Domínguez Vera 13/35


Ejercicios de Programación 02/04/13

ejercicio10.
Haga usted la prueba de escritorio y determine cuál
podría ser la redacción del problema.

Redacción del ejercicio10.Algoritmo que permite introducir dos números enteros, el primero mayor que el
segundo, y determina si el primer número es divisible entre el segundo número (es divisible cuando el residuo
es cero)

Valentín Belisario Domínguez Vera 14/35


Ejercicios de Programación 02/04/13

El siguiente ejercicio se puede hacer de varias formas, la más directa y lógica es aquella en la que se hacen
comparaciones sucesivas.

ejercicio11.
Hacer un algoritmo que determine cuál es el mayor de tres números enteros diferentes (tres formas diferentes)
(se reutilizará en los ejercicios 12 y 13)

En la libreta haga la prueba de escritorio del algoritmo anterior y compruebe si en cada conjunto de datos se
obtiene el resultado propuesto en la siguiente tabla.

Conj. num1 num2 num3 El mayor es


1 10 5 2 num1
2 10 2 5 num1
3 2 10 5 num2
4 5 10 2 num2
5 5 2 10 num3
6 2 5 10 num3

Valentín Belisario Domínguez Vera 15/35


Ejercicios de Programación 02/04/13

Con la anterior tabla de datos revise los dos algoritmos siguientes y determine si se llega a los mismos
resultados anteriores.

Valentín Belisario Domínguez Vera 16/35


Ejercicios de Programación 02/04/13

Pedir a los estudiantes que guarden sus cosas, su cel. Y que sólo pongan atención al frente de la clase.
ejercicio12.
Algoritmo para determinar si tres valores diferentes que representan lados, pueden formar entre sí un triángulo.
¿Qué vamos a hacer? Vamos a Analizar lo siguiente...
Suponga que tenemos las variables A, B y C, y que cada una representa un lado ¿cuál de los siguientes
conjuntos de datos nos permite formar un triángulo y porqué?
Conj. A B C
1 5 10 3
2 5 10 5
3 5 10 7
¿qué tiene ese conjunto (que nos permite formar un triángulo) que no tienen los otros dos?
Mostrar el algoritmo que resuelve el ejercicio12.

Valentín Belisario Domínguez Vera 17/35


Ejercicios de Programación 02/04/13

Valentín Belisario Domínguez Vera 18/35


Ejercicios de Programación 02/04/13

ejercicio13.
Hacer un algoritmo que permita introducir tres valores diferentes y que los muestre ordenados de mayor a
menor.
Pista. Pruebe con los siguientes conjuntos de datos
Conj. num1 num2 num3 El mayor es Le sigue Y el menor es
1 10 5 2 10 5 2
2 10 2 5 10 5 2
3 2 10 5 10 5 2
4 5 10 2 10 5 2
5 5 2 10 10 5 2
6 2 5 10 10 5 2

Valentín Belisario Domínguez Vera 19/35


Ejercicios de Programación 02/04/13

ejercicio14.
Hacer un algoritmo que calcule y muestre en pantalla el sueldo diario de un obrero que percibe $11.00 por cada
hora de trabajo y $19.55 por cada hora extra. La jornada normal de trabajo consta de 8 horas, arriba de eso se
considera como tiempo extra. Si la jornada excede las 13 horas de trabajo, se le retendrá el 10% como ahorro.
¿Qué vamos a hacer? Vamos a hacer lo siguiente...
Debemos usar diversas variables para hacer referencia a los datos que tenemos. Nos piden calcular el sueldo
diario (Suel_dia), mismo que es proporcional a las horas trabajadas (Hrs_trab) y a las horas extra (Hrs_extra), y
que es disminuido por el ahorro (Ahorro). Hay que pensar en los posibles casos que se presenten para
expresarlos en forma de ecuación matemática.
Caso1. Cantidad de horas trabajadas, 8 o menos. El sueldo diario estará definido por las horas trabajadas por el
pago por hora de once pesos (Suel_dia = Hrs_trab * 11)
Caso2. Cantidad de horas trabajadas más de 8 pero menos o iguales a 13. Primero determinar la cantidad de
horas extras (Hrs_extra = Hrs_trab – 8) y luego el sueldo diario, Suel_dia = 8 * 11 + Hrs_extra * 19.55.
Caso3. Cantidad de horas trabajadas mayores a 13. Determinamos las horas extra (Hrs_extra = Hrs_trab – 8),
calculamos el sueldo diario (Suel_dia = 8 * 11 + Hrs_extra * 19.55), calculamos el ahorro (Ahorro = Suel_dia*.1)
y finalmente determinamos el sueldo diario definitivo (Suel_dia = Suel_dia – Ahorro).

Haga el algoritmo en pseint y revise los siguientes conjuntos de datos


Para 7 horas trabajadas el sueldo diario es de $77.00
Con 12 horas trabajadas el sueldo diario es de $166.20
Con 15 horas trabajadas el sueldo diario es de $202.365

ejercicio14.5.
Hacer un algoritmo que a los estudiantes de una universidad les permita calcular el pago de sus mensualidades
en base al siguiente criterio: a) al adelantar mensualidades se aplicará un descuento del 10%
b) En mensualidades atrasadas se aplicará un cargo extra del 10%
c) El pago de la mensualidad del mes corriente no lleva descuento pero tampoco se aplica cargo extra.
El monto de la mensualidad es de $650.00
Pistas: Pago de una mensualidad adelantada y la del mes actual, el total es de $1,235.00.
Pago de una mensualidad atrasada y la del mes actual, el total es de $1,365.00.
Pago de dos mensualidades atrasadas y la del mes actual y una adelantada, el total es de $2,665.00

Valentín Belisario Domínguez Vera 20/35


Ejercicios de Programación 02/04/13

ejercicio15.
Hacer un algoritmo que muestre un menú y permita elegir al usuario cuál de las cuatro operaciones aritméticas
básicas quiere hacer (incluir opción para salir).
(en Pseint, mostrar que las opciones pueden ser numéricas si pone las opciones del lenguaje en modo estricto
o cadena de texto cambiando a modo flexible)

Valentín Belisario Domínguez Vera 21/35


Ejercicios de Programación 02/04/13

ejercicio16.
Hacer un algoritmo que le permita seleccionar diversos tipos de conversiones del sistema Internacional al
sistema Inglés. No olvidar la opción de salir.
• Distancia: mts a yardas (1 mt = 1.0936 yardas)
• Velocidad: m/min a ft/min (1 m/min = 3.28 ft/min)
• Temperatura: grados C a F (ºC = (ºF – 32) / 1.8
• Masa: Kgs a Lbs ( 1 Kg = 2.2046 lbs)
• salir

Encargar de tarea el siguiente ejercicio.


ejercicio17.
Hacer el algoritmo que calcule la factura de energía eléctrica según la tarifa de zona anexa.
• Zona 1 → $1.25 por kwh consumido
• Zona 2 → $1.49 por kwh consumido
• Zona 3 → $1.73 por kwh consumido
• Zona 4 → $1.95 por kwh consumido
Se debe imprimir el número de servicio (es único para cada cliente), los kwh consumidos y el total a pagar por el
cliente.

Estructuras repetitivas.
También reciben el nombre de ciclos, lazos, bucles, iteración. Son estructuras muy usadas en programación
debido a que permiten que un conjunto de instrucciones se repita. En Pseint se tienen tres diferentes
estructuras para hacer ciclos.
a) Repetir (que aunque tiene una forma de sintaxis similar al do...while de lenguaje C tiene una gran
diferencia: el do...while se repite por el verdadero, y el Repetir se repite por el falso)
b) Mientras (similar en forma de sintaxis al while de lenguaje C)
c) Para (similar en forma de sintaxis al for de lenguaje C)

Los ciclos se controlan de dos formas...


• Por contador. Es necesario que se lleve el conteo de veces que se está repitiendo el conjunto de
instrucciones. Debe existir un límite numérico contra el que se compara el contador.
• Por ejemplo: si el límite es 10 y el contador inicia en 1, el conjunto de instrucciones se repetirá
10 veces.
• Por centinela. El conjunto de instrucciones se repite mientras el centinela (un valor) no aparezca entre
los datos introducidos. Una vez que el centinela aparece, el ciclo se termina.
• Por ejemplo: Si a la pregunta “Deseas repetir el ciclo” le respondemos que SI, el conjunto de
instrucciones se repite. Cuando se responda que NO (este es el centinela), el ciclo se termina.

Las tres estructuras de pseint se pueden controlar por contador, mientras que por centinela es más sencillo
controlar al Repetir y al Mientras.

Valentín Belisario Domínguez Vera 22/35


Ejercicios de Programación 02/04/13

Primero se verán algunos ejemplos de ciclos con centinela usando el ciclo Repetir. Abra el algoritmo del
ejercicio 2, y observe qué hay que agregarle para que se pueda repetir el proceso con el ciclo Repetir.

ejercicio2_Repetir.
introducir dos valores enteros cualquiera y hacer las cuatro operaciones aritméticas básicas desplegando el
valor de c/u de ellas

Valentín Belisario Domínguez Vera 23/35


Ejercicios de Programación 02/04/13

Ahora abra el algoritmo del ejercicio 4, y observe qué hay que agregarle para que se pueda repetir el proceso
con el ciclo Repetir.

ejercicio4_Repetir.
elabore el algoritmo que pida el nombre del estudiante y dos calificaciones, luego que calcule el promedio de las
calificaciones; en pantalla muestre el nombre del estudiante y el promedio que obtuvo.

Valentín Belisario Domínguez Vera 24/35


Ejercicios de Programación 02/04/13

A continuación se verán los mismos ejercicios pero ahora usando el ciclo Mientras. Abra el algoritmo del
ejercicio 2, y observe qué hay que agregarle para que se pueda repetir el proceso usando el ciclo Mientras.

ejercicio2_Mientras.
introducir dos valores enteros cualquiera y hacer las cuatro operaciones aritméticas básicas desplegando el
valor de c/u de ellas

Valentín Belisario Domínguez Vera 25/35


Ejercicios de Programación 02/04/13

Abra el algoritmo del ejercicio 4, y observe qué hay que agregarle para que se pueda repetir el proceso usando
el ciclo Mientras.

ejercicio4_Mientras.
elabore el algoritmo que pida el nombre del estudiante y dos calificaciones, luego que calcule el promedio de las
calificaciones; en pantalla muestre el nombre del estudiante y el promedio que obtuvo.

Valentín Belisario Domínguez Vera 26/35


Ejercicios de Programación 02/04/13

Por último, vea el algoritmo del ejercicio9 y tomando como guía los ejercicios anteriores, determine qué hay que
agregarle para que se pueda repetir el proceso, primero con el ciclo Repetir, y de forma separada con el ciclo
Mientras.
ejercicio9_Repetir.
Hacer un algoritmo que identifique si un número es par o impar mostrando un mensaje en la pantalla.

Se le pide al estudiante, seleccione unos cuatro o cinco algoritmos más con los cuales pueda practicar el uso
del ciclo Repetir y del ciclo Mientras

Valentín Belisario Domínguez Vera 27/35


Ejercicios de Programación 02/04/13

Acumuladores y contadores
Son instrucciones muy usadas en programación para llevar un acumulado de valores, en el primer caso, y un
conteo de valores, en el segundo caso. Su estructura es muy similar ya que ambos deben iniciarse en algún
valor antes de usarse, frecuentemente este valor de inicialización es cero, pero puede ser cualquier otro.
También vale la pena mencionar que estas estructuras pueden aumentar o disminuir su valor según la
operación aritmética con que se construyan.

Ejemplos.
Para acumulados positivos (mediante la suma)
acum ← 0;
acum ← acum + variable;

Para acumulados negativos (mediante la resta)


acum ← 20;
acum ← acum – variable;

para conteos positivos


cont ← 0;
cont ← cont + 1;

para conteos nagativos


cont ←30;
cont ← cont – 2;

Los contadores y acumuladores se usan mucho en


los ciclos, y se inicializan antes del ciclo y se
modifican (aumentan o disminuyen) dentro del ciclo.

Al usar ciclos si el contador se inicia en 0, la


condición debe ser < limite (cont ← 0; mientras cont
< lim hacer)
Si el contador se inicia en 1, la condición debe ser
<= limite (cont ← 1; mientras cont <= lim hacer)
El ciclo repetir se itera por la parte falsa, y la
condición cambia por un “hasta que cont = lim “

Ejercicio 18.
Algoritmo para una tienda de abarrotes. El algoritmo
nos permite introducir los precios de los artículos
que lleva un cliente y al final muestra el total a pagar
y la cantidad de artículos vendidos. Usar ciclo
mientras.

Valentín Belisario Domínguez Vera 28/35


Ejercicios de Programación 02/04/13

Ejercicio 19.
Elabore el algoritmo que permita calcular la suma de N números diferentes y que muestre el resultado de la
suma. Usar ciclo mientras en un algoritmo y ciclo repetir en otro algoritmo.
¿Qué vamos a hacer? Vamos a hacer lo siguiente...
Por simplicidad usaremos sólo números enteros, así que todas las variables serán Enteras. La variable num
para guardar los diferentes números que proporcione el usuario. La variable cont que llevará un conteo de la
cantidad de números que se han sumado. La variable suma que llevará el acumulado de la suma de los
diferentes números que se introduzcan. Y las variables lim en el primer algoritmo, que guardará cuántos
números deseamos que se sumen; y la variable resp en el otro algoritmo para capturar la respuesta del usuario
si desea agregar otro número a la suma.

Valentín Belisario Domínguez Vera 29/35


Ejercicios de Programación 02/04/13

ejercicio 20.
Elabore el algoritmo que permita introducir N calificaciones de un grupo de estudiantes y que las vaya sumando
para calcular el promedio del grupo. También debe determinar y mostrar en pantalla cuántos están aprobados y
cuántos están reprobados. La mínima aprobatoria es 70.
¿Qué vamos a hacer? Vamos a hacer lo siguiente...
Definiremos calif para introducir una a la vez, las calificaciones de los estudiantes. Definiremos suma como el
acumulador de todas las calificaciones. Definiremos N_est como la cantidad de estudiantes que se tienen en el
grupo. Todas ellas serán definidas como enteras. Definiremos prom para guardar el promedio de las
calificaciones, y como podemos tener decimales, será definida como real.
Definiremos aprob y reprob como los contadores respectivamente de la cantidad de estudiantes aprobados y la
cantidad de estudiantes reprobados.

Valentín Belisario Domínguez Vera 30/35


Ejercicios de Programación 02/04/13

Hacer el siguiente ejercicio de tarea.


Ejercicio 21.
Elabore el algoritmo que calcula la suma de los primeros N números enteros y muestra cuántos números se
sumaron. Hacer una versión con ciclo mientras y otra versión con ciclo repetir (el ciclo repetir se repite por la
parte falsa).

ejercicio 22.
hacer un algoritmo que sume los N números naturales (enteros) que se encuentren entre dos valores límite
(limite inicial y límite final, donde limite inicial < limite final))

Variable

valor
Inicial

incremento

valor
Final

Mejorar el algoritmo asegurándose que limite inicial sea < limite final; usar ciclo repetir.

Valentín Belisario Domínguez Vera 31/35


Ejercicios de Programación 02/04/13

ejercicio 23.
Hacer un algoritmo que sume los primeros N múltiplos del 3.
¿Qué vamos a hacer? Vamos a hacer lo siguiente...
Los múltiplos los obtendremos multiplicando 3 por cada número entero, de forma similar a una tabla del 3.
Vamos a preguntar cuántos múltiplos queremos que se sumen y eso se guardará en una variable N.
Utilizaremos un contador (usaremos i) para que lleve el control de los números enteros desde 1 hasta el valor N
solicitado anteriormente. Necesitaremos un acumulador (lo llamaremos suma) para llevar el acumulado de la
suma de los múltiplos de 3. Un ciclo nos permitirá repetir el proceso N veces y finalmente se mostrarán los
resultados.

Valentín Belisario Domínguez Vera 32/35


Ejercicios de Programación 02/04/13

ejercicio 24.
hacer un algoritmo que sume los primeros N múltiplos de cualquier número.
¿Qué vamos a hacer? Vamos a hacer lo siguiente...
El ejercicio es muy parecido al anterior. Lo nuevo es que ahora en lugar de tener al 3 como un número fijo de
quien queremos los múltiplos, añadiremos la variable num que guardará el valor del número que queremos los
múltiplos.

Valentín Belisario Domínguez Vera 33/35


Ejercicios de Programación 02/04/13

Ejercicio 25.
Lea la siguiente anécdota atribuída a Carl Friedrich Gauss

En 1784, tras su séptimo cumpleaños, el pequeño entró en una escuela pública de educación primaria donde las
clases las impartía un profesor llamado Büttner. La escuela estaba ubicada en una habitación sombría, de techo
bajo, suelo desigual, … donde cerca de un centenar de pupilos de Büttner iban y venían. El profesor imponía
una disciplina rígida y nadie podía llevarle la contraria. En esta escuela, que seguía el patrón de la Edad
Media, Gauss llevaba dos años como alumno sin provocar ningún incidente reseñable.
El primer día que Gauss asistió a la clase de Aritmética, en la que había niños de hasta 15 años, ocurrió un
incidente que Gauss solía contar ya anciano para el deleite de sus contertulios. Cuando el profesor proponía un
problema, el alumno que acababa el primero tenía que llevar su pizarrita hasta la mesa del profesor. El segundo
que lo lograra colocaba la suya encima, y así sucesivamente. El primer día que el joven Gauss entró en clase, el
profesor Büttner, a viva voz, estaba dictando un problema de aritmética para sus alumnos. Justo al acabar de
dictar el problema, Gauss colocó su pizarrita sobre la mesa del profesor, quien con absoluta seguridad afirmó:
“Debe estar mal.” Mientras, el resto de los alumnos continuaron con su tarea (contando, multiplicando, y
sumando). Büttner recorría la clase observando a sus alumnos con una mirada irónica, casi compasiva, hacia
sus alumnos. Sólo un niño estaba sentado, callado, con su tarea ya finalizada, consciente de que la había
resuelto correctamente y que su resultado era el único posible.
Al final de la clase, el profesor dio por acabado el examen y volvió las pizarras hacia arriba. La primera, la del
joven Gauss, sólo contenía un número. Cuando Büttner lo leyó, para su sorpresa y la de todos los presentes,
resultó que la respuesta del joven Gauss era correcta. Muchos de sus compañeros, sin embargo, habían
obtenido una respuesta errónea.
Existe la firme creencia que el problema en cuestión fue el hacer la suma de los números enteros enteros del 1 al
100. y que la forma en que Gauss obtuvo la respuesta fue la siguiente.
100 99 98 97 96... 52 51
1 2 3 4 5 ... 49 50
101 101 101 101 101 ... 101 101 por lo que 101 X 50 = 5050
Tomado con fines educativos de: http://francis.naukas.com/2010/04/15/iii-carnaval-de-matematicas-toda-la-verdad-sobre-la-anecdota-
de-gauss-el-nino-prodigio-su-profesor-y-la-suma-de-1-a-100/

Elabore el algoritmo que le permita obtener los mismos resultados que a Gauss. El algoritmo debe funcionar
para obtener la suma entre cualquier par de números que sean inicio y final de la suma de números.

Pista. Algunas series numéricas son simétricas, es decir, tienen una cantidad par de valores que al colocarlos
en la forma que lo hizo Gauss, se tiene una cantidad precisa de sumas formadas por dos operandos o
sumandos. Compruebe esto intentando determinar si los números que están entre los siguientes límites
(incluyendo los límites) forman una serie simétrica.
a) 3 al 15 b) 6 al 22 c) 9 al 18 d) 16 al 31

Ejemplos: a) 3 4 5 6 7 8 9 b) 6 7 8 9 10 11 12 13 14
15 14 13 12 11 10 x 22 21 20 19 18 17 16 15 x

Haga lo mismo para los incisos c) y d)

¿cuáles tienen simetría?

Se dará cuenta que las series simétricas se reducen a dos casos


Caso1. El primer número debe ser impar y el último debe ser par.
Caso2. El primer número debe ser par y el último debe ser impar.

Valentín Belisario Domínguez Vera 34/35


Ejercicios de Programación 02/04/13

¿Qué vamos a hacer? Vamos a hacer lo siguiente...


Debemos usar diversas variables; inicio en la que guardaremos el valor inicial de la suma de números, final en
la que guardaremos el valor final de la suma de números; cant_sumas en la que se guardará la cantidad de
sumas con dos sumandos que hay entre inicio y valor_final; resul que guardará la suma de cada par de
sumandos y la variable i como contador para llevar un registro de cuántas parejas de números hay.

Valentín Belisario Domínguez Vera 35/35

Potrebbero piacerti anche