Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
FSXRAY
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 6
1

Типизированый файл

11.07.2011, 20:45. Просмотров 334. Ответов 3
Метки нет (Все метки)

Помогите разработать программу, которая должна обеспечить выполнение следующих функций:
формирование типизованного файла со структурой в зависимости от варианта задания с вводом значений показателей записей файла с экрана (по запросу пользователя);
проверку вводимых параметров на полноту и корректность. В случае ошибки должно быть выведено соответствующее сообщение.
поиск в файле записи(ей), удовлетворяющей заданному пользователем условию.

Типизованный файл содержит информацию о меню (6 записей). Блюдо меню характеризуется следующими показателями: код блюда (целое число), наименование (симольное),цена (вещественное), вид блюда (символьное). Поиск блюда по заданному жанру.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2011, 20:45
Ответы с готовыми решениями:

Неправильно записывает типизированый файл!
type pInfo = record name:array of string; // Имя family:array of string; // Фамилия ...

файлы типизированый
Даны два типизированных файла целых чисел. Записать в третий файл целых чисел суммы соответствующих...

не типизированый файл
Создать файл, компоненты (количество <=9) которого являются вещественными числами. После создания...

Запись в типизированый файл
Помогите найти ошибку. Ругается там где пытаюсь записать в файл, говорит нельзя преобразовать...

Типизированый файл: обслуживание граждан поликлиникой
Нужно создать типизированный файл записей, содержащий данные о гражданах, обслуживаемых...

3
Puporev
Модератор
57522 / 43859 / 30299
Регистрация: 18.05.2008
Сообщений: 104,730
11.07.2011, 20:57 2
Цитата Сообщение от FSXRAY Посмотреть сообщение
Поиск блюда по заданному жанру.
В смысле?
0
FSXRAY
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 6
11.07.2011, 21:14  [ТС] 3
Ну имеется в виду что поиск блюда по коду либо по наименованию либо по цене либо по виду.
0
Puporev
Модератор
57522 / 43859 / 30299
Регистрация: 18.05.2008
Сообщений: 104,730
12.07.2011, 08:55 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
uses crt;
const n=6;
type menu=record
          kod:integer;
          naz:string;
          cen:real;
          vid:string;
          end;
     tfile=file of menu;
procedure Kontrol(s1,s2:string;var f:boolean;var a:integer;var b:real);
var c:integer;
    s:string;
begin
f:=true;
val(s1,a,c);
if (c<>0)or(a<=0) then f:=false;
val(s2,b,c);
if (c<>0)or(b<=0) then f:=false;
end;
procedure Vvod(var f:tfile);
var z:menu;
    i,a:integer;
    b:real;
    s1,s2:string;
    fl:boolean;
begin
assign(f,'menu');
rewrite(f);
for i:=1 to n do
 begin
  writeln('Введите данные о блюде ',i);
  with z do
   begin
    repeat
    write('Код, натуральное число: ');read(s1);
    write('Наименование:');read(naz);
    write('Цена, вещественное положительное число:');readln(s2);
    write('Вид блюда:');read(vid);
    Kontrol(s1,s2,fl,a,b);
    if not fl then writeln('Данные введены неверно, повторите ввод')
    else
     begin
      z.kod:=a;
      z.cen:=b;
     end;
    until fl;
    write(f,z);
   end;
 end;
close(f);
clrscr;
end;
procedure Zagl;
begin
writeln('----------------------------------------------');
writeln('|  Код   | Наименование  |  Цена  |   Вид    |');
writeln('----------------------------------------------');
end;
procedure Vyvod(var f:tfile);
var z:menu;
begin
clrscr;
reset(f);
writeln('Меню:':25);
Zagl;
while not eof(f) do
 begin
  read(f,z);
  with z do
   begin
    gotoXY(1,whereY);write('|',kod:6);
    gotoXY(10,whereY);write('| ',naz);
    gotoXY(26,whereY);write('|',cen:7:2);
    gotoXY(35,whereY);write('| ',vid);
    gotoXY(46,whereY);writeln('|');
   end;
 end;
close(f);
writeln('----------------------------------------------');
readln;
end;
procedure Kod(var f:tfile);
var z:menu;
    s:string;
    k,c,p:integer;
begin
clrscr;
repeat
write('Введите код, натуральное число k=');
read(s);
val(s,k,c);
if c<>0 then writeln('Вы ввели не натуральное число, повторите ввод');
until c=0;
reset(f);
writeln('Блюда с кодом ',k);
Zagl;
p:=0;
while not eof(f)do
 begin
  read(f,z);
  with z do
  if kod=k then
   begin
    p:=1;
    gotoXY(1,whereY);write('|',kod:6);
    gotoXY(10,whereY);write('| ',naz);
    gotoXY(26,whereY);write('|',cen:7:2);
    gotoXY(35,whereY);write('| ',vid);
    gotoXY(46,whereY);writeln('|');
   end;
 end;
close(f);
writeln('----------------------------------------------');
if p=0 then write('Блюд с таким кодом нет');
readln
end;
procedure Naimenovanie(var f:tfile);
var z:menu;
    s:string;
    p:integer;
begin
clrscr;
writeln('Введите наименование блюда');
read(s);
reset(f);
writeln('Блюда с наименованием ',s);
Zagl;
p:=0;
while not eof(f)do
 begin
  read(f,z);
  with z do
  if naz=s then
   begin
    p:=1;
    gotoXY(1,whereY);write('|',kod:6);
    gotoXY(10,whereY);write('| ',naz);
    gotoXY(26,whereY);write('|',cen:7:2);
    gotoXY(35,whereY);write('| ',vid);
    gotoXY(46,whereY);writeln('|');
   end;
 end;
close(f);
writeln('----------------------------------------------');
if p=0 then write('Блюд с таким наименованием нет');
readln
end;
procedure Cena(var f:tfile);
var z:menu;
    s1,s2:string;
    k1,k2:real;
    c,p:integer;
begin
clrscr;
p:=0;
repeat
write('Введите нижний предел цены, вещественное число k1=');
read(s1);
val(s1,k1,c);
if c<>0 then p:=1;
write('Введите верхний предел цены, вещественное число k2>',k1:0:2,' k2=');
read(s2);
val(s2,k2,c);
if c<>0 then p:=1;
if (p=1)or(k1>=k2) then
writeln('Вы ввели неверные данные, повторите ввод');
until (p=0)and(k2>k1);
reset(f);
writeln('Блюда с ценой от ',k1:0:2,' до ',k2:0:2);
Zagl;
p:=0;
while not eof(f)do
 begin
  read(f,z);
  with z do
  if (cen>=k1)and(cen<=k2) then
   begin
    p:=1;
    gotoXY(1,whereY);write('|',kod:6);
    gotoXY(10,whereY);write('| ',naz);
    gotoXY(26,whereY);write('|',cen:7:2);
    gotoXY(35,whereY);write('| ',vid);
    gotoXY(46,whereY);writeln('|');
   end;
 end;
close(f);
writeln('----------------------------------------------');
if p=0 then write('Блюд с такими ценами нет');
readln
end;
procedure Vid(var f:tfile);
var z:menu;
    s:string;
    p:integer;
begin
clrscr;
writeln('Введите вид блюда');
read(s);
reset(f);
writeln('Блюда вида ',s);
Zagl;
p:=0;
while not eof(f)do
 begin
  read(f,z);
  with z do
  if vid=s then
   begin
    p:=1;
    gotoXY(1,whereY);write('|',kod:6);
    gotoXY(10,whereY);write('| ',naz);
    gotoXY(26,whereY);write('|',cen:7:2);
    gotoXY(35,whereY);write('| ',vid);
    gotoXY(46,whereY);writeln('|');
   end;
 end;
close(f);
writeln('----------------------------------------------');
if p=0 then write('Блюд такого вида нет');
readln
end;
var f:tfile;
    w:byte;
begin
Vvod(f);
repeat
clrscr;
writeln('Выберите действие:');
writeln('1-показать все меню');
writeln('2-поиск по коду');
writeln('3-поиск по наименованию');
writeln('4-поиск по цене');
writeln('5-поиск по виду');
writeln('6-выход');
repeat
read(w);
until w in [1..6];
case w of
1:Vyvod(f);
2:Kod(f);
3:Naimenovanie(f);
4:Cena(f);
5:Vid(f);
6:exit;
end;
until w=6;
end.
0
12.07.2011, 08:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2011, 08:55

Как записать типизированый файл в паскале
Помогите пожалуйста... объясните, как записать типизированый файл в паскале, что бы он потом...

Типизированый файл, поменять местами половины
создать файл из целых чисел (количество чисел четно). поменять местами первую и вторую половины...

Типизированый файл: найти разность первого и последнего компонентов
3аписать в файл последовательно доступно N действительных чисел. Найти разность первого и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.