Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 06.05.2010
Сообщений: 7

Описание входных и выходных данных

06.06.2010, 18:22. Показов 3309. Ответов 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
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
program SeaWar;
uses Graph,crt;
var
GraphDriver:integer;
GraphMode:integer;
ErrorCode:integer; {Переменные для инитилизации графики}
s_score:string;
 
{Все переменные, используемые в программе}
x           :integer;
y           :integer;  {Переменные для хранения координат}
xx          :integer;  {и переменные цикла}
typ         :integer;  {Тип текущего корабля}
xxx         :integer;  {Координаты}
tarx        :integer;  {Координаты прицела и пушки}
fx          :integer;  {Координаты}
fy          :integer;
score       :integer;  {Кол-во очков}
old_score   :integer;  {Прошлое значение кол-ва очков}
mimo        :integer;  {Кол-во промахов}
oldx        :integer;  {Координаты}
oldy        :integer;
crx         :integer;
cr_type     :integer;  {Тип корабля}
flang       :integer;  {С какой стороны плывёт корабль}
croldx      :integer;
cr_ind2     :integer;
cr_ind:longint;      {Рабочая переменная}
c:char;              {Хранение нажатых клавишь}
            {Флаги}
b           :boolean;  {Флаг нажатия клавиш "стрелок"}
fire        :boolean;  {Стрельба}
swim        :boolean;  {Перемещение}
promah      :boolean;  {Промах}
vzriv       :boolean;  {Взрыв}
const
{Два константных массива точек для хранения координат скал}
trin1:array[1..4] of PointType=
((x:-70;y:380),(x:60;y:20),(x:150;y:350),(x:-70;y:380));
trin2:array[1..4] of PointType=
((x:670;y:380),(x:560;y:5),(x:500;y:350),(x:670;y:400));
 
{Процедура вывода прицела и пушки на экран}
procedure target(ix:integer;bb:boolean);
const iy=200;
begin
if bb then begin   {Отображение}
SetColor(green);
SetFillStyle(SolidFill,green);
FillEllipse(ix,430,26,100);
SetColor(lightgreen);
Line(ix-10,iy,ix+10,iy);
Line(ix,iy-10,ix,iy+10);
end else begin     {Стирание}
SetFillStyle(SolidFill,blue);
SetColor(blue);
FillEllipse(ix,430,26,100);
SetColor(blue);
Line(ix-10,iy,ix+10,iy);
Line(ix,iy-10,ix,iy+10);
end;
end;
 
{Процедура вывода на экран различных кораблей}
procedure sheep(ix:integer;tip:integer;bb:boolean);
const
iy=200;
var
col,col2:integer;
sp1,sp2,sp3:array[1..5] of PointType;
begin
col:=brown;
col2:=yellow;
if not bb then begin    {Если bb=true, то отображение корабля}
col:=blue;              {Иначе стирание корабля}
col2:=blue;
end;
{Координаты кораблей, относительно центральной точки ix}
sp1[1].x:=ix-40;
sp1[1].y:=190;
sp1[2].x:=ix+40;
sp1[2].y:=190;
sp1[3].x:=ix+20;
sp1[3].y:=215;
sp1[4].x:=ix-20;
sp1[4].y:=215;
sp1[5].x:=sp1[1].x;
sp1[5].y:=sp1[1].y;
sp2[1].x:=ix-30;
sp2[1].y:=190;
sp2[2].x:=ix+30;
sp2[2].y:=190;
sp2[3].x:=ix+15;
sp2[3].y:=210;
sp2[4].x:=ix-15;
sp2[4].y:=210;
sp2[5].x:=sp2[1].x;
sp2[5].y:=sp2[1].y;
sp3[1].x:=ix-20;
sp3[1].y:=195;
sp3[2].x:=ix+20;
sp3[2].y:=195;
sp3[3].x:=ix+10;
sp3[3].y:=205;
sp3[4].x:=ix-10;
sp3[4].y:=205;
sp3[5].x:=sp3[1].x;
sp3[5].y:=sp3[1].y;
{Отображение одного из трёх типов кораблей}
case tip of
3: begin
SetColor(col);
SetFillStyle(SolidFill,col);
FillPoly(5,sp1);
Rectangle(ix-18,iy-30,ix+18,iy-2);
SetColor(col2);
SetFillStyle(SolidFill,col2);
Rectangle(ix-10,iy-25,ix+10,iy-15);
FillEllipse(ix-18,iy,5,5);
FillEllipse(ix+18,iy,5,5);
FillEllipse(ix,iy,5,5);
end;
2: begin
SetColor(col);
SetFillStyle(SolidFill,col);
FillPoly(5,sp2);
line(ix,200,ix,170);
line(ix-5,175,ix+5,175);
line(ix-10,180,ix+10,180);
end;
1: begin
SetColor(col);
SetFillStyle(SolidFill,col);
FillPoly(5,sp3);
line(ix,200,ix,185);
line(ix-5,185,ix+5,185);
line(ix-10,190,ix+10,190);
end;
end;
end;
 
