|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - RICARDOJ.
Páginas: [1]
1
« en: Lunes 13 de Diciembre de 2010, 19:42 »
No puede ser ahora no consigo sacar mi codigo me compila todo y tengo bien hecho el menu pero no me hace ninguna operacion pfffff aqui os dejo el nuevo codigo pero no me realiza lo q quiero hacer
//Librerias necesarias #include <stdio.h> #include <math.h> #include <conio.h>
//Constantes necesarias #define MAXV 10 //tamaño maximo de un vector #define FIL 4 //tamaño maximo de las filas de una matriz #define COL 3 //tamaño maximo de las columnas de una matriz #define ORD 3 //orden maximo de una matriz cuadrada
//Funciones necesarias void menu(void); void mMenu1(void); void mMenu2(void); void vector(void); void traspuesta(void); int determinante(float matriz[ORD][ORD]);
//Funcion MAIN() void main() { clrscr(); //Limpio los restos en la pantalla menu(); //Ejecuto el menu }//main()
//Funcion MENU() //Esta funcion carga un menu para el programa void menu(void){
int opc; //opcion //Repito do{ clrscr(); //Limpio la pantalla //Muestro al usuario sus opciones printf("tt PROGRAMA DE OPERACIONES CON VECTORES Y MATRICESn"); printf("nttt ¿Que desea hacer?n"); printf("nttt 1. Ejercicio 1.n"); printf("nttt 2. Ejercicio 2.n"); printf("nttt 3. Salir.n"); //Limpio el teclado por si hubiera desborde fflush(stdin); //Recojo la opcion elegida por el usuario scanf("%d", &opc); printf("n"); //Si la opcion no es valida, lo corrijo if ((opc > 3)||(opc <= 0)){ do{ printf("ttt ERROR 000: Opcion incorrectan"); printf("ttt Por favor, vuelva a introducir su elección: "); fflush(stdin); scanf("%d", &opc); printf("n"); }while((opc > 3)||(opc <= 0)); }//fi //Determino que ejecutar switch(opc){ case 1: mMenu1(); break; case 2: mMenu2(); break; case 3: break; default: break; }//swtich //Mientras no decida salir }while(opc != 3); }//menu()
//Funcion mMENU1() //Menu que muestra las diferentes opciones para el ejercicio 1 void mMenu1(){
int opc; //opcion do{ clrscr(); //Limpio la pantalla //Muestro al usuario sus opciones printf("ttt ¿Que desea hacer?n"); printf("ttt 1. Trabajar con vectores.n"); printf("ttt 2. Trabajar con matrices.n"); printf("ttt 3. Volver al menu principaln");
//Limpio el teclado por si hubiera desbordamiento fflush(stdin); //Recojo la opcion elejida scanf("%d", &opc); printf("n");
//Si no es una opción correcta, lo corrijo if ((opc > 3)||(opc <= 0)){ do{ printf("ttt ERROR 001: Opcion incorrectan"); printf("ttt Por favor, vuelva a introducir su elección: "); fflush(stdin); scanf("%d", &opc); printf("n"); }while((opc > 3)||(opc <= 0)); }//fi
//Determino que ejecutar switch(opc){ case 1: vector(); break; case 2: traspuesta(); break; case 3: break; default: break; }//swtich
//Mientras no decida volver al menu principal }while(opc != 3); }//mMenu1
//Funcion VECTOR() //Esta funcion recoge los datos de un vector y los muestra en //orden inverso void vector(){
//Variables necesarias int i; float vector[MAXV];
clrscr(); //Limpio la pantalla
//Pregunto al usuario por los datos printf("ttt Guarda los datos del vector:n"); for (i = 0; i <= MAXV-1; i++){ printf("ttt Introduce la posicion %d del vector: ", i+1); fflush(stdin); scanf("%.2f", &vector); printf("n"); }//for
//Y le muestro el resultado en orden inverso printf("ttt Ha introducido los siguientes datos: "); for (i = MAXV-1; i >= 0; i--){ printf("%.2f, ", vector); }//for }//vectores()
//Funcion TRASPUESTA() //Esta funcion calcula la matriz traspuesta de una //introducida por el usuario void traspuesta(){
//Variables necesarias int i, j; float matrizA[FIL][COL], matrizB[COL][FIL];
clrscr(); //Limpio la pantalla
//Presento la informacion y le pido al usuario los datos printf("ttt MATRIZ TRASPUESTAn"); printf("Guarda los datos de la matriz An"); for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ printf("ttt Introduce el valor de la posicion (%d,%d): ", i+1,j+1); fflush(stdin); printf (" %.2f ", matrizB[j]); printf("n"); }//for j }//for i
//Muestro al usuario la matriz A printf("ttt Este es el contenido de la matriz A:n"); for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ printf(" %.2f ", matrizA[j]); }//for j printf("n"); }//for i for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ matrizB[j] = matrizA[j]; }//for j }//for i
//Muestro la matriz B, la matriz traspuesta de A printf("ttt Esta es la matriz B, matriz traspuesta de A:n"); for (i = 0; i <= COL-1; i++){ for (j = 0; j <= FIL-1; j++){ printf(" %.2f ", matrizB[j]); }//for j printf("n"); }//for i }//traspuesta()
//Funcion mMENU2() //Funcion para el menu del ejercicio 2 void mMenu2(){ //Variables necesarias int i, j, opc; float matriz1[ORD][ORD], matriz2[ORD][ORD]; clrscr(); //Limpio la pantalla //Presento la información y le pido los datos // al usuario printf("ttt OPERACIONES CON MATRICESn"); printf("ttt Introduzca los datos de la matriz 1:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf("Dato (%d, %d): ", i+1, j+1); fflush(stdin); scanf("%.2f", &matriz1[j]); printf("n"); }//for j }//for i //Le pregunto por los datos de la segunda matriz printf("ttt Introduzca los datos de la matriz 2:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf("ttt Dato (%d, %d): ", i+1, j+1); fflush(stdin); scanf("%.2f", &matriz2[j]); printf("n"); }//for j }//for i do{ //Repito ///Presentacion del menu. printf("tttt --Menu de Ejercicio 2--"); printf("nntt Elija el tipo de operacion que desea:"); printf("nntt 1. Sumar las matrices."); printf("nntt 2. Restar las matrices."); printf("nntt 3. Trasponer las matrices."); printf("nntt 4. Salir al menu principal."); printf("nntt Su opcion: "); //Depuracion del teclado por posibles "Overflow". fflush(stdin); //Lectura de la opcion deseada por el usuario. scanf("%i", &Opcion2); printf("n"); //Condicion que nos permite introducir los datos si el usuario ha //escogido una opcion que requiera lectura de datos. if(Opcion2<4 && Opcion2>0) { //Peticion de los datos de la matriz 1. printf("nIntroduzca los valores de la Matriz 1:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz1[Fil][Col]); } } printf("n"); //Peticion de los datos de la matriz 2. printf("Introduzca los valores de la Matriz 2:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz2[Fil][Col]); } } } //Selector que nos lleva a la opcion seleccionada por el usuario. switch(Opcion2) { //Opcion_ Suma de matrices. case 1: printf("nHa elegido suma de matrices."); //Bucle para calcular la suma de la misma celda de cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la suma de cada componente. Matriz3[Fil][Col]=Matriz1[Fil][Col]+Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la suma de las matrices es:nn"); //Bucle para representar el valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; //Opcion: Resta de matrices. case 2: printf("nHa elegido resta de matrices."); //Bucle para calcular la resta de los valores de la misma celda de //cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la resta de cada valor. Matriz3[Fil][Col]=Matriz1[Fil][Col]-Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la resta de las matrices es:nn"); //Bucle para representar cada valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de los datos por pantalla. clrscr(); break; //Opcion: Trasposicion de matrices. }//mMenu2()
//Funcion DETERMINANTE() //- Argumentos: matriz cuadrada de orden ORD de tipo real //- Retorna: entero, determinante de la matriz //Esta funcion calcula el determinante de una matriz cuadrada // de orden 3 int determinante(float matriz[ORD][ORD]){ //Variables necesarias int var, i, j; float sum1, sum2, sum3, res1, res2, res3; //Calculo el numero de elementos de la matriz var = 0; for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ var++; }//for j }//for i //Si la matriz es cuadrada de orden 3, var == 9 if (var == 9){ //Calculo todos los operandos del determinante sum1 = matriz[0][0]*matriz[1][1]*matriz[2][2]; sum2 = matriz[0][1]*matriz[1][2]*matriz[2][0]; sum3 = matriz[0][2]*matriz[1][0]*matriz[2][1]; res1 = matriz[2][0]*matriz[1][1]*matriz[0][2]; res2 = matriz[1][0]*matriz[0][1]*matriz[2][2]; res3 = matriz[0][0]*matriz[1][2]*matriz[2][1];
//Y lo retorno return sum1+sum2+sum3-res1-res2-res3; }//fi //Sino muestro un mensaje de error. else{ printf("ttt ERROR: El orden de la matriz es incorrecto."); printf("ttt No se trata de una matriz cuadrada."); return -1; //El determinante de una matriz no puede ser negativo // pero sí 0, asi para que la función termine retorno un -1 }//else }//determinante()
2
« en: Lunes 13 de Diciembre de 2010, 18:55 »
solo me da un error en la funcion que me has dicho
Mira en la función transpuesta tienes estas lineas:
1. scanf("%.2f", &matriz[j]);
1. printf(" %.2f ", matriz[j]);
nose porque es
3
« en: Lunes 13 de Diciembre de 2010, 17:34 »
MIRA A VER ESTA OPCION PERO ME DA UNOS ERRORES QUE NOSE PORQUE SON A VER SI ME PUEDES ECHAR UNA MANO.
//Librerias necesarias #include <stdio.h> #include <math.h> #include <conio.h>
//Constantes necesarias #define MAXV 10 //tamaño maximo de un vector #define FIL 4 //tamaño maximo de las filas de una matriz #define COL 3 //tamaño maximo de las columnas de una matriz #define ORD 3 //orden maximo de una matriz cuadrada
//Funciones necesarias void menu(void); void mMenu1(void); void mMenu2(void); void vector(void); void traspuesta(void); int determinante(float matriz[ORD][ORD]);
//Funcion MAIN() void main() { clrscr(); //Limpio los restos en la pantalla menu(); //Ejecuto el menu }//main()
//Funcion MENU() //Esta funcion carga un menu para el programa void menu(void){
int opc; //opcion //Repito do{ clrscr(); //Limpio la pantalla //Muestro al usuario sus opciones printf("PROGRAMA DE OPERACIONES CON VECTORES Y MATRICESn"); printf("Que desea hacer?n"); printf("t1. Ejer 1.n"); printf("t2. Ejer 2.n"); printf("t3. Salir.n"); //Limpio el teclado por si hubiera desborde fflush(stdin); //Recojo la opcion elegida por el usuario scanf("%d", &opc); printf("n"); //Si la opcion no es valida, lo corrijo if ((opc > 3)||(opc <= 0)){ do{ printf("ERROR 000: Opcion incorrectan"); printf("Por favor, vuelva a introducir su elección: "); fflush(stdin); scanf("%d", &opc); printf("n"); }while((opc > 3)||(opc <= 0)); }//fi //Determino que ejecutar switch(opc){ case 1: mMenu1(); break; case 2: mMenu2(); break; case 3: break; default: break; }//swtich //Mientras no decida salir }while(opc != 3); }//menu()
//Funcion mMENU1() //Menu que muestra las diferentes opciones para el ejercicio 1 void mMenu1(){
int opc; //opcion do{ clrscr(); //Limpio la pantalla //Muestro al usuario sus opciones printf("Que desea hacer?n"); printf("t1. Trabajar con vectores.n"); printf("t2. Trabajar con matrices.n"); printf("t3. Volver al menu principaln"); //Limpio el teclado por si hubiera desbordamiento fflush(stdin); //Recojo la opcion elejida scanf("%d", &opc); printf("n"); //Si no es una opción correcta, lo corrijo if ((opc > 3)||(opc <= 0)){ do{ printf("ERROR 001: Opcion incorrectan"); printf("Por favor, vuelva a introducir su elección: "); fflush(stdin); scanf("%d", &opc); printf("n"); }while((opc > 3)||(opc <= 0)); }//fi //Determino que ejecutar switch(opc){ case 1: vector(); break; case 2: traspuesta(); break; case 3: break; default: break; }//swtich //Mientras no decida volver al menu principal }while(opc != 3); }//mMenu1
//Funcion VECTOR() //Esta funcion recoge los datos de un vector y los muestra en //orden inverso void vector(){
//Variables necesarias int i; float vector[MAXV]; clrscr(); //Limpio la pantalla //Pregunto al usuario por los datos printf("Guarda los datos del vector:n"); for (i = 0; i <= MAXV-1; i++){ printf("Introduce la posicion %d del vector: ", i+1); fflush(stdin); scanf("%.2f", &vector); printf("n"); }//for //Y le muestro el resultado en orden inverso printf("Ha introducido los siguientes datos: "); for (i = MAXV-1; i >= 0; i--){ printf("%.2f, ", vector); }//for }//vectores()
//Funcion TRASPUESTA() //Esta funcion calcula la matriz traspuesta de una //introducida por el usuario void traspuesta(){
//Variables necesarias int i, j; float matrizA[FIL][COL], matrizB[COL][FIL]; clrscr(); //Limpio la pantalla //Presento la informacion y le pido al usuario los datos printf("MATRIZ TRASPUESTAn"); printf("Guarda los datos de la matriz An"); for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ printf("Introduce el valor de la posicion (%d,%d): ", i+1,j+1); fflush(stdin); scanf("%.2f", &matriz[j]); printf("n"); }//for j }//for i //Muestro al usuario la matriz A printf("Este es el contenido de la matriz A:n"); for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ printf(" %.2f ", matrizA[j]); }//for j printf("n"); }//for i //Copio en la matriz B la matriz traspuesta de A //Una matriz traspuesta es aquella cuyos elementos // de una matriz original tienen su orden de fila // y columnas intercambiados. Por ejemplo: // // MATRIZ MATRIZ Traspuesta // // 1 2 1 3 5 // 3 4 2 4 6 // 5 6 // for (i = 0; i <= FIL-1; i++){ for (j = 0; j <= COL-1; j++){ matrizB[j] = matrizA[j]; }//for j }//for i //Muestro la matriz B, la matriz traspuesta de A printf("Esta es la matriz B, matriz traspuesta de A:n"); for (i = 0; i <= COL-1; i++){ for (j = 0; j <= FIL-1; j++){ printf(" %.2f ", matriz[j]); }//for j printf("n"); }//for i }//traspuesta()
//Funcion mMENU2() //Funcion para el menu del ejercicio 2 void mMenu2(){ //Variables necesarias int i, j, opc; float matriz1[ORD][ORD], matriz2[ORD][ORD]; clrscr(); //Limpio la pantalla //Presento la información y le pido los datos // al usuario printf("OPERACIONES CON MATRICESn"); printf("Introduzca los datos de la matriz 1:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf("Dato (%d, %d): ", i+1, j+1); fflush(stdin); scanf("%.2f", &matriz1[j]); printf("n"); }//for j }//for i //Le pregunto por los datos de la segunda matriz printf("Introduzca los datos de la matriz 2:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf("Dato (%d, %d): ", i+1, j+1); fflush(stdin); scanf("%.2f", &matriz2[j]); printf("n"); }//for j }//for i do{ //Repito //Le muestro las opciones de que dispone printf("Que desea hacer?n"); printf("t1. Sumar las matrices.n"); printf("t2. Restar las matrices.n"); printf("t3. Calcular los determinantes.n"); printf("t4. Volver al menu principal.n"); //Limpio el teclado para borrar cualquier desplazamiento fflush(stdin); //Registro la opcion elegida scanf("%d", &opc); printf("n"); //Si la opción es incorrecta, le corrijo if ((opc > 4)||(opc <= 0)){ do{ printf("ERROR 002: Opcion incorrectan"); printf("Por favor, vuelva a introducir su elección: "); fflush(stdin); scanf("%d", &opc); printf("n"); }while((opc > 4)||(opc <= 0)); }//fi //Determino que realizar switch(opc){ //En el primer caso, hay que calcular la matriz suma. //Al ser dos matrices cuadradas del mismo orden, 3, // la matriz suma es la suma de los elementos de una // matriz con los corresopndiente de la otra. case 1: { printf("La matriz suma es:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf(" %.2f ", matriz1[j]+matriz2[j]); }//for j printf("n"); }//for i }; break; //En el segundo caso, hay que cacular la matriz diferencia. //Igual que en el caso anterior, bastara con restar // cada elemento de una matriz con los correspondientes de // la otra. case 2: { printf("La matriz resta es:n"); for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ printf(" %.2f ", matriz1[j]-matriz2[j]); }//for j printf("n"); }//for i }; break; //En el tercer caso, hay que calcular el determinante de cada matriz case 3: { printf("El determinante de la matriz 1 es: %dn", determinante(matriz1); printf("El determinante de la matriz 2 es: %dn", determinante(matriz2); }; break; case 4: break; default: break; }//swtich //Mientras no decida volver al menu principal }while(opc != 4); }//mMenu2()
//Funcion DETERMINANTE() //- Argumentos: matriz cuadrada de orden ORD de tipo real //- Retorna: entero, determinante de la matriz //Esta funcion calcula el determinante de una matriz cuadrada // de orden 3 int determinante(float matriz[][]){ //Variables necesarias int var, i, j; float sum1, sum2, sum3, res1, res2, res3; //Calculo el numero de elementos de la matriz var = 0; for (i = 0; i <= ORD-1; i++){ for (j = 0; j <= ORD-1; j++){ var++; }//for j }//for i //Si la matriz es cuadrada de orden 3, var == 9 if (var == 9){ //Calculo todos los operandos del determinante sum1 = matriz[0][0]*matriz[1][1]*matriz[2][2]; sum2 = matriz[0][1]*matriz[1][2]*matriz[2][0]; sum3 = matriz[0][2]*matriz[1][0]*matriz[2][1]: res1 = matriz[2][0]*matriz[1][1]*matriz[0][2]; res2 = matriz[1][0]*matriz[0][1]*matriz[2][2]; res3 = matriz[0][0]*matriz[1][2]*matriz[2][1];
//Y lo retorno return sum1+sum2+sum3-res1-res2-res3; }//fi //Sino muestro un mensaje de error. else{ printf("ERROR: El orden de la matriz es incorrecto."); printf("No se trata de una matriz cuadrada."); return -1; //El determinante de una matriz no puede ser negativo // pero sí 0, asi para que la función termine retorno un -1 }//else }//determinante()
4
« en: Lunes 13 de Diciembre de 2010, 15:12 »
Gracias pero me podias ayudar hacer las 2 opciones del menu ejercicio 1
5
« en: Lunes 13 de Diciembre de 2010, 13:57 »
1) Realizar un programa que presente dos opciones alusuario: MENU 1: a) Trabajar con vectores: Lee del teclado un vector numérico realde 10 posiciones y lo visualiza del revés, empezando por el ultimo valor introducido. b) Trabajar con matrices: - Cargar una matriz "A" de orden 3x4 con numeros enteros. - Visualizar porpantalla la matriz "A". - Calcularlamatriz traspuesta de "A" y guardarla con el nombre de atriz "B". - Visualizar la matriz "B". MENU 2: Operar con matrices cuadradas de orden 3x3. El usuario introducira los valores de los elementos de la dos matrices y a continuación se le presentara un menu que le permitira seleccionar las operaciones a realizar. a) Suma de matrices. b) Resta de matrices. c) Calcular determinantes de las dos matrices.
EN EL PROGRAMA QUE PRESENTO A CONTINUACION ME FALTA SOLO LA PARTE DEL MENU 1, QUE NOSE COMO REALIZARLA,ME GUSTARIA UNA PEQUEÑA AYUDA....GRACIAS DE ANTE MANO.
//Libreria basica de entrada/salida de datos. #include <stdio.h> //Libreria que permite limpiar el texto en la pantalla para facilitar su lectura. #include <conio.h> //Libreria que permite hacer operaciones matematicas avanzadas. #include <math.h>
void main(void) { //Declaracion de variables con su tipo. int Vector1[5], Vector2[5], Vector3[5]; float Modulo1=0, Modulo2=0; int Ind=0; float Matriz1[3][3], Matriz2[3][3], Matriz3[3][3], MatrizTp1[3][3], MatrizTp2[3][3]; int Fil=0, Col=0, Fil1=0, Col1=0; int Opcion1=0, Opcion2=4;
//Presentacion del programa. printf("t ESTE PROGRAMA REALIZA OPERACIONES CON MATRICES Y VECTORES."); printf("nntt PULSE UNA TECLA PARA INICIAR EL PROGRAMA"); getch(); //Limpieza de pantalla. clrscr(); //Bucle que se repite mientras el usuario no especifica salir del programa. do { //Presentacion del menu principal con sus opciones. printf("tttt --MENU PRINCIPAL--"); printf("nntt ESCOJA UNA DE LAS SIGUIENTES OPCIONES:"); printf("nntt 1.-EJERCICIO 1."); printf("nntt 2.-EJERCICIO 2"); printf("nntt 3.-SALIR DEL PROGRAMA"); printf("nntt Nº DE LA OPCION ESCOGIDA: "); //Depuracion del teclado por si se produce un "Overflow". fflush(stdin); //Lectura de la opcion definida por el usuario. scanf("%i", &Opcion1); //Limpieza de pantalla para pasar al siguiente menu. clrscr(); //Bucle que se repite mientras el usuario no especifica salir del submenu. do { //Selector que ejecuta una u otra opcion dependiendo de la deseada por //el usuario. switch(Opcion1) { //Submenu de opeacion con vectores. case 1: //Presentacion del menu. printf("tttt--Menu de Ejercicio 1--"); printf("nntt Elija el tipo de operacion que desea:"); printf("nntt 1. Trabajar con vectores."); printf("nntt 2. Trabajar con matrices."); printf("nntt 3. Volver al menu principal."); printf("nntt Su opcion: "); //Depuracion del teclado por si se ha producido un "Overflow". fflush(stdin); //Lectura de la opcion deseada por el usuario. scanf("%i", &Opcion2); printf("n"); //Condicion que nos permite introducir los datos si quiere realizar //el usuario algun tipo de operacion. if(Opcion2<4 && Opcion2>0) //Selector que ejecuta la opcion definida por el usuario. switch(Opcion2) { //Opcion: Visualizar vector al reves. case 1: { printf("Introduzca los valores del Vector 1:nn"); //Bucle que recopila los datos del vector 1 introducidos por teclado. for(Ind=0; Ind<5; Ind++) { printf("Valor %i: ", Ind); scanf("%i", &Vector1[Ind]); } } //Opcion: Trasponer matriz. case 2:
case 3: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("nPor favor, escoja una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); } break; //Submenu de Ejercicio 2. case 2: //Presentacion del menu. printf("tttt --Menu de Ejercicio 2--"); printf("nntt Elija el tipo de operacion que desea:"); printf("nntt 1. Sumar las matrices."); printf("nntt 2. Restar las matrices."); printf("nntt 3. Trasponer las matrices."); printf("nntt 4. Salir al menu principal."); printf("nntt Su opcion: "); //Depuracion del teclado por posibles "Overflow". fflush(stdin); //Lectura de la opcion deseada por el usuario. scanf("%i", &Opcion2); printf("n"); //Condicion que nos permite introducir los datos si el usuario ha //escogido una opcion que requiera lectura de datos. if(Opcion2<4 && Opcion2>0) { //Peticion de los datos de la matriz 1. printf("nIntroduzca los valores de la Matriz 1:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz1[Fil][Col]); } } printf("n"); //Peticion de los datos de la matriz 2. printf("Introduzca los valores de la Matriz 2:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz2[Fil][Col]); } } } //Selector que nos lleva a la opcion seleccionada por el usuario. switch(Opcion2) { //Opcion_ Suma de matrices. case 1: printf("nHa elegido suma de matrices."); //Bucle para calcular la suma de la misma celda de cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la suma de cada componente. Matriz3[Fil][Col]=Matriz1[Fil][Col]+Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la suma de las matrices es:nn"); //Bucle para representar el valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; //Opcion: Resta de matrices. case 2: printf("nHa elegido resta de matrices."); //Bucle para calcular la resta de los valores de la misma celda de //cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la resta de cada valor. Matriz3[Fil][Col]=Matriz1[Fil][Col]-Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la resta de las matrices es:nn"); //Bucle para representar cada valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de los datos por pantalla. clrscr(); break; //Opcion: Trasposicion de matrices. case 3: //Bucle para rellenar cada valor de la trasposicion de la matriz 1. for(Col=0; Col<3; Col++) { for(Fil=0; Fil<3; Fil++) { //Asignacion de valores. MatrizTp1[Fil1][Col1]=Matriz1[Fil][Col]; //Incremento de la columna de la matriz traspuesta para asignar //los valores correctamente. Col1++; } //Incremento de la fila de la matriz traspuesta para asignar los //valores correctamente. Fil1++; //Vuelta a la columna 0 para asignar los valores de una fila nueva. Col1=0; } //Vuelta a las coordenadas 0,0 de la matriz traspuesta. Fil1=0; Col1=0; //Bucle para rellenar cada valor de la trasposicion de la matriz 2. for(Col=0; Col<3; Col++) { for(Fil=0; Fil<3; Fil++) { //Asignacion de valores. MatrizTp2[Fil1][Col1]=Matriz2[Fil][Col]; //Incremento de la columna de la matriz traspuesta para asignar //los valores correctamente. Col1++; } //Incremento de la fila de la matriz traspuesta para asignar los //valores correctamente. Fil1++; //Vuelta a la columna 0 para asignar valores a una fila nueva. Col1=0; } //Representacion de los resultados por pantalla. printf("nnEl resultado de la trasposicion de la Matriz 1 es:nn"); //Bucle para representar cada celda de la matriz 1. for(Fil1=0; Fil1<3; Fil1++) { for(Col1=0; Col1<3; Col1++) { printf("%7.1f", MatrizTp1[Fil1][Col1]); } printf("n"); } // printf("nnEl resultado de la trasposicion de la Matriz 2 es:nn"); //Bucle para representar cada celda de la matriz 2. for(Fil1=0; Fil1<3; Fil1++) { for(Col1=0; Col1<3; Col1++) { printf("%7.1f", MatrizTp2[Fil1][Col1]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; //Opcion: Volver al menu principal. case 4: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("Por favor, escoja una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); } break; //Opcion para salir del programa. case 3: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("Por favor, introduzca una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; } //Condicion del bucle para repetir los diferentes submenus. }while(Opcion2!=4); //Condicion del bucle para salir del programa. }while(Opcion1!=3); }
6
« en: Lunes 13 de Diciembre de 2010, 13:53 »
1) Realizar un programa que presente dos opciones alusuario: MENU 1: a) Trabajar con vectores: Lee del teclado un vector numérico realde 10 posiciones y lo visualiza del revés, empezando por el ultimo valor introducido. b) Trabajar con matrices: - Cargar una matriz "A" de orden 3x4 con numeros enteros. - Visualizar porpantalla la matriz "A". - Calcularlamatriz traspuesta de "A" y guardarla con el nombre de atriz "B". - Visualizar la matriz "B". MENU 2: Operar con matrices cuadradas de orden 3x3. El usuario introducira los valores de los elementos de la dos matrices y a continuación se le presentara un menu que le permitira seleccionar las operaciones a realizar. a) Suma de matrices. b) Resta de matrices. c) Calcular determinantes de las dos matrices.
EN EL PROGRAMA QUE PRESENTO A CONTINUACION ME FALTA SOLO LA PARTE DEL MENU 1, QUE NOSE COMO REALIZARLA,ME GUSTARIA UNA PEQUEÑA AYUDA....GRACIAS DE ANTE MANO.
//Libreria basica de entrada/salida de datos. #include <stdio.h> //Libreria que permite limpiar el texto en la pantalla para facilitar su lectura. #include <conio.h> //Libreria que permite hacer operaciones matematicas avanzadas. #include <math.h>
void main(void) { //Declaracion de variables con su tipo. int Vector1[5], Vector2[5], Vector3[5]; float Modulo1=0, Modulo2=0; int Ind=0; float Matriz1[3][3], Matriz2[3][3], Matriz3[3][3], MatrizTp1[3][3], MatrizTp2[3][3]; int Fil=0, Col=0, Fil1=0, Col1=0; int Opcion1=0, Opcion2=4;
//Presentacion del programa. printf("t ESTE PROGRAMA REALIZA OPERACIONES CON MATRICES Y VECTORES."); printf("nntt PULSE UNA TECLA PARA INICIAR EL PROGRAMA"); getch(); //Limpieza de pantalla. clrscr(); //Bucle que se repite mientras el usuario no especifica salir del programa. do { //Presentacion del menu principal con sus opciones. printf("tttt --MENU PRINCIPAL--"); printf("nntt ESCOJA UNA DE LAS SIGUIENTES OPCIONES:"); printf("nntt 1.-EJERCICIO 1."); printf("nntt 2.-EJERCICIO 2"); printf("nntt 3.-SALIR DEL PROGRAMA"); printf("nntt Nº DE LA OPCION ESCOGIDA: "); //Depuracion del teclado por si se produce un "Overflow". fflush(stdin); //Lectura de la opcion definida por el usuario. scanf("%i", &Opcion1); //Limpieza de pantalla para pasar al siguiente menu. clrscr(); //Bucle que se repite mientras el usuario no especifica salir del submenu. do { //Selector que ejecuta una u otra opcion dependiendo de la deseada por //el usuario. switch(Opcion1) { //Submenu de opeacion con vectores. case 1: //Presentacion del menu. printf("tttt--Menu de Ejercicio 1--"); printf("nntt Elija el tipo de operacion que desea:"); printf("nntt 1. Trabajar con vectores."); printf("nntt 2. Trabajar con matrices."); printf("nntt 3. Volver al menu principal."); printf("nntt Su opcion: "); //Depuracion del teclado por si se ha producido un "Overflow". fflush(stdin); //Lectura de la opcion deseada por el usuario. scanf("%i", &Opcion2); printf("n"); //Condicion que nos permite introducir los datos si quiere realizar //el usuario algun tipo de operacion. if(Opcion2<4 && Opcion2>0) //Selector que ejecuta la opcion definida por el usuario. switch(Opcion2) { //Opcion: Visualizar vector al reves. case 1: { printf("Introduzca los valores del Vector 1:nn"); //Bucle que recopila los datos del vector 1 introducidos por teclado. for(Ind=0; Ind<5; Ind++) { printf("Valor %i: ", Ind); scanf("%i", &Vector1[Ind]); } } //Opcion: Trasponer matriz. case 2:
case 3: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("nPor favor, escoja una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); } break; //Submenu de Ejercicio 2. case 2: //Presentacion del menu. printf("tttt --Menu de Ejercicio 2--"); printf("nntt Elija el tipo de operacion que desea:"); printf("nntt 1. Sumar las matrices."); printf("nntt 2. Restar las matrices."); printf("nntt 3. Trasponer las matrices."); printf("nntt 4. Salir al menu principal."); printf("nntt Su opcion: "); //Depuracion del teclado por posibles "Overflow". fflush(stdin); //Lectura de la opcion deseada por el usuario. scanf("%i", &Opcion2); printf("n"); //Condicion que nos permite introducir los datos si el usuario ha //escogido una opcion que requiera lectura de datos. if(Opcion2<4 && Opcion2>0) { //Peticion de los datos de la matriz 1. printf("nIntroduzca los valores de la Matriz 1:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz1[Fil][Col]); } } printf("n"); //Peticion de los datos de la matriz 2. printf("Introduzca los valores de la Matriz 2:n"); //Bucle para rellenar cada celda de la matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("Valor x = %i, y = %i: ", Fil, Col); scanf("%f", &Matriz2[Fil][Col]); } } } //Selector que nos lleva a la opcion seleccionada por el usuario. switch(Opcion2) { //Opcion_ Suma de matrices. case 1: printf("nHa elegido suma de matrices."); //Bucle para calcular la suma de la misma celda de cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la suma de cada componente. Matriz3[Fil][Col]=Matriz1[Fil][Col]+Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la suma de las matrices es:nn"); //Bucle para representar el valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; //Opcion: Resta de matrices. case 2: printf("nHa elegido resta de matrices."); //Bucle para calcular la resta de los valores de la misma celda de //cada matriz. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { //Calculo de la resta de cada valor. Matriz3[Fil][Col]=Matriz1[Fil][Col]-Matriz2[Fil][Col]; } } //Representacion de los resultados obtenidos por pantalla. printf("nnEl resultado de la resta de las matrices es:nn"); //Bucle para representar cada valor de cada celda. for(Fil=0; Fil<3; Fil++) { for(Col=0; Col<3; Col++) { printf("%7.1f", Matriz3[Fil][Col]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de los datos por pantalla. clrscr(); break; //Opcion: Trasposicion de matrices. case 3: //Bucle para rellenar cada valor de la trasposicion de la matriz 1. for(Col=0; Col<3; Col++) { for(Fil=0; Fil<3; Fil++) { //Asignacion de valores. MatrizTp1[Fil1][Col1]=Matriz1[Fil][Col]; //Incremento de la columna de la matriz traspuesta para asignar //los valores correctamente. Col1++; } //Incremento de la fila de la matriz traspuesta para asignar los //valores correctamente. Fil1++; //Vuelta a la columna 0 para asignar los valores de una fila nueva. Col1=0; } //Vuelta a las coordenadas 0,0 de la matriz traspuesta. Fil1=0; Col1=0; //Bucle para rellenar cada valor de la trasposicion de la matriz 2. for(Col=0; Col<3; Col++) { for(Fil=0; Fil<3; Fil++) { //Asignacion de valores. MatrizTp2[Fil1][Col1]=Matriz2[Fil][Col]; //Incremento de la columna de la matriz traspuesta para asignar //los valores correctamente. Col1++; } //Incremento de la fila de la matriz traspuesta para asignar los //valores correctamente. Fil1++; //Vuelta a la columna 0 para asignar valores a una fila nueva. Col1=0; } //Representacion de los resultados por pantalla. printf("nnEl resultado de la trasposicion de la Matriz 1 es:nn"); //Bucle para representar cada celda de la matriz 1. for(Fil1=0; Fil1<3; Fil1++) { for(Col1=0; Col1<3; Col1++) { printf("%7.1f", MatrizTp1[Fil1][Col1]); } printf("n"); } // printf("nnEl resultado de la trasposicion de la Matriz 2 es:nn"); //Bucle para representar cada celda de la matriz 2. for(Fil1=0; Fil1<3; Fil1++) { for(Col1=0; Col1<3; Col1++) { printf("%7.1f", MatrizTp2[Fil1][Col1]); } printf("n"); } printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; //Opcion: Volver al menu principal. case 4: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("Por favor, escoja una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); } break; //Opcion para salir del programa. case 3: //Limpieza de pantalla. clrscr(); break; //Resto de opciones. default: printf("Por favor, introduzca una opcion valida."); printf("nPulse una tecla para continuar."); getch(); //Limpieza de pantalla. clrscr(); break; } //Condicion del bucle para repetir los diferentes submenus. }while(Opcion2!=4); //Condicion del bucle para salir del programa. }while(Opcion1!=3); }
7
« en: Lunes 15 de Noviembre de 2010, 20:59 »
ESTO ES LO QUE HE HECHO
#include <stdio.h>// libreria general
void main()//modulo principal { int ind, num, j, suma, columna; //declaracion de variables int matriz[3][4];//declaracion del array for (ind = 0; ind < 4; ind++) { //bucle for for (j = 0; j < 3; j++) { printf("introduzca los numeros para la matriz %d,%d: ", j,ind); //intriducir los datos de la array scanf("%d", &num);//cargar los datos matriz[j][ind] = num; } } printf("introduzca la columna: ");//elegir la columna que se desea ver scanf("%d", &columna);//cargar la columna que se desea }//fin del programa
8
« en: Lunes 15 de Noviembre de 2010, 20:40 »
Buenas noches,necesitaria ayuda con un programa, soy principiante en programacion en C++. Alguien sabe hacer este programa, gracias.
Escribir un programa que visualice la siguiente salida, utilizando instrucciones repetitivas.
1 1 2 1 2 3 1 2 3 4 1 2 3 1 2 1
Páginas: [1]
|
|
|