|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.02.2009, 00:05 | #1 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 22
|
Задача на Паскале по работе с типизированными файлами
Разработать программу ведения файла, содержащего некоторые данные. Сведения о приборах в лаборатории
инвентарный номер; наименование прибора; назначение; дата изготовления; цена. В программе должны быть реализованы следующие функции: ввод записей; корректировка записей; удаление записей; просмотр записей на экране. Требуемая функция выбирается с помощью меню. Ребята, помогите пожалуйста. Нужно срочно. Не знаю как написать.... |
13.02.2009, 00:28 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Это набросок. Думаю, дальше сами сможете.
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
13.02.2009, 00:51 | #3 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 22
|
спс, буду дорабатывать. обращусь если возникнут проблемы.
|
14.02.2009, 00:08 | #4 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 22
|
а можно кусок кода где будет корректировка записей??
и еще немного непонятно в процедуре удаления pribors[i].number := pribors[i+1].number; { -- также с остальными элементами --} это как?? |
14.02.2009, 00:16 | #5 | ||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Код:
Цитата:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
||
14.02.2009, 02:03 | #6 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 22
|
Program lab;
Uses crt; type pribor = record number : integer; { порядковый номер } id : integer; {инвентарный номер } naimen: string; naznach : string; { назначение } dateYear : integer; {дата изготовления: год} dateMounth : integer; { дата изготовления: месяц } cena : real; { цена } end; var pribors : array[1..20] of pribor; { pribors - массив из 20 приборов } f : file of pribor; {-- файл с записями--} i,NMAX : integer; name_in: string; option: word; {...............} procedure vvod(num : integer); {num - номер записи } begin with pribors[num] do begin number := num; writeln('vvedite inventarnui nomer: '); readln(id); writeln('naimenovanie: '); readln(naimen); writeln('naznachenie: '); readln(naznach); writeln('god izgotovleniya: '); readln (dateYear); writeln('Cena: '); readln(cena) end; end; procedure delpribor(num : integer); { удаление прибора с номером num } var i : integer; begin for i:=num to NMAX do { NMAX - количество приборов } begin pribors[i].number := pribors[i+1].number; pribors[i].id := pribors[i+1].id; pribors[i].naznach := pribors[i+1].naznach; pribors[i].naimen:= pribors[i+1].naimen; { -- также с остальными элементами --} dec(NMAX); {-- теперь приборов на 1 меньше --} end; end; procedure pedit(num : integer; numel : integer); begin writeln('vuderite nomer dlia redakt, 1- invent nomer,'); writeln(' 2 - nazn-e, 3 - naimenovanie, 4 - data, 5 - cena'); begin case numel of 1 : begin writeln('tekuchee zn-e: id=',pribors[num].id); writeln('novove zn-e=: '); readln(pribors[num].id); end; 2 : begin Writeln( 'tekuchee zn-e: naznach=', pribors[num].naznach); Writeln('novoe zn-e: '); Readln(pribors[num].naznach); end; 3 : begin Writeln('tekuchee zn-e: naimenovanie=', pribors[num].naimen); Writeln('novoe zn-e: '); Readln(pribors[num].naimen); End; 4: begin Writeln('tekuchee zn-e: data=', pribors[num]. dateYear); Writeln('novoe zn-e: '); Readln(pribors[num]. dateYear); End; 5: begin Writeln( 'tekuchee zn-e: cena=', pribors[num].cena); Writeln('novoe zn-e: '); Readln(pribors[num].cena); end; end; {------------} procedure prosmotr(num : integer); { --просмотр записи с номером num --} begin with pribors[i] do begin writeln('nomer zapisi: ',number); writeln('inventarn nomer: ', id); writeln('Naimenovanie: ', naimen); writeln('Naznachenie: ', naznach); writeln('godizgotovleniya: ',dateYear); writeln('cena: ', cena); end; end; {.....................} begin { -- программа --} Writeln('vvedite imia faila'); Readln(name_in); assign(f,name_in); reset(f); {-- лучше добавить проверку (IOResult) --} if ioresult <> 0 then begin writeln ('fail', name_in, 'ne naiden'); exit end; read(f,NMAX); {-- пусть первый элемент хранит число записей --} for i:=1 to NMAX do begin read(f,pribors[i]); end; textcolor(11); writeln('1 - vvod zapisi, 2 - redact, 3 - udalenie, 4 - prosmotr, 5 - vuhod'); readln(option); case option of 1: begin writeln(' vvod zapisi: '); readln(num); vvod(num); end; 2: begin writeln('vvedite nomer dlia redact '); readln(num); pedit (num, numel); end; 3: begin writeln('vvedite nomer dlia udaleniya '); readln(num); delpribor (num); end; 4: begin writeln('vvedite nomer dlia prosmotra'); readln(num); prosmotr (num); end; 5: exit; end; writeln; end; end. Добавляла изменения прямо в ваш код. при компиляции в этом месте пишет 113(Error in statement) ошибку procedure prosmotr(num : integer); { --просмотр записи с номером num --} begin with pribors[i] do begin ... посмотрите что не так. и есть ли другие ошибки? |
14.02.2009, 02:08 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А вы попробуйте так написать:
with pribors[num] do... Цикла у вас тут нет, а вы по инерции переменную цикла i оставили. А работаете с одним заданным значением... |
14.02.2009, 02:12 | #8 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 22
|
Не работает так. Все равно пишет ошибку((
|
14.02.2009, 02:28 | #9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Попробуйте закомментировать красное:
Код:
with pribors[num] do заново руками или скопируйте из процедуры procedure vvod. |
14.02.2009, 02:30 | #10 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
В коде много ошибок (например, файл каждый раз только открывается только для чтения).. Исправляю.. Осталось немного.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите по работе с текстовыми файлами | ЕвгениуS | Помощь студентам | 9 | 17.01.2010 15:10 |
Задача на Паскале работа с текстовыми файлами. | StudUL | Помощь студентам | 3 | 21.12.2008 23:24 |
помогите с задачей на Delphi(с типизированными файлами) | lyonya0111 | Помощь студентам | 2 | 20.06.2008 15:18 |
ошибка 105 (при работе с типизированными файлами) | sdp | Общие вопросы Delphi | 8 | 11.07.2007 11:12 |