{Начало главной процедуры программы}
begin
x:=100;
xx:=0;
xxx:=0;
oldx:=0;
b:=false;
tarx:=320;
fire:=false;      {инитилизация пременных}
crx:=0;
croldx:=800;
score:=0;
old_score:=0;
mimo:=0;
promah:=false;
vzriv:=false;
 
{Переключение в графический режим}
GraphDriver:=Detect;
InitGraph(GraphDriver,GraphMode,'');
if ErrorCode=grok then begin
SetColor(green);
SetBKColor(black);
end else begin
Writeln('ERROR!');
exit;
end;
 
SetColor(white);
OutText('Vipolnil:Ivanov Ivan');
OutTextXY(0,10,'Group:  1');
SetTextJustify(CenterText,CenterText);
OutTextXY(640 div 2,480 div 2,'Najmi <Enter> i nachni igrat!');
c:=ReadKey;
 
{Подготовка экрана к игре}
ClearDevice;
SetBkColor(blue);
SetColor(lightgray);
SetFillStyle(SolidFill,lightgray);
FillPoly(4,trin1);
FillPoly(4,trin2);
SetColor(black);
Target(320,true);
 
{Главный цикл обработки различных сообщений}
repeat
repeat
 
{Обработка сообщения "Взрыв корабля"}
if vzriv then begin
   if xx=0 then begin
      typ:=cr_type;
      xxx:=crx;
   end;
   if xx<150 then begin
      {Рисование взрыва}
      Sound(Random(100));
      swim:=false;
      SetColor(red);
      SetColor(red);
      SetFillStyle(SolidFill,red);
      FillEllipse(xxx,200,21*typ,17*typ);
      inc(xx);
   end else begin
       NoSound;
       swim:=false;
      SetColor(blue);
      SetFillStyle(SolidFill,blue);
      FillEllipse(xxx,200,21*typ,17*typ);
      xx:=0;
      vzriv:=false;
   end;
end;
 
{Обработка сообщения "Перемещение"}
if swim then begin
      if cr_ind<400 then begin
         Sheep(crx,cr_type,false);
         if promah then promah:=false;
      end else begin
      if cr_ind mod cr_type*5=0 then begin
                if promah then begin
                   if flang=0 then flang:=1
                   else flang:=0;
                   promah:=false;
                end;
         if flang=0 then begin
            if crx=485 then begin
               inc(cr_ind2);
               if cr_ind2<3 then Sheep(crx,cr_type,true)
               else begin
               Sheep(crx,cr_type,false);
               swim:=false;
               end;
            end else begin
                crx:=crx+1;
                Sheep(croldx,cr_type,false);
                Sheep(crx,cr_type,true);
                croldx:=crx;
            end;
         end else begin
             if crx=150 then begin
               inc(cr_ind2);
               if cr_ind2<3 then Sheep(crx,cr_type,true)
               else begin
               Sheep(crx,cr_type,false);
               swim:=false;
               end;
            end else begin
                crx:=crx-1;
                Sheep(croldx,cr_type,false);
                Sheep(crx,cr_type,true);
                croldx:=crx;
            end;
         end;
      end;
      end;
      inc(cr_ind);
end else begin
    {Если корабля нет на экране, то случайным методом
    выбирается новый корабль}
    Randomize;
    croldx:=800;
    cr_ind2:=0;
    if random(2)=0 then begin
    crx:=150;
    flang:=0;
    end else begin
    crx:=485;
    flang:=1;
    end;
    swim:=true;
    cr_ind:=0;
    Randomize;
    cr_type:=random(3)+1;
end;
 
{Обработка сообщения "Выстрел"}
{и рисование полёта снаряда}
if fire then begin
x:=x-10;
Sound(x);
SetColor(blue);
line(fx+1,fy-2,fx+1,fy+2);
line(fx-1,fy-2,fx-1,fy+2);
line(fx,fy-2,fx,fy+2);
fy:=fy-2;
SetColor(lightred);
line(fx+1,fy-2,fx+1,fy+2);
line(fx-1,fy-2,fx-1,fy+2);
line(fx,fy-2,fx,fy+2);
if fy<200 then begin
if (getpixel(fx-1,fy-3)=brown)or(getpixel(fx+1,fy-3)=brown) then begin
old_score:=score;
inc(score);
vzriv:=true;
end else begin
{Обработка сообщения "Промах"}
promah:=true;
inc(mimo);
          if mimo>5 then begin
          {Выход из игры в случае проигрыша}
          ClearDevice;
          SetColor(white);
          SetBkColor(black);
          SetTextJustify(CenterText,CenterText);
          OutTextXY(640 div 2,480 div 2,'GAME OVER!');
          Sound(200);
          Delay(10000);
          NoSound;
          c:=ReadKey;
          exit;
          end;
end;
fire:=false;
NoSound;
SetColor(blue);
line(fx+1,fy-2,fx+1,fy+2);
line(fx-1,fy-2,fx-1,fy+2);
line(fx,fy-2,fx,fy+2);
end;
end;
if b then begin
{Перерисовка прицела и пушки в случае нажатия клавиш "влево-вправо"}
target(oldx,false);
target(tarx,true);
b:=false;
end else target(tarx,true);
{В случае попадания, производится начисление очков и вывод их на экран}
if old_score<>score then begin
   SetColor(blue);
   SetTextJustify(LeftText,BottomText);
   Str(old_score,s_score);
   OutTextXY(70,460,s_score);
   old_score:=score;
end;
    SetColor(white);
    SetTextJustify(LeftText,BottomText);
    OutTextXY(20,460,'Score');
    Str(score,s_score);
    OutTextXY(70,460,s_score);
delay(150);  {Временная задержка главного цикла}
until keypressed;
{Обработка нажатия клавиш}
c:=readkey;
case c of
#75: begin  {влево}
if tarx>220 then begin
oldx:=tarx;
tarx:=tarx-5;
b:=true;
end;
end;
#77: begin  {вправо}
if tarx<420 then begin
oldx:=tarx;
tarx:=tarx+5;
b:=true;
end;
end;
#32: begin  {пробел "Выстрел"}
if not fire then begin
x:=800;
fire:=true;
fx:=tarx;
fy:=380;
end;
end;
#27: begin   {esc "Выход"}
NoSound;
exit;
end;
end;
until false; {Зацикливание главного цикла обработки сообщений}
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2010, 18:22
Ответы с готовыми решениями:

Описание входных и выходных данных
Описать входные и выходные данные(что вводим и что выводим).Буду очень благодарен кто выручит. uses crt; var m:array of...

Обработка входных данных
Есть задача, в которой вводится натуральное число типа word. Нужно сделать программу устойчивой к неправильном вводу. Как посоветуете...

Тип входных данных в TextBox
Необходимо сделать поле ввода минут. MaskedTextBox мне не подходит. Как это сделать? Если нужна дополнительная информация, пишите.

4
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.06.2010, 20:07
А в обеих процедурах все параметры описаны как входные.
0
1 / 1 / 0
Регистрация: 06.05.2010
Сообщений: 7
06.06.2010, 20:13  [ТС]
А можешь написать какие именно?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.06.2010, 20:17
Да все что в скобках после названия процедуры.
0
1 / 1 / 0
Регистрация: 06.05.2010
Сообщений: 7
06.06.2010, 20:24  [ТС]
45 строка - ix:integer;bb:boolean
66 строка - tip:integer;
Эти?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2010, 20:24
Помогаю со студенческими работами здесь

Ввод очень длинного числа в входных данных
Ребят, помогите пожалуйста. Смысл задачи состоит в следующем: В 1 строке входного файла содержится 80 значное число, состоящее из 0 и 1,...

Составить программу вычисления таблицы значений функции с контролем входных данных
Составить паскаль программу вычисления таблицы значений функции с контролем входных данных. Входные данные: a,b-параметры, аргумент x...

Считывания входных данных из файла: Ошибка времени выполнения: Входная строка имела неверный формат
Не могу разобраться с вводом информации из текстового файла, выбивает ошибку :lab 7c.pas(19) : Ошибка времени выполнения: Входная строка...

Описание входных и выходных данных кода
Помогите написать описание входных и выходных данных этого кода

Реализовать ввод данных из файла, просмотр входных и выходных данных
помогите пожалуйста с вот этой программой создать программный комплекс, реализующий ввод данных из файла, просмотр входных и выходных...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru