Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 8.96 KB | None | 0 0
  1. {uses
  2.  crt;}
  3. const
  4.  n=100;
  5.  no='№';
  6.  famil='Фамилия ';
  7.  st='Страна ';
  8.  ba='Балл ';
  9.  no1='№';
  10.  f1='Фамилия';
  11.  st1='Страна';
  12.  ba1='Балл';
  13. type
  14.  u4astnik=record
  15.    fam:string[15];
  16.    strana:string[15];
  17.    ball:real
  18.   end;
  19.  base=array[1..n] of u4astnik;
  20. {0}
  21. procedure mmm (var m:integer);
  22.  begin
  23.   Writeln;
  24.   write(' Введите количество фигуристов: ');
  25.   readln(m);
  26.   if m=0 then
  27.    begin
  28.     writeln(' В турнире нет участников');
  29.     Writeln(' Для выхода нажмите Enter');
  30.     readln;
  31.     exit;
  32.    end;
  33.   if m>n then
  34.    begin
  35.     repeat
  36.      writeln(' Программа не поддерживает такого количества участников введите другое число');
  37.      writeln(' Введите количество фигуристов');
  38.      readln(m);
  39.      if m=0 then
  40.    begin
  41.     writeln(' В турнире нет участников');
  42.     Writeln(' Для выхода нажмите Enter');
  43.     readln;
  44.     exit;
  45.    end;
  46.     until m<=n ;
  47.    end;
  48.     if m<0 then
  49.    begin
  50.     repeat
  51.      writeln(' Программа не поддерживает такого количества участников введите другое число');
  52.      writeln(' Введите количество фигуристов');
  53.      readln(m);
  54.      if m=0 then
  55.    begin
  56.     writeln(' В турнире нет участников');
  57.     Writeln(' Для выхода нажмите Enter');
  58.     readln;
  59.     exit;
  60.    end;
  61.     until m>0 ;
  62.    end;
  63.   end;
  64. {*0}
  65. {1}
  66. procedure vvod (var b:base; var f: file of u4astnik; var m:integer);
  67.  var
  68.   i:integer;
  69.  begin
  70.   {clrscr;}
  71.   mmm(m);
  72.   rewrite(f);
  73.   for i:=1 to m do
  74.    begin
  75.     writeln(no:3,i:3);
  76.     write(famil:10);readln(b[i].fam);
  77.     write(st:10);readln(b[i].strana);
  78.     write(ba:10);readln(b[i].ball);
  79.     write(f,b[i]);
  80.     writeln;
  81.    end;
  82.   close(f);
  83.   writeln(' Ввод базы произведён удачно. Для продолжения нажмите Enter.');
  84.   readln;
  85.   {clrscr;}
  86. end;
  87. {*1}
  88. {2}
  89. procedure vivod (var b:base; var f: file of u4astnik; m:integer);
  90.  var
  91.   i:integer;
  92.  begin
  93.   {clrscr;}
  94.   Writeln('  Таблица участников турнира:');
  95.   writeln;
  96.   write(no1:3);
  97.   write(f1:15);
  98.   write(st1:15);
  99.   writeln(ba1:8);
  100.   reset(f);
  101.   for i:=1 to m do
  102.   read(f,b[i]);
  103.   for i:=1 to m do
  104.    begin
  105.     write(i:3);
  106.     write(b[i].fam:15);
  107.     write(b[i].strana:15);
  108.     write(b[i].ball:8);
  109.     writeln;
  110.    end;
  111.   close(f);
  112.   writeln;
  113.   writeln(' Для продолжения нажмите Enter.');
  114.   readln;
  115.   {clrscr;}
  116.  end;
  117. {*2}
  118. {2.2}
  119. procedure vivod_r (var b:base; m:integer);
  120.  var
  121.   i:integer;
  122.  begin
  123.   {clrscr;}
  124.   Writeln('  Таблица участников турнира:');
  125.   writeln;
  126.   write(no1:3);
  127.   write(f1:15);
  128.   write(st1:15);
  129.   writeln(ba1:8);
  130.   for i:=1 to m do
  131.    begin
  132.     write(i:3);
  133.     write(b[i].fam:15);
  134.     write(b[i].strana:15);
  135.     write(b[i].ball:8);
  136.     writeln;
  137.    end;
  138.   writeln;
  139.  end;
  140. {*2.2}
  141. {3}
  142. procedure vivod_3 (var a:base; m:integer);
  143.  var
  144.   i:integer;
  145.  begin
  146.   {clrscr;}
  147.   writeln('  Места распределены таким образом:');
  148.   writeln;
  149.   write(no1:3);
  150.   write(f1:15);
  151.   write(st1:15);
  152.   writeln(ba1:8);
  153.   for i:=1 to m do
  154.    begin
  155.     write(i:3);
  156.     write(a[i].fam:15);
  157.     write(a[i].strana:15);
  158.     write(a[i].ball:8);
  159.     writeln;
  160.    end;
  161.   writeln;
  162.  end;
  163. {*3}
  164. {4}
  165. procedure poisk (var b:base; m:integer);
  166.  var
  167.   i:integer;
  168.   isk:string;
  169.  begin
  170.    {clrscr;}
  171.    Write(' Введите искомую фамилию: ');
  172.    readln(isk);
  173.    writeln;
  174.    for i:=1 to m do
  175.     begin
  176.      if b[i].fam=isk then
  177.       begin
  178.        write(no1:3);
  179.        write(f1:15);
  180.        write(st1:15);
  181.        writeln(ba1:8);
  182.        write(i:3);
  183.        write(b[i].fam:15);
  184.        write(b[i].strana:15);
  185.        write(b[i].ball:8);
  186.        writeln;
  187.        break;
  188.       end;
  189.      if (i=m) and (b[i].fam<>isk) then
  190.       Writeln(' Данной фамилии не найдено.');
  191.     end;
  192.   writeln;
  193.   writeln(' Для продолжения нажмите Enter.');
  194.   readln;
  195.   {clrscr;}
  196.  end;
  197. {*4}
  198. {5}
  199.  procedure redakt (var b:base; m:integer);
  200.   var
  201.    str:string;
  202.    nom,op:integer;
  203.    str_ball:real;
  204.   begin
  205.    {clrscr;}
  206.    vivod_r(b,m);
  207.    writeln;
  208.    write(' Введите номер фигуриста. № ');
  209.    readln(nom);
  210.    {clrscr;}
  211.    writeln;
  212.    write(no1:3);
  213.    write(f1:15);
  214.    write(st1:15);
  215.    writeln(ba1:8);
  216.    write(nom:3);
  217.    write(b[nom].fam:15);
  218.    write(b[nom].strana:15);
  219.    writeln(b[nom].ball:8);
  220.    writeln;
  221.    writeln(' Что нужно редактировать?');
  222.    writeln;
  223.    writeln('  1-Фамилия.');
  224.    writeln('  2-Страна.');
  225.    writeln('  3-Балл.');
  226.    writeln('  0-Отмена.');
  227.    writeln;
  228.    write(' Пункт меню № ');
  229.    readln(op);
  230.    writeln;
  231.    if op=1 then
  232.     begin
  233.      write(' Введите новое Имя: ');
  234.      readln(str);
  235.      b[nom].fam:=str;
  236.      writeln;
  237.      writeln('Результат корректировки:');
  238.      writeln;
  239.      write(no1:3);
  240.      write(f1:15);
  241.      write(st1:15);
  242.      writeln(ba1:8);
  243.      write(nom:3);
  244.      write(b[nom].fam:15);
  245.      write(b[nom].strana:15);
  246.      write(b[nom].ball:8);
  247.      writeln;
  248.     end
  249.    else
  250.     if op=2 then
  251.      begin
  252.       write(' Введите новую Страну : ');
  253.       readln(str);
  254.       b[nom].strana:=str;
  255.       writeln;
  256.       writeln('Результат корректировки:');
  257.       writeln;
  258.       write(no1:3);
  259.       write(f1:15);
  260.       write(st1:15);
  261.       writeln(ba1:8);
  262.       write(nom:3);
  263.       write(b[nom].fam:15);
  264.       write(b[nom].strana:15);
  265.       write(b[nom].ball:8);
  266.       writeln;
  267.      end
  268.     else
  269.      if op=3 then
  270.       begin
  271.        write(' Введите новый Балл : ');
  272.        readln(str_ball);
  273.        b[nom].ball:=str_ball;
  274.        writeln;
  275.        writeln('Результат корректировки:');
  276.        writeln;
  277.        write(no1:3);
  278.        write(f1:15);
  279.        write(st1:15);
  280.        writeln(ba1:8);
  281.        write(nom:3);
  282.        write(b[nom].fam:15);
  283.        write(b[nom].strana:15);
  284.        write(b[nom].ball:8);
  285.        writeln;
  286.       end
  287.      else;
  288.    writeln;
  289.    writeln(' Для продолжения нажмите Enter.');
  290.    readln;
  291.    {clrscr;}
  292.  end;
  293. {*5}
  294. {6}
  295. procedure mesta (var b:base;  a:base; m:integer);
  296.   var
  297.    i,j:integer;
  298.    z:u4astnik;
  299.   begin
  300.    {clrscr;}
  301.    for i:=1 to m do
  302.    a[i]:=b[i];
  303.    for j:=1 to m do
  304.     begin
  305.      for i:=1 to m-1 do
  306.       begin
  307.        if a[i+1].ball > a[i].ball then
  308.         begin
  309.          z:=a[i];
  310.          a[i]:=a[i+1];
  311.          a[i+1]:=z;
  312.         end;
  313.       end;
  314.     end;
  315.     vivod_3(a,3);
  316.     writeln;
  317.     writeln(' Для продолжения нажмите Enter.');
  318.     readln;
  319.     {clrscr;}
  320.   end;
  321. {*6}
  322. {7}
  323. procedure sred_ball (b:base; m:integer);
  324.  var
  325.   x,y:real;
  326.   i:integer;
  327.  begin
  328.   {clrscr;}
  329.   x:=0;
  330.   for i:=1 to m do
  331.    x:=x+b[i].ball;
  332.   y:=x/m;
  333.   writeln;
  334.   writeln('Средний балл участников =',y:5:2);
  335.   writeln;
  336.   writeln(' Для продолжения нажмите Enter.');
  337.   readln;
  338.   {clrscr;}
  339.  end;
  340. {*7}
  341. var
  342.  f: file of u4astnik;
  343.  b,a:base;
  344.  m:integer;
  345.  menu:integer;
  346. begin
  347.  assign(f,'База фигурного катания.dat');
  348.  while true do
  349.  begin
  350.   writeln;
  351.   writeln('  |-------------------------------------------------------------------------|');
  352.   writeln('  |                  База чемпионата по фигурному катанию.                  |');
  353.   writeln('  |-------------------------------------------------------------------------|');
  354.   writeln('  |Программа хранит базу данных, также возможен её просмотр и редактирование|');
  355.   writeln('  |-------------------------------------------------------------------------|');
  356.   writeln;
  357.   writeln(' Меню:');
  358.   writeln('  1-Создание базы.');
  359.   writeln('  2-Просмотр базы.');
  360.   writeln('  3-Корректировка.');
  361.   writeln('  4-Поиск фигуриста по Фамилии.');
  362.   writeln('  5-Призавые места.');
  363.   writeln('  6-Средний балл Участников.');
  364.   writeln('  7-Выход.');
  365.   write(' Пункт меню № ');
  366.   readln(menu);
  367.   case menu of
  368.    1:vvod(b,f,m);{Процедура Ввода}
  369.    2:vivod(b,f,m);{Процедура вывода}
  370.    3:redakt(b,m);{Процедура редактирования}
  371.    4:poisk(b,m);{Процедура поиска фигуриста}
  372.    5:mesta(b,a,m);{Процедура распределения мест}
  373.    6:sred_ball(b,m);{Процедура определения среднего балла}
  374.    7:exit;
  375.   end;
  376.  {clrscr;}
  377.  end;
  378. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement