Вы находитесь на странице: 1из 28

Instituto Politcnico Nacional

ESIME Culhuacn

Materia: Fundamentos de programacin

Profesor: Arturo De la Cruz Tllez

Carrera: Ingeniera en computacin

Trabajo: Estructura de control (Switch case) y Ciclos

Grupo:1CV25

Alumno: Del Toro Guardado Yahir


ndice
Investigacin de los temas.....3

Switch Case..4

Mapa conceptual switch case8

Ciclo While....9

Mapa conceptual while...11

Ciclo do While..12

Mapa conceptual do while.14

Ciclo For...15

Mapa conceptual For..19

Ejercicios del Libro.20

Ejercicios de la clase.47

Ejercicios Switch (Case).48

Ejercicios While..69

Ejercicios For.74
Cuestionario
1. Qu es un ciclo de repeticin?
R=Son una estructura de control esencial al momento de programar. Un ciclo permite repetir una o
varias instrucciones cuantas veces lo necesitemos, permitindonos hacer una misma tarea en una
cantidad de lneas muy pequea y de forma prcticamente automtica.

2. Qu es un ciclo definido?
R=Cuando se conoce o se le da, el, inicio y el fin de este mismo

3. Qu es un ciclo indefinido?
R=Cuando no se le da un rango al ciclo para ejecutarse

4. Qu estructuras de control, hay para la repeticin en la programacin estructurada?


R=while, do-while, for y for anidados

5. para que se usa un contador?


R=Para incrementar o disminuir un valor, por si solo o al cumplir una condicin

6. Para qu se utiliza un acumulador?


R=Permite sumar o acumular mediante otra operacin una serie de nmeros

7. Cundo se hace un ciclo infinito?


R=Cuando no se defienden bien el ciclo o no haya o se cumpla una salida de este

8. En qu caso se recomienda usar while y cuando do-while?


R=Cuando se desee hacer un ciclo indefinido

9. Qu sucede si al final de for se escribe punto y coma?


R=Se terminara el proceso y no seguira con las instrucciones de este

10. Qu sucede si al final de while se escribe punto y coma?


R= Se terminara el proceso y no seguira con las instrucciones de este

11. Qu sucede si al final de do-while se escribe punto y coma?


R=Se cumple el proceso, ya que primero se hacen las instrucciones y luego se cierra

II Resuelva el siguiente ejercicio

1. Realice con un smbolo una espiral, iniciando en el centro del monitor, y hasta que se llene ste, se
debe controlar el ancho y alto de cada vuelta, as como el tamao mximo a cubrir en el monitor

#include <conio.h>

#include <stdio.h>

#include <windows.h>

using namespace std;

int col,reng;

void gotoxy(int x, int y)

{
HANDLE hCon;

hCon=GetStdHandle(STD_OUTPUT_HANDLE);

COORD dwPos;

dwPos.X=x;

dwPos.Y=y;

SetConsoleCursorPosition(hCon,dwPos);

int main()

int F=1,C=1,cont=-1,a=1,b=115,c=2,d=29,e=3;

system("cls");

do{

for(F=a;F<=b;F++){

gotoxy(F,a);

Sleep(0);

printf("*");

for(F=b,C=c;C<=d;C++){

gotoxy(b,C);

Sleep(0);

printf("*");

for(C=d,F=b;F>c;F--){

gotoxy(F,d);

Sleep(0);

printf("*");

for(C=d,F=c;C>=e;C--){

gotoxy(c,C);

Sleep(0);

printf("*");

a+=2;
b-=2;

c+=2;

d-=2;

e+=2;

cont++;

}while(cont<=6);

gotoxy (0,30) ;

getch();

return 0;

Ejercicios Propuestos
I. Codifique los siguientes programas
1. Imprimir los nmeros del 1 al 100

#include <stdio.h>

#define p printf

#define s scanf

main()

int i;

p ("\t\t\tPrograma que imprime los nmeros del 1 al 100\n\n");

for (i=1;i<=100;i++)

p("%d\n",i);

2. Imprimir la serie de 0 1 1 2 3 5 8.n (inicia con 0 1, y el siguiente nmero es la suma


de los dos anteriores) hasta un lmite definido por el usuario

#include <stdio.h>

#define p printf

#define s scanf

int serie(int n)

if (n<2)
return n;

else

return serie(n-1) + serie(n-2);

int main()

int num=0,res=0;

p("\t\tPrograma que imprime una serie donde el numero que siga sea la suma de los dos
anteriores\n\n");

p("Introduce el limite de numeros: ");

s("%i",&num);

p("\n\t");

for(int i=0;i<=num-1;i++)

res = serie(i);

printf("%i ", res);

return 0;

3. Realizar una divisin y repetir la operacin hasta que uno de los dos nmeros sea 0

#include <stdio.h>

#include <conio.h>

#define p printf

#define s scanf

main()

float di=0, div=0, res;

do

p("\n\nDame el numero a dividir: ");

s("%f",&di);

p("\nDame el numero por el cual dividir: ");

s("%f",&div);
res=di/div;

p("\nEl resultado de la opreacion es: %.2f" , res);

}while ((di!=0)&&(div!=0));

getch();

return 0;

4. Imprimir lod colores usando los nmeros del 1 al 100 con la funcin textcolor ().

#include <stdio.h>

#include <conio.h>

#define p printf

#define s scanf

main()

float di=0, div=0, res;

do

p("\n\nDame el numero a dividir: ");

s("%f",&di);

p("\nDame el numero por el cual dividir: ");

s("%f",&div);

res=di/div;

p("\nEl resultado de la opreacion es: %.2f" , res);

}while ((di!=0)&&(div!=0));

getch();

return 0;

5. Mostrar un * rebotando por la pantalla hasta presionar una tecla.

#include<stdio.h>

#include<conio.h>

#include <windows.h>

#define p printf

#define EJEX 115

#define EJEY 29
void gotoxy(int x, int y)

HANDLE hcon= GetStdHandle (STD_OUTPUT_HANDLE);

COORD dwPos;

dwPos.X=x;

dwPos.Y=y;

SetConsoleCursorPosition (hcon,dwPos);

int main()

char o=4, tecla;

int x=0, y=0;

bool xmas=1, ymas=1;

do

if (x<EJEX && xmas==1)

x+=1;

else

xmas=0;

if (x>0 && xmas==0)

x-=1;

else

xmas=1;

if (y<EJEY && ymas==1)

y+=1;

else

ymas=0;

if (y>0 && ymas==0)

y-=1;

else

ymas=1;

system ("cls");

gotoxy(x,y); p("*");
}while(1);

getch();

return 0;

6. Mostrar la suma de los nmeros entre 10 y 125

#include <stdio.h>

#define p printf

#define s scanf

main()

int i, sum=0, res=0;

p("\t\t\tPrograma para sumar lo nmeros entra 10 y 125\n\n");

for (i=10;i<=125;i++)

res= sum+=i;

p("la suma de %d + %d es = a %d \n",sum,i+1, sum+i+1);

7. Escribe la sume de la serie + 1/3 + +.+ 1/20

#include <iostream>

#include <conio.h>

#include <stdio.h>

#define p printf

#define s scanf

main()

int i;

float sum=0;

for (i=2;i<=20;i++)

sum+=1.0/i;

p("EL RESULTADO ES:%f", sum);

getch();

}
8. Escribir un programa que muestre el mayor de una serie de nmeros introducidos
por el teclado

#include <stdio.h>

int main()

int N1=1, May=0, Men=9999999;

while (N1 != 0)

printf("Inserta un numero: ");

scanf("%d", &N1);

if (N1==0)

break;

else

if (N1 > May)

May=N1;

printf("El numero mayor es %d", May);

9. Calcular la suma de una serie de nmeros ledos por el usuario

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int sum, i, ini, lim;

p("\t\t\tPrograma para sumar los nmeros entre una serie dada por el usuario\n\n");
p("Dame el inicio para la serie: ");

s("%d",&ini);

p("Dame el lmite para la serie: ");

s("%d",&lim);

sum=0;

for (i=ini;i<=lim;i++)

sum+=i;

p("%d\n",sum);

10. Escribir un programa que muestre el mayor, el menor y la media de una serie de
nmeros introducidos por el teclado

#include <stdio.h>

int main()

int N1=1, May=0, Men=9999999;

while (N1 != 0)

printf("Inserta un numero: ");

scanf("%d", &N1);

if (N1==0)

break;

else

if (N1 > May)

May=N1;

printf("El numero mayor es %d", May);

}
11. Mostrar el resultado de sumar los nmeros pares e impares que hay entre 10 y 125

#include <stdio.h>

#include <locale.h>

#include <conio.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int numero, pares =0, impares =0, i, j;

p("\t\tPrograma que imprime el resultado de la suma de los pares e impares que hay entre 10 y
125\n\n");

for (i=10;i<=125;i++)

if ( i % 2 == 0 )

pares += i;

p("\nLa suma de los pares es: %d\n", pares );

p("\t");

for (j=10;j<=125;j++)

if ( j % 2 != 0 )

impares += j;

p("\nLa suma de los de los impares es: %d\n", impares );

getch();

return 0;

}
12. Mostrar la suma de 10 nmeros enteros consecutivos

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int sum, i, ini, lim;

p("\t\t\tPrograma para sumar 10 nmeros consecutivos\n\n");

p("Dame el nmero de inicio: ");

s("%d",&ini);

sum=0;

for (i=ini;i<=ini+10;i++)

sum+=i;

p("La suma de %d + %d es = %d\n",sum, i+1, sum+ (i+1));

13. Imprimir un rango de nmeros enteros solicitando el inicio y fin de los valores

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int sum, i, ini, lim;

p("\t\tPrograma que imprime el rango de nmeros solicitando el inicio y fin de la serie\n\n ");

p("Dame el inicio para la serie: ");

s("%d",&ini);

p("Dame el lmite para la serie: ");


s("%d",&lim);

sum=0;

for (i=ini;i<=lim;i++)

p("%d\n",i);

14. Mostrar el cuadrado de los primeros cinco nmeros naturales

#include <stdio.h>

#include <locale.h>

#include <math.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int res, i;

p("\t\t\tPrograma para determinar el cuadrado de los 5 nmeros naturales\n\n");

for (i=1;i<=5;i++)

res= pow(i,2);

p("%d\n",res);

15. Mostrar los nmeros primos entre el 1 y el 125

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int n=0,i,j ,res=0,nc=0;


p("\t\t\tPrograma que imprime los nmeros primos compredidos entre el 1 y el 125\n\n");

for(i=1;i<=125;i++)

for(j=1;j<=i;j++)

res=i%j;

if(res==0)

nc=nc+1;

if(nc==2)

p("%d\n",i);

nc=0;

16. Imprimir todos los nmeros inferiores a uno introducido por el teclado

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int num, i;

p("\t\tPrograma que imprime los nmeros inferiores al nmero introducido por el usuario\n\n");

p("introduce un nmero: ");

s("%d", &num);

for (i=num-1;i>=0;i--)

p("%d\n",i); }
}

17. Imprimir en pantalla los mltiplos de 5 que hay entre 1 y 100

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int num1=1, num2=1000, cont, i;

p("\t\t\tPrograma pque imprime los mliplos de 5 que hay entre 1 y 1000\n\n");

num1++;

while(num1<=num2)

if(num1%5 == 0)

p("\n%d",num1);

cont++;

num1++;

18. Multiplicar entre si los nmeros entre 1 y 10 mostrando el resultado

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int mult, i;

mult = 1;

p("\t\t\tPrograma para multiplicar los nmeros entre 1 y 10");


for (i=1;i<=10;i++)

mult *= i;

p("\n\nEl resultado de la multiplicacin es: %d\n",mult);

19. Imprimir la factorial de los nmeros comprendidos entre el 2 y el 15

#include <stdio.h>

#include <stdlib.h>

#define p printf

#define s scanf

main()

int fac, fact=1, j;

p("\t\tPrograma que imprime el factorial de los nmeros comprendidos entre el 2 y el 15\n\n");

for (j = 2; j <= 15; j++)

fac = fact*=j;

p("Factorial de %d es = %d\n",j,fac);

system("pause");

20. Imprimir un tringulo issceles

#include <conio.h>

#include <stdio.h>

#include <windows.h>

#define p printf

using namespace std;

int col,reng;

void gotoxy(int x, int y){//inicia funcion

HANDLE hCon;

hCon=GetStdHandle(STD_OUTPUT_HANDLE);

COORD dwPos;
dwPos.X=x;

dwPos.Y=y;

SetConsoleCursorPosition(hCon,dwPos);

main()

int i,j,n=11;

for(i=0;i<n;i++)

for(j=i;j<n;j++)

gotoxy(10+j,10-i);

p("*");

n--;

p("\n\n\n\n\n\n\n");

getch ();

21. Imprimir los mltiplos de un nmero entre 1 y 10, menores que 125

#include <stdio.h>

#include <locale.h>

#define p printf

#define s scanf

main()

setlocale(LC_CTYPE,"Spanish");

int numero, i;

p( "\t\t\tPrograma para conocere el mltiplo de entre el 1 y 10 menores a 125\n\n");

p( "Introduzca un nmero entre el 1 y 10 para conocer sus mltiplos: ");

s( "%d", &numero );

for (i=1;i<125;i++)

{
if (i%numero==0)

p("%d\n",i);

II. Complete las lneas en blanco


1. Sumar los 100 primeros nmeros enteros positivos

#include <stdio.h>

#include <conio.h>

main ()

int suma, contador;

suma=0;

system (cls);

for (contador=1; contador<=100; contador++)

suma=suma+contador;

printf ("La suma es: %d", suma);

2. Elevar X a una potencia Y

#include <stdio.h>

#include <conio.h>

main ()

int cont, x, y, res;

res=1;

system ("cls");

printf("Escriba el No. que elevara a una potencia: ");

scanf("%d",&x);

printf("a que potencia elevara el numero %d: ",x);

scanf("%d",&y);

for(cont=1; cont<=y; cont++)

res=res*x;
printf("El %d elevado a la potencia %d: %d", x, y, res);

3. Calcular la factorial de un nmero

#include <stdio.h>

#include <conio.h>

main ()

int cont, x;

long fact;

clrscr();

printf("escriba el numero que desea saber su factorial: ");

scanf("%d",&x);

fact=1;

for(cont=1; cont<=x; cont++)

fact=cont*fact;

printf("El factorial de %d = %d", x, fact);

4. Imprimir los nmeros del 100 al 0

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main ()

int c;

system ("cls");

c=100;

while(c>=0)

printf("%d ",c);

c--;

getch();

return 0;
}

5. Imprimir nmeros impares hasta el 100 y cuantos hay

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main ()

int c, suma;

c=1;

suma=0;

system ("cls");

while(c<=100)

suma=suma+c;

c=c+1;

printf("La suma de los primeros cien numeroes es %d ", suma);

getch();

return 0;

6. Imprimir los nmeros impares hasta el 100 e imprimir cuntos impares hay

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main ()

int i, c, son;

system ("cls");

c=1;

son=0;

while(c<100)

if(c%2!=0)
{

printf("\n%d",c);

son=son+1;

c=c+1;

printf("\nEl numero de impares es %d ", son);

getch();

return 0;

7. Imprimir los nmeros del 1 al 125. Calcular la suma de todos los nmeros pares por
un lado y, por otro, la de los impares.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main ()

int i, sumapar, sumaimpar;

system ("cls");

sumapar=0;

sumaimpar=0;

i=1;

do

if(i%2==0)

sumapar=sumapar+i;

else

sumaimpar=sumaimpar+i;

i=i+1;

}while(i<=152);

printf("\nLa suma de los numeros pares es %d ",sumapar);

printf("\nLa suma de los numeros impares es %d ",sumaimpar);

getch();
return 0;

III. Describa lo que imprime cada programa

1.
#include <stdio.h>

#include <conio.h>

#include <windows.h>

char col,reng;

void gotoxy(int x,int y)

HANDLE hcon;

hcon = GetStdHandle(STD_OUTPUT_HANDLE);

COORD dwPos;

dwPos.X = x;

dwPos.Y= y;

SetConsoleCursorPosition(hcon,dwPos);

main()

float d,n;

int c=0;

printf("Numero de digitos de una cifra\n\n");

gotoxy(10,2);printf("Numeros de digitos de una cifra");

gotoxy(10,4);printf("Dame una cifra ");

scanf("%f",& n);

do

d=n/10;

n=n/10;

c++;

while(d>=1);
gotoxy(10,6);printf("El numero de cifras es %d",c);

getch();

return 0;

Descripcin: Este programa imprime el nmero de cifras del nmero que introdujo el
usuario.

2.
#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main()

int num, r;

printf("mostrar el cuadro del numero leido del teclado\n\n");

printf("se detiene con -1 \n\n");

do

printf("\n deme un numero: ");

scanf("%d",&num);

printf("%d",num*num);

while (num!=-1);

getch();

return 0;

Descripcin: Este programa imprime el cuadrado del nmero introducido por el usuario

3.
#include <dos.h>

#include <windows.h>

void gotoxy(int x, int y)

HANDLE hcon= GetStdHandle (STD_OUTPUT_HANDLE);


COORD dwPos;

dwPos.X=x;

dwPos.Y=y;

SetConsoleCursorPosition (hcon,dwPos);

main()

int hr,m,s;

printf("simular un reloj digital");

m=0;

s=0;

hr=0;

for(s=0;s<=60;s++)

if(s==60)

m++;

s=0;

if(m==60)

hr++;

m=0;

if(hr==24)

s=0;

m=0;

hr=0;

gotoxy(15,10);

printf("%d:%d:%d\a",hr,m,s);

Sleep (1000);
}

getch();

return 0;

Descripcin: Este programa simula un reloj digital

4.
#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <windows.h>

void gotoxy(int x, int y)

HANDLE hcon= GetStdHandle (STD_OUTPUT_HANDLE);

COORD dwPos;

dwPos.X=x;

dwPos.Y=y;

SetConsoleCursorPosition (hcon,dwPos);

main()

int c,n,r,x=20;

system("cls");

printf("convertir un numero de base 10 a base 2\n\n");

printf("dame un numero: ");

scanf("%d",&n);

do

c=n/2;

r=n%2;

gotoxy(x,5);

p("%d",r);

n=c;
x--;

while(c>=1);

getch();

return 0;

Descripcin: Este programa transforma los nmeros de base 10 en binarios

5.
#include <stdio.h>

#include <conio.h>

main()

char y='b',x;

while(y<='i')

x=y+3;

printf("%c\n",x);

y=y+1;

getch();

return 0;

Descripcin: Este programa imprime un rango de letras, de la e a la l

6.
#include <stdio.h>

#include <conio.h>

main()

int y=1,x;

while(y<=10)

x=y*y;
printf("%d\n",x);

y=y+2;

getch();

return 0;

Descripcin: Este programa imprime el cuadrado de un nmero usando la regla n+2

7.
#include <stdio.h>

#include <conio.h>

main()

int num=10;

while(num!=1)

if(num%2==0)

num=num/2;

else num=num*3+1;

printf("%d\n",num);

getch();

return 0;

Descripcin: Este programa empieza en uno y si su residuo de la divisin entre 2 es 0,


se divide entre dos, de lo contrario se multiplica entre 3 y se le suma 1, el programa
termina cuando el resultado sea 1

Вам также может понравиться