10.01.2013, 15:43 | #1 (permalink) |
Новичок
Регистрация: 10.01.2013
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите исправить ошибку
var xmin, xmax, ymin, ymax: integer; Type matrix=record n, m: integer; a : array[1..20, 1..20] of integer; end; procedure next(var x, y : integer; vid : integer); begin if vid = 0 then begin if x = xmin then begin inc(y); if y > ymax then begin y := ymax; inc(x); end end else if x = xmax then begin dec(y); if y < ymin then begin y := ymin; dec(x); end end else if y = ymin then begin dec(x); if x < xmin then begin x := xmin; inc(y); end end else if y = ymax then begin inc(x); if x > xmax then begin x := xmax; dec(y); end end end else if vid = 1 then begin inc(y); if y > ymax then y := ymin; end else begin inc(x); if x > xmax then x := xmin; end; end; procedure sdvig(var mat, mat2 : matrix; k, p : integer); var i, x, x2, y, y2, kol, vid : integer; begin vid := 0; x2 := xmin; x := xmin; y2 := ymin; y := ymin; if xmin = xmax then begin kol := ymax - ymin + 1; vid := 1; end else if ymin = ymax then begin kol := xmax - xmin + 1; vid := 2; end else kol := 2 * ((xmax - xmin + 1) + (ymax - ymin - 1)); p := p mod kol; for i := 0 to p - 1 do next(x2, y2, vid); for i := 0 to kol - 1 do begin mat2.a[x2, y2] := mat.a[x, y]; next(x, y, vid); next(x2, y2, vid); end; end; var i, j, k, p : integer; mat, mat2 : matrix; begin clrscr; randomize; writeLn('Laboratornaya rabota N7_1'); writeLn('Variant N1'); writeLn('IS-12-2'); writeLn('Birykov Sergey'); writeLn; write('Vvedite kolichestvo strok n= '); read(mat.n); write('Vvedite kolichestvo stolbcov m= '); read(mat.m); write('Vvedite sloy k = '); read(k); write('Vvedite kolichestvo shagov p= '); read(p); writeln; for i := 1 to mat.n do for j := 1 to mat.m do mat.a[i, j]:=random(100); mat2 := mat; xmin := k; xmax := mat.n - k + 1; ymin := k; ymax := mat.m - k + 1; if (xmin > xmax) or (ymin > ymax) then begin writeln('Nekorrektny vvod'); exit; end; writeln; writeln('Ishodny massiv:'); for i := 1 to mat.n do begin for j := 1 to mat.m do write(mat.a[i] [j]:4); writeln; end; sdvig(mat, mat2, k, p); writeln; writeln('Izmeneny massiv'); for i := 1 to mat.n do begin for j := 1 to mat.m do write(mat2.a[i][j]:4); writeln; readln; end; end. |
10.01.2013, 15:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Аналогичные темы создавались ранее, вы можете ознакомиться с ними Помогите исправить код Задача на строки решена, но нужно исправить одну ошибку Помогите исправить ошибку Допустил ошибку в сообщении. Как исправить? |
12.01.2013, 10:57 | #3 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
1. Догадаться, в какой версии Паскаля писалась и запускалась программа. 2. По неработающей программе восстановить задание. 3. Угадать, в каком именно месте транслятор выдает ошибку. 4. Силой воображения восстановить текст сообщения об ошибке или хотя бы ее код. 5. Исправить ошибки и вообще отладить программу. 6. ... и это дело не затягивать! А Вы хотите, чтобы человек Вам за просто так всю эту информацию выдал! Так это же лишний раз пальчиками пошевелить придется, а пальчики-то чай свои, не казённые. Жа..а..лко... |
|
12.01.2013, 15:42 | #4 (permalink) |
С# - learn or die
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|