Ejercicios de Programación con la estructura para

Anuncio
Laboratorio 03: Ejercicios de Programación con la
estructura para (for)
Solicitado: Ejercicios 03: Ejercicios con for y la función gotoxy()
1
M. en C. Edgardo Adrián Franco Martínez
http://www.eafranco.com
edfrancom@ipn.mx
@edfrancom
edgardoadrianfrancom
Estructuras de datos (Prof. Edgardo A. Franco)
• Sentencia for
• Ejemplos con for
• Mover el cursor gotoxy()
• Simulación de gotoxy()
• Ejercicios 03 “Ejercicios con for y la función
gotoxy()”
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Contenido
2
• C proporciona una estructura repetitiva o iterativa que
facilita la programación de (ciclos o bucles) si de antemano
se conoce a priori la cantidad de repeticiones que se
realizarán.
• La estructura for permite definir un bucle controlado por un
contador, denominado variable de control o de inducción.
for(i=0,n=10000;i<n;i++)
i←x
{
i≤n
}
no
si
instrucciones
i ← i+1
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Sentencia for
3
Iterativa "para"
i←x
si
i≤n
no
instrucciones
i ← i+1
Diagrama de flujo
for(i=x;i<=n;i++)
{
instrucciones;
}
Pseudocódigo
Código en C
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Sentencia for
4
• El encabezado de un bucle for tiene tres partes separadas
por ";". En la primera se inicializan las variable de control y
sólo se ejecuta una vez, antes de la primera iteración, la
segunda es una expresión que indica la condición lógica
que debe cumplirse para que la próxima iteración se
ejecute; esta condición se evaluá antes de cada iteración y,
cuando deja de satisfacerse, el bucle for termina. La
tercera parte del encabezado es la actualización de las
variables de control y se ejecuta después de cada
iteración.
1 . ; 2. .5 .;. 4. .)
7
for(. .
{
3
6
sentencias;
}
n
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Sentencia for
5
Ejemplo 1: "ej1.c"
#include<stdio.h>
int main(void)
{
int i,n;
for(i=100;i>=0;i--)
{
printf("\t%d",i);
}
return 0;
}
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejemplos con for
6
#include<stdio.h>
int main(void)
{
int i,n;
for(i=0,n=10000;i<n;i++,n=n-i)
{
printf("\t%3d",i);
}
printf("\nn=%3d",n);
return 0;
}
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejemplo 2: "ej2.c"
7
#include<stdio.h>
int main(void)
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=0;j<i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejemplo 3: "ej3.c"
8
#include <stdio.h>
int main(void)
{
unsigned long anterior,actual,aux;
int i;
anterior = 0;
actual = 1;
printf("Introduce la cantidad de elementos a mostrar a
partir del 0, 1, de la serie de fibonacci: ");
for(scanf("%d",&i);i>0;i--)
{
aux=anterior+actual;
printf("%lu, ",aux);
anterior=actual;
actual=aux;
};
printf("\b\b.");
return 0;
};
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejemplo 4: Serie de fibonacci "ej4.c"
9
• La función gotoxy (int columna, int fila) es una función
declarada en el encabezado <conio.h>, la cual viene en los
compiladores de la línea de Turbo C (y también Borland C++)
de la compañía Borland.
#include<stdio.h>
Código funcional en Turbo C
#include<dos.h>
y Borland C "dos.h: Uso de
#include<conio.h>
delay() & conio.h: uso de
int main(void)
{
gotoxy()"
int fila,columna;
for(columna=0;columna<80;columna++)
{
for(fila=0;fila<20;fila++)
{
gotoxy(columna,fila);
printf("*");
delay(500);
};
};
return 0;
}
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Mover el cursor con gotoxy
10
• En el compilador MinGW incluye <conio.h>, pero no
contiene todas las funciones de Borland como la de gotoxy.
• Windows ofrece un conjunto de funciones para manejar la
consola, entre las cuales está una equivalente a gotoxy,
pero para poder usar estas funciones se tiene que verificar
si el compilador puede usarlas. Si el compilador incluye el
archivo de libreria windows.h en el directorio include.
(MinGW lo incluye).
• La función es SetConsoleCursorPosition (HANDLE
hConsoleOutput, COORD coord), pero su uso no es
inmediato como la función gotoxy.
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
• Si se usa otro compilador se debe de buscar una función
equivalente.
11
• Ejemplo sencillo que mueve el cursor a la posición (10, 10)
(aquí tienes que tomar en cuenta de que el origen es (1,1),
mientras que con la otra función comienza en (0, 0)).
#include<windows.h>
#include<stdio.h>
int main (void)
{
HANDLE hConsoleOutput;
COORD coord;
hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
coord.X = 5; coord.Y = 5;
SetConsoleCursorPosition (hConsoleOutput, coord);
printf("Hola desde la coordenada %d, %d",coord.X,coord.Y);
coord.X = 10; coord.Y = 10;
SetConsoleCursorPosition (hConsoleOutput, coord);
printf("Hola desde la coordenada %d, %d",coord.X,coord.Y);
return 0;
}
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Simulación de gotoxy
12
#include<stdio.h>
#include<windows.h>
void gotoxy( int x, int y );
int main(void)
{
int fila,columna;
for(columna=0;columna<80;columna++)
{
for(fila=0;fila<20;fila++)
{
gotoxy(columna,fila);
printf("*");
Sleep(5);
};
};
return 0;
}
void gotoxy( int x, int y )
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = { x, y };
SetConsoleCursorPosition( hStdout, position );
};
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
• Programa que simula la función gotoxy() de borland.
"gotoxy.c"
13
80 columnas
24 filas
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Observaciones
• Considerar que generalmente (según configuración
de la consola) el tamaño de la consola es de 80
columnas x 24 filas. (Si se excede el número de
columnas o filas simplemente se obtendrán
resultados no deseados)
14
• Ejercicio 1: Realizar un programa que dibuje un marco en
la pantalla.
#include<stdio.h>
#include<windows.h>
void gotoxy(int x, int y );
int main(void)
{
int fila,columna;
system("cls");
//Llamada al sistema para limpiar la pantalla (Solo funciona en Windows)
fila=0;
for(columna=0;columna<80;columna++)
{
gotoxy(columna,fila);
printf("*");
};
columna=79;
for(fila=0;fila<24;fila++)
{
gotoxy(columna,fila);
printf("*");
};
fila=23;
for(columna=0;columna<80;columna++)
{
gotoxy(columna,fila);
printf("*");
};
columna=0;
for(fila=0;fila<24;fila++)
{
gotoxy(columna,fila);
printf("*");
};
return 0;
}
void gotoxy(int x, int y )
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = { x, y };
SetConsoleCursorPosition( hStdout, position );
};
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejercicios con for y la función gotoxy
15
(De exterior a centro)
Algoritmia y programación estructurada
Laboratorio 04: Ejercicios de programación con la sentencia for
Ejercicios con for y gotoxy()(Tarea 05)
• Ejercicio 02: Realice un programa que
imprima la siguiente figura poco a poco
hasta llegar al centro de la pantalla.
Rectángulos concéntricos
16
Algoritmia y programación estructurada
Laboratorio 04: Ejercicios de programación con la sentencia for
Ejercicios con for y gotoxy()(Tarea 05)
• Ejercicio 03: Modifique el ejercicio 02 y haga
que al llegar al centro el programa regrese
borrando los rectángulos concéntricos
dibujados.
17
• Realizar cada uno de los ejercicios anteriores mediante el uso de la
estructura for en lenguaje C.
• Observaciones
1. Reportar el texto del ejercicio y el código en C (con colores) y las pruebas
de sus programas.
2. Incluir al reporte las capturas de pantalla
3. El reporte es individual y tiene portada, índice y encabezados de pagina
con número de pagina , titulo y nombre del alumno.
4. Enviar vía Web en un archivo comprimido (ZIP, RAR o TAR), reporte y
códigos de C de cada problema.
*Se entregará antes del día Domingo 17 de Abril de 2016 (23:59:59 hora
limite).
Grupo
Contraseña
1CV8
algoritmia1cv8
Algoritmia y programación estructurada
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Prof. Edgardo Adrián Franco Martínez
Ejercicios 02: Ejercicios con for y la función gotoxy
18
Descargar