1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
народ, пожалуйста помогите вот с чем... вот задание: (-----------------------------------------------------------------------------) 1. Создать на диске типизированный файл произвольного доступа с записями заданной структуры. 2. Для созданного файла предусмотреть возможность: – изменения выбранного поля некоторой записи; – удаления выбранной записи с последующим уменьшением размеров файла; – добавления записи в произвольное место файла; – вывода содержимого файла в виде таблицы; – выполнения указанного в варианте задания; – удаления всего файла при завершении работы программы. Структура записи: - отделение банка; - фамилия вкладчика; - номер счета; - сумма вклада. Определить вкладчика заданного отделения банка с наибольшей суммой вклада (---------------------------------------------------------------------------------)
у меня что-то не работает вот это: "Определить вкладчика заданного отделения банка с наибольшей суммой вклада" помогите испарвить или найти ошибку плз
program file13; uses crt; type bank = record otdelenie: integer; surname : string[20]; Number: integer; summa :integer; end;
var f : file of bank;mass: array[1..5] of bank; end_menu: boolean; vid: byte; Name : string [20]; num_array: 1..5;
procedure Name_File; begin write ('enter name of file...'); readln (Name); end; {------------} procedure AddRec; begin writeln ('VVod zapisi', Filepos(f)+1); with mass[Num_array] do begin write ('vvedite nomer otdeleniya banka:'); readln (otdelenie); write ('vvedite surname:'); readln (surname); write ('vvedite nomer s4eta:'); readln (Number); write ('vvedite summy vklada:'); readln (summa); write (f, mass[Num_array]); end; end; {------------} procedure Create_bank_file; var ind :integer; begin Name_File; Assign (f,Name ); rewrite (f); writeln ('sozdanie zapisej fajla',Name); for ind:= 1 to 5 do addRec; writeln ('sozdanie Fajla zaverweno'); writeln ('file have ', FileSize (f),' records'); close (f); end; {------------} procedure OutputRec; begin read (f,mass[num_array]); with mass[Num_array] do begin writeln ('|',filepos(f):7,' |',otdelenie:8,' |',surname:8,' |',number:5,' |',summa:6,' |'); end; end; {------------} procedure outputALLRec; begin Name_File; assign (f,Name); Reset (f); if IOresult = 0 then begin seek (f,0); writeln ('*** Vivod infi o vklad4ikah iz fajla ', Name,'***'); writeln ('| Nomer zapisi | otdelenie | surname | Number | summa |'); while (not Eof (f)) do outputRec; end else writeln (' Fajla s imenem ',Name,' na diske net'); end; {------------} procedure UpdateRec; var NumRec: Longint; begin Name_File; assign (f, name); reset (f); if IOresult = 0 then begin write ('ykagite nomer izmenyaemoj zapisi:'); readln (Numrec); seek (f,Numrec-1); writeln ('..staroe zna4enie zapisi.. :'); outputRec; seek (f, Numrec-1); writeln ('zadaem novoe zna4enie ' , Numrec,' zapisi'); addrec; close (f); end else writeln ('Fajla s imenem ', Name, ' na diske net'); end; {------------} procedure AddrecToEnd; begin Name_File; assign (F,Name); reset (f); if IOresult = 0 then begin seek( f, Filesize (f)); Addrec; writeln ('izmenennij file dannih imeet vid ' ,Filesize(f), ' zapisi'); close (f); end else writeln ('fajla s imenem ' , Name,' na diske net'); end; {------------} procedure max_summ; var otdelenie: byte; max :integer; begin Name_file; assign(f,name); reset(f); if IOresult = 0 then begin writeln ('vvedite nomer otdeleniya banka:'); readln (otdelenie); max:= mass[1].summa; for num_array:=1 to 5 do if mass[num_array].otdelenie = otdelenie then begin if mass[num_array].summa>max then max:=mass[num_array].summa; end; end; writeln ('vklad4ik s naibolwej summoj:'); writeln (max); end; {------------} procedure exitpr; begin erase (f); end_menu := true; end; {------------} begin clrscr; end_menu:= false; repeat writeln ('***Menu banka***'); writeln ('viberete pynkt'); writeln ('1- create new file'); writeln ('2- prosmotr'); writeln ('3- izmenenie zapisi'); writeln ('4- dopolnenie zapisi'); writeln ('5- vklad4ik zadannogo otdeleniya s naibolwej summoj vklada'); writeln ('0- exit and delete file'); writeln ('BaIII Bbl6op:'); readln (vid); case vid of 1: Create_bank_file; 2: outputallRec; 3: updaterec; 4: addrectoend; 5: max_summ; 0: exitpr; end; writeln ('Dlya prodolgeniya nagmite "ENTER"'); readln; clrscr; until End_Menu end.
Сообщение отредактировано: klem4 - 17.11.2007 12:53