Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kayron8

#11
Programación C/C++ / Re: Me tiene loco
7 Abril 2013, 20:33 PM
Que foro más completo la leche jajaja

A parte de resolver temas de programación también se dan clases de geografía e idiomas jajaja

¡Y avesudra no hay ningún problema que contestes por mi parte :)!

¡Gracias por el aporte rir3760!

Saludos :D
#12
Programación C/C++ / Re: Me tiene loco
7 Abril 2013, 15:02 PM
Una cosilla, yo el EOF sí que se lo que es, lo que pasa que en clase no lo hemos hecho aún, ¿como lo puedo substituir para que me siga funcionando?

Gracias una vez más :D
#13
Programación C/C++ / Re: Me tiene loco
7 Abril 2013, 13:42 PM
Cita de: amchacon en  7 Abril 2013, 13:16 PM
Yo lo veo entero...

Bien, una pregunta más, ¿los resultados de las operaciones, que es más correcto, mostrarlas en el switch o en el main?

¿Para mostrarlos con el printf debo poner un & delante del nombre de la variable o algo así?

Es decir, printf("El resultado de la suma es: %f",&resul);

¿O estoy equivocado?

Un saludo
#14
Programación C/C++ / Me tiene loco
7 Abril 2013, 12:31 PM
Muy buenos días a todos y a todas, por si no tuviera suficiente con las funciones, ya entramos de lleno al paso por referencia y la recursividad :(

Tengo el siguiente ejercicio que creo que lo tengo casi hecho pero de tal caos que tengo en mi mente no sé cómo continuar...

El ejercicio dice lo siguiente:
4.- Realizar un programa que pida dos números enteros por teclado y muestre por
pantalla el siguiente menú:
+ --> SUMAR      
- --> RESTAR
* --> MULTIPLICAR
/ --> DIVIDIR
^ --> POTENCIA
! --> FACTORIAL
s --> SALIR

El usuario deberá elegir introducir dos valores y a continuación elegir una opción
(pulsando el carácter correspondiente), el programa deberá mostrar el resultado por pantalla.
En este caso para calcular el resultado habrá que llamar a una función con el siguiente prototipo:
void operacion (int n1, int n2, char oper, float* resul, int *error);
siendo:
 • n1, n2: dos parámetros pasados por valor que representan los dos números sobre
los que se quiere operar.
 • oper: un parámetro pasado por valor que indica el tipo de operación que se debe
realizar sobre n1 y n2. Así si queremos realizar una suma este parámetro deberá tener el valor '+', siendo para el resto de los casos: resta '-', multiplicación: '*',
división '/', potencia '^', factorial '!'.
 • result: es un parámetro pasado por referencia donde se almacenará el resultado
de la operación.
 • error: es un parámetro pasado por referencia donde se almacenará si la
operación se ha resuelto o no con éxito. Los posibles valores que puede tomar
son:
o -1: si ha habido problemas al realizar la operación, como por ejemplo una
división entre cero o el factorial de un número negativo.
o 1: si la operación concluyó con éxito.

El código que llevo hasta ahora, es el siguiente:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//PROTOTIPS
void operacion(int n1, int n2, char oper, float *resul, int *error);
float fact(float n1);

//BLOC PRINCIPAL
int main(){
   char opcio;
   int num1=0,num2=0,error;
   float result=0;
   
   //Demanem 2 numeros a l'usuari
   printf("Introdueix el primer numero:\n");
   scanf("%d",&num1);
   
   printf("Introdueix el segon numero:\n");
   scanf("%d",&num2);
   
   //Mostrem el menú
do{
       printf("+ --> SUMAR\n");
       printf("- --> RESTAR\n");
       printf("* --> MULTIPLICAR\n");
       printf("/ --> DIVIDIR\n");
       printf("^ --> POTENCIA\n");
       printf("! --> FACTORIAL\n");
       printf("s --> SALIR\n");
       
       //Usuari tria una opció
printf("Selecciona una opcio:\n");
       scanf("%c",&opcio);
       
       //Cridem el procediment
       operacion(n1, n2, oper, *resul, *error);
   
//Condició de sortida de while    
   }while(opcio!='s');
 
   system("pause");
   return 0;
}

//PROCEDIMENT
void operacion(int n1, int n2, char oper, float *resul, int *error){
    *error=1;
    switch(oper){
             case '+':
                  *resul=n1+n2;
                      break;
             case '-':
                  *resul=n1-n2;
                      break;
             case '*':
                  *resul=n1*n2;
                      break;
             case '/':
                      if(n2==0)*error=-1;
                      else *resul=n1/n2;
                      break;
             case '^':
                  *resul=pow(n1,n2);
                      break;
             case '!':
                  if(n1==0 || n2==0)*error=-1;
                  else
                  printf("El factorial de n1 es: %lf\n",fact(n1));
                  printf("\n");
                      break;
             case 's':
                  system("exit");
                      break;
             default:
                      printf("No has escollit una opcio correcta\n");                  
    }
}

//FUNCIÓ
float fact(float n1){
   if(n1==0 || n1==1)
      return 1;
   else
       return n1*factorial(n1-1);
}


Espero que me puedan ayudar :D
#15
Programación C/C++ / Re: Nuevo problema
31 Marzo 2013, 17:16 PM
Cita de: kayron8 en 31 Marzo 2013, 16:45 PM
Si hombre, si, tranquilo xD.
El caso es que ya hice esa función y me sale un error que no comprendo :S

#include<stdio.h>
#include<stdlib.h>

//Prototips
void InicialitzarVector(int vector[],int gran);
void DemanaValors(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],float suma);
void Mitjana(int vector[],float gran);
void MaxMitMin(int vector[],float gran);

//Bloc principal    
int main(){
int vector[6],num=6;

InicialitzarVector(vector,num);
DemanaValors(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Demanem els elements del vector a l'usuari
void DemanarValors(int vector[],int gran){
int i=0;
for (i=0;i<gran;i++){
printf("Introdueix el valor %d: ",i+1);
   scanf("%d",&vector[i]);
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma(int vector[],float gran){
int i=0;
float suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %.2f \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana(int vector[],float gran){
int i=0;
float mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %.2f \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin(int vector[],float gran){    
int i=0;
float mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
}
printf("El maxim es: %.2f \n",max);
printf("La mitjana es: %.2f \n",mitjana);
printf("El minim es: %.2f \n",min);
}


El error que me aparece al compilarlo es:
In function 'DemanarValors': [Error] expected declaration or statement at end of input

Muchas gracias :D

¡Ya lo arreglé!
#16
Programación C/C++ / Re: Nuevo problema
31 Marzo 2013, 16:45 PM
Si hombre, si, tranquilo xD.
El caso es que ya hice esa función y me sale un error que no comprendo :S

#include<stdio.h>
#include<stdlib.h>

//Prototips
void InicialitzarVector(int vector[],int gran);
void DemanaValors(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],float suma);
void Mitjana(int vector[],float gran);
void MaxMitMin(int vector[],float gran);

//Bloc principal    
int main(){
int vector[6],num=6;

InicialitzarVector(vector,num);
DemanaValors(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Demanem els elements del vector a l'usuari
void DemanarValors(int vector[],int gran){
int i=0;
for (i=0;i<gran;i++){
printf("Introdueix el valor %d: ",i+1);
   scanf("%d",&vector[i]);
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma(int vector[],float gran){
int i=0;
float suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %.2f \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana(int vector[],float gran){
int i=0;
float mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %.2f \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin(int vector[],float gran){    
int i=0;
float mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
}
printf("El maxim es: %.2f \n",max);
printf("La mitjana es: %.2f \n",mitjana);
printf("El minim es: %.2f \n",min);
}


El error que me aparece al compilarlo es:
In function 'DemanarValors': [Error] expected declaration or statement at end of input

Muchas gracias :D
#17
Programación C/C++ / Re: Nuevo problema
31 Marzo 2013, 14:34 PM
Bueno pues dejo la función comentada para que vea el profe que la tengo hecha pero que no tiene mucha lógica.

Gracias por todo :)
#18
Programación C/C++ / Re: Nuevo problema
31 Marzo 2013, 14:16 PM
Claro ese es el problema que no logro entender del ejercicio, la primera función que se nos exige, es que pongamos todos los elementos del vector a 0.

Saludos :D
#19
Programación C/C++ / Nuevo problema
31 Marzo 2013, 14:07 PM
Hola buenos días, pues aquí tengo otro ejercicio problemático, espero que me puedan ayudar (me aparece todo 0 de nuevo):

La práctica consiste en implementar una aplicación usando funciones.
El programa en C gestionará la realización de determinadas operaciones en un vector de enteros de MAX (6, per ejemplo) posiciones:
 • Introducción de todos los elementos del vector (Altas).
 • Visualización de todos los elementos (Listado).
 • Visualización del elemento que se encuentra en una determinada posición (Consulta por    
   Posición).
 • Visualizar la suma total de los elementos del vector (Suma)
 • Visualizar la media aritmética de los elementos del vector (Media)
 • Visualizar el valor máximo, mínima y la media (MaxMedMin)

Se requiere diseñar el programa de forma modular, de manera que cada función se encargue de manipular los datos de la forma apropiada.

Se nos exige que haya como mínimo les siguientes acciones y funciones:
 • Función InicializarVector  (todos los valores a 0)
 • Función VisualizarMenu
 • Función Listado
 • Función ConsultarPosicion
 • Función Suma
 • Función Media
 • Función MaxMedMin

El código que llevo por ahora es el siguiente (sé que está en catalán, es para no andar traduciéndolo y que la vaya liando por ahí en medio, aun y así creo que es entendible):
#include<stdio.h>
#include<stdlib.h>

//Prototips
void InicialitzarVector(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],int suma);
void Mitjana(int vector[],int gran);
void MaxMitMin(int vector[],int gran);

//Bloc principal    
int main(){
int vector[6]={8,4,2,0,1,5},num=6;

InicialitzarVector(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma (int vector[],int gran){
int i=0,suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %d \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana (int vector[],int gran){
int i=0,mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %d \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin (int vector[],int gran){    
int i=0,mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
printf("El maxim es: %d \n",max);
printf("El minim es: %d \n",min);
printf("La mitjana es: %d \n",mitjana);
}


De nuevo, muchas gracias por su tiempo y ayuda :)
#20
La verdad es que sí, me hace falta un buen repaso. Programo en varios lenguajes y me lio bastante :(

La condición while, la remplace con tú permiso, por mi for antiguo, este cambio lo hice porque con tu código me imprime asteriscos de forma infinita.

Luego una pequeña tontería, en la línea 11, cuando escribes scanf("%ud",&num);
¿no sería scanf("%d",&num);?

Muchas gracias de nuevo