Блок схемы
Листинг программы program zadanie_7; uses crt; type menu=record naz:string; stm:integer; kal:integer; vyd:string; end; const kmax=10; var m:array[1..5*kmax] of menu; mn1,mx1,mn2,mx2,mnn,mxn,imn1,imx1,imn2,imx2,imnn,imxn,mkh,mk1,mk2,mkd,mkn,kh,k1,k2,kd,kn, n,k,i,j:integer; begin n:=0; repeat write('Количество холодных закусок от 2 до ',kmax,' k='); read(k); until k in [2..kmax]; writeln('Ведите зокуски->'); for i:=1 to k do begin writeln('Закуска ',i); n:=n+1; with m[n] do begin vyd:='закуски'; write('название: ');read(naz); write('стоимость:');read(stm); write('калорийность: ');read(kal); end; end; mkh:=m[n].kal; kh:=n; repeat write('Количество первых блюд от 2 до ',kmax,' k='); read(k); until k in [2..kmax]; writeln('Введите первые блюда:'); for i:=1 to k do begin writeln('Блюдо ',i); n:=n+1; with m[n] do begin vyd:='первые блюда'; write('название: ');read(naz); write('стоимость:');read(stm); write('калорийность: ');read(kal); end; end; mn1:=m[n].stm; mx1:=m[n].stm; imn1:=n; imx1:=n; mk1:=m[n].kal; k1:=n; repeat write('Количество вторых блюд от 2 до ',kmax,' k='); read(k); until k in [2..kmax]; writeln('Введите вторые блюда:'); for i:=1 to k do begin writeln('Блюдо ',i); n:=n+1; with m[n] do begin vyd:='вторые блюда'; write('название: ');read(naz); write('стоимость:');read(stm); write('калорийность: ');read(kal); end; end; mn2:=m[n].stm; mx2:=m[n].stm; imn2:=n; imx2:=n; mk2:=m[n].kal; k2:=n; repeat write('Количество десертов от 2 до ',kmax,' k='); read(k); until k in [2..kmax]; writeln('Введите десерты:'); for i:=1 to k do begin writeln('Десерт ',i); n:=n+1; with m[n] do begin vyd:='десерт'; write('название: ');read(naz); write('стоимость:');read(stm); write('калорийность: ');read(kal); end; end; mkd:=m[n].kal; kd:=n; repeat write('Количество напитков от 2 до ',kmax,' k='); read(k); until k in [2..kmax]; writeln('Введите напитки:'); for i:=1 to k do begin writeln('Напиток ',i); n:=n+1; with m[n] do begin vyd:='напитки'; write('название: ');read(naz); write('стоимость:');read(stm); write('калорийность: ');read(kal); end; end; mnn:=m[n].stm; mxn:=m[n].stm; imnn:=n; imxn:=n; mkn:=m[n].kal; kn:=n; clrscr; for i:=1 to n do if m[i].vyd='закуски' then begin if m[i].kal<mkh then begin mkh:=m[i].kal; kh:=i; end; end else if m[i].vyd='первые блюда' then begin if m[i].stm<mn1 then begin mn1:=m[i].stm; imn1:=i; end; if m[i].stm>mx1 then begin mx1:=m[i].stm; imx1:=i; end; if m[i].kal<mk1 then begin mk1:=m[i].kal; k1:=i; end; end else if m[i].vyd='вторые блюда' then begin if m[i].stm<mn2 then begin mn2:=m[i].stm; imn2:=i; end; if m[i].stm>mx2 then begin mx2:=m[i].stm; imx2:=i; end; if m[i].kal<mk2 then begin mk2:=m[i].kal; k2:=i; end; end else if m[i].vyd='десерт' then begin if m[i].kal<mkd then begin mkd:=m[i].kal; kd:=i; end; end else if m[i].vyd='напитки' then begin if m[i].stm<mnn then begin mnn:=m[i].stm; imnn:=i; end; if m[i].stm>mxn then begin mxn:=m[i].stm; imxn:=i; end; if m[i].kal<mkn then begin mkn:=m[i].kal; kn:=i; end; end; clrscr; writeln('Самое дешевое меню->'); writeln(m[imn1].vyd,' ',m[imn1].naz,' ',m[imn1].stm); writeln(m[imn2].vyd,' ',m[imn2].naz,' ',m[imn2].stm); writeln(m[imnn].vyd,' ',m[imnn].naz,' ',m[imnn].stm); writeln; writeln('Самое дорогое меню->'); writeln(m[imx1].vyd,' ',m[imx1].naz,' ',m[imx1].stm); writeln(m[imx2].vyd,' ',m[imx2].naz,' ',m[imx2].stm); writeln(m[imxn].vyd,' ',m[imxn].naz,' ',m[imxn].stm); writeln; writeln('Самое низкокалорийное меню->'); writeln(m[kh].vyd,' ',m[kh].naz,' ',m[kh].kal); writeln(m[k1].vyd,' ',m[k1].naz,' ',m[k1].kal); writeln(m[k2].vyd,' ',m[k2].naz,' ',m[k2].kal); writeln(m[kd].vyd,' ',m[kd].naz,' ',m[kd].kal); writeln(m[kn].vyd,' ',m[kn].naz,' ',m[kn].kal); end.
Заключение
Файл – это именованная область памяти на магнитном носителе, используемая для долговременного хранения некоторой логически связанной информации. В зависимости от способа описания можно выделить текстовые (text) файлы, двоичные или типизированные (file of) и нетипизированные (file). Вид файла определяет способ хранения информации в файле. Текстовый файл является файлом последовательного доступа, и его можно представить как набор строк произвольной длины. Последовательный файл отличается от файлов с другой организацией тем, что чтение (или запись) из файла (в файл) ведутся байт за байтом от начала к концу. Для того чтобы реализовать доступ к файлу на магнитном диске, программа должна связать его с файловой переменной. Для этого необходимо сопоставить переменную с именем файла. Это имя представляется в виде строки, содержащей полное имя файла и, быть может, цепочку объемлющих каталогов и обозначение дисковода. Такая строка носит название маршрута (или пути) к файлу и формируется по общим правилам MS-DOS. СПИСОК ЛИТЕРАТУРЫ
1. Учебное пособие по Turbo Pascal 7.0; 2. Владимир Попов. Паскаль и Дельфи. Самоучитель. – Питер, 2003 г., 544 с.; 3. Потопахин В.В. Turbo Pascal: решение сложных задач. – Издательство "БХВ-Петербург", 2006,208 с.; 4. Шпак Ю.А. Turbo Pascal 7.0 на примерах. – Издательство "Юниор", 2003,498 с.; 5. Фаронов В.В. Turbo Pascal Наиболее полное руководство в подлиннике. – Издательство "ОМД Групп" 2003,1054 с. 6. Перминов О.Н. Программирование на языке Паскаль. - М.: Радио и связь, 1988; 7. Поляков Д.Б., Круглов Н.Ю. Программирование в среде Турбо-Паскаля. - изд.МАИ., М.:, 1992; 8. Прайс Д. Программирование на языке Паскаль. Практическое руководство. /Пер. с англ. - М.:, Мир, 1987; 9. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль. - М.: Наука. Гл. ред. физ.-мат. лит.,1993; 10. Эрбс Х.-Э., Штольц О. Введение в программирование на языке Паскаль./Пер. с нем. - М.:, Мир, 1989;
|