Структурирование программ с использованием вспомогательных алгоритмов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Сформировать файл, содержащий данные о работниках предприятия: фамилия, имя, отче-ство, должность, стаж работы, оклад. 1. Составить список тех, стаж работы которых превышает 10 лет. Оформить программу с использованием подпрограмм. 2. Организовать поиск данных о работниках по фамилии.

Решение задачи: «Структурирование программ с использованием вспомогательных алгоритмов»

textual
Листинг программы
type rab=record
         fm,ot:string[15];
         im,dl:string[10];
         st,ok:integer;
         end;
    tfile=file of rab;
const fname='rabotniki';//файл будет в папке с программой
procedure createfile(var f:tfile);
var n,i:integer;
    r:rab;
begin
assign(f,fname);
rewrite(f);
writeln('Сколько записей внести в файл n=');
readln(n);
for i:=1 to n do
 begin
  writeln('работник ',i);
  with r do
   begin
    write('Фамилия: ');readln(fm);
    write('Имя: ');readln(im);
    write('Отчество: ');readln(ot);
    write('Должность: ');readln(dl);
    write('Стаж работы: ');readln(st);
    write('Оклад: ');readln(ok);
    write(f,r);
   end;
  end;
close(f);
end;
procedure tab;
begin
writeln('------------------------------------------------------------------');
writeln('|   Фамилия     |   Имя    |   Отчество    | Должность|Стаж|Оклад|');
writeln('------------------------------------------------------------------');
end;
procedure spisok(var f:tfile);
var r:rab;
begin
writeln('Полный список работающих');
tab;
reset(f);
while not eof(f) do
 begin
  read(f,r);
  with r do
  writeln('|',fm:15,'|',im:10,'|',ot:15,'|',dl:10,'|',st:4,'|',ok:5,'|');
 end;
writeln('------------------------------------------------------------------');
end;
procedure staz(var f:tfile);
var r:rab;
    k:byte;
begin
reset(f);
writeln('Список работников чей стаж больше 10 лет');
k:=0;
tab;
while not eof(f) do
 begin
  read(f,r);
  with r do
   begin
    if st>10 then
     begin
      k:=1;
      writeln('|',fm:15,'|',im:10,'|',ot:15,'|',dl:10,'|',st:4,'|',ok:5,'}');
     end;
   end;
 end;
if k=0 then writeln('Таких работников нет')
else writeln('------------------------------------------------------------------');
close(f);
end;
procedure poisk(var f:tfile);
var r:rab;
    fam:string[15];
    k:byte;
begin
write('Введите фамилию для поиска');
readln(fam);
reset(f);
writeln('Список работников чья фамилия ',fam);
k:=0;
tab;
while not eof(f) do
 begin
  read(f,r);
  with r do
   begin
    if fm=fam then
     begin
      k:=1;
      writeln('|',fm:15,'|',im:10,'|',ot:15,'|',dl:10,'|',st:4,'|',ok:5,'}');
     end;
   end;
 end;
if k=0 then writeln('Таких работников нет')
else writeln('------------------------------------------------------------------');
close(f);
end;
var f:tfile;
begin
createfile(f);
spisok(f);
staz(f);
poisk(f);
end.

Объяснение кода листинга программы

  1. Создание файла rabotniki с использованием типа rab и переменной f.
  2. Задание имени файла в переменной fname.
  3. Объявление типа rab и переменной r.
  4. Объявление переменных n и i для использования в процедуре createfile.
  5. Вызов процедуры createfile с переменной f.
  6. Чтение ввода о количестве записей для внесения в файл (n).
  7. Цикл for для внесения n записей в файл.
  8. Внутри цикла вызов процедуры createfile для каждой записи.
  9. Вывод информации о работнике на экран.
  10. Запись информации о работнике в файл.
  11. Вызов процедуры close для закрытия файла.
  12. Объявление переменной k для использования в процедуре staz.
  13. Вызов процедуры staz с переменной f.
  14. Проверка, есть ли работники с стажем больше 10 лет.
  15. Вывод сообщения в зависимости от результата проверки.
  16. Вызов процедуры close для закрытия файла.
  17. Объявление переменных fam и k для использования в процедуре poisk.
  18. Вызов процедуры poisk с переменной f.
  19. Проверка введенной фамилии на соответствие фамилии работника.
  20. Вывод сообщения в зависимости от результата проверки.
  21. Вызов процедуры close для закрытия файла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5
Похожие ответы