Autor Tema: un algoritmo en lenguaje C++

0 Usuarios y 1 Visitante están viendo este tema.

16 Octubre, 2012, 10:38 pm
Leído 2465 veces

milly

  • $$\Large \color{#5372a0}\pi\,\pi$$
  • Mensajes: 99
  • Karma: +0/-0
  • Sexo: Femenino
hola de nuevo yo por acá
ejercicio:

promediar N valores ingresados

algoritmo

leer<-t
s<-1
c<-2
 
repetir     s<- s+c
mientras  c<- c+1
c<=t

prom<- s/c
escribir prom

 


esta es la traduccion en lenguaje C++

#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int c,s,t,prom;
s=0;
c=1;
printf("ingresar t\n");
scanf("%i",&t);
while(c<=t)
{
s=s+c;
c=c+1;
prom=s/c;
}
printf("%i\n",prom);
getche();

a mi cuando lo pruebo me salta error en getche(); me podrian explicar por que y revisar el ejercicio muchas gracias

16 Octubre, 2012, 10:51 pm
Respuesta #1

Piockñec

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,266
  • Karma: +1/-0
  • Sexo: Masculino
Yo estudié el año pasado C++ en CodeBlocks, ojalá sea igual... xD

En tal caso, no necesitas la biblioteca math, ya que no vas a usar ninguna "función" matemática, sólo las operaciones. Te basta con la stdio.h. La biblioteca conio también la podrías sustituir por el scanf en vez de getch... bueno, es que soy muy ahorrador con la memoria ram xD Vayamos al problema!!!

Leyendo tu código, observo que:
1) El valor ingresado sirve de tope para el bucle, pero no es promediado.
2) s da 0,1,3,6,10... mientras c da 1,2,3,4...

En conclusión: Si creo que te pide lo que te pide (Que el usuario ingrese dos valores y el programa haga el promedio (o media aritmética)) está mal.


Si es como yo interpreto, mira lo que haría y por qué:

#include<stdio.h>
int main()
{
int c,s,prom;
printf("ingresar numeros a promediar\n");
scanf("%i,&s);
printf("\n");
scanf("%i,&c);
prom=(c+s)/2;
printf("\n %i",prom);
return 0;
}

Lo que he hecho ha sido pedir que ingrese dos números enteros (c y s), y sumarlos después y a lo que dé dividirlo por dos (media aritmética). En caso de que nos den más de dos números enteros, la función ya no vale: Hay que utilizar arrays. ¿Sabes lo que son?

Por cierto, el error que te da creo, CREO, que es porque es getchart, o getch, y no getche. No me hagas mucho caso en esta última apreciación que no recuerdo bien el nombre de los comandos, que hace un año que no doy programación y sólo di un semestre... pero me gustaba bastante ;)

P.S.: Cuando en un ejercicio te dan una variable (como en este caso, N)...
promediar N valores ingresados
...es normal que te pidan el programa genérico: Para cualquier número N de valores. O también para uno definido por el usuario (Es decir, le preguntas al usuario cuántos números va a introducir).
En el primer caso, se usan arrays. En el segundo, también... aunque en mi opinión se podría hacer sin usar arrays ;)

Simplemente tendrías que pedir primero el número de números que va a introducir, N, y luego cada número introducido lo divides por N y se lo sumas a prom (que está inicializado a 0). Al final, el prom que tengas será el promedio ;)

return 0;
}

16 Octubre, 2012, 11:38 pm
Respuesta #2

Abdulai

  • Moderador Global
  • Mensajes: 3,044
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
....
........
printf("%i\n",prom);
getche();

a mi cuando lo pruebo me salta error en getche(); me podrian explicar por que y revisar el ejercicio muchas gracias

Porque te falta la llave para indicar la finalizacion de main()

........
printf("%i\n",prom);
getche();
}