Почему вместо строкового значения выдаётся цифра и как сделать правильно?

type grupp2021=record
gruppa:integer;
end;
var 
a:array [1..15] of grupp2021;
b:string;
i,n:integer;
begin
readln(n);
for i:= 1 to n do
begin
a[i].gruppa:=1+random(5);
case a[i].gruppa of
   1:b:='21ВИ1';
   2:b:='14ВИ1';
   3:b:='15ВИ1';
   4:b:='19ВП2';
   5:b:='13ВП3';
end;
end;
for i:=1 to n do begin
write('Номер группы:');
writeln(a[i].gruppa);
end;
end.

Ответы (2 шт):

Автор решения: temarazin

Так вы выводите gruppa, которая у вас тип integer. Строка у вас хранится в переменной b (причем она перезаписывается при каждой итерации).

→ Ссылка
Автор решения: Igor
type 
grupp2021 = record
  gruppa: integer;
  b: string;
end;

...
case a[i].gruppa of
   1:a[i].b:='21ВИ1';
   ...
end;
...
for i := 1 to n do 
begin
  write('Номер группы:');
  writeln(a[i].gruppa, a[i].b);
end;
→ Ссылка