- Регистрация
- 9 Май 2009
- Сообщения
- 10,939
- Реакции
- 225
- Баллы
- 63
Паскаль пропускает оператор ввода строки
Написал программу, задание:
В файле хранится информация о каждом студенте группы: фамилия и оценки по трем предметам. Переписать эти данные в другой файл записей, исключая сведения о неуспевающих студентах.
так все в порядке, но... первый шаг счетчика {1}. Все операторы ввода-вывода работают нормально. второй шаг - пропускается оператор {2}. То есть на экране видно следующее:
Написал программу, задание:
В файле хранится информация о каждом студенте группы: фамилия и оценки по трем предметам. Переписать эти данные в другой файл записей, исключая сведения о неуспевающих студентах.
Код:
uses crt;
type student=record
surname:string;
mark:array [1..3] of 2..5;
end;
gr=array[1..20] of student;
var f,nf:file of gr;
group,goodgroup:gr;
i,j,n:integer;
begin clrscr;
write ('Input number of students (1..20): ');
readln (n);
clrscr;
assign (f, 'group.dat');
for i:=1 to n do begin [COLOR="Blue"]{1}[/COLOR]
writeln;
writeln ('Input information about ', i, ' student');
with group[i] do begin
write ('Surname: ');
readln (surname); [COLOR="#0000ff"]{2}[/COLOR]
write ('Student's marks by session (Math Physics InfTechnologies): ');
read (mark[1], mark[2], mark[3]);
end;
end;
rewrite(f);
write (f, group);
close (f);
assign (nf, 'goodgroup.dat');
rewrite (nf);
clrscr;
writeln ('Good students:');
for i:=1 to n do begin
with group[i] do begin
if (mark[1]>=3)and(mark[2]>=3)and(mark[3]>=3) then begin
inc(j,1);
goodgroup[j]:=group[i];
write (goodgroup[j].surname, ' ');
end;
end;
end;
write (nf, goodgroup);
close(nf);
readkey;
end.
Делалось в Turbo Pascal 7.0, пробовал в Borland Pascal, на другом ПК - все так же. Создал в делфи консольное приложение, скорировал туда этот код, подправил.. То же самое. В чем дело?Input information about 2 student
Surname: Student's marks by session (Math Physics InfTechnologies):