Практическая часть выполнения задачи на языке программирования Паскаль
program zadacha; {название программы} uses crt; {подкличение модуля crt} type mass=record fio:string; {Фамилия} ych:string; {учреждение} stil:string; {стиль плавания} voz:integer; {возраст} rez:real; {результат} end; var chi:mass; {имеет тип mass} ch,ch1:array[1..25] of mass; f:file of mass; i,m,j,k,n,nom:integer; filename:string; {для имени файла} procedure sozdanie; {процедура создания} var q:integer; begin clrscr; writeln('vvedite imya faila:'); {ввод имени файла} readln(Filename); assign(f,Filename); rewrite(f); Writeln ('vvedite kolichestvo zapisei'); {вводим количество записей} Readln (n); q:=0; for i:=1 to n do with ch[i] do begin q:=q+1; clrscr; writeln('vvedite fio ',q,'-go uchasnika'); {заносим информацию об участнике} readln(fio); writeln('vvedite vozrast ',q,'-go uchasnika'); readln(voz); writeln('vvedite ycheregdenie'); readln(ych); writeln('vvedite stil plavaniya'); readln(stil); writeln('vvedite rezultat zapliva'); readln(rez); write(f,ch[i]); end; close(f); {закрываем файл} end; procedure vivod; {процедура вывода} begin clrscr; writeln ('vvedite imya sozdannogo faila'); {указываем имя созданного файла} readln(filename); assign (f,filename); reset(f); clrscr; nom:=0; writeln('writeln('| # | FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('|'); while not eof(f) do {начинаем выводить записи в таблицу} with ch[i] do begin inc(i); inc(nom); read(f,ch[i]); writeln('|',nom:3,'|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); i:=i+1; end; writeln('|'); close(f); {закрыли файл} readln; clrscr; end; procedure dobavlenie; {процедура добавления} begin clrscr; writeln ('vvedite imya sozdannogo faila'); {ввод имени файла} readln(filename); assign (f,filename); reset(f); i:=1; while not eof(f) do begin read(f,ch[i]); i:=i+1; end; writeln('vvedite fio'); {начинаем заносит информацию об участнике} readln(ch[i].fio); writeln('vvedite voz '); readln(ch[i].voz); writeln('vvedite ycheregdenie obrazovaniya'); readln(ch[i].ych); writeln('vvedite stil plavaniya'); readln(ch[i].stil); writeln('vvedite rezultat zapliva'); readln(ch[i].rez); n:=i; close(f); {закрыли файл} rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; procedure poisk; {процедура поиска} var e:string; n1,o:integer; l:real; begin writeln('vibirete regim poiska:' ); {меню} writeln(' '); writeln('1: poisk po polu fio'); writeln('2: poisk po polu vozrast'); writeln('3: poisk po polu ycheregdenie'); writeln('4: poisk po polu stil'); writeln('5: poisk po polu rezultat'); writeln; readln(o); clrscr; if o=1 then begin {поиск по полю фио} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); inc(i); inc(n); end; close(f); writeln('vvedite fio uchasnika'); {водим ФИО участника} readln(e); n1:=0; for i:=1 to n do if ch[i].fio=e then begin n1:=n1+1; ch1[n1]:=ch[i]; end; if n1<>0 then begin {вывод найденного участника} writeln('||'); writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('||'); for i:=1 to n1 do with ch1[i] do begin writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); end; writeln(''); end else writeln('zapis ne naidena '); readln; end; if o=2 then begin {поиск по полю возраст} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); inc(i); inc(n); end; close(f); writeln('vvedite vozrast uchasnika'); {вводим возраст} readln(l); n1:=0; for i:=1 to n do if ch[i].voz=l then begin n1:=n1+1; ch1[n1]:=ch[i]; end; if n1<>0 then begin {вывод} writeln('||'); writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('|'); for i:=1 to n1 do with ch1[i] do begin writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); end; writeln('||'); end else writeln('zapis ne naidena '); readln; end; if o=3 then begin {поиск по полю учреждение} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); inc(i); inc(n); end; close(f); writeln('vvedite ycheregdenie'); {введите учреждение } readln(e); n1:=0; for i:=1 to n do if ch[i].ych=e then begin n1:=n1+1; ch1[n1]:=ch[i]; end; if n1<>0 then begin {вывод} writeln('|'); writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('||'); for i:=1 to n1 do with ch1[i] do begin writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); end; writeln('|'); end else writeln('zapis ne naidena '); readln; end; if o=4 then begin {поиск по полю стиль} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); inc(i); inc(n); end; close(f); writeln('vvedite stil uchasnika'); {ввод стиля} readln(e); n1:=0; for i:=1 to n do if ch[i].stil=e then begin n1:=n1+1; ch1[n1]:=ch[i]; end; if n1<>0 then begin {вывод} writeln('||'); writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('|'); for i:=1 to n1 do with ch1[i] do begin writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); end; writeln('||'); end else writeln('zapis ne naidena '); readln; end; if o=5 then begin {поиск по полю результат} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); inc(i); inc(n); end; close(f); writeln('vvedite preblezitelnii rezyltat uchastnika'); {ввод результата } readln(l); n1:=0; for i:=1 to n do if (ch[i].rez<=l+0.5) and (ch[i].rez>=l-0.5) then begin n1:=n1+1; ch1[n1]:=ch[i]; end; if n1<>0 then begin {вывод} writeln('||'); writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |'); writeln('||'); for i:=1 to n1 do with ch1[i] do begin writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|'); end; writeln('||'); end else writeln('zapis ne naidena '); readln; end; end; procedure sortirovka; {процедура сортировка} var p:integer; begin clrscr; writeln('vibirete regim sortirovki:' ); {меню сортировки} writeln(' '); writeln('1: sortirovka po polu fio'); writeln('2: sortirovka po polu vozrast'); writeln('3: sortirovka po polu ycheregdenie'); writeln('4: sortirovka po polu stil'); writeln('5: sortirovka po polu rezultat'); writeln; readln(p); if p=1 then begin {сортировка по полю фио} writeln ('vvedite imya sozdannogo faila'); {вводим имя файла} readln(filename); assign (f,filename); reset(f); for i:=1 to n do read(f,ch[i]); close(f); for i:=1 to n-1 do for j:=i+1 to n do if ch[i].fio>ch[j].fio then {сравниваем 2 строки} begin chi:=ch[i]; {проводим перестановку} ch[i]:=ch[j]; ch[j]:=chi; end; rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; if p=2 then begin {сортировка по полю возраст} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); for i:=1 to n do read(f,ch[i]); close(f); for i:=1 to n-1 do for j:=i+1 to n do if ch[i].voz>ch[j].voz then begin chi:=ch[i]; ch[i]:=ch[j]; ch[j]:=chi; end; rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; if p=3 then begin {сортировка по полю учреждение} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); for i:=1 to n do read(f,ch[i]); close(f); for i:=1 to n-1 do for j:=i+1 to n do if ch[i].ych>ch[j].ych then begin chi:=ch[i]; ch[i]:=ch[j]; ch[j]:=chi; end; rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; if p=4 then begin {сортировка по полю стиль} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); for i:=1 to n do read(f,ch[i]); close(f); for i:=1 to n-1 do for j:=i+1 to n do if ch[i].stil>ch[j].stil then begin chi:=ch[i]; ch[i]:=ch[j]; ch[j]:=chi; end; rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; if p=5 then begin {сортировка по полю результат} writeln ('vvedite imya sozdannogo faila'); readln(filename); assign (f,filename); reset(f); for i:=1 to n do read(f,ch[i]); close(f); for i:=1 to n-1 do for j:=i+1 to n do if ch[i].rez>ch[j].rez then begin chi:=ch[i]; ch[i]:=ch[j]; ch[j]:=chi; end; rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); end; end; procedure udalenie; {процедура удаления} var m:integer; begin clrscr; writeln ('vvedite imya sozdannogo faila'); {вводим имя файла} readln(filename); assign (f,filename); reset(f); i:=1; n:=0; while not eof(f) do begin read(f,ch[i]); i:=i+1; n:=n+1; end; writeln('vvedite nomer udaliaemoi zapisi'); {вводим номер записи для удаления} readln(m); for i:=m to n do begin {удаляем} ch[i].fio:=ch[i+1].fio; ch[i].voz:=ch[i+1].voz; ch[i].ych:=ch[i+1].ych; ch[i].stil:=ch[i+1].stil; ch[i].rez:=ch[i+1].rez; end; n:=n-1; close(f); rewrite(f); for i:=1 to n do write(f,ch[i]); close(f); writeln(‘zapis udalena’); readln; end; begin {тело основной программы} while True do begin {меню программы} clrscr; Writeln ('':20,' *Menu* '); Writeln ('':20,'||'); Writeln ('':20,'| 1- sozdanie novogo faila |'); Writeln ('':20,'| 2- vivod dannih |'); Writeln ('':20,'| 3- dobavlenie |'); Writeln ('':20,'| 4- poisk |'); Writeln ('':20,'| 5- sortirovka |'); Writeln ('':20,'| 6- udalenie zapisei |'); Writeln ('':20,'| 0- vihod |'); Writeln ('':20,'||'); Writeln; Writeln('vi mojete rabotat s uje sozdanim failom "sor" '); Writeln(''); Readln (m); case m of 1:sozdanie; 2:vivod; 3:dobavlenie; 4:poisk; 5:sortirovka; 6:udalenie; 0:exit; else begin Writeln('ne verno!'); readln; end; end; end; end.
Популярное: Почему стероиды повышают давление?: Основных причин три... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (227)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |