Professional Documents
Culture Documents
/ Clave: 11214
PRACTICA 10.
Programas en DevC++
1.- Programa que imprima las tablas de multiplicar del 1 al 10, se deber hacer
una pausa entre tabla y tabla de multiplicar.
2 .- Programa que se repita N cantidad de veces el programa de Fibonacci (el
programa deber salirse cuando el usuario presione ESC
3 .- Programa que lea N cantidad de veces nmeros entre el rango de 10-200, el
programa se repetir hasta que el usuario introduzca un cero, al final imprimir la
media de los nmeros.
47
PROGRAMACION
/ Clave: 11214
TEORIA
4.2.3 ANIDACION
Un ciclo anidado es un ciclo que contiene otro ciclo. En C tenemos 3 ciclos diferentes el ciclo while, do_while y
for, estos ciclos se pueden anidar uno en otro ya sea el mismo ciclo o uno diferente. C permite 15 niveles de
anidacin, cuando se anida un ciclo dentro de otro siempre se terminan de realizar primero el ciclo que esta
ms anidado, por ejemplo en caso de que anidramos dentro de un ciclo do while a un ciclo for, el ciclo for se
terminara primero.
El ejemplo mas claro de un ciclo anidado es un reloj, donde se necesita un ciclo para las Horas, otro ciclo para
los minutos, y otro para los segundos.
SINTAXIS:
for ( ; ; )
{
for ( ; ; )
{
Sentencia;
}
}
Este es un ejemplo de ciclo anidado con for, pero se puede realizar con cualqueira de los 3 ciclos incluso
conbinando for con do while etc.
EJEMPLO:
for ( i=1; i<=10 ;i++ )
{
for (j=1 ;j<=10 ;j++ )
{
r=i*j;
printf(%d * %d= %d,i,j,r);
}
system(PAUSE);
}
i=1;
while ( i<=10 )
{
j=1;
while( j<=10 )
{
r=i*j;
printf(%d * %d= %d,i,j,r);
j++;
}
i++;
system(PAUSE);
}
i=1;
do {
j=1;
do{
r=i*j;
printf(%d * %d= %d,i,j,r);
j++;
}while( j<=10 );
i++;
system(PAUSE);
}while ( i<=10 );
En los siguientes ejemplos son 3 formas de anidar los diferentes tipos de ciclos, recordando que tambin se
pueden combinar. En esta ocasin estos ejemplos imprimen las tablas de multiplicar del 1 al 10.
48
PROGRAMACION
/ Clave: 11214
PRACTICA 11
49
PROGRAMACION
/ Clave: 11214
PRACTICA 11.
Programas en DevC++
1.- Programa que lea el nombre y edad de 20 alumnos, desplegar al final el
nombre y la edad del alumno con mayor edad y el alumno con menor edad.
2.- Programa que lea el nombre de usuario y password y si el password es igual
a 12345 desplegar password correcto si es diferente Incorrecto
3.- Programa que lea N cantidad de cadenas y desplegar la cantidad de vocales
que contiene cada frase.
50
PROGRAMACION
/ Clave: 11214
TEORIA:
5.1 Cadenas
A diferencia de otros lenguajes de programacin que emplean un tipo denominado cadena string para
manipular un conjunto de simbolos, en C, se debe simular mediante un arreglo de caracteres, en donde la
terminacin de la cadena se debe indicar con nulo. Un nulo se especifica como '\0'. Por lo anterior, cuando
se declare un arreglo de caracteres se debe considerar un carcter adicional a la cadena ms larga que se
vaya a guardar. Por ejemplo, si se quiere declarar un arreglo cadena que guarde una cadena de diez
caracteres, se har como:
char cadena[11];
char cadena[5]="hola";
char cadena[5]={'h','o','l','a','\0'};
int main()
{
char nombre[15], apellidos[30];
printf("Introduce tu nombre: ");
scanf("%s",nombre);
printf("Introduce tus apellidos: ");
scanf("%s",apellidos);
printf("Usted es %s %s\n",nombre,apellidos);
}
51
PROGRAMACION
/ Clave: 11214
int main()
{
char nombre[40], apellidos[40], completo[80];
nombre="Jos Mara";
/* Ilegal */
apellidos="Morelos y Pavn";
/* Ilegal */
completo="Gral."+nombre+appellidos; /* Ilegal */
}
Si bien las cadenas se pueden leer con la sentencia scanf no es lo mas correcto ya que al presionar la tecla
espacio se da por aceptada toda la cadena, la forma correcta en C es usar la sentencia gets, para lo que se
debe sar la librera <string.h>
LECTURA DE UNA CADENA:
SINTAXIS:
fflush(stdin);
gets (cadena);
Para usar la sentencia gets no solo se debe usar la librera <string.h> se debe anteponer la sentencia
fflush(stdin) , para limpiar el buffer de memoria y permita capturar la cadena correctamente.
EJEMPLO:
int main()
{
char nombreCompleto[60];
printf("Introduce tu nombre con apellidos: ");
fflush(stdin);
gets(nombreCompleto);
printf("Usted es %s \n",nombreCompleto);
return 0;
}
Salida de cadenas:
Para Imprimir una cadena existen 2 formas en C, una es salida sin formato y la salida formateada.
SINTAXIS:
Salidas sin formato: puts(cadena);
Salida con formato printf( %s, cadena );
52
PROGRAMACION
/ Clave: 11214
int main()
{
char nombreCompleto[60];
printf("Introduce tu nombre con apellidos: ");
fflush(stdin);
gets(nombreCompleto);
printf("Usted es %s \n",nombreCompleto); //salida formateada
puts(nombreCompleto); //salida Sin formato
return 0;
}
Todo el contenido de la cadenaOrigen se copia a la cadenaDestino, si esta ltima tuviera algn valor este se
borra.
EJEMPLO
#include <string.h>
int main()
{
char nombreCompleto[60],alumno[50];
printf("Cul es tu nombre? );
fflush(stdin);
gets(nombreCompleto);
printf("Usted es %s \n",nombreCompleto);
strcpy(alumno, nombreCompleto);
//Se asigna la cadena nombreCompleto a la cadena alumno
printf("Alumno: %s \n",alumno);
return 0;
}
53
PROGRAMACION
/ Clave: 11214
EJEMPLO
#include <string.h>
int main()
{
char password[30], rePassword[30];
int resultado;
printf(Escribe tu contrasea ");
fflush(stdin);
gets(password);
printf(Escribe tu contrasea ");
fflush(stdin);
gets(rePassword);
resultado = strcmp(password, rePassword);
if ( resultado == 0 )
printf("La contrasea es aceptada");
else
printf("La contrasea no coincide");
return 0;
}
54