18
Estructuras de datos (Prof. Edgardo A. Franco) 1 M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Laboratorio 03: Ejercicios de Programación con la estructura para (for) Solicitado: Ejercicios 03: Ejercicios con for y la función gotoxy()

Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

Estructuras de datos (Prof. Edgardo A. Franco)

1M. en C. Edgardo Adrián Franco Martínez http://[email protected]

@edfrancom edgardoadrianfrancom

Laboratorio 03: Ejercicios de Programación con la estructura para (for)

Solicitado: Ejercicios 03: Ejercicios con fory la función gotoxy()

Page 2: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 3: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 4: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 5: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 6: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 7: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

#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

Page 8: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

#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

Page 9: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

#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

Page 10: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 11: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

• 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

Page 12: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 13: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

• 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

Page 14: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 15: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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

Page 16: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

• 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

)

Page 17: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

• 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

)

Page 18: Laboratorio 03: Ejercicios de Programación con la ... · Ejercicios 02: Ejercicios con fory la función gotoxy • Realizar cada uno de los ejercicios anteriores mediante el uso

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