Program massiv_zapisei;
type {Описание типов}
name {Описание перечеслимого типа}
tperson {Описание записи}
var {Описание переменных}
m,i,j,max1,max2 {Переменные счётчиков, и максимальных элементов}
person {Массив записей}
masmax1, masmax2 {Массивы значений длины ячеек}
begin
{Запрос количества элементов таблицы}
{Заполнение массива записей}
for i:=1 to m do
{Оператор присоединения}
Readln(name);
Readln(cena);
{Расчёт длины ячеек таблицы}
{Вывод таблицы из массива записей}
for i:=1 to m do
begin
if i=1 then
{Печать верхнего обрамления таблицы}
{Вывод содержимого таблицы}
if i=m then
{Печать нижнего обрамления таблицы}
else
{Печать междустрочного обрамления таблицы}
end;
end.
Программа просит ввести количество элементов таблицы. Вводим значение 3. Далее программа просит заполнить массив записей. По запросу вводим адрес. После ввода адреса программа спрашивает что заполнять дальше, Имя или Фамилию. Выбираем Имя, и заполняем его. Проделываем данную операцию ещё 2 раза, заполняя то Имя, то Фамилию. Далее программа выводит на экран таблицу из пар значений введённых ранее.
Рисунок 1 – Результат работы программы
program massiv_zapisei_2;
type
name = (firstname, lastname);
tperson = record
adress: string[30];
case kind: name of
firstname: (name1: string[20]);
lastname: (name2: string[20]);
end;
var
person: array[1..50] of tperson;
masmax1, masmax2: array [1..100] of Integer;
m,i,j,max1,max2: integer;
begin
Write('Kolichestvo sotrudnikov: ');
Readln(m);
for i:=1 to m do //заполнение массива записей
begin
with person[i] do begin
write('adress sotrudnika ',i,': ');
readln(adress);
masmax2[i]:=Length(adress);
write('imya ili familiya? (1 or 2): ');
readln(j);
kind:=name(j-1);
case kind of
firstname:
begin
write('imya: ');
readln(name1);
masmax1[i]:=Length(name1);
end;
lastname:
begin
write('familiya: ');
readln(name2);
masmax1[i]:=Length(name2);
end;
end;
end;
end;
{end for, конец заполнения массива записей}
max1:=masmax1[1];
max2:=masmax2[1];
for i:=1 to m do //расчёт длины ячейки
begin
if masmax1[i]>max1 then max1:=masmax1[i];
if masmax2[i]>max2 then max2:=masmax2[i];
end;
writeln;
for i:=1 to m do //вывод таблицы на экран
begin
if i=1 then
begin
write(chr(201));
for j:=1 to max1+2 do
write(chr(205));
write(chr(203));
for j:=1 to max2+2 do
write(chr(205));
writeln(chr(187));
end;
with person[i] do begin
case kind of
firstname:
begin
write(chr(186),' ',name1);
for j:=1 to max1-masmax1[i] do
write(chr(32));
end;
lastname:
begin
write(chr(186),' ',name2);
for j:=1 to max1-masmax1[i] do
write(chr(32));
end;
end;
write(' ',chr(186),' ',adress);
for j:=1 to max2-masmax2[i] do
write(chr(32));
writeln(' ',chr(186));
end;
if i=m then
begin
write(chr(200));
for j:=1 to max1+2 do
write(chr(205));
write(chr(202));
for j:=1 to max2+2 do
write(chr(205));
writeln(chr(188));
end
else
begin
write(chr(204));
for j:=1 to max1+2 do
write(chr(205));
write(chr(206));
for j:=1 to max2+2 do
write(chr(205));
writeln(chr(185));
end;
end;
{end for}
readln;
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.