• Jueves 14 de Noviembre de 2024, 04:39

Autor Tema:  problema aprendizaje  (Leído 3841 veces)

kosbalt

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
problema aprendizaje
« en: Lunes 4 de Julio de 2011, 22:58 »
0
hola buenas estoy empezando es esto de la programacion y despes de leerme un libro me fui a los ejercicios, el primero dice, hacer un programa que pida dos numeros y aga la media de estos
mi problema es el siguiente, he conseguido que me funcione, pero al ejecutarle coon por ejemplo 18 y 2 me sale que el resultado es 1,00000000E*1     -->10, pero no se que hacer para que me salga directamente 10 y no lo otro, me pueden hechar una mano, por otro lado no se como poner un contador, que cada vez que ponga el comando al ejecutarse cada vez que llege a ese punto me sume 1, he probado asi:
Citar
program contador

begin
 n:= 0;
 writeln('indique valor');
 n:= n+1;
write('n ', n)
end.
pero al compilarlo me da error en al linea 2, en la de n:= 0 no se que probar, pero no soy capaz, si me pueden hechar una mano grax

fonsi3

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #1 en: Martes 5 de Julio de 2011, 04:04 »
0
Donde esta la seccion var?? Alli declaras las variables que usaras en tu programa.
Ademas si deseas hacer un algoritmo que sume valores ingresados por teclado debes poner todo eso dentro un while loop, que evalue una condicion que sea el corte del programa, generlamente es algo asi:

"Hacer un programa que sume valores ingresados por teclado, siendo el valor 9999 la orden de cortar el programa", tonces eso ya te dice que el programa va a funcionar hasta que el usuario ingrese como valor 9999, inmediatemente asocias esto con un while loop.

El programa seria algo como esto;

Código: Pascal
  1. program CalcularPromedioDeValoresIngresadosPorTeclado
  2. // la variables que usare en mi programa
  3. var
  4.  
  5.     valor_ingresado: integer;
  6.     cantidad_valores_ingresados: integer;
  7.     sumandos: integer;
  8.     promedio: integer;
  9.    
  10. begin
  11.    
  12.     // inicializo sumandos donde ire sumando los valores ingresados por usuario
  13.     // si no hago cuanto sume esta variable mas el valor ingresado por el usuario
  14.     // me ocasinaria un error, ya que de todas formas al ser ambas variables del mismo
  15.     // tipo, sumandos esta indefinida, por se inicializa en 0
  16.     sumandos:= 0
  17.     // aca almacenera la cantidad de valores que usuario va ingresando...
  18.     cantidad_valores_ingresados:= 0;
  19.    
  20.     // se ingresa el primer valor
  21.     read( valor_ingresado );
  22.     // hasta que no se ingrese como valor "9999" el programa ejecuta
  23.     // lo que esta dentro de este while loop
  24.     while( valor_ingresado <> 9999 ) do begin
  25.        
  26.         // voy sumando valor_ingresado con el anterior
  27.         sumandos:= sumandos + valor_ingresado;
  28.         // es mas que obvio lo que hago aqui
  29.         cantidad_valores_ingresados:= cantidad_valores_ingresados + 1;
  30.        
  31.         // vuelta al ciclo
  32.         read( valor_ingresado )
  33.        
  34.     end;
  35.    
  36.     // se ha terminado de ingresado valores
  37.    
  38.     // calculo el promedio
  39.     // aqui el truco esta en usar la instruccion DIV, la cual me
  40.     // tira la parte entera de una division
  41.     promedio:= sumandos DIV cantidad_valores_ingresados
  42.    
  43.     // finalizo
  44.     writeln( 'El promedio de los valores ingresados es: ', promedio );
  45.     readln();
  46.     readln();
  47.  
  48. end.
  49.  
Cha che chi cho chu buenichimo!
http://mensoscripts.com

Links de interes: HTML | CCS2~CSS* | PHP
Indispensables tools]Firebug[/url] | Web Developer | FireFTP | Live Headers

kosbalt

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #2 en: Martes 5 de Julio de 2011, 10:52 »
0
hola, muchas gracias, intente modificar el  que tenai hecho, y me sige dando error al compilarlo, no se porque, dice que en la linea 20
este es el codigo:
Código: Pascal
  1.  program valormediodosnumeros;
  2.  
  3. var
  4.     a: integer;
  5.     b: integer;
  6.     n: integer; //suma
  7.     i: integer; // numero de ingresados
  8.     media: integer;
  9.  
  10. begin
  11.     n:=0;
  12.     i:= 0;
  13.     writeln('introducir primer numero');
  14.     readln(a);
  15.     n:=n+a;
  16.     i:=i+1;
  17.     writeln('Introducir segundo numero');
  18.     readln(b);
  19.     n:=n+b;
  20.     i:=i+1;
  21.     end;
  22.     media:= n DIV i;
  23. write('la media es ', media);
  24. end
  25.  

fonsi3

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #3 en: Martes 5 de Julio de 2011, 17:11 »
0
Tienes un end; que no deberia ir alli:

Código: Pascal
  1.      i:=i+1;
  2.      end;
  3.      media:= n DIV i;
  4.  
Cha che chi cho chu buenichimo!
http://mensoscripts.com

Links de interes: HTML | CCS2~CSS* | PHP
Indispensables tools]Firebug[/url] | Web Developer | FireFTP | Live Headers

kosbalt

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #4 en: Miércoles 6 de Julio de 2011, 16:29 »
0
hola buenas, me sigue dando error n la linea 23, la ultima
Código: Pascal
  1. program valormediodosnumeros;
  2.  
  3. var
  4.     a: integer;
  5.     b: integer;
  6.     n: integer; //suma
  7.     i: integer; // ingresados
  8.     media: integer;
  9.  
  10. begin
  11.     n:=0;
  12.     i:= 0;
  13.     writeln('introducir primer numero');
  14.     readln(a);
  15.     n:=n+a;
  16.     i:=i+1;
  17.     writeln('Introducir segundo numero');
  18.     readln(b);
  19.     n:=n+b;
  20.     i:=i+1;
  21.     media:= n DIV i;
  22. write('la media es ', media);
  23. end.
  24.  

fonsi3

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #5 en: Miércoles 6 de Julio de 2011, 19:10 »
0
Debe ser que la penultima linea:
Código: Pascal
  1. write('la media es ', media)
  2.  
lleva ";", cosa que no se deberia ir.

¿Que compilador estas usando? Ya que algunos compiladores son menos estrictos que otros con el tema de la "inmunda" sintaxis que Pascal utiliza. Te recomiendo Free Pascal. De todas formas, Pascal tiene ciertas conveciones que solo caben en la cabeza de un desquiciado mental, una es justamente que la ultima linea que precede a un end, no se debe llegar ";". Pero como repito, algunos compiladores le da lo mismo esto, asi que de todas formas es importante tener en cuenta estas cosas.
Cha che chi cho chu buenichimo!
http://mensoscripts.com

Links de interes: HTML | CCS2~CSS* | PHP
Indispensables tools]Firebug[/url] | Web Developer | FireFTP | Live Headers

kosbalt

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #6 en: Miércoles 6 de Julio de 2011, 20:31 »
0
como compilador utilizo el Free Pascal IDE
me sige dando error en lalinea 23
Código: Pascal
  1. program valormediodosnumeros;
  2.  
  3. var
  4.     a: integer;
  5.     b: integer;
  6.     n: integer; //suma
  7.     i: integer; // ingresados
  8.     media: integer;
  9.  
  10. begin
  11.     n:=0;
  12.     i:= 0;
  13.     writeln('introducir primer numero');
  14.     readln(a);
  15.     n:=n+a;
  16.     i:=i+1;
  17.     writeln('Introducir segundo numero');
  18.     readln(b);
  19.     n:=n+b;
  20.     i:=i+1;
  21.     media:= n DIV i;
  22. write('la media es ', media)
  23. end.
  24.  

kosbalt

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #7 en: Miércoles 6 de Julio de 2011, 21:03 »
0
he probado con otro compilador Dev-Pascal y con este no me dio problemas, muchas gracias por tu ayuda

sergio__

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: problema aprendizaje
« Respuesta #8 en: Viernes 8 de Julio de 2011, 01:39 »
0
te falta un ";" en la linea 23, ojo con eso que a veces es molesto cuando empezas y te tilda mas de un horajaja

un consejo, si la variable representa la suma, ponele de nombre "suma", sino suponete que tenes un codigo mas largo, tenes que ir a la seccion VAR donde pusiste el comentario para saber que "n" representa la suma