Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.14 KB | None | 0 0
  1. type person_data = record
  2.     person_name: string[20];
  3.     person_surname: string[30];
  4.     day: string[2];
  5.     month: string[2];
  6.     year: string[4];
  7.     age: byte;
  8. end;
  9. LABEL x;
  10. const n = 3;
  11. var data: array[1..100] of person_data;
  12.   f: textfile;
  13.  
  14.     s, filename: string;
  15.   s1: person_data;
  16.   a,i,j,my_case,my_case2: byte;
  17.   d,m,y,length: integer;
  18.   yes_on_no: byte;
  19.    
  20. Begin
  21.  
  22.   length:=n;
  23.  
  24.   while True do
  25.   begin
  26.    
  27.     writeln;
  28.     writeln;
  29.     writeln;
  30.     writeln('1. Создание файла.');
  31.     writeln('2. Ввод данных в файл.');
  32.     writeln('3. Сортировка по одному из полей.');
  33.     writeln('4. Удаление записи.');
  34.     writeln('5. Удаление файла.');
  35.     writeln('6. Вывод данных из файла.');
  36.     writeln('7. Выход из программы.');
  37.     writeln;
  38.     writeln;
  39.     writeln('Введите номер пункта:');
  40.    
  41.     readln(my_case);
  42.    
  43.     case my_case of
  44.       1:begin
  45.         writeln('Какое имя файла?');
  46.         readln(filename);
  47.         Rewrite(f, 'H:\'+filename+'.txt');
  48.         end;
  49.        
  50.       2:begin
  51.         for i:=1 to n do
  52.             begin
  53.                 x:
  54.                 writeln('Введите имя, фамилию и дату рождения');
  55.                 readln(s);
  56.                 a:=pos(' ',s);
  57.                 data[i].person_name:=copy(s,1,a-1);
  58.                 data[i].person_name[1]:=data[i].person_name[1].ToUpper();
  59.                 delete(s,1,a);
  60.                 a:=pos(' ',s);
  61.                 data[i].person_surname:=copy(s,1,a-1);
  62.                 data[i].person_surname[1]:=data[i].person_surname[1].ToUpper();
  63.                 delete(s,1,a);
  64.                 a:=pos('.',s);
  65.                 data[i].day:=copy(s,1,a-1);
  66.                 if strtoint(data[i].day) > 31 then
  67.               begin
  68.                 writeln('Неверная дата, введите снова.');
  69.                     goto x;
  70.                 end;
  71.                 delete(s,1,a);
  72.                 a:=pos('.',s);
  73.                 data[i].month:=copy(s,1,a-1);
  74.                 if strtoint(data[i].month) > 12 then
  75.               begin
  76.                 writeln('Неверная дата, введите снова.');
  77.                     goto x;
  78.                 end;
  79.                 delete(s,1,a);
  80.                 data[i].year:=copy(s,1,4);
  81.                 if strtoint(data[i].year) > 2019 then
  82.               begin
  83.                 writeln('Неверная дата, введите снова.');
  84.                     goto x;
  85.                 end;
  86.                 data[i].age:=2019-strtoint(data[i].year);
  87.                 Writeln(f, data[i]);
  88.             end;
  89.             Rewrite(f, 'H:\'+filename+'.txt');
  90.             close(f);
  91.             Rename(f, 'H:\'+filename+'.txt');
  92.         end;
  93.        
  94.       3:begin
  95.         writeln('По какому полю будет сортировка?');
  96.         writeln('1. Имя');
  97.         writeln('2. Фамилия');
  98.         readln(my_case2);
  99.         case my_case2 of
  100.         1:begin
  101.           for i:=1 to length-1 do
  102.           for j:=i+1 to length do
  103.           begin
  104.             if data[i].person_name > data[j].person_name then
  105.               swap(data[i],data[j])
  106.           end;
  107.         end;
  108.        
  109.         2:begin
  110.           for i:=1 to length-1 do
  111.           for j:=i+1 to length do
  112.           begin
  113.             if data[i].person_surname > data[j].person_surname then
  114.               swap(data[i],data[j])
  115.           end;
  116.         end;
  117.       end;
  118.       Rewrite(f, 'H:\'+filename+'.txt');
  119.       close(f);
  120.       Rename(f, 'H:\'+filename+'.txt');
  121.       end;
  122.        
  123.       4:begin
  124.         writeln('Какую запись Вы хотите удалить?');
  125.         readln(d);
  126.         for i:=d to n-1 do
  127.         begin
  128.             data[i]:=data[i+1];
  129.         end;
  130.         length-=1;
  131.         end;
  132.        
  133.       5:begin
  134.         erase(f)
  135.         end;
  136.        
  137.       6:begin
  138.         for i:=1 to length do
  139.         writeln(i:3, data[i].person_name:15, data[i].person_surname:25, ' ', data[i].day, '.', data[i].month, '.', data[i].year, ' ', data[i].age, 'лет.');
  140.         end;
  141.        
  142.       7:break;
  143.     end;
  144.    
  145.   end;
  146.   Close(f);
  147. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement