laboratorio 03: ejercicios de programación con la ... · ejercicios 02: ejercicios con fory la...
Post on 09-May-2020
26 Views
Preview:
TRANSCRIPT
Estructuras de datos (Prof. Edgardo A. Franco)
1M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.comedfrancom@ipn.mx
@edfrancom edgardoadrianfrancom
Laboratorio 03: Ejercicios de Programación con la estructura para (for)
Solicitado: Ejercicios 03: Ejercicios con fory la función gotoxy()
Contenido• Sentencia for
• Ejemplos con for
• Mover el cursor gotoxy()
• Simulación de gotoxy()
• Ejercicios 03 “Ejercicios con for y la función gotoxy()”
2
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Sentencia for• C proporciona una estructura repetitiva o iterativa que
facilita la programación de (ciclos o bucles) si de antemanose conoce a priori la cantidad de repeticiones que serealizarán.
• La estructura for permite definir un bucle controlado por uncontador, denominado variable de control o de inducción.
for(i=0,n=10000;i<n;i++)
{
} 3
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
i ≤ n
no
si
instruccionesi ← i+1
i ← x
Sentencia for
Diagrama de flujo Pseudocódigo Código en C
for(i=x;i<=n;i++)
{
instrucciones;
}
Iterativa "para"
i ≤ n
no
si
instruccionesi ← i+1
i ← x
4
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Sentencia for
• El encabezado de un bucle for tiene tres partes separadaspor ";". En la primera se inicializan las variable de control ysólo se ejecuta una vez, antes de la primera iteración, lasegunda es una expresión que indica la condición lógicaque debe cumplirse para que la próxima iteración seejecute; esta condición se evaluá antes de cada iteración y,cuando deja de satisfacerse, el bucle for termina. Latercera parte del encabezado es la actualización de lasvariables de control y se ejecuta después de cadaiteración.
for(. . . ; . . .;. . .)
{
sentencias;
}
1 2
3
45
6
7
n
5
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Ejemplos con for
#include<stdio.h>
int main(void)
{
int i,n;
for(i=100;i>=0;i--){
printf("\t%d",i);
}
return 0;
}
Ejemplo 1: "ej1.c"
6
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
#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;
}
Ejemplo 2: "ej2.c"
7
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
#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;
}
Ejemplo 3: "ej3.c"
8
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
#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;
};
Ejemplo 4: Serie de fibonacci "ej4.c"
9
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Mover el cursor con gotoxy• La función gotoxy (int columna, int fila) es una función
declarada en el encabezado <conio.h>, la cual viene en loscompiladores de la línea de Turbo C (y también Borland C++)de la compañía Borland.#include<stdio.h>
#include<dos.h>
#include<conio.h>
int main(void)
{
int fila,columna;
for(columna=0;columna<80;columna++)
{
for(fila=0;fila<20;fila++)
{
gotoxy(columna,fila);
printf("*");
delay(500);
};
};
return 0;
}
Código funcional en Turbo C y Borland C "dos.h: Uso de delay() & conio.h: uso de gotoxy()"
10
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Si se usa otro compilador se debe de buscar una funciónequivalente.
• En el compilador MinGW incluye <conio.h>, pero nocontiene todas las funciones de Borland como la de gotoxy.
• Windows ofrece un conjunto de funciones para manejar laconsola, entre las cuales está una equivalente a gotoxy,pero para poder usar estas funciones se tiene que verificarsi el compilador puede usarlas. Si el compilador incluye elarchivo de libreria windows.h en el directorio include.(MinGW lo incluye).
• La función es SetConsoleCursorPosition (HANDLEhConsoleOutput, COORD coord), pero su uso no esinmediato como la función gotoxy.
11
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Simulación de gotoxy• 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;
} 12
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Programa que simula la función gotoxy() de borland."gotoxy.c"
#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 );
};13
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Observaciones
• Considerar que generalmente (según configuraciónde la consola) el tamaño de la consola es de 80columnas x 24 filas. (Si se excede el número decolumnas o filas simplemente se obtendránresultados no deseados)
24 filas
80 columnas
14
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Ejercicios con for y la función gotoxy
• Ejercicio 1: Realizar un programa que dibuje un marco enla 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 );
};
15
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Ejercicio 02: Realice un programa queimprima la siguiente figura poco a pocohasta llegar al centro de la pantalla.Rectángulos concéntricos
(De exterior a centro)
16
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
4: E
jerc
icio
s d
e p
rogr
amac
ión
co
n la
sen
ten
cia
for
Eje
rcic
ios
con
fo
ry
go
toxy
()(T
area
05
)
• Ejercicio 03: Modifique el ejercicio 02 y hagaque al llegar al centro el programa regreseborrando los rectángulos concéntricosdibujados.
17
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
4: E
jerc
icio
s d
e p
rogr
amac
ión
co
n la
sen
ten
cia
for
Eje
rcic
ios
con
fo
ry
go
toxy
()(T
area
05
)
Ejercicios 02: Ejercicios con for y la función gotoxy
• Realizar cada uno de los ejercicios anteriores mediante el uso de laestructura for en lenguaje C.
• Observaciones
1. Reportar el texto del ejercicio y el código en C (con colores) y las pruebasde sus programas.
2. Incluir al reporte las capturas de pantalla
3. El reporte es individual y tiene portada, índice y encabezados de paginacon número de pagina , titulo y nombre del alumno.
4. Enviar vía Web en un archivo comprimido (ZIP, RAR o TAR), reporte ycódigos de C de cada problema.
*Se entregará antes del día Domingo 17 de Abril de 2016 (23:59:59 hora limite).
18
Alg
ori
tmia
y p
rogr
amac
ión
est
ruct
ura
da
Lab
ora
tori
o 0
3: E
jerc
icio
s d
e P
rogr
amac
ión
co
n la
est
ruct
ura
par
a (f
or)
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
Grupo Contraseña
1CV8 algoritmia1cv8
top related