Files
Borland-C/CPP/PROG13.CPP

422 lines
13 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include<stdio.h>
#include<conio.h>
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[],
int color_titulo,int posx,int posy);
char ventanaarchivo(int op);char ventanaoperaciones();
char ventanaayuda(int op);char ventanageneral(int op);
char ventanatipomatriz();
char pagina(int numero);char instrucciones(char opt,int numero_pag);
void main(){
int salir=0;
do {
char tecla;
int numero=0,col,tipomatriz;
ventanageneral(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=97 && numero!=121 && numero!=27);
if (numero==97) {
ventanaarchivo(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=109 && numero!=108 && numero!=27);
if (numero==108) {
ventanageneral(0);ventana(35,5,8,8,"",8,24,11);
ventana(35,5,7,4,"Salir",14,22,10);
gotoxy(26,12);textbackground(7);textcolor(0);
cprintf("¨Desea salir del programa?");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=110 && numero!=27);
if (numero==115)
salir=1;
}
else {
if (numero==109) {
tipomatriz=ventanatipomatriz();
ventanageneral(0);
switch(tipomatriz){
case 49:
break;
case 50:
int matriz[3][3];
ventana(20,7,8,8,"",8,9,6);
ventana(20,7,7,1,"Matriz",14,7,5);
gotoxy(11,6);textcolor(0);textbackground(7);
cprintf("Ú");gotoxy(11,7);cprintf("³");gotoxy(11,8);cprintf("³");
gotoxy(11,9);cprintf("³");gotoxy(11,10);cprintf("À");
gotoxy(22,6);cprintf("¿");gotoxy(22,7);cprintf("³");
gotoxy(22,8);cprintf("³");gotoxy(22,9);cprintf("³");
gotoxy(22,10);cprintf("Ù");
for (int f=1;f<=3;f++)
for(int c=2;c<=9;c=c+3){
gotoxy(12+c,6+f);cprintf("*");
}
ventana(35,5,8,8,"",8,37,7);
ventana(35,5,7,1,"Introducci¢n de la matriz",14,35,6);
gotoxy(39,8);textcolor(0);textbackground(7);
cprintf("Introduce n£mero: ");
int num,col=0;
for (f=1;f<=3 && numero!=27;f++){
for (col=(-1),c=2;c<=9 && numero!=27;col++){
if (c>2){
matriz[f-1][col]=num;
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
textcolor(0+BLINK);gotoxy(12+c,6+f);cprintf("*");
c=c+3;
}
else {
textcolor(0+BLINK);gotoxy(12+c,6+f);cprintf("*");
c=c+3;
}
num=10;
do {
do {
if (numero==0) {
gotoxy(57,8);textcolor(7);cprintf("Û");
}
textcolor(0);gotoxy(57,8);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
if (numero==13 && num==10){
num=0;
ventana(35,7,8,8,"",8,27,14);
ventana(35,7,7,4,"Error 002",14+BLINK,25,13);
textcolor(0);textbackground(7);gotoxy(29,15);
cprintf("Al no haber introducido nin-");
gotoxy(29,16);cprintf("g£n valor, se introduce por");
gotoxy(29,17);cprintf("defecto el 0.");
fflush(stdin);getch();
ventana(35,7,15,15,"",15,27,14);
ventana(35,7,15,15,"",15,25,13);
}
if (numero!=27 && numero!=13 && numero<48 || numero>57) {
ventana(35,6,8,8,"",8,27,14);
ventana(35,6,7,4,"Error 001",14+BLINK,25,13);
textcolor(0);textbackground(7);gotoxy(29,15);
cprintf("No se puede introducir un");
gotoxy(29,16);cprintf("car cter,solo n£meros.");
fflush(stdin);getch();
ventana(35,6,15,15,"",15,27,14);
ventana(35,6,15,15,"",15,25,13);
numero=0;
}
}while(numero!=27 && numero!=13 && numero<48 || numero>57);
if (numero>=48 && numero<=57){
switch(numero) {
case 48:
num=0;break;
case 49:
num=1;break;
case 50:
num=2;break;
case 51:
num=3;break;
case 52:
num=4;break;
case 53:
num=5;break;
case 54:
num=6;break;
case 55:
num=7;break;
case 56:
num=8;break;
case 57:
num=9;break;
}
}
}while(numero!=13 && numero!=27);
gotoxy(57,8);textcolor(7);cprintf("Û");
}
matriz[f-1][col]=num;
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
ventanageneral(1);
ventana(20,7,8,8,"",8,9,6);
ventana(20,7,7,1,"Matriz",14,7,5);
gotoxy(11,6);textcolor(0);textbackground(7);
cprintf("Ú");gotoxy(11,7);cprintf("³");gotoxy(11,8);cprintf("³");
gotoxy(11,9);cprintf("³");gotoxy(11,10);cprintf("À");
gotoxy(22,6);cprintf("¿");gotoxy(22,7);cprintf("³");
gotoxy(22,8);cprintf("³");gotoxy(22,9);cprintf("³");
gotoxy(22,10);cprintf("Ù");
for (f=1;f<=3;f++){
for (col=0,c=5;c<=9;c=c+3,col++){
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
break;
}
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=97 && numero!=121 && numero!=111 && numero!=27);
switch(numero){
case 111:
ventanaoperaciones();
getch();
}
}
}
}
else {
if (numero==121) {
ventanaayuda(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=121 && numero!=97 && numero!=27);
if (numero==97) {
ventanageneral(0);
ventana(35,9,8,8,"",8,24,9);
ventana(35,9,7,1,"Acerca de...",14,22,8);
gotoxy(29,10);textbackground(7);textcolor(4+BLINK);
cprintf("MATRIMATIC© ver 1.0");
gotoxy(25,12);textcolor(0);cprintf("Programado por:");
gotoxy(27,13);textcolor(15);cprintf("Moiss Virumbrales Cuenca");
gotoxy(40,15);textcolor(0);cprintf("Copyright 1999");
fflush(stdin);getch();
}
else {
if (numero==121) {
ventanageneral(0);
int numpag=1;char opcion='a';
numpag=instrucciones(opcion,numpag);
for (;numpag!=10;) {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&opcion);
numpag=instrucciones(opcion,numpag);
}
}
}
}
else {
ventana(35,5,8,8,"",8,24,11);
ventana(35,5,7,4,"Salir",14,22,10);
gotoxy(26,12);textbackground(7);textcolor(0);
cprintf("¨Desea salir del programa?");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=110 && numero!=27);
if (numero==115)
salir=1;
}
}
textcolor(0);
} while(salir==0);
}
// Funci¢n ventana.
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[80],
int color_titulo,int posx,int posy) {
int x,y,cony,conx;
char dib;
dib='Û';
for (cony=0,y=posy;cony<largo;cony++,y++){
for (conx=0,x=posx;conx<ancho;conx++,x++) {
gotoxy(x,y);
if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
|| x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
textcolor(color_borde);
else
textcolor(color_g);
cprintf ("%c",dib);
}
}
gotoxy((posx+2),posy);
textcolor(color_titulo);
textbackground(color_borde);
cprintf("%s",titulo);
return(0);
}
//Funci¢n ventanaarchivo
char ventanaarchivo(int op) {
textbackground(0);
clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);textbackground(0);
textcolor(15);cprintf("Archivo");
gotoxy(14,2);textbackground(7);
if (op==1){
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);
textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
ventana(16,5,7,7,"",7,5,3);
textcolor(0);textbackground(7);
gotoxy(7,4);cprintf("Nueva ");textcolor(15);cprintf("M");
textcolor(0);cprintf("atriz");
gotoxy(7,5);cprintf("Nuevo ");textcolor(15);cprintf("S");
textcolor(0);cprintf("istema");
gotoxy(5,6);cprintf("----------------");
gotoxy(7,7);textcolor(0);cprintf("Sa");textcolor(15);cprintf("l");
textcolor(0);cprintf("ir ");textcolor(15);cprintf("Esc");
return(0);
}
//Funci¢n ventanaoperaciones
char ventanaoperaciones(){
textbackground(0);
ventana(20,5,7,7,"",7,14,3);
gotoxy(15,4);textcolor(0);cprintf("Inversa");
gotoxy(15,5);cprintf("Adjunta");
gotoxy(15,6);cprintf("Traspuesta");
return(0);
}
//Funci¢n ventanaayuda
char ventanaayuda(int op){
textbackground(0);clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);textbackground(7);
textcolor(15);cprintf("A");textcolor(0);cprintf("rchivo");
gotoxy(14,2);
if (op==1){
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);textbackground(0);
textcolor(15);cprintf("Ayuda");
ventana(15,4,7,7,"",7,27,3);
gotoxy(28,4);textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
gotoxy(27,5);cprintf("---------------");
gotoxy(28,6);textcolor(15);cprintf("A");textcolor(0);cprintf("cerca de...");
return(0);
}
//Funci¢n ventanageneral
char ventanageneral(int op){
textbackground(0);
clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);
ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);
textbackground(7);
textcolor(15);cprintf("A");textcolor(0);cprintf("rchivo");
gotoxy(14,2);
if(op==1) {
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);
textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
return(0);
}
// Funci¢n ventanatipomatriz.
char ventanatipomatriz(){
int col=7,numero=0;char tecla;
ventanageneral(0);
ventana(35,12,8,8,"",8,22,8);
ventana(35,12,7,1,"Nueva Matriz",14,20,7);
int num;
do {
if (numero==49)
col=4;
else
col=7;
textbackground(col);gotoxy(23,9);textcolor(15);cprintf(" 1");
textcolor(0);cprintf(".- Matriz de 2*2 ");
if (numero==50)
col=4;
else
col=7;
textbackground(col);gotoxy(23,10);textcolor(15);cprintf(" 2");
textcolor(0);cprintf(".- Matriz de 3*3 ");
if (numero==51)
col=4;
else
col=7;
textbackground(col);gotoxy(23,11);textcolor(15);cprintf(" 3");
textcolor(0);cprintf(".- Matriz de 4*4 ");
if (numero==52)
col=4;
else
col=7;
textbackground(col);gotoxy(23,12);textcolor(15);cprintf(" 4");
textcolor(0);cprintf(".- Matriz de 5*5 ");
if (numero==53)
col=4;
else
col=7;
textbackground(col);gotoxy(23,13);textcolor(15);cprintf(" 5");
textcolor(0);cprintf(".- Matriz de 6*6 ");
textbackground(7);gotoxy(24,15);cprintf("Elija n£mero y pulse ENTER ");
gotoxy(24,16);cprintf("para continuar.");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=49 && numero!=50 && numero!=51 && numero!=52 &&
numero!=53 && numero!=13 && numero!=27);
if (numero!=13 && numero!=27)
num=numero;
} while (numero!=13 && numero!=27);
return(num);
}
// Funci¢n instrucciones.
char instrucciones(char opt,int numero_pag) {
if (opt=='s' && numero_pag!=4) {
numero_pag++;pagina(numero_pag);
}
else
if (opt=='s') pagina(numero_pag);
if (opt=='a' && numero_pag!=1) {
numero_pag--;pagina(numero_pag);
}
else
if (opt=='a') pagina(numero_pag);
if (opt=='q')
numero_pag=10;
return (numero_pag);
}
//Funci¢n paginas
char pagina(int numero) {
switch (numero) {
case 1:
ventana(60,18,7,8,"",8,12,5);
ventana(60,18,7,1,"Ayuda interactiva",14,10,4);
textbackground(7);textcolor(0);gotoxy (53,5);cprintf ("P gina 1 de 4.");
gotoxy(15,6);textcolor(15);cprintf("1");textcolor(0);
cprintf(".- ¨C¢mo utilizar la ayuda?");
gotoxy(15,7);textcolor(15);cprintf("2");textcolor(0);
cprintf(".- Introducci¢n de una nueva matriz.");
gotoxy(15,8);textcolor(15);cprintf("3");textcolor(0);
cprintf(".- Introducci¢n de un nuevo sistema de ecuaciones.");
gotoxy(15,9);textcolor(15);cprintf("4");textcolor(0);
cprintf(".- Operaciones con matrices.");
gotoxy(13,20);textcolor(8);cprintf ("A:p g. anterior ");
textcolor(15);cprintf (" S");textcolor(0);cprintf(":p g. siguiente ");
textcolor(15);cprintf (" Q");textcolor(0);cprintf(":salir de la ayuda");
break;
}
return(0);
}