jueves, 13 de octubre de 2016

PRÁCTICA 3, ESTRUCTURAS DE CONTROL DE FLUJO SELECTIVAS

#include <iostream>
#include <conio2.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define maxfil 20
#define maxcol 80
#define maxcolor 16
int main() {
srand(time(NULL));
char resp;
int columna,fila;
int color;
cout<<"Desea ejecutar el programa s/n:";
cin>>resp;
clrscr();
columna = rand()%maxcol+1;
fila = rand()%maxfil+1;
color = rand()%maxcolor;
textcolor(color);
gotoxy(columna,fila);
printf("%c",char(219));
if (fila<10)
{
textcolor(WHITE);
gotoxy(20,20);
cout<<"ZONA SUPERIOR"<<endl;
}
else
{
textcolor(WHITE);
gotoxy(50,20);
cout<<"ZONA INFERIOR"<<endl;
}
if (columna>40)
{
textcolor(WHITE);
gotoxy(10,1);
cout<<"ZONA DERECHA"<<endl;
}
else
{
textcolor(WHITE);
gotoxy(50,17);
cout<<"ZONA IZQUIERDA"<<endl;
}
if (color==0)//Case 0:
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR NEGRO"<<endl;
}
else{//case 1
if (color==1)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR AZUL"<<endl;
}
else{//case 2
if (color==2)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR VERDE"<<endl;
}
else{//case 3
if (color==3)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR CELESTE"<<endl;
}
else{//case 4
if (color==4)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR ROJO"<<endl;
}
else{//case 5
if (color==5)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR FUCSIA"<<endl;
}
else{//case 6
if (color==6)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR MARRON"<<endl;
}
else{//case 7
if (color==7)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR GRIS CLARO"<<endl;
}
else{//case 8
if (color==8)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR GRIS OSCURO"<<endl;
}
else{//case 9
if (color==9)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR AZUL CLARO"<<endl;
}
else{//case 10
if (color==10)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR VERDE CLARO"<<endl;
}
else{//case 11
if (color==11)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR CELESTE CLARO"<<endl;
}
else{//case 12
if (color==12)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR ROJO CLARO"<<endl;
}
else{//case 13
if (color==13)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR FUCSIA CLARO"<<endl;
}
else{//case 14
if (color==14)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR AMARIILLO"<<endl;
}
else{//case 15
if (color==15)
{
textcolor(WHITE);
gotoxy(32,23);
cout<<"COLOR BLANCO"<<endl;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

system("PAUSE");
return(0);

}

PRÁCTICA 2, PROBLEMAS SECUENCIALES:

¿Qué hacen las 3 lineas siguientes?
#define maxfil 25 ---- esta linea define un número máximo de 25 filas.
#define maxcol 80 ---- esta linea define un número máximo de 80 columnas.
#define maxcolor 16 ---- esta linea define un número máximo de 16 colores distintos a elegir.

¿Qué significa esta sentencia?
srand(time(NULL)); ---- sirve para generar una semilla de números aleatorios y escoger entre uno de ellos. Cambia cada vez que se cierra el programa.

¿De que tipo son las variables y porque se han puesto esos tipos? ¿Es correcto?
char resp; ---- “char” establece una variable de tipo carácter (en este caso la respuesta a la pregunta).
int fila,columna; ---- “int” establece una variable de tipo entera (filas y columnas).
int color; ---- aquí actúa como variable entera ya que el color se especificará mediante una cifra (entre 16 como se estableció anteriormente).



¿Qué significa esta sentencia?
clrscr(); ---- con esta sentencia borraremos la pantalla de todo lo escrito o dibujado anteriormente.

¿Cual sera el valor de la variable color?
color = rand()%maxcolor; ---- el valor de la variable color queda establecido como aleatorio.
textcolor(color);

¿Cuál será el valor de la variable fila? ¿Es correcto?
fila=rand()%maxfil; ---- El valor de la variable fila sera aleatorio entre los valores fijados. No es correcto en caso de que queramos situar un texto en una fila concreta (no aleatoria).

¿Cuál será el valor de la variable columna? ¿Es correcto?
columna=rand()%maxcol; ---- El valor de la variable columna sera aleatorio entre los valores fijados. No es correcto en caso de que queramos situar un texto en una columna concreta (no aleatoria).

¿Qué significa esta sentencia?
gotoxy(columna,fila); ---- significa ir a las coordenadas marcadas (go to x, y), se suele usar para poner un texto en cierta parte de la pantalla.

¿Qué significa esta sentencia?
printf("%c",char(219)); ---- sirve para pintar bloques en la pantalla, si se añaden comandos como "gotoxy(x,y)" podremos especificar su posición.

¿Qué significa esta sentencia?
Beep(1000,200); ---- con este comando podremos hacer sonar el altavoz interno del PC al efectuar otra acción indicada (como en la práctica de los dibujos de bloques, el pitido sonaba cuando aparecían los bloques).

¿Qué significa esta sentencia?

Sleep(1000); ---- hace que el programa se detenga tantos milisegundos como especifiquemos entre paréntesis.

El código fuente del programa es el siguiente:

#include <iostream>
#include <conio2.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

#define maxfil 25
#define maxcol 80
#define maxcolor 16

int main() {
srand(time(NULL));
char resp;
int fila,columna;
int color;

cout<<"Desea ejecutar el programa s/n:";
cin>>resp;


color = rand()%maxcolor;
textcolor(color);
fila=rand()%maxfil;
columna=rand()%maxcol;

gotoxy(1,1);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);


gotoxy(80,1);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);


gotoxy(1,25);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);

gotoxy(80,25);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);

clrscr();

gotoxy(40,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);

clrscr();

gotoxy(1,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);

clrscr();

gotoxy(8,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);
clrscr();

gotoxy(16,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);
clrscr();

gotoxy(24,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);
clrscr();
gotoxy(32,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);
clrscr();
gotoxy(40,12);
printf("%c",char(219));
Beep(1000,200);
Sleep(1000);

textcolor(WHITE);
clrscr();
system("PAUSE");

return 0;
}//fin del programa principal