Pascal/Turbo Pascal - No me lee un string

 
Vista:

No me lee un string

Publicado por Cristian (1 intervención) el 11/04/2006 01:00:26
Bueno, estaba estudiando algoritmos, y para comprobar si resultaba decidi pasar el codigo a pascal, pero tengo un problema.. luego de decir cuanto es el total de alumnos, no alcanzo a poner el nombre y altiro pide la siguiente variable:
program clases;

var
not1, not2, not3, not4, not5, not6, not7, qt, prom, mjor: real;
total, rep, i: integer;
mejor : string[30];
nom : string[30];
BEGIN
repeat
write('Ingrese el total de alumnos: ');
read(total)
until total > 0;
i := 1;
mjor := 0;
rep := 0;
while i <= total do
begin
if mjor = 0
then
begin
writeln('Ingrese el nombre del estudiante: ');
read(nom);
repeat
write('Ingrese la primera nota de quiz o talleres: ');
read(not1);
write('Ingrese la segunda nota de quiz o talleres: ');
read(not2);
write('Ingrese la tercera nota de quiz o talleres: ');
read(not3);
until ((not1 + not2 + not3) >= 3) and ((not1 + not2 + not3) <= 21);
mejor := nom;
qt := ((not1 + not2 + not3) / 3);
write('Nota Final quizs y talleres: ', qt);
repeat
writeln('Ingrese la primera nota del examen: ');
read(not4);
write('Ingrese la segunda nota del examen: ');
read(not5);
write('Ingrese la tercera nota del examen: ');
read(not6);
write('Ingrese la nota del examen final: ');
read(not7);
until ((not4 + not5 + not6 + not7) >= 4) and ((not4 + not5 + not6 + not7) <= 28);
prom := ((qt * 10) / 100) + ((not4 * 15) / 100) + ((not5 * 25) / 100) + ((not6 * 25) / 100) + ((not7 * 25) / 100);
if prom < 4
then
begin
rep := rep + 1
end;
mjor := prom;
writeln('Nota Final: ',prom);
end
else
writeln('Ingrese el nombre del estudiante :');
read(nom);
write('Ingrese la primera nota de quiz o talleres: ');
read(not1);
write('Ingrese la segunda nota de quiz o talleres: ');
read(not2);
write('Ingrese la tercera nota de quiz o talleres: ');
read(not3);
qt := ((not1 + not2 + not3) / 3);
write('Nota Final quizs y talleres: ', qt);
write('Ingrese la primera nota del examen: ');
read(not4);
write('Ingrese la segunda nota del examen: ');
read(not5);
write('Ingrese la tercera nota del examen: ');
read(not6);
write('Ingrese la nota del examen final: ');
read(not7);
prom := ((qt * 10) / 100) + ((not4 * 15) / 100) + ((not5 * 25) / 100) + ((not6 * 25) / 100) + ((not7 * 25) / 100);
write('Nota Final: ', prom);
if prom < 4
then
begin
rep := rep + 1
end;
if mjor < prom
then
begin
mjor := prom;
mejor := nom
end;
end;
write('El total de alumnos que reprobaron el ramo: ', rep);
write('El mejor almuno del curso es ', mejor)
END.

traten de compilarlo y vean el problema, ayuda :P para poder aprender

Usuario basico...!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No me lee un string

Publicado por Roberto Garcia (56 intervenciones) el 12/04/2006 01:11:26
La primera lectura de cadenas siempre debe ser con readln las demas lecturas de cadenas pueden ser con read o con readln

es algo realmente extraño pues esto no pasa con otro tipo de variables

ya que la primera lectura de una variable numerica en general puede hacerce con read y no lo ignora, caso contrario con las variables de tipo String.

entonces la primera lectura de tu primer cadena hazla con readln
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar