18/02/2020, 03:18:25 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: LISTADO ACTUALIZADO DE CURSOS
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: ¿Cómo repetir un programa?  (Leído 6875 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Watt
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 328


Dos numeros manejan el mundo?


Ver Perfil
« : 13/07/2008, 22:09:29 »

Hola, hice este codigo en C que calcula un determinante de 4x4 utilizando el metodo de menores complementarios con la primera fila, mi duda es como puedo hacer para cuando el algoritmo termine el programa haga una pregunta diciendo si desea insertar otra determinante o cerrar el programa.

Aca esta el codigo:

/* Programa que calcula Determinantes de  4x4* a partir de los elementos de la primera fila*/
/*Solo acepta numeros by Watt xD*/
#include<stdio.h>
main()
{
/*Declaracion de los elementos como determinantes y variables*/
printf("Inserte el elemento a11 , osea el de la primera fila y primera columna \n");
int a11;
scanf("%d", &a11);
printf("Inserte el elemento a12\n");
int a12;
scanf("%d", &a12);
printf("Inserte el elemento a13\n");
int a13;
scanf("%d", &a13);
printf("Inserte el elemento a14\n");
int a14;
scanf("%d", &a14);
printf("Inserte el elemento a21\n");
int a21;
scanf("%d", &a21);
printf("Inserte el elemento a22\n");
int a22;
scanf("%d", &a22);
printf("Inserte el elemento a23\n");
int a23;
scanf("%d", &a23);
printf("Inserte el elemento a24\n");
int a24;
scanf("%d", &a24);
printf("Inserte el elemento a31\n");
int a31;
scanf("%d", &a31);
printf("Inserte el elemento a32\n");
int a32;
scanf("%d", &a32);
printf("Inserte el elemento a33\n");
int a33;
scanf("%d", &a33);
printf("Inserte el elemento a34\n");
int a34;
scanf("%d", &a34);
printf("Inserte el elemento a41\n");
int a41;
scanf("%d", &a41);
printf("Inserte el elemento a42\n");
int a42;
scanf("%d", &a42);
printf("Inserte el elemento a43\n");
int a43;
scanf("%d", &a43);
printf("Inserte el elemento a44\n");
int a44;
scanf("%d", &a44);
/*Fin de elementos*/
printf("\n");
/*Muestra el determinante ingresado*/
printf("  El determinante %d %d %d %d \n" ,a11,a12,a13,a14);
printf("                        %d %d %d %d \n" ,a21,a22,a23,a24);
printf("                        %d %d %d %d \n" ,a31,a32,a33,a34);
printf("                        %d %d %d %d \n" ,a41,a42,a43,a44);
printf("\n");
printf("Aprete enter para resolverlo\n");
getchar();
printf("El resuldado del determinante es %d\n" , a11*(a22*a33*a44+a32*a43*a24+a42*a23*a34-a42*a33*a24-a22*a43*a34-a32*a23*a44)-a12*(a21*a33*a44+a31*a43*a24+a41*a23*a34-a41*a33*a24-a21*a43*a34-a31*a23*a44)+a13*(a21*a32*a44+a31*a42*a24+a41*a22*a34-a41*a32*a24-a21*a42*a34-a31*a22*a44)-a14*(a21*a32*a43+a31*a42*a23+a41*a22*a33-a41*a32*a23-a21*a42*a33-a31*a22*a43));
getchar();
}

P.D Como puedo agregarle lineas verticales al determinante?

Saludos.
En línea
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #1 : 14/07/2008, 04:20:42 »

Hola

 No sé muy bien cuales son tus conocimientos sobre C.

 En primer lugar lo lógico sería que el cálculo del determinante lo hiciese una función independiente del programa principal. Además para los elementos de la matriz sería mejor utilizar un array. Para nota hacer que la función determinante de manera recursiva y desarrollando por adjuntos, calcule un determinante de orden arbitrario.

 Pero fuera de esto y respondiendo estrictamente a tu pregunta puedes hacer algo así:

int opcion;
do {

 tu programa

 printf("Escoja (0) - para otro determinante, (1) - para terminar:\n");
 scanf("%d",&opcion);

while (opcion==0);

Saludos.
En línea
Watt
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 328


Dos numeros manejan el mundo?


Ver Perfil
« Respuesta #2 : 14/07/2008, 11:56:01 »

Gracias por tu respuesta, como veras mis conocimientos en C son basicos y estoy aprendiendo de tutoriales de internet, de a poco estoy utilizando mas herramientas y funciones.

Este es el codigo que me queda, pero el compilador me da error en la ultima linea:

/* Programa que calcula Determinantes de  4x4* a partir de los elementos de la primera fila*/
/*Solo acepta numeros*/
#include<stdio.h>
main()
{
/*Declaracion de los elementos como determinantes y variables*/
int opcion;
do {
printf("Inserte el elemento a11 , osea el de la primera fila y primera columna \n");
int a11;
scanf("%d", &a11);
printf("Inserte el elemento a12\n");
int a12;
scanf("%d", &a12);
printf("Inserte el elemento a13\n");
int a13;
scanf("%d", &a13);
printf("Inserte el elemento a14\n");
int a14;
scanf("%d", &a14);
printf("Inserte el elemento a21\n");
int a21;
scanf("%d", &a21);
printf("Inserte el elemento a22\n");
int a22;
scanf("%d", &a22);
printf("Inserte el elemento a23\n");
int a23;
scanf("%d", &a23);
printf("Inserte el elemento a24\n");
int a24;
scanf("%d", &a24);
printf("Inserte el elemento a31\n");
int a31;
scanf("%d", &a31);
printf("Inserte el elemento a32\n");
int a32;
scanf("%d", &a32);
printf("Inserte el elemento a33\n");
int a33;
scanf("%d", &a33);
printf("Inserte el elemento a34\n");
int a34;
scanf("%d", &a34);
printf("Inserte el elemento a41\n");
int a41;
scanf("%d", &a41);
printf("Inserte el elemento a42\n");
int a42;
scanf("%d", &a42);
printf("Inserte el elemento a43\n");
int a43;
scanf("%d", &a43);
printf("Inserte el elemento a44\n");
int a44;
scanf("%d", &a44);
/*Fin de elementos*/
printf("\n");
/*Muestra el determinante ingersado*/
printf("  El determinante %a11 %a12 %a13 %a14 \n" , a11, a12, a13, a14);
printf("                  %a21 %a22 %a23 %a24 \n" , a21, a22, a23, a24);
printf("                  %a31 %a32 %a33 %a34 \n" , a31, a32, a33, a34);
printf("                  %a41 %a42 %a43 %434 \n" , a41, a42, a43, a44);
printf("\n");
printf("Aprete enter para resolverlo\n");
printf("Escoja (0) - para otro determinante, (1) - para terminar:\n");
scanf("%d",&opcion);
while (opcion==0);
getchar();
}
}
En línea
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #3 : 15/07/2008, 16:55:21 »

Hola

 Una de las dos llaves que has puesto al final del programa sobra. Debe de ir antes del while:

do {

 tu programa

 printf("Escoja (0) - para otro determinante, (1) - para terminar:\n");
 scanf("%d",&opcion);

} while (opcion==0);

Saludos.
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #4 : 22/07/2008, 13:54:29 »

con un doble siclo for se obtiene mas correccion en el programa que intentas, Ahora te sugiero que hagas el algoritmo obteniendo el determinante a partir de operaciones elementales hasta obtener la matriz diagonal.
En línea

nunca seré buen matemático
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #5 : 22/07/2008, 13:55:38 »

Estudia del deitel y deitel de programación c / c++ , asi tu forma de programar mejorará
En línea

nunca seré buen matemático
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!