Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2020, 07:17   #1
s7p
Новичок
Джуниор
 
Регистрация: 16.04.2020
Сообщений: 1
Печаль Pascal ABC. Подредактировать программу.

Помогите, пожалуйста, сделать «красивым» вывод данных в табличной форме и доделать задание по подсчету количества людей, возраст которых не превышает заданного значения s.
Рекомендации:
– сначала из поля с датой рождения A[i].dob нужно «вырезать» все элементы даты рождения (день, месяц, год) – воспользоваться функцией copy, НО это будут не числа, как нам нужно, а строки;
– для преобразования этих строк в числа воспользоваться процедурой val;
– вместо многоточия нужно вставить условие сравнения s и числа полных лет, которые исполнились человеку на текущую дату; для получения текущей даты воспользоваться функцией CurrentDateTime модуля Utils, который содержит различные процедуры и функции для работы с файлами и каталогами, с датой, и пр.;
функция имеет следующий тип:

Код:
type DateTime = record
Day, Month, Year, Hour, Minute, Second, Milliseconds: integer;
end;
Пример использования функции:

Код:
Uses Crt, Utils;
var x: DateTime;
begin
x:= CurrentDateTime;
writeln(‘Текущая дата: ’, x.Day, ‘.’, x.Month, ‘.’, x.Year);
end.
САМА ПРОГРАММА:

Код:
program pr3;
uses crt;
const n=5;
type b = record
surname:string[20];
name:string[15];
patronymic:string[20];
dob:string[10];
address:string[50];
number:string[10];
end;
var f:file of b;
state:b;
a:array[1..n] of b;
i,l,s,c,d,count:integer;

begin
assign(f,'D:\Евгений');
rewrite(f);
for i:=1 to n do
begin writeln ('Запись ',i);
write('Фамилия: ');readln(state.surname);
write('Имя: ');readln(state.name);
write('Отчество: ');readln(state.patronymic);
write('Дата рождения: ');readln(state.dob);
write('Адрес: ');readln(state.address);
write('Телефон: ');readln(state.number);
write(f,state);
end;
close(f); }
reset(f);
writeln('Сведения для городской справочной службы');
writeln('______________________________________________________________________________');
writeln('| Фамилия | Имя | Отчество |Дата рождения| Адрес | Телефон |');
writeln('______________________________________________________________________________');
for i:=1 to filesize(f) do
begin read(f, A[i]);
writeln(A[i].surname:10,A[i].name:10,A[i].patronymic:10,A[i].dob:10,A[i].address:10,A[i].number:10);
end;
close(f);

Write('Введите возраст человека: '); Readln(s);
Count := 0;
for i:=1 to n do
begin ...
if ...<= s then Inc(Count);
end;
WriteLn('Возраст ', Count, ' человек не превышает значения ', s); }

for l:=1 to n-1 do
for i:=1 to n-l do
if A[i].surname > A[i+1].surname then
begin state:=A[i];
A[i]:=A[i+1];
A[i+1]:=state;
end;
writeln('Сведения отсортированные в алфавитном порядке фамилий');
writeln('______________________________________________________________________________');
writeln('| Фамилия | Имя | Отчество |Дата рождения| Адрес | Телефон |');
writeln('______________________________________________________________________________');
for i:=1 to n do
writeln(A[i].surname:10,A[i].name:10,A[i].patronymic:10,A[i].dob:10,A[i].address:10,A[i].number:10);

end.

Последний раз редактировалось s7p; 16.04.2020 в 13:06.
s7p вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подредактировать имеющуюся программу Виталийq Помощь студентам 1 30.06.2014 13:05
Подредактировать (типизированные файлы) Seeeeema357 Фриланс 1 07.12.2013 16:46
Подредактировать маленькую програмку на Delphi 7 basfa Фриланс 2 09.01.2013 00:43
Необходимо подредактировать код. 603vvn Общие вопросы Delphi 5 17.06.2010 15:37
подредактировать . Двухмерные массивы lilia2121 Помощь студентам 2 18.05.2010 09:40