[ Foro de Pascal ]

Pascal ISO 10206 ayuda programas

25-Oct-2013 18:21
Invitado (PeliPeppe)
1 Respuestas

Bueno,mis dudas son:
qué es crt?cómo se usa?
qué es eoln?cómo se usa?
Sabéis de alguna página/ejemplo sobre un programa en PASCAL ISO 10206 que venga con cómo hacer una función para saber si es o no capicúa?
porqué no me compila el siguiente programa?


program ecuacion_tipicaeso(input,output);
const
i=-1;
Var
//masmenos puede ser prescindible CAMBIO EL NOMBRE DE MASMENOS POR EL DE ECUACIONMAS Y ECUACIONMENOS QUITO AMBAS
a,b,c,x,discriminante,divisor:real;

Begin

Write('dame a b c y yo calculo X ');
readln(a,b,c);
writeln('lo que he recibido es: ',a,'x^2+',b,'x+',c);
writeln('en formula-> X= -',b,' + - raizcuadrada(',b*b,'-',4*a*c,')/',2*a); 
//HAY QUE PONERLO CUANDO LO HAGAMOS EN LOS ÚLTMOS LO DE LA FÓRMULADARRIBA
//IF ANIDADOS.
//**************************************?
//CAMBIO DISCRMINANTE SQRT(b*b-4*a*c) PARA MASMENOS QUITO EL SQRT DEL DISCRIMINANTE QUITO MASMENOS
discriminante:=(b*b-4*a*c);
divisor:=2*a;
//ecuacionmas:=-b+sqrt(discriminante);
//ecuacionmenos:=-b-sqrt(discriminante); SOBRA

if discriminante>0 then
begin
if divisor>0 then
begin
writeln(' X= -',b,' + raizcuadrada(',b*b,'-',4*a*c,')/',2*a,' = ',-b+sqrt(discriminante)/(divisor));
writeln(' X= -',b,' - raizcuadrada(',b*b,'-',4*a*c,')/',2*a,' = ',-b-sqrt(discriminante)/(divisor)) //cuidado puntocoma
end
else
writeln('el divisor es igual a cero y no se puede realizar la operacion'); 
end //por aqui hay error
else
begin
if divisor>0 then
begin
writeln(' X= -',b,' + raizcuadrada(',b*b,'-',4*a*c,')/',2*a,' = ',-b+sqrt(discriminante)/(divisor),'i');
writeln(' X= -',b,' - raizcuadrada(',b*b,'-',4*a*c,')/',2*a,' = ',-b-sqrt(discriminante)/(divisor),'i') 
end
else
writeln('el divisor es igual a cero y no se puede realizar la operacion'); 
Readln
END. 


Lo que está con // son comentarios míos para ver los cambios que hice.
El problema que se nos plantea es el siguiente:

Codifique un programa que resuelva cualquier ecuación de segundo grado
Ax2+Bx+C=0, piendiendo por teclado A,B, y C. proporcionando sus raíces reales o
complejas.

El error que me da es con el punto y coma de los último IF anidados. Si se los quito me da error ahí;si se los pongo,el error va hacia el END. .

Otro con el que tengo dudas es con este:


program enteros_suma(input,output);
var
primo,secondo,tercio,cuarto:integer;
begin
write('introduzca los numeros enteros de los que desee calcular la suma separados por ESPACIOS ');
readln(primo,secondo,tercio,cuarto); 
cuarto:=0;
While (primo<>0) and (secondo<>0) and (tercio<>0) do
begin
writeln('la suma de los numeros introducidos es',primo+secondo+tercio);
primo:=secondo;
secondo:=tercio; 
end;
readln
end. 


Nos piden lo siguiente:
Plantee e implemente un programa en PASCAL que acepte valores enteros
como entrada (por teclado) y que muestre por pantalla la suma de los valores
introducidos. El programa terminará cuando el usuario introduzca un 0, tal y
como se muestra en el ejemplo siguiente:

EJEMPLO DE EJECUCIÓN

A continuación introduzca los números enteros de los que desee calcular la suma
separados por espacios:

$ 2 3 56 7 8 90 76 61 0

La suma de los números introducidos es 303

Y eso es todo.
El programa que estoy ejecutando es el GNU-DEV PASCAL ISO 10206

Muchas gracias por sus respuestas.
Si hacéis ejemplos,podríais explicar paso a paso?
Dar fuentes si podeis...Tampoco os matéis con esto y sólo si conocéis una buena.
Y dónde podría haber un manual de mi programa en español o en inglés,pero bien explicado.

Muchas gracias!!!!!
Os estaré eternamente agradecida!!!!


27-Oct-2013 11:28
Nacho Cabanes (+84)

Por partes:

- Si haces muchas preguntas en un mismo "post", es fácil que alguna se quede sin contestar.

- Si tabulas con espacios, en vez de con "tabuladores" (la mayoría de editores te permiten elegirlo), el fuente será mucho más fácil de leer en foros y en impresora.

- Empieza por ejercicios sencillos, y asegúrate de que los entiendes antes de avanzar, o el lío será cada vez mayor. Al final de esta respuesta tienes una variante "sencilla" del segundo ejercicio.

- En estas mismas páginas tienes un tutorial de Pascal. No está orientado específicamente a ISO Pascal, pero las diferencias son relativamente pocas:

http://www.aprendeaprogramar.com/course/view.php?id=7

- Detalles como "crt" y "eoln" no deberían preocuparte siendo principiante, porque son peculiaridades de ciertas versiones de Pascal (Turbo Pascal y Free Pascal).

- Vamos al ejercicio: Vamos a empezar por replantear el último ejercicio, para que sea un poco más fácil y ver si eso te ayuda a ir cogiendo la base que necesitas:

Plantee e implemente un programa en PASCAL que acepte valores enteros
como entrada (por teclado) y que muestre por pantalla la suma de los valores
introducidos. El programa terminará cuando el usuario introduzca un 0, tal y
como se muestra en el ejemplo siguiente:

EJEMPLO DE EJECUCIÓN

Introduzca un número: 5
Introduzca un número: 90
Introduzca un número: 23
Introduzca un número: 0

La suma de los números introducidos es 118

(Verás que se parece mucho al tuyo, sólo que se pide un número cada vez, que es un planteamiento "más natural", y más aplicable a otros lenguajes de programación, evitando peculiaridades de Pascal; cuando te salga ese, vemos los cambios con el que propones, que son mínimos).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)