CI-2125 Computación I Práctica 4: Iteraciones. Nota: Recuerde que

Transcripción

CI-2125 Computación I Práctica 4: Iteraciones. Nota: Recuerde que
CI-2125 Computación I
Práctica 4: Iteraciones.
Nota: Recuerde que en las prácticas se deben realizar las preguntas teóricas y desarrollar la
mayor cantidad de diagramas de flujo, para que puedan realizar los laboratorios más rápido y
completos. Se Recomienda que adelanten los códigos por su cuenta para que los errores y las
dudas sean corregidas de manera fácil en los laboratorios.
1. Suponga que inicialmente un estudiante cambia X barajitas en un día. Cada día siguiente cambia
una barajita más que el día anterior. Proponga un algoritmo iterativo que determine cuántas
barajitas cambiará en N días. Escriba el programa en C.
2. ¿Qué pasaría en el programa anterior si la condición del for fuese i ≠N y N no fuese un entero?
3. Escriba un algoritmo iterativo para determinar si un número entero positivo es primo. Implemente
dicho algoritmo en C utilizando las instrucciones while, for y do-while.
4. Determine la función f(x) computada por el siguiente algoritmo y realice la corrida en frío para f(7)
ENTRADA: X (entero positivo)
SALIDA : ?
INICIO
LEER X
sum←0
i←1
MIENTRAS i<X HACER
i←i+1
SI resto(i,2) = 0 ENTONCES // resto de dividir i entre 2
sum←sum+i
FINSI
FINMIENTRAS
IMPRIMIR sum
FIN
Parte de laboratorio, recuerde adelantar los diagramas de flujo.
5. Escriba un algoritmo para determinar el Máximo Común Divisor entre dos números enteros usando
la siguiente definición:
MCD(a,a)=a
MCD(a,b)=MCD(b,a)
MCD(a,b)=MCD((a-b),b) si a>b
Escriba el programa en C equivalente al algoritmo dado.
6. La serie de Fibonacci se define de la siguiente manera an = an-1 + an-2. Con a0=0 y a1=1. Elabore un
programa que determine el término ax de la serie.
7. Explique lo que hace este programa. Diga cuál es la función de la instrucción break en el caso de
este programa.
#include <stdio.h>
int main() {
int opc;
printf("1. Derivadas\n");
printf("2. Limites\n");
printf("3. Integrales\n");
do {
printf(" Teclear una opcion: ");
scanf("%d", &opc);
switch(opc) {
case 1:
printf("\tOpcion 1 seleccionada\n\n");
break;
case 2:
printf("\tOpcion 2 seleccionada\n\n");
break;
case 3:
printf("\tOpcion 3 seleccionada\n\n");
break;
default:
printf("\tOpcion no disponible\n\n");
break;
}
} while( opc != 1 && opc != 2 && opc != 3);
return 0;
}
8. Haga la corrida en frío de los siguientes programas y explique su funcionamiento
#include <stdio.h>
int main(){
int num;
num = 1;
while (num <= 10) {
if (num == 5) {
break;
}
printf(“%d - ”, num);
num = num + 1;
}
return 0;
}
#include <stdio.h>
int main(){
int num;
num = 0;
while (num <= 7) {
num = num + 1;
if (num == 5) {
continue;
}
printf(“%d - ”, num);
}
return 0;
}
Parte de Laboratorio: Recuerden adelantar todos los diagramas de flujo de la práctica en clase.
9. Dado el siguiente programa en C, escriba uno equivalente que no haga uso de la instrucción
“continue”.
#include <stdio.h>
int main()
{
int n, a;
a = 0;
do
{
printf( "Introduzca un numero entero: " );
scanf( "%d", &n );
if ( n == 0 )
{
printf( "ERROR: El cero no tiene opuesto.\n" );
continue;
// en caso que n sea cero, la iteración en curso se interrumpe
}
printf( "El opuesto es: %d\n", -n );
a += n;
} while ( n >= -10 && n <= 10 );
printf( "Suma: %d", a );
return 0;
}
10. Dado el siguiente programa en C: Explique su funcionamiento. Luego escriba uno equivalente que
no haga uso de la instrucción “continue” ni la instrucción “break”.
#include <stdio.h>
int main() {
int n;
do {
printf(" \nEnter the number :");
scanf("%d", &n);
if (n < 0) {
break;
}
if (n >10) {
printf("Skip the value\n");
continue;
}
printf("The number is: %d", n);
} while (n!= 0);
}

Documentos relacionados