Anda di halaman 1dari 24

CICLO WHILE C++

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca


como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.

Su formato general es :

cargar o inicializar variable de condición;

while(condición)

grupo cierto de instrucciones;

instrucción(es) para salir del ciclo;

};

Un error muy comun con el while, es poner un punto y coma(;) despues de la (condición)
ejemplo while(condicion); ←-esto es y causa un error.

Que calcule la media de X números, se dejarán de solicitar números hasta que se


introduzca el cero.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num=1,cont=0;
float sum=0;

while (num!=0)
{
printf("Introduzca número:");
scanf("%d",&num);
sum=sum+num;
if (num!=0)
{
cont=cont+1;
}

printf("La media es:%6.2f\n",sum/cont);

system("PAUSE");
return 0;
}

Prog.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

clrscr();

// declaracion variables

int x=1;

// instruccion while

while(x<=10)

{ gotoxy(10, x+3); printf("%d ESPE",x); x++; };

getchar();

SENTENCIA DO – WHILE
El estatuto do-while se utiliza para especificar un ciclo condicional que se ejecuta al menos
una vez. • Este ciclo se

Presenta en algunas circunstancias en las que se ha de tener la seguridad de que una


determinada acción se ejecutará una o más veces, pero al menos una vez.

Sintaxis
do
Estatuto;
While (condición );

•Si se requiere realizar más de un estatuto se deben utilizar llaves.

do
{

Bloque de estatutos;
}

while ( condición ); // nota que lleva ;

•Se realizan los estatutos y se verifica la condición, mientras sea verdadera se sigue
ejecutando;

al momento de ser falsa termina el ciclo. •Dado que la condición se revisa al final del ciclo
el (los) estatuto(s) se realizan al menos una vez a diferencia del while

Ejemplo : Validar que un número dado esté en el rango de 10 a 20.


#include <iostream.h>
int num;
void main()
{
do
{
cout << "Dame el numero " << endl;
cin >> num;
}
while ( (num <10) || (num > 20) );
cout << "Numero dentro de rango" << endl;
}
donde si la condición es falsa la primera vez no se ejecuta lo que esté dentro del cicl8o.

EJEMPLO

Codigo prog.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

clrscr();

// declaracion variables

int x;

// instruccion for

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

{ gotoxy(10, x+4); printf("%d ESPE",x); };

getchar();

}
EJERCICIOS

Mostrar los multiplos de 3 comprendidos entre los numeros 1 y 20


Código:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main ()
{
clrscr();
for (int i=1;i<=20;i++)
{
cout<<i;
if (i%3==0) cout<<" Es multiplo de 3" <<endl;
else cout<<" No es multiplo de 3"<<endl;
}
getch();
return 0;
}

hallar la sumatoria de: 2! + 4! + 6! + 8! + ...


Código:
#include <stdio.h>
#include <conio.h>
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}

int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
}
EJEMPLO 1:
Programa que imprime el valor actual de una variable en cada ciclo.
//Con la sentencia FOR:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i;
for(i=0; i<=20; i++)
printf(“Soy la variable i, mi valor en esta iteracion es: %d\n”,i);
system(“pause”);

}
——————————
//Con la sentencia WHILE:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i=0;
while(i<=20)
{
printf(“Soy la variable i, mi valor en esta iteracion es: %d\n”,i);
i++;
}
system(“pause”);
}
——————————
//Con la sentencia DO-WHILE:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i=0;
do
{
printf(“Soy la variable i, mi valor en esta iteracion es: %d\n”,i);
i++;
}
while(i<=20);
system(“pause”);
}
EJEMPLO 2:
Programa que suma los 10 primeros número enteros.
//Con la sentencia FOR:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int num;
int suma=0;
for(num=0; num<=10; num++)
{
suma = suma + num;
}
printf(“Suma = %d\n”,suma);
system(“pause”);
}
——————————
//Con la sentencia WHILE:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int num=0;
int suma=0;
while(num<=10)
{
suma = suma + num;
num++;
}
printf(“Suma = %d\n”,suma);
system(“pause”);
}
——————————
//Con la sentencia DO-WHILE:
void main()
{
int num=0;
int suma=0;
do
{
suma = suma + num;
num++;
} while(num<=10);
printf(“Suma = %d\n”,suma);
system(“pause”);
}
EJEMPLO 3:
Programa que muestra de forma descendente los números del 0 al 10.
//Con la sentencia FOR:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int numero;
for(numero=10; numero >= 0; numero–)
printf(“%d\n”,numero);
system(“pause”);
}
——————————
//Con la sentencia WHILE:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int numero=10;
while(numero >= 0)
{
printf(“%d\n”,numero);
numero–;
}
system(“pause”);
}
———————————
//Con la sentencia DO-WHILE:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int numero=10;
do
{
printf(“%d\n”,numero);
numero–;
}
while(numero >= 0);
system(“pause”);
}

Programa que lea un número entero por teclado y que calcule su factorial

#include <stdio.h>

int main(){

int x;
double fact=1;

printf("Escriba el número: ");


scanf("%i",&x);

while(x>1) fact*=x--;

printf("Factorial =%lf",fact);
}

Crear un programa que lea un número entero y a partir de él cree un cuadrado de asteriscos con
ese tamaño. Los asteriscos sólo se verán en el borde del cuadrado, no en el interior-

#include <stdio.h>

int main(){

int n,fila,col;

printf("tamaño del cuadrado: ");


scanf("%d",&n);

/*Primera fila*/
for(col=1;col<=n;col++){

printf("*");

}
printf("\n");

/*Filas interiores*/
for(fila=2;fila<n;fila++){

printf("*");

for(col=2;col<n;col++){

printf(" ");

}
printf("*");
printf("\n");

/* Última fila*/
for(col=1;col<=n;col++){

printf("*");
}

Crear un programa en el que se introduce un número entero y se crea una pirámide de


asteriscos. Por ejemplo si se introduce el 6, el resultado sería:

*
***
*****
*******
*********
***********

#include <stdio.h>

int main(){

int n,fila,col;
printf("tamaño de la piramide: ");
scanf("%d",&n);

for(fila=1;fila<=n;fila++){

/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){

printf(" ");

}
for(col=1;col<=2*fila-1;col++){

printf("*");

printf("\n");

}
Crear un programa que lea un número e indique su valor en la sucesión de Fibonacci
(llamarle Fibonacci).

Esta sucesión calcula su valor de la siguiente manera. Sólo es válido para números
positivos, si el número es un uno, la sucesión vale 1 si es dos, la sucesión vale 2. Para el
resto la sucesión es la suma de la sucesión de los dos números anteriores.

Es decir, para 7 el valor sería lo que valga la sucesión de 6 más la sucesión de cinco.

#include <stdio.h>

int main(){

int f1=1,f2=1;/*Valores anteriores*/

int n,cont;
double res=1; /* Resultado final */

do{

printf("Escriba el número: ");


scanf("%d",&n);
if(n<=0) printf("Numero no valido\n");

}while(n<=0);

for(cont=3;cont<=n;cont++){

res=f1+f2;
f1=f2;
f2=res;

printf("Resultado: %.0f",res);

Que haga un menú del tipo “desea salir (S/N)” y el programa no termine hasta que el
usuario teclee “S”.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char c;

printf("¿Desea salir (S/N)?: ");


gets(&c);

while (c!='s' && c!='S')


{
printf("Opción incorrecta\n");
printf("¿Desea salir (S/N)?: ");
gets(&c);
}

system("PAUSE");
return 0;
}

Que calcule el factorial de un número cualquiera y lo muestre en pantalla.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int num, num2;

printf("Introduce número: ");


scanf("%d",&num);
num2=num;

while (num2!=1){
num2=num2-1;
num=num*num2;
}

printf("El factorial es: %d \n", num);

system("PAUSE");
return 0;
}
INSTRUCCION SWITCH C++

También existen ocasiones o programas donde se exige evaluar muchas condiciones a la


vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar
convertir el problema a uno que se pueda resolver usando la instrucción switch();

La instrucción switch() es una instrucción de decisión múltiple, donde el compilador prueba


o busca el valor contenido en una variable contra una lista de constantes ints o chars,
cuando el computador encuentra el valor de igualdad entre variable y constante, entonces
ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de
igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a
un default, aunque este ultimo es opcional.

El formato de esta instrucción es el siguiente;

capturar o asignar variable de condición;

switch(var int o char)

case const1: instrucción(es);

break;

case const2: instrucción(es);

break;

case const3: instrucción(es);

break; ………………

default: instrucción(es);

};
Switch

#include <stdio.h>
#include <conio.h>
int main ()
{

int a,b,menu,resultado;
printf("Ingrese dos n\xa3meros: \n");
scanf("%i",&a);
scanf("%i",&b);
printf("\n*******Calculadora 1.0*******\n");
printf("1-Suma\n");
printf("2-Resta\n");
printf("3-Divisi\xa2n\n");
printf("4-Multiplicaci\xa2n\n");
printf("*************Operaci\xa2n*****...
scanf("%i",&menu);
switch(menu)
{
case 1: resultado=a+b; break;
case 2: resultado=a-b; break;
case 3: resultado=a/b; break;
case 4: resultado=a*b; break;
}
printf("\nOperaci\xa2n: \n>%i",resultado);
getch();
return 0;
}

randomico

#include <iostream>

#include <cstdlib> //tiene la definicion de la funcion RAND (random)

using namespace std;

int main ()

int cantidad;

cout << "Cuantos números quiere generar?" << endl;

cin >> cantidad;


for (int contador =1 ; contador <= cantidad ; contador++)

cout << (1 + rand() % 10); //mostramos por pantalla los numeros generados del 1 al 20

cout << endl; //salto de linea para separlos

return 0 ;

} //fin de main.

Potencia
#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int c, auxc,pot;

system("cls");

printf("Ingrese un número:");

scanf("%d",&c);

printf("Ingrese a qué potencia desea elevar el número:");

scanf("%d",&pot);

auxc=pow(c,pot);

printf("%d elevado a %d es %d:",c,pot,auxc);

getch();

return 0;

Goto
#include <stdio.h>

#include<stdlib.h>

#include<windows.h>

using namespace std;

void gotoxy(short x, short y) {

COORD pos = {x, y};

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);

int main()

system("cls");

gotoxy(20,10);

printf ("estoy aqui\n");

system("PAUSE");

return 0;

Que imprima la suma de todos los números impares que van del 1 al 100 y diga cuántos
hay.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,sum,cont;
sum=0;
cont=0;

for (x=1;x<=100;x++)
{
if (x%2!=0)
{
sum=sum+x;
cont=cont+1;
}
}

printf("Hay %d números\n",cont);
printf("La suma es: %d\n",sum);

system("PAUSE");
return 0;
}

Que pida dos números y muestre todos los números que van desde el primero al segundo.
Se debe controlar que los valores son correctos.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1, num2,x;

printf("Introduzca primer número:");


scanf("%d",&num1);
printf("Introduzca segundo número:");
scanf("%d",&num2);

if (num1>num2)
{
printf("Los valores introducidos no son correctos \n");
}
else
{
for (x=num1;x<=num2;x++)
{
printf("%d\n",x);
}
}

system("PAUSE");
return 0;
}

Crear el programa asteriscos4 en el que se introduce un número entero y se crea una pirámide de
asteriscos. Por ejemplo si se introduce el 6, el resultado sería:

#include <stdio.h>

int main(){

int n,fila,col;

printf("tamaño de la piramide: ");

scanf("%d",&n);

for(fila=1;fila<=n;fila++){

/* Espacios en blanco*/

for(col=1;col<=n-fila;col++){

printf(" ");

for(col=1;col<=2*fila-1;col++){

printf("*");

printf("\n");

}
}