Professional Documents
Culture Documents
OBJETIVO DE LA ACTIVIDAD
Consolidar los primeros 4 temas de la materia y practicar el uso de las tres estructuras iterativas o
ciclos vistos en la materia: Para, Mientras y Repetir.
EJERCICIOS
Para cada uno de los siguientes enunciados, construye algoritmos en pseudocdigo que resuelvan el
problema mediante el secuenciamiento de acciones, validacin de datos, uso de condicionales y de
estructuras iterativas:
1. Escribir un algoritmo que solicite parejas de nmeros, hasta que el usuario indique que no hay ms
valores para procesar. El algoritmo debe contar la cantidad de parejas procesadas y calcular para cada una
la media armnica, donde: Resuelva utilizando Repetir
MediaArmnica 2 , 0* X *Y
X Y
Ayuda: En este ejercicio la cantidad de valores a procesar no es conocida, le debes solicitar al usuario el
valor X e Y para utilizar en la frmula de la Media Armnica y tambin le debes preguntar si desea procesar
otro par de valores, la respuesta del usuario la pueden guardar en una variable tipo Entero, carcter o
string, si es entero por ejemplo, utilizando 0 para no y 1 para si. Ayudarse con los ejercicios vistos en clase.
Pg. 1
Universidad Central de Venezuela. Taller para Iterizers Nro 3
Escuela de Computacin - Algoritmos y Programacin Profa. Yusneyi Carballo, Mayo 2013
2. Escribir un algoritmo que pida una secuencia de 100 nmeros enteros al usuario y verifique para cada valor
suministrado si se trata de un nmero primo. Para los nmeros que no son primos, se debe indicar el
resultado de la suma de sus dgitos. Resuelva utilizando Para y Repetir
Ayuda:
En este ejercicio se utiliza un ciclo dentro del cual se va a solicitar 100 nmeros enteros al usuario, para
cada nmero se verifica si es un nmero primo (http://es.wikipedia.org/wiki/N%C3%BAmero_primo
http://mimosa.pntic.mec.es/jgomez53/matema/conocer/primos.htm )
Para los nmeros que no son primos, se debe indicar el resultado de la suma de sus dgitos, por ejemplo, si
el usuario suministr el nmero 24 (que NO es un primo) el resultado a mostrar ser 2 + 4, es decir la suma
de sus dgitos. Si el nmero suministrado es 252 el resultado a mostrar ser 2 + 5 + 2
En este ejercicio se usan VARIOS ciclos, ya que se tiene uno para solicitar los 100 nmeros, otro para validar
si el nmero es primo contando la cantidad de divisores que tiene, y otro para descomponer el nmero no
primo en sus dgitos ayudados con el div y el mod. Como ven por lo menos hay 3 ciclos.
Else
# con este Para se cuenta la cantidad de divisores de x
Escribir(El nmero + x + no es primo y la suma
Para i=1 hasta x en 1 hacer
de sus dgitos es: + sumaDgitos(x) );
# se divide x entre cada valor de i, contando los i que
FSi;
# los dividen exactamente
FPara; Si x mod i == 0 Entonces ContDiv = ContDiv + 1; FSi;
FPara;
Si (contDiv 2) Entonces Retornar(Verdadero);
FinAccin Principal;
Sino Retornar(Falso);
FSi;
FinFuncin;
Funcin sumaDgitos(Entero x): Entero
Pg. 2
Universidad Central de Venezuela. Taller para Iterizers Nro 3
Escuela de Computacin - Algoritmos y Programacin Profa. Yusneyi Carballo, Mayo 2013
Repetir
sumaDig = sumaDig + x mod 10;
x = x div 10;
Hasta x == 0;
Retornar(sumaDig);
FinFuncin;
3. Un alpinista va rumbo a un pico de una montaa verificando sus avances en 16 puntos mediante la
observacin de la altura a la que se encuentra. Construye un algoritmo que indique cunto fue el ascenso
neto del alpinista, cul fue el mayor cambio de altura y entre qu puntos se observ.
Resuelva utilizando Mientras
Se lee el primer valor antes del ciclo. Luego dentro del ciclo se leen cada uno de los 15 valores restantes.
Para poder sacar la diferencia entre las alturas debes restar a la altura anterior (altAnt) la altura actual
(altAct). La primera altura (altAnt) es leda antes del ciclo y la altura actual (altAct) es la que leen dentro
del ciclo. Luego de hacer la resta, a la variable altAnt le asignas altAct, y le pides despus al usuario la
siguiente altura la cual guardas en altAct. ES DECIR, altAnt es la variable que guarda la altura anterior a la
nueva que te da el usuario, as es que podemos sacar la resta entre ellas. El ascenso total es la suma de
todas las diferencias entre la altActu y la altAnt (resta de las alturas), PERO de los resultados que sean
positivos, ya que queremos saber la altura que se subi. Aunque en C++ no existe el Repetir ... hasta, sino el
Mientras ... FMientras (while ...do) y el hacer ... Mientras (do ... While), PERO en pseudocdigo vas a usar el
Repetir y el Mientras o el Para visto en clase.
Pg. 3
Universidad Central de Venezuela. Taller para Iterizers Nro 3
Escuela de Computacin - Algoritmos y Programacin Profa. Yusneyi Carballo, Mayo 2013
4. Algoritmo que obtenga la suma de los nmeros pares que hay entre dos nmeros ledos por teclado, es
decir, el usuario te va a indicar cual es el primer valor (num1), cual es el segundo valor (num2) y tu
algoritmo debe calcular y escribir cuntos nmeros pares hay entre num1 y num2 y cules son.
El algoritmo debe considerar el caso de que num1 < num2, de que num1 num2, o el caso en que num1 =
num2, y funcione sin obligar al usuario a que el primer nmero sea el menor.
Resuelva utilizando Repetir
Accin procesarPares Accin sumaPares(Entero num1, num2; Var Entero S, cont)
# suma de los nmeros pares entre dos nmeros # suma los nmeros pares entre num1 y num2
# suministrados por el usuario
Entero inc, aux;
Entero num1, num2, suma, cuenta;
inc = 1; # si num1 es menor que num2 sumamos 1 para avanzar
Si (num1 > num2) Entonces
# se solicitan los datos de entrada al usuario
inc = -1; # si num1 es mayor que num2 entonces debemos
Escribir(Suministre los dos nmeros enteros entre
# restar 1, se debe decrementar y no incrementar
los cuales se desea calcular los pares);
FSi;
Leer(num1, num2);
# inicializamos variables
sumaPares(num1, num2, suma, cuenta);
aux = num1; S = 0; cont = 0;
Escribir(La suma de los nmeros pares entre +
num1 + y + num2 + es: + suma); Repetir
Escribir(La cantidad de nmeros pares encontrados Si (aux mod 2 == 0) entonces
es: + cuenta);
S = S + aux; cont = cont + 1;
FinAccin Principal;
FSi;
aux = aux + inc; # inc suma o resta 1 segn num1 es menor o
# mayor que num2
Hasta aux == (num2+ inc); #nos detenemos en el siguiente a num2
FinAccin;
Pg. 4
Universidad Central de Venezuela. Taller para Iterizers Nro 3
Escuela de Computacin - Algoritmos y Programacin Profa. Yusneyi Carballo, Mayo 2013
n i
10 i * (k * n / x)3
x
i 1 k 1
Accin Frmula
# traduce la frmula con sumatoria y multiplicatorias a un algoritmo
Entero i, n, k, x, Suma, Multi;
Real Res1, Res2;
Pg. 5