Ciclos-ParaMientrasRepetir Ver2013 ConRespuestas

7
Universidad Central de Venezuela. Taller para Iterizers Nro 3 Escuela de Computación - Algoritmos y Programación Profa. Yusneyi Carballo, Mayo 2013 TAREA N° 2: EJERCICIOS CON ESTRUCTURAS ITERATIVAS ( Tema Nro. 5 ) RESPUESTAS A CONSULTAS Y EJEMPLOS DE SOLUCIÓN PARA LOS EJERCICIOS UTILIZANDO ESTRUCTURAS ITERATIVAS Y PROCEDIMIENTOS 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 pseudocódigo que resuelvan el problema mediante el secuenciamiento de acciones, validación de datos, uso de condicionales y de estructuras iterativas: 1. Escribir un algoritmo que solicite parejas de números, hasta que el usuario indique que no hay más valores para procesar. El algoritmo debe contar la cantidad de parejas procesadas y calcular para cada una la media armónica, donde: Resuelva utilizando Repetir 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 fórmula de la Media Armónica y también le debes preguntar si desea procesar otro par de valores, la respuesta del usuario la pueden guardar en una variable tipo Entero, carácter o string, si es entero por ejemplo, utilizando 0 para no y 1 para si. Ayudarse con los ejercicios vistos en clase. Acción Principal # procesa pares de números calculándoles la media armónica String detener; Entero Cont, X, Y; Real MA; Cont=0; Repetir Repetir #solicitud y validación de datos de entrada Escribir (“Suministre una pareja de números enteros X, Y para el cálculo de la media armónica, donde X + Y debe ser distinta de cero.”); Leer (X, Y); Función mediaArmónica(Entero n1, n2): Real # calcula la media armónica de los valores n1 y n2 Retornar ( (2 * n1 * n2) / (n1 + n2) ); FinFunción; Pág. 1

description

Ciclos-ParaMientrasRepetir Ver2013 ConRespuestas

Transcript of Ciclos-ParaMientrasRepetir Ver2013 ConRespuestas

UNIVERSIDAD CENTRAL DE VENEZUELA

Universidad Central de Venezuela.

Taller para Iterizers Nro 3Escuela de Computacin - Algoritmos y Programacin

Profa. Yusneyi Carballo, Mayo 2013

TAREA N 2: EJERCICIOS CON ESTRUCTURAS ITERATIVAS( Tema Nro. 5 )RESPUESTAS A CONSULTAS Y EJEMPLOS DE SOLUCIN PARA LOS EJERCICIOS UTILIZANDOESTRUCTURAS ITERATIVAS Y PROCEDIMIENTOSOBJETIVO DE LA ACTIVIDADConsolidar 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. EJERCICIOSPara 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

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.Accin Principal

# procesa pares de nmeros calculndoles la media armnica

String detener; Entero Cont, X, Y; Real MA;

Cont=0;

RepetirRepetir #solicitud y validacin de datos de entradaEscribir(Suministre una pareja de nmeros enteros X, Y para el clculo de la media armnica, donde X + Y debe ser distinta de cero.);Leer (X, Y);

Hasta (X+Y ( 0);

#se actualiza el contador, calcula y escribe la media

Cont = Cont + 1; # en este caso estoy contando slo los# pares que sirven para calcular la media armnica

MA = mediaArmnica(X, Y);

Escribir(La media armnica para el par + X + - + Y + es: + MA);

# se consulta al usuario si desea suministrar otros valores

Escribir(Desea suministrar otro par de valores para el clculo de la media armnica? Responda con si o no);

Leer (detener);

Hasta detener == si;

#se muestra el contador de pares de valores

Escribir(La cantidad de pares de valores X, Y a los que se calcularon la media armnica es: + cont);FinAccin Principal;Funcin mediaArmnica(Entero n1, n2): Real# calcula la media armnica de los valores n1 y n2

Retornar( (2 * n1 * n2) / (n1 + n2) );

FinFuncin;

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 RepetirAyuda:

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.Accin Principal

# procesa una secuencia de nmeros enteros verificando si

# cada nmero es primo o el resultado de la suma de sus

# dgitosEntero i, n, x, primo, suma;

n=100; # cantidad de nmeros procesadosPara i = 1 hasta n en 1 hacerEscribir(Suministre el nmero + i); Leer(x);

Si esPrimo(x) EntoncesEscribir(El nmero + x + es primo);

Else

Escribir(El nmero + x + no es primo y la suma de sus dgitos es: + sumaDgitos(x) );

FSi;

FPara;FinAccin Principal;Funcin esPrimo(Entero x): Lgico# verifica si el nmero x es un nmero primo, contando la

# cantidad de divisores que tieneEntero i, contDiv; contDiv=0;

# se verifica si x es igual a 0 o si X es menor que 0 por ser

# casos especiales, si es menor a 0 se transforma a positivo

Si (x==0) Entonces Retornar(Verdadero);

ElseSi (x altAnt Entonces

# si la altura actual es mayor que la anterior, entonces

# se suma la distancia ascendida o subida, que es la# resta entre ellas

Ascenso = Ascenso + (altAct - altAnt);

FSi;

Si valorAbs(altAct altAnt) > mayorCambio EntoncesmayorCambio = valorAbs(altAct altAnt);

pAnt = i - 1; pAct = i;

FSi;

i = i + 1; #actualizamos el contador de puntos i

FMientras;Escribir(El ascenso del alpinista es + Ascenso + , la mayor diferencia de altura es + mayorCambio + y se ocurri entre el punto + pAnt + y + pAct);

FinAccin Principal;Funcin valorAbs(Real x): Real# verifica si el valor x es menor que 0, en cuyo caso lo

# transforma a positivo, es la funcin valor absoluto o |x|Si( x < 0) Entonces

Retornar( -1 * x );

Sino

Retornar( x );

FSi;FinFuncin;

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 RepetirAccin procesarPares

# suma de los nmeros pares entre dos nmeros

# suministrados por el usuario

Entero num1, num2, suma, cuenta;

# se solicitan los datos de entrada al usuario

Escribir(Suministre los dos nmeros enteros entre los cuales se desea calcular los pares);

Leer(num1, num2);

sumaPares(num1, num2, suma, cuenta);

Escribir(La suma de los nmeros pares entre + num1 + y + num2 + es: + suma);

Escribir(La cantidad de nmeros pares encontrados es: + cuenta);FinAccin Principal;Accin sumaPares(Entero num1, num2; Var Entero S, cont)# suma los nmeros pares entre num1 y num2 Entero inc, aux;inc = 1; # si num1 es menor que num2 sumamos 1 para avanzar

Si (num1 > num2) Entonces inc = -1; # si num1 es mayor que num2 entonces debemos

# restar 1, se debe decrementar y no incrementar

FSi;

# inicializamos variablesaux = num1; S = 0; cont = 0;

Repetir

Si (aux mod 2 == 0) entonces S = S + aux; cont = cont + 1;

FSi;aux = aux + inc; # inc suma o resta 1 segn num1 es menor o

# mayor que num2Hasta aux == (num2+ inc); #nos detenemos en el siguiente a num2FinAccin;

5. Construya un algoritmo en donde se traduzca la siguiente expresin matemtica a pseudocdigo y se calcule su resultado. Realice las validaciones necesarias sobre los valores i, n y x. Resuelva utilizando Para

Accin Frmula

# traduce la frmula con sumatoria y multiplicatorias a un algoritmo

Entero i, n, k, x, Suma, Multi;

Real Res1, Res2;

# se solicita y valida el valor de n, el cual debe ser ( 1

Repetir

Escribir(Suministre el valor de n para la frmula);

Leer(n);

Hasta n ( 1;

# se solicita y valida el valor de x, el cual debe ser ( 0 por la divisin de la multiplicatoria Repetir

Escribir(Suministre el valor de la constante x);

Leer(x);

Hasta x ( 0;

Res1 = (10 ^ x ) ^ (1/2); # primera parte de la frmulaRes2 = n / x; # esta parte tambin es constante

# ciclos que calculan la sumatoria y la multiplicatoriaSuma = 0;

Para i = 1 hasta n hacer

# este primer ciclo es para la sumatoria

Multi = 1; # se reinicia Multi a 1 en cada ciclo de la sumatoriaPara k = 1 hasta i hacer

# este segundo ciclo es para la multiplicatoria

Multi = Multi * (k * Res2) ^ 3; #multiplicatoriaFPara;Suma = Suma + i * Multi; # sumatoria de los valoresFPara;Escribir(Resultado de la frmula: + (Res1 Suma) );

Accin Frmula;

Ciudad Universitaria de Caracas, Patrimonio Mundial07.Mayo.2013 / 19.Mayo.2013PAGE Pg. 5

_1429435238.unknown

_1429435116.unknown