|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нужна помощь! Пожалуйста
Требуется помощь. Буду очень признателен.
Есть задание: 1. Составить процедуру формирования типизированного файла, компонентами которого является одномерный массив Type mas=array [1..5] of real. 2. Составить процедуру преобразования типизированного файла в текстовый. Элементы массивов расположить по строкам текстового файла. 3. Составить функцию для определения суммы элементов одномерного массива типа real. 4. Составить функцию для определения номера компоненты типизированного файла, имеющей минимальную сумму элементов. 5. Составить процедуру вывода k-ой компоненты типизированного файла на экран. Есть сами процедуры и функции(правда, 4 позиция не выполняется, собственно, там у меня какая то грандиозная ошибка): Это Юнит Код:
unit Unit1; interface type mas=array [1..5] of real; ftip=file of mas; mas1=array [1..1000] of real; procedure form_tipfile(var f:ftip; n:integer); procedure txt_from_tip(var f1:textfile; var f:ftip); function OBR(a:mas):real; function nomer(var f:ftip; n:integer):integer; procedure vivod(var f:ftip; k:integer; n:integer); implementation procedure form_tipfile(var f:ftip; n:integer); var j,i:integer; a:mas; begin rewrite(f); writeln('введите составляющие'); for j:=1 to n do begin for i:=1 to 5 do readln(a[i]); write(f,a); writeln; end; closefile(f); end; procedure txt_from_tip(var f1:textfile; var f:ftip); var i:integer; a:mas; begin reset(f); rewrite(f1); while not eof(f) do begin read(f,a); for i:=1 to 5 do write(f1,a[i]:6:2); writeln(f1); end; closefile(f1); closefile(f); end; function OBR(a:mas):real; var s:real; i:integer; begin s:=0; for i:=1 to 5 do s:=s+a[i]; OBR:=s; end; function nomer(var f:ftip; n:integer):integer; var j:integer; a:mas; min:real; l:integer; g:mas1; begin reset(f); for j:=1 to n do begin read(f,a); g[j]:=OBR(a); end; min:=g[1]; for j:=2 to n do begin if min>g[j] then min:=g[j]; l:=j; end; nomer:=l; closefile(f); end; procedure vivod(var f:ftip; k:integer; n:integer); var a:mas; i:integer; begin reset(f); seek(f,k-1); read(f,a); for i:=1 to 5 do writeln(a[i]:6:2); closefile(f); end; end. меню Код:
program Kuzinp; {$APPTYPE CONSOLE} uses SysUtils, Unit in 'Unit1.pas'; var a:mas; name, name1:string; f:ftip; f1:textfile; n,k,variant,l:integer; begin repeat writeln('1-form_tipfile'); writeln('2-txt_from_tip'); writeln('3-nomer'); writeln('4-vivod'); writeln('5-выход'); writeln('выберете вариант'); readln(variant); case variant of 1: begin writeln('введите название типизированого файла'); readln(name); assignfile(f,name); writeln('введите количество компонент'); readln(n); form_tipfile(f,n); end; 2:begin writeln('введите название текстового файла'); readln(name1); assignfile(f1,name1); txt_from_tip(f1,f); end; 3:begin nomer(f,n); writeln('минимум'); writeln(l); end; 4:begin writeln('введите номер компоненты'); readln(k); vivod(f,k,n); end; 5: halt else writeln('нет варианта, повторите') end; until false; end. Заранее благодарен вам! Админ: используем теги по назначению! Последний раз редактировалось Admin, 07.05.2014 в 19:25. |