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

Как Graph ABC запустить в процедуре?

26.05.2015, 19:17. Просмотров 654. Ответов 1
Метки нет (Все метки)

Имеется меню с пунктами, в которых нужно выбрать 3 действия, за которыми идут еще процедуры с действиями. Но в при добавления graph abc не получается запустить программу. Не могу точно обьяснить проблему, т.к сам не вижу ее.

Вот код:


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
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
//Программа, организующая ввод и сохранение в бинарном типизированном файле
//данных о свободных вакансиях на предприятии.Организован поиск по вакансиям
//с использованием подпрограмм. Общее количество свободных вакансий (по дням)
//отображется в виде графика.
 
  Type
  DateTime = Record
    Day: 1..31;
    Month: 1..12;
    Year: 2000..2020;
  End;
  NameType = String[25];
  Vacancy = Record
    ID, Numbers, Exp, Wage: Integer;
    Date: DateTime;
    Name: NameType;
  End;
 
Var
  F: file of Vacancy;
  VacancyDataBase: Vacancy;
  MainMenu, DBProcedure, SearchProcedure: Integer;
  Answer: Integer;
 
  
Procedure Create;
Var Number, Answer: Integer;
Begin
    Rewrite(F);
    Number:=0;
    Repeat
      Number:=Number+1;
      Writeln('Создание базы: ');
      Writeln('Ввод записи № ',Number);
        Begin
        With VacancyDataBase do
          Begin
            Writeln('Введите ID вакансии - ');
            Readln(ID);
            Writeln('Введите название вакансии - ');
            Readln(Name);
            Writeln('Введите заработную плату (в тысячах) - ');
            Readln(Wage);
            Writeln('Введите требуемый стаж работы - ');
            Readln(Exp);
            Writeln('Введите количество свободных вакансий - ');
            Readln(Numbers);
            Writeln('Введите дату актуальности вакансии - ');
            Writeln('Число: '); Readln(Date.Day);
            Writeln('Месяц: '); Readln(Date.Month);
            Writeln('Год: '); Readln(Date.Year);
            Writeln;
            Writeln('Запись добавлена');
          end;
        end;
      Write(F, VacancyDataBase); Writeln;
      Write('0 - Выход, 1 - Продолжить : ');
      Readln(Answer);
    Until Answer=0;
    Close(F);
End;
 
Procedure Add;
Var Number, Answer: Integer;
Begin
    Reset(F);
    Seek(F, Filesize(F));
    Number:=Filepos(F);
    Repeat
      Number:=Number+1;
      Writeln('Создание базы: ');
      Writeln('Ввод записи № ',Number);
        Begin
        With VacancyDataBase do
          Begin
            Writeln('Введите ID вакансии - ');
            Readln(ID);
            Writeln('Введите название вакансии - ');
            Readln(Name);
            Writeln('Введите заработную плату (в тысячах) - ');
            Readln(Wage);
            Writeln('Введите требуемый стаж работы - ');
            Readln(Exp);
            Writeln('Введите количество свободных вакансий - ');
            Readln(Numbers);
            Writeln('Введите дату актуальности вакансии - ');
            Writeln('Число: '); Readln(Date.Day);
            Writeln('Месяц: '); Readln(Date.Month);
            Writeln('Год: '); Readln(Date.Year);
            Writeln;
            Writeln('Запись добавлена');
          end;
        end;
      Write(F, VacancyDataBase); Writeln;
      Write('0 - Выход, 1 - Продолжить : ');
      Readln(Answer);
    Until Answer=0;
    Close(F);
End;
 
Procedure Display;
Var Number: Integer;
Begin
    Number:=0;
    Reset(F);
    Writeln('Вывод базы данных:');
    writeln;
    Write('  ID  |     Вакансия     |   ЗП   |  Стаж  |  Места  |  Число  |  Месяц  |  Год  ');
    Writeln;
    While (not Eof(F)) do
      Begin
        Number:=Number+1;
        Read(F, VacancyDataBase);
        Begin
          With VacancyDataBase do
          Begin
            Write(ID:5,'  ');
            Write(Name:18);
            Write(Wage:5);
            Write(Exp:5);
            Write(Numbers:5);
            Write(Date.Day:5);
            Write(Date.Month:10);
            Write(Date.Year:5);
          End;
        End;
        Writeln;
      end;
    Writeln;
    Close(F);
    Writeln('Нажмите любую клавишу ...');
    Readln;
End;
 
Procedure DataBase;
Var Answer: Integer;
begin
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('База данных: ');
  Writeln;
  Writeln('1 - Создать БД');
  Writeln('2 - Добавить вакансии');
  Writeln('3 - Вывести БД на экран');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(DBProcedure);
  Case DBProcedure of
  0: Exit;
  1: Create;
  2: Add;
  3: Display;
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
End;
 
Procedure IDSearch;
Var Number: Integer;
    B: Boolean;
    Answer: byte;
Begin
    Repeat
      Writeln('Осуществление поиска по ID вакансий.');
      B:=False;
      Write('Введите ID вакансий: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.ID=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный ID или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure NameSearch;
Var N: NameType;
    B: Boolean;
    Answer: Integer;
Begin
    Repeat
      Writeln('Осуществление поиска по названию вакансии.');
      B:=False;
      Write('Введите название вакансий: ');
      Readln(N);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Name=N then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введено некорректное имя вакансии или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure WageSearch;
Var Number: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    Repeat
      Writeln('Осуществление поиска по ЗП вакансий.');
      B:=False;
      Write('Введите ЗП вакансий: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Wage=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введена некорректная ЗП или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure ExpSearch;
Var Number: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    Repeat
      Writeln('Осуществление поиска по минимальному стажу работы.');
      B:=False;
      Write('Введите минимальный стаж работы: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Exp=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный стаж работы или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure NumberSearch;
Var N: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    Repeat
      Writeln('Осуществление поиска по свободным местам в вакансиях.');
      B:=False;
      Write('Введите количество сободных мест: ');
      Readln(N);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Numbers=N then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный стаж работы или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure DateSearch;
Var D: 1..31;
    M: 1..12;
    Y: 2000..2020;
    B:Boolean;
    Answer: Integer;
Begin
    Repeat
      Writeln('Осуществление поиска по дате вакансии.');
      B:=false;
      Writeln('Введите дату: ');
      Write('Число: '); Readln(D);
      Write('Месяц: '); Readln(M);
      Write('Год: '); Readln(Y);
      Reset(F);
      While (not eof(f)) do
       Begin
         Read(F,VacancyDataBase);
         If (VacancyDataBase.Date.Day=D) and (VacancyDataBase.Date.Month=M) and (VacancyDataBase.Date.Year=Y) then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введена некорректная дата или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure Search;
Var Answer: Integer;
begin
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('Поиск: ');
  Writeln;
  Writeln('1 - ID');
  Writeln('2 - Вакансия');
  Writeln('3 - ЗП');
  Writeln('4 - Стаж');
  Writeln('5 - Места');
  Writeln('6 - Дата');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(SearchProcedure);
  Case SearchProcedure of
  0: Exit;
  1: IDSearch;
  2: NameSearch;
  3: WageSearch;
  4: ExpSearch;
  5: NumberSearch;
  6: DateSearch
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
End;
 
Procedure Graph;
uses graphABC;
const
god:array[1..7] of string=('2002','2003','2004','2005','2006','2008','2009');
cen:array[1..7] of real=(15.05,16.30,17.23,18.60,19.32,20.95,21.70);
cv:array[1..7] of integer=(clPurple,clAqua,clRed,clGreen ,clBlue,clLime,clSkyBlue);
var i,j,x0,y0,w,c:integer;
    mx,h:real;
    s:string;
begin
textout(200,20,'Рост цен на бензин в 2002-2009 годах');
w:=20;{ширина столбцов}
x0:=50;{левый край диагоаммы}
y0:=windowheight-80;{нижний край}
mx:=cen[1];
for i:=1 to 7 do
if cen[i]>mx then mx:=cen[i];{находим максимум}
h:=(y0-40)/mx;{масштаб по вертикали}
for i:=1 to 7 do
 begin
  c:=cv[i];
  setpencolor(c);{случайный цвет}
  setbrushcolor(c);
  {рисуем прямоугольники с заданной шириной, шагом  и высотой соответственно значению цен}
  rectangle(x0+4*w*(i-1),y0-round(cen[i]*h),x0+w*(4*i-2),y0);
  setbrushstyle(bsClear);
  textout(x0+4*w*(i-1)+5,y0+20,god[i]);{выводим по низу годы}
  str(cen[i]:5:2,s);{преобразуем цены в строку}
  textout(x0+4*w*(i-1)+w-15,y0-round(cen[i]*h)-20,s);{выводим цену выше столбика}
end;
 
Begin
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('Главное меню: ');
  Writeln;
  Writeln('1 - База данных');
  Writeln('2 - Поиск');
  Writeln('3 - График');
  Writeln('0 - Выход');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(MainMenu);
  Case MainMenu of
  0: Exit;
  1: DataBase;
  2: Search;
  3: Graph;
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
End;
Как сделать пункт График рабочим?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 19:17
Ответы с готовыми решениями:

Не найден идентификатор Graph ABC
Проблема в том что не найден идентификатор Graph ABC и была написана на...

Graph ABC нарисовать лицо
Написать программу, управляющую некоторым объектом, первоначально расположенным...

Graph ABC Сделать анимацию барабана и палочек
Нужно нарисовать барабан и палочки которые стукают об барабан. Зарание спасибо.

Pascal Graph ABC. Объясните строчки кода
Не могу понять как работает цикл while в конце кода. Пожалуйста объясните что...

Graph ABC Нарисовать равнобедренный треугольник, который вращается
Нужно нарисовать равнобедренный треугольник, который вращается вокруг...

1
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
3886 / 2866 / 3641
Регистрация: 05.06.2014
Сообщений: 14,098
27.05.2015, 18:59 2
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
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
//Программа, организующая ввод и сохранение в бинарном типизированном файле
//данных о свободных вакансиях на предприятии.Организован поиск по вакансиям
//с использованием подпрограмм. Общее количество свободных вакансий (по дням)
//отображется в виде графика.
uses graphABC,CRT;
  Type
  DateTime = Record
    Day: 1..31;
    Month: 1..12;
    Year: 2000..2020;
  End;
  NameType = String[25];
  Vacancy = Record
    ID, Numbers, Exp, Wage: Integer;
    Date: DateTime;
    Name: NameType;
  End;
 
Var
  F: file of Vacancy;
  VacancyDataBase: Vacancy;
  MainMenu, DBProcedure, SearchProcedure: Integer;
  Answer: Integer;
 
Procedure Create;
Var Number, Answer: Integer;
Begin
    clrscr;
    Rewrite(F);
    Number:=0;
    Repeat
      Number:=Number+1;
      Writeln('Создание базы: ');
      Writeln('Ввод записи № ',Number);
        Begin
        With VacancyDataBase do
          Begin
            Writeln('Введите ID вакансии - ');
            Readln(ID);
            Writeln('Введите название вакансии - ');
            Readln(Name);
            Writeln('Введите заработную плату (в тысячах) - ');
            Readln(Wage);
            Writeln('Введите требуемый стаж работы - ');
            Readln(Exp);
            Writeln('Введите количество свободных вакансий - ');
            Readln(Numbers);
            Writeln('Введите дату актуальности вакансии - ');
            Writeln('Число: '); Readln(Date.Day);
            Writeln('Месяц: '); Readln(Date.Month);
            Writeln('Год: '); Readln(Date.Year);
            Writeln;
            Writeln('Запись добавлена');
          end;
        end;
      Write(F, VacancyDataBase); Writeln;
      Write('0 - Выход, 1 - Продолжить : ');
      Readln(Answer);
    Until Answer=0;
    Close(F);
End;
 
Procedure Add;
Var Number, Answer: Integer;
Begin
    clrscr;
    Reset(F);
    Seek(F, Filesize(F));
    Number:=Filepos(F);
    Repeat
      Number:=Number+1;
      Writeln('Создание базы: ');
      Writeln('Ввод записи № ',Number);
        Begin
        With VacancyDataBase do
          Begin
            Writeln('Введите ID вакансии - ');
            Readln(ID);
            Writeln('Введите название вакансии - ');
            Readln(Name);
            Writeln('Введите заработную плату (в тысячах) - ');
            Readln(Wage);
            Writeln('Введите требуемый стаж работы - ');
            Readln(Exp);
            Writeln('Введите количество свободных вакансий - ');
            Readln(Numbers);
            Writeln('Введите дату актуальности вакансии - ');
            Writeln('Число: '); Readln(Date.Day);
            Writeln('Месяц: '); Readln(Date.Month);
            Writeln('Год: '); Readln(Date.Year);
            Writeln;
            Writeln('Запись добавлена');
          end;
        end;
      Write(F, VacancyDataBase); Writeln;
      Write('0 - Выход, 1 - Продолжить : ');
      Readln(Answer);
    Until Answer=0;
    Close(F);
End;
 
Procedure Display;
Var Number: Integer;
Begin
    clrscr;
    Number:=0;
    Reset(F);
    Writeln('Вывод базы данных:');
    writeln;
    Write('  ID  |     Вакансия     |   ЗП   |  Стаж  |  Места  |  Число  |  Месяц  |  Год  ');
    Writeln;
    While (not Eof(F)) do
      Begin
        Number:=Number+1;
        Read(F, VacancyDataBase);
        Begin
          With VacancyDataBase do
          Begin
            Write(ID:5,'  ');
            Write(Name:18);
            Write(Wage:5);
            Write(Exp:5);
            Write(Numbers:5);
            Write(Date.Day:5);
            Write(Date.Month:10);
            Write(Date.Year:5);
          End;
        End;
        Writeln;
      end;
    Writeln;
    Close(F);
    Writeln('Нажмите любую клавишу ...');
    Readln;
End;
 
Procedure DataBase;
Var Answer: Integer;
begin
    clrscr;
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('База данных: ');
  Writeln;
  Writeln('1 - Создать БД');
  Writeln('2 - Добавить вакансии');
  Writeln('3 - Вывести БД на экран');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(DBProcedure);
  Case DBProcedure of
  0: Exit;
  1: Create;
  2: Add;
  3: Display;
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
End;
 
Procedure IDSearch;
Var Number: Integer;
    B: Boolean;
    Answer: byte;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по ID вакансий.');
      B:=False;
      Write('Введите ID вакансий: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.ID=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный ID или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure NameSearch;
Var N: NameType;
    B: Boolean;
    Answer: Integer;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по названию вакансии.');
      B:=False;
      Write('Введите название вакансий: ');
      Readln(N);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Name=N then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введено некорректное имя вакансии или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure WageSearch;
Var Number: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по ЗП вакансий.');
      B:=False;
      Write('Введите ЗП вакансий: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Wage=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введена некорректная ЗП или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure ExpSearch;
Var Number: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по минимальному стажу работы.');
      B:=False;
      Write('Введите минимальный стаж работы: ');
      Readln(Number);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Exp=Number then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный стаж работы или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure NumberSearch;
Var N: Integer;
    B: Boolean;
    Answer: Integer;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по свободным местам в вакансиях.');
      B:=False;
      Write('Введите количество сободных мест: ');
      Readln(N);
      Reset(F);
      While (not eof(F)) do
       Begin
         Read(F,VacancyDataBase);
         If VacancyDataBase.Numbers=N then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введен некорректный стаж работы или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure DateSearch;
Var D: 1..31;
    M: 1..12;
    Y: 2000..2020;
    B:Boolean;
    Answer: Integer;
Begin
    clrscr;
    Repeat
      Writeln('Осуществление поиска по дате вакансии.');
      B:=false;
      Writeln('Введите дату: ');
      Write('Число: '); Readln(D);
      Write('Месяц: '); Readln(M);
      Write('Год: '); Readln(Y);
      Reset(F);
      While (not eof(f)) do
       Begin
         Read(F,VacancyDataBase);
         If (VacancyDataBase.Date.Day=D) and (VacancyDataBase.Date.Month=M) and (VacancyDataBase.Date.Year=Y) then
           Begin
             B:=True;
             Display;
           End;
       End;
      Writeln;
      If b=false then writeln('Введена некорректная дата или нет информации в базе');
      Writeln;
      Close(F);
      Write('0 - Выход, 1 - Продолжить :');
      Readln(Answer);
    Until Answer=0;
End;
 
Procedure Search;
Var Answer: Integer;
begin
    clrscr;
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('Поиск: ');
  Writeln;
  Writeln('1 - ID');
  Writeln('2 - Вакансия');
  Writeln('3 - ЗП');
  Writeln('4 - Стаж');
  Writeln('5 - Места');
  Writeln('6 - Дата');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(SearchProcedure);
  Case SearchProcedure of
  0: Exit;
  1: IDSearch;
  2: NameSearch;
  3: WageSearch;
  4: ExpSearch;
  5: NumberSearch;
  6: DateSearch
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
End;
 
Procedure Graph;
const
god:array[1..7] of string=('2002','2003','2004','2005','2006','2008','2009');
cen:array[1..7] of real=(15.05,16.30,17.23,18.60,19.32,20.95,21.70);
cv:array[1..7] of integer=(clPurple,clAqua,clRed,clGreen ,clBlue,clLime,clSkyBlue);
var i,j,x0,y0,w,c:integer;
    mx,h:real;
    s:string;
begin
clearwindow;
textout(200,20,'Рост цен на бензин в 2002-2009 годах');
w:=20;{ширина столбцов}
x0:=50;{левый край диагоаммы}
y0:=windowheight-80;{нижний край}
mx:=cen[1];
for i:=1 to 7 do
if cen[i]>mx then mx:=cen[i];{находим максимум}
h:=(y0-40)/mx;{масштаб по вертикали}
for i:=1 to 7 do
 begin
  c:=cv[i];
  setpencolor(c);{случайный цвет}
  setbrushcolor(c);
  {рисуем прямоугольники с заданной шириной, шагом  и высотой соответственно значению цен}
  rectangle(x0+4*w*(i-1),y0-round(cen[i]*h),x0+w*(4*i-2),y0);
  setbrushstyle(bsClear);
  textout(x0+4*w*(i-1)+5,y0+20,god[i]);{выводим по низу годы}
  str(cen[i]:5:2,s);{преобразуем цены в строку}
  textout(x0+4*w*(i-1)+w-15,y0-round(cen[i]*h)-20,s);{выводим цену выше столбика}
end;
end;
 
Begin
    clrscr;
  Assign(F,'VacancyDateBase.dat');
  Repeat
  Writeln;
  Writeln('Главное меню: ');
  Writeln;
  Writeln('1 - База данных');
  Writeln('2 - Поиск');
  Writeln('3 - График');
  Writeln('0 - Выход');
  Writeln;
  Write('Введите номер выбранной операции - ');
  Readln(MainMenu);
  Case MainMenu of
  0: Exit;
  1: DataBase;
  2: Search;
  3: Graph;
  Else writeln('Неверный формат ввода');
  End;
  Write('0 - Выход, 1 - Главное меню : ');
  Readln(Answer);
  Until Answer=0;
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 18:59

Graph ABC: Нарисовать на экране разносторонний треугольник, вращающийся вокруг своего центра тяжести
в) Нарисовать на экране разносторонний треугольник, вращающийся вокруг своего...

Код из турбо паскаля, запустить на паскале abc
uses graph; var d,m:integer; x,y,cx,cy,wx,wy,theta,q,n,r:real; i:longint;...

Как выйти из программы в процедуре?
Вот собственно проедура: procedure MouseDown(x,y,mb:integer); begin ...


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

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

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