Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
sebamoron86
Nivel 3


Edad: 37
Registrado: 14 Nov 2007
Mensajes: 59
Ubicación: Moron
Carrera: Informática
argentina.gif
MensajePublicado: Mar Jun 03, 2008 10:02 pm  Asunto:  Dudas bobas con Pascal Responder citandoFin de la PáginaVolver arriba

Hola hice este programa en pascal que consiste en una dfermacia que aplica el 10 % de descuentos en los remedios y tiene que aparecer por pantalla el precio el descuento y lo que van a pagar
Cita:
Program ejer12;
uses
crt;
Var Num1, Num2, Num3: integer;
Begin
clrscr;
writeln ('Ingrese el precio del remedio');
readln (Num1);
Writeln ('PRECIO DEL PRODUCTO ', Num1,'');

Gotoxy (23,4);
Writeln ('-');
Num2:= Num1 div 10;
Writeln ('DESCUENTO ');
Gotoxy (25,5);
writeln ('',Num2,'');
Gotoxy (23,6);
Writeln ('-----');


Num3:= Num1 - Num2;
writeln ('VALOR A PAGAR ' );
Gotoxy (24,7);
writeln ('',Num3,'');
readkey
End.

Mis preguntas son las siguientes
1)¿como puedo hacer para que haga la division con decimales? (pero a la vez que solo me queden los centavos, por ejemplo si el producto sale 38,25 el 10% seria 3,825 el ultimo 5 no me intereza?
2)¿como multilipo con un numero decimal? si pongo 3,25 e salta error se esperaba encontrar un ; y se encontro una ,?
GRACIAS


Escorpio  Tigre OfflineGalería Personal de sebamoron86Ver perfil de usuarioEnviar mensaje privado
Antilope
Nivel 5


Edad: 37
Registrado: 30 Ago 2006
Mensajes: 194

Carrera: Informática
CARRERA.informatica.2.gif
MensajePublicado: Mar Jun 03, 2008 10:28 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Buenas!


Te respondo:

1) Suponete que el numero que queres motrar con 2 decimales es un double PRECIO. Para que muestre solamente 2 decimales (y que te lo muestre sin notacion cientifica) tenes que poner:
PRECIO:0:2

El 0 fue arbitrario. El 2 es la cantidad de decimales desp de la coma que queres que te muestre.

2) Pasa que pascal usa el sistema de numeracion con punto. Si queres 3,25 tenes que poner 3.25


Espero que te sirva ^_^

_________________
Cantando con Windows:
Código:
C:\>If you're happy and you know it, syntax error!
Syntax error
C:\>If you're happy and you know it, syntax error!
Syntax error
C:\>If you're happy and you know it, and you really want to show it, if you're happy and you know it syntax error
Syntax error
C:\>

Aquario Género:Masculino Tigre OfflineGalería Personal de AntilopeVer perfil de usuarioEnviar mensaje privado
gsoriano
Nivel 8



Registrado: 08 Jun 2006
Mensajes: 647

Carrera: Informática y Sistemas
CARRERA.informatica.3.jpg
MensajePublicado: Mie Jun 04, 2008 9:56 am  Asunto:  Re: Dudas bobas con Pascal Responder citandoFin de la PáginaVolver arriba

Las preguntas te las respondió antílope, te agrego un par de cositas no más, la función div hace la división entera de dos números, es decir,
Código:
7 div 2 = 3

Por lo que necesitas usar la / para dividir. Además tenes que cambiar el tipo de dato que usas, ya que deben ser números reales (real o double, para el uso que le das es lo mismo). Y al usar números reales es conveniente que formatees la salida, sino te va a aparecer en forma exponencial.
Con el programa:
Código:

program ej;
  var
       r : real;
begin
       r:= 5;
       writeln('El 5 es: ', r);
       r:= 1.123;
       writeln('El 1.123 es: ', r);
end.

La salida por pantalla es:
Código:
El 5 es:  5.000000000000000E+000
El 1.123 es:  1.123000000000000E+000

con los :0:2
Código:

program ej;
  var
       r : real;
begin
       r:= 5;
       writeln('El 5 es: ', r);
       r:= 1.123;
       writeln('El 1.123 es: ', r);
end.

al imprimir:
Código:
El 5 es: 5.00
El 1.123 es: 1.12

Si en lugar de un 0 pones otro valor lo que hace es dejarte como mínimo esa cantidad de números, si necesitas menos deja espacios en blanco.
Cita:
Program ejer12;
uses
crt;
Var Num1, Num2, Num3: real;
Begin
clrscr;
writeln ('Ingrese el precio del remedio');
readln (Num1);
Writeln ('PRECIO DEL PRODUCTO ', Num1:0:2,'');

Gotoxy (23,4);
Writeln ('-');
Num2:= Num1/10;
Writeln ('DESCUENTO ');
Gotoxy (25,5);
writeln ('',Num2:0:2,'');
Gotoxy (23,6);
Writeln ('-----');


Num3:= Num1 - Num2;
writeln ('VALOR A PAGAR ' );
Gotoxy (24,7);
writeln ('',Num3:0:2,'');
readkey
End.

_________________
Gonzalo - 480320

[CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)
[CasaInformática]. Discusión de temas relacionados a las carreras de Informática de la FIUBA.


Para aprender de los errores hay que reconocerlos.

 Género:Masculino  OfflineGalería Personal de gsorianoVer perfil de usuarioEnviar mensaje privado
sebamoron86
Nivel 3


Edad: 37
Registrado: 14 Nov 2007
Mensajes: 59
Ubicación: Moron
Carrera: Informática
argentina.gif
MensajePublicado: Sab Jun 07, 2008 3:16 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Muchas gracias a los 2, lo que me dijeron fue de mucha ayuda Smile
Ahora me surgio 2 problemas
1) Tengo que hacer un programa que te pida que ingreses 2 numeros y despues el simbolo de la operacion y que te muestre el resultado en patalla.
Lo hice y me quedo esto
Cita:
Program Ejerc11;

Uses
Crt;

Var
Num1, Num2, Suma, Resta, Mult, Divi : integer;
sim: integer;

Begin
Clrscr;
Writeln ('Ingrese un numero');
Readln (Num1);

Writeln ('Ingrese el segundo numero');
Readln (Num2);

Writeln ('Ingrese el simbolo de la operacion que desea realizar');
Readln (Sim);

Suma:= Num1 + Num2;
Resta:= Num1 - Num2;
Mult:= Num1 * Num2;
Divi:= Num1 div Num2;

Case Sim of
1 : writeln ('',Suma,'');
2 : writeln ('',Resta,'');
3 : writeln ('',Mult,'');
4 : writeln ('',Divi,'');

Else writeln ('Valor incorrecto');
end;

Readkey;
End.

El problema es que no puedo poner que apretes + (o -; o /; 0 XWink y te los sume (cuando hago esto cambio la variable sim a string)

2)En este tengo que hacer un programa que me diga la cantidad de cifras de un numero lo hice y quedo asi:
Cita:
Program Ejer8;

Uses
crt;

Var
Num: integer;

Begin
Clrscr;
writeln ('Ingrese un numero');
Readln (Num);
Case Num of
Num >1 and Num <10>10 and Num <100>100 or Num <1000 : writeln ('Tiene tres digitos');}
else writeln ('Numero no comprendido');
end;
Readkey;
end.

Y no se porque no anda.

Muchas gracias


Escorpio  Tigre OfflineGalería Personal de sebamoron86Ver perfil de usuarioEnviar mensaje privado
facundo.olano
Nivel 8


Edad: 36
Registrado: 10 Ago 2006
Mensajes: 808
Ubicación: encadenado al ánima
Carrera: Informática
argentina.gif
MensajePublicado: Sab Jun 07, 2008 7:10 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Creo que la linea

Cita:
Case Num of
Num >1 and Num <10>10 and Num <100>100 or Num <1000 : writeln ('Tiene tres digitos');}


No tiene demasiado sentido; las variantes del cases deben ser valore que puede tomar la variable sobre la que haceés el case (y esta debe ser un tipo discreto como un numero o un char), no pued3en ser conidciones. Deberías usar un if ahí.
Además, si bien no me acuerdo mucho la sintaxis de pascal, no creo que
Num <10>10 and Num <100>100 se evalúe bien a algo.

_________________
Image Image

Geminis Género:Masculino Gato OfflineGalería Personal de facundo.olanoVer perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioMSN Messenger
JuanC
Nivel 9


Edad: 36
Registrado: 02 Dic 2007
Mensajes: 1292
Ubicación: Quilmes, Bs As.
Carrera: Sistemas
argentina.gif
MensajePublicado: Sab Jun 07, 2008 9:22 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No conozco Pascal, pero todo es lo mismo...

¿Estás seguro que los simbolos matemáticos los tiene que tomar como integer?
Si un símbolo pueden sumar también numeros decimales

-----

Yo creo que en el primero deberías comparar strings (Usando If)...

Guardar el signo que se presione en una variable y ahi comparas...

Signo : Char;
Suma, Resta, Multiplicación, División, Num1, Num2 : Real;
.
.
.
If Signo="+"
Suma=Num1+Num2;
writeln ('',Suma,'');
EndIf;
.
.
.
If (Signo /= "+" && Signo /= "-" && Signo /= "*" && Signo /= "/")
writeln (''El signo presionado es desconocido'');

Así sucesivamente... No tengo idea de como es Pascal, pero para hacer un programa comun y corriente, lo haría asi...

-----

Y en el segundo, también con If, como te dijo horacio_funes...

_________________


Image

[tex]\mbox{¿Qué culpa tengo yo de tener la sangre } \mbox{\color{red}{roja}} \mbox{ y el corazón a la }izquierda\mbox{?}[/tex]

[tex]\mbox{Be water... my friend.}[/tex]

[tex]How\mbox{ }do\mbox{ }you\mbox{ }make\mbox{ }a\mbox{ }computer\mbox{ }blink?[/tex]

Aries Género:Masculino Dragón OcultoGalería Personal de JuanCVer perfil de usuarioEnviar mensaje privadoMSN Messenger
4WD
Administrador


Edad: 39
Registrado: 07 Sep 2006
Mensajes: 2430
Ubicación: Ingeniero
Carrera: Mecánica
argentina.gif
MensajePublicado: Lun Jun 09, 2008 12:39 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No miré lo último que pusieron, pero sepan que el parser del foro hace quilombo con los > y su opuesto. Suban un archivo TXT con el código o una imagen. Esa línea salió mal porque el foro entendió cualquier cosa.

_________________
ImageImage
ImageImage
ImageImage

Escorpio Género:Masculino Rata OfflineGalería Personal de 4WDVer perfil de usuarioEnviar mensaje privado
Lordx
Nivel 3


Edad: 35
Registrado: 30 Ago 2007
Mensajes: 52

Carrera: Informática
argentina.gif
MensajePublicado: Vie Ago 01, 2008 5:43 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Otra duda boba de pascal.
Es sobre la diferencia entre read y readln. En elgunos lugares lei que la diferencia radica en que con read al leer un dato, el cursor no se mueve a la siguiente linea, con readln si. Sin embargo, al probarlo en un programa en Pascal,con los dos procedimientos se mueve el cursor a la siguiente linea al pulsar Enter para que lea el dato. Neutral


Cancer Género:Masculino Dragón OfflineGalería Personal de LordxVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2877s ][ Pedidos: 20 (0.2016s) ]