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,'');
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
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:\>
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,'');
Muchas gracias a los 2, lo que me dijeron fue de mucha ayuda
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);
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 X 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.
Edad: 36
Registrado: 10 Ago 2006
Mensajes: 808
Ubicación: encadenado al ánima
Carrera: Informática
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.
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.
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.
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.