for i:= 1 to n do begin
a[i].name:='';
repeat
readln(c);
a[i].name:=a[i].name+c
until c=' ';
repeat
readln(c);
a[i].name:=a[i].name+c
until c=' ';
a[i].sum:=0;
for j:= 1 to 3 do begin
read(k);
a[i].sum:=a[i].sum+k;
end;
readln;
end;
Программа должна считывать Имя, Фамилию и 3 однозначных числа за 1 цикл. Всего n должно быть циклов, а потом дальше программа завершает работу, Но у меня вместо этого после n-ого цикла программа продолжает считывать информацию с клавиатуры. Как выйти из цикла?
если я правильно понял мысль - так посимвольно считывается имя с фамилией. но работать оно так не будет) Не говоря уже о том, что имя с фамилией в одну и ту же переменную пишутся.
Можете, пожалуйста, подробнее описать ход программы? И желательно указать где конкретно какой цикл за что отвечает? И @Molkree правильно сказал, неплохо было бы увидеть весь код программы, включая описание типа переменной “а”)
Я вот ради интереса повторил наугад, не зная, что у вас там ещё в программе, но у меня всё прекрасно работает. Вот код:
program test;
type
rec = record
name: string;
sum: integer;
end;
const
n: byte = 3;
var
a: array [1 .. 3] of rec;
i, j, k: integer;
c: char;
begin //1
for i:= 1 to n do begin //2
a[i].name:='';
repeat
readln(c);
a[i].name:=a[i].name+c
until c=' ';
repeat
readln(c);
a[i].name:=a[i].name+c
until c=' ';
a[i].sum:=0;
for j:= 1 to 3 do begin //3
read(k);
a[i].sum:=a[i].sum+k;
end; //3
{DEBUG}WriteLn (a[i].name);
{DEBUG}WriteLn (a[i].sum);
readln;
end; //2
end. //1