elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  triangulo problema al compilar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: triangulo problema al compilar  (Leído 2,562 veces)
kaede_

Desconectado Desconectado

Mensajes: 43


Ver Perfil
triangulo problema al compilar
« en: 13 Agosto 2011, 04:03 am »

Hola amigos sigo en mi curso de programacion solo que aun no encuentro la manera de compilarlo..
el ejercicio es multiple tanto en baze areaa y altur

alguien me puede echar una mano?

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])

{
    int opera;
    printf("EJERCICIOS DE LOS TRIANGULOS ........ /n");
    printf("============================ \n\n\n");
    printf("1) para calcular el area de un triangulo \n");
    printf("\t2) para calcular la base \n");
printf("3) para calcular la altura \n\n");
printf("ingrese una opcion ........ ");
scanf("%f",&operacion);
switch(operacion)
{
                 float area, altura, base;
                 case A:
                      printf("\nAREA DEL TRIANGULO \n");
                      printf("ingrese la base ........ ");
                      scanf("%d",&base);
                      printf("ingrese la altura ........ ");
                      scanf("%d",&altura);
                      printf("el area del triangulo es %d ",base*altura/2);
                      break;
                     
                      case 2:
                           printf("\nBASE DE UN TRIANGULO \n");
                           printf("ingrese el area ........ ");
                           scanf("%d",&area);
                           printf("ingrese la altura ........ ");
                           scanf("%d",&altura);
                           printf("la base de area del triangulo es %d ",2*area/altura);
                           break;
                           
                           case 3:
                                printf("\nALTURA DE UN TRIANGULO \n");
                                printf("ingrese el area ........ ");
                                scanf("%d",&area);
                                printf("ingrese la base ........ ");
                                scanf("%d",&base);
                                printf("la base de area del triangulo es %d ",2*area/base);
                                break;
                               
                                default:
                                        printf(" nada mas ........ ");
                                       
                                        }
                                       
                                        system("PAUSE");
                                        return EXIT_SUCCESS;
                                       
                                        }

                                       
                               
                           
                     
                     
                 


« Última modificación: 13 Agosto 2011, 04:30 am por kaede_ » En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: triangulo problema al compilar
« Respuesta #1 en: 13 Agosto 2011, 04:55 am »

Primero:
Código
  1. scanf("%f",&operacion);
No definiste la variable "operacion".

Supongo que la defines aca:
Código
  1. int opera;
Pero esto debería ser:
Código
  1. float operacion;

Después en el switch haces esto:
Código
  1. case A:
  2. (...)
  3. case 2:
¿ ... ?

Tenés que verificar los errores que tira cuando intentas compilarlo, si los lees seguramente te das cuenta de estas cosas.

Edito:
No te acostumbres al system("pause"); tenés otras alternativas.
Y si pones tu código con las etiquetas [ code=c ][ /code] sería más legible.


En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: triangulo problema al compilar
« Respuesta #2 en: 13 Agosto 2011, 16:27 pm »

Buenas:

Soy un "super-principiante", asi que para practicar he decidido corregir los errores de este script y modificarlo un pelín para que funcione (aun después de corregir los errores, el programa se ejecuta pero no realiza ninguna operación), aqui te dejo el código final y abajo lo comento:

Código:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{
    int operacion, salir=0;
    float area, altura, base;
    
    do {
    
    printf("EJERCICIOS DE LOS TRIANGULOS........ \n\n");
    printf("============================ \n\n\n");
    printf("1) para calcular el area de un triangulo \n");
    printf("2) para calcular la base \n");
    printf("3) para calcular la altura \n");
    printf("4) Salir \n");
    scanf("%i", &operacion);
    
    switch (operacion)
    
    {
                 case 1:
                      printf("\nAREA DEL TRIANGULO \n");
                      printf("ingrese la base ........ ");
                      scanf("%d",&base);
                      printf("ingrese la altura ........ ");
                      scanf("%d",&altura);
                      printf("el area del triangulo es %d ", base*altura/2);
                      break;
                    
                      case 2:
                           printf("\nBASE DE UN TRIANGULO \n");
                           printf("ingrese el area ........ ");
                           scanf("%d",&area);
                           printf("ingrese la altura ........ ");
                           scanf("%d",&altura);
                           printf("la base de area del triangulo es %d ",2*area/altura);
                           break;
                          
                      case 3:
                                printf("\nALTURA DE UN TRIANGULO \n");
                                printf("ingrese el area ........ ");
                                scanf("%d",&area);
                                printf("ingrese la base ........ ");
                                scanf("%d",&base);
                                printf("la base de area del triangulo es %d ",2*area/base);
                                break;
                                
                                case 4:
                                    
                                     salir = 1;
                                     break;
                                    
                              
                                default:
                                        printf(" Opcion invalida. \n\n");
                                      
                                        }
                                        
                                        }while (salir == 0);
                                      
                                        system("pause");
                                        return 0;
                                        }


En primer lugar te listo los errores para que los tengas en cuenta:

1- Has puesto:

Código:
int opera;

En vez de:

Código:
int operacion;

Esto no tiene ninguna importancia, puede pasarle a cualquiera con las prisas.

2- Has puesto:

Código:
case A:
(...)
case 2:

En cierto modo es correcto, pero deberás especificarle al usuario que si quiere usar la primera opción debe ingresar "A". Sin embargo hay un error al llamar a esta función, te explico:

Cuando es número se pone :

Código:
case 1:
(...)

Pero cuando es una letra debe ir entre comillas:

Código:
case 'A': //COMILLAS SIMPLES [''], NO COMILLAS DOBLES [""]
(...)

Hasta ahi los errores comentados por CrisQC.

3- Has llamado mal la variable "operacion", fíjate que has puesto:

Citar
scanf("%f",&operacion);

Sin embargo, tú la has declarado como un integer (int), por tanto debes llamarla asi:

Citar
scanf("%i",&operacion);

Esos son los errores, sin embargo yo le he añadido una cuarta opción, "salir", de la siguiente manera:

1- Cuando declaras las variables añades una más:

Citar
int operacion, salir=0;
float area, altura, base;

Y ahora usamos la función "do while". Se quedaría asi:

Citar
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{
    int operacion, salir=0;
    float area, altura, base;
    
    do {

//TODO LO QUE SUCEDERÁ MIENTRAS SE CUMPLA LA OPCIÓN SEÑALADA EN WHILE

                                        
                                        }while (salir == 0); // MIENTRAS SALIR VALGA CERO EL PROGRAMA CONTINUARÁ, Y CUANDO HAGAS UNA OPERACIÓN VOLVERÁ A COMENZAR DESDE EL PRINCIPIO PIDIÉNDOTE QUE SELECCIONES SI QUIERES CALCULAR EL AREA LA BASE O LA ALTURA, SIN EMBARGO CUANDO DEJE DE CUMPLIRSE ESTA OPCIÓN EL PROGRAMA FINALIZARÁ.

                                      
                                        system("pause");
                                        return 0;
                                        }


Entonces añadimos un nuevo caso:

Citar
(...)
                      case 3:
                                printf("\nALTURA DE UN TRIANGULO \n");
                                printf("ingrese el area ........ ");
                                scanf("%d",&area);
                                printf("ingrese la base ........ ");
                                scanf("%d",&base);
                                printf("la base de area del triangulo es %d ",2*area/base);
                                break;
                                
                                case 4:
                                    
                                     salir = 1;
                                     break;

                                    
                              
                                default:
                                        printf(" Opcion invalida. \n\n");
                                      
                                        }
                                        
                                        }while (salir == 0);
                                      
                                        system("pause");
                                        return 0;
                                        }

Si seleccionas 4, "salir" cambiará su valor y ahora valdrá 1, por tanto ya no se cumple la condición de "while" y entonces el programa finaliza.

================================================


Bueno, hasta ahi lo que he conseguido hacer con mis bajos conocimientos de 2 dias leyendo tutoriales, asi que si los expertos pueden echarle un vistazo y decirme si puedo mejorar en algo lo agradecería (como ya dije en otro tema yo uso "cout", "cin", y otras funciones, no sé como se le llamaría a este "estilo" de programación en C++, pero asi aprendo las diversas formas también).

Espero que te sirva kaede. Saludos.
« Última modificación: 13 Agosto 2011, 22:38 pm por Alien-Z » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: triangulo problema al compilar
« Respuesta #3 en: 13 Agosto 2011, 21:43 pm »

Hola Alien-Z

cin y cout son de C++, que se encuentran en <iostream> (no existe en C), pero printf y scanf se encuentran en <stdio.h> de C o <cstdio> de C++, por lo tanto para que tu código funcione debes incluirla o sustutuir printf por cout y scanf por cin. Otra cosa, no te acostumbres a utilizar system("pause"), procura que tu código sea estándar, léete esto que te vendrá muy bien.

Otra cosa que quería decirte es que me gusta que estructures el código con las líneas en blanco y las indentaciones, así es mucho más legible, aunque te vas hacia la derecha jajajaja.

En cuanto al código no puedo probarlo ahora mismo asíque no puedo ayudarte con eso.

Saludos



EDITO: estoy viendo que utilizas scanf("%d",&base), scanf("%d",&altura)..... cuando base y altura son de tipo float. Deberías utilizar scanf("%f",&base);
« Última modificación: 13 Agosto 2011, 21:48 pm por satu » En línea

Breakbeat como forma de vida
Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: triangulo problema al compilar
« Respuesta #4 en: 13 Agosto 2011, 22:27 pm »

Gracias por el comentario Satu, me leeré el link que me has pasado.

Citar
EDITO: estoy viendo que utilizas scanf("%d",&base), scanf("%d",&altura)..... cuando base y altura son de tipo float. Deberías utilizar scanf("%f",&base);

Esa parte la copié literal del código de kaede (es él/ella el que se va a la derecha xD) ni me había dado cuenta de ese fallo, de todas formas, lo he compilado y ejecutado con las correciones que hice y me ha ido correctamente, ¿eso es normal? (o alomejor si lo arreglé cuando lo compilé pero aqui se me olvidó).
« Última modificación: 13 Agosto 2011, 22:29 pm por Alien-Z » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: triangulo problema al compilar
« Respuesta #5 en: 15 Agosto 2011, 15:51 pm »

Hola

Sí es normal que compile, pero el compilador te lanza unos warnings avisándote

Saludos
En línea

Breakbeat como forma de vida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al compilar
Java
layker 3 3,883 Último mensaje 18 Noviembre 2008, 03:15 am
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines