Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Операции над двумерным массивом.

Автор: nadja yak 11.04.2011 15:56

привет всем!!
дан двумерный массив в нем поменять четные числа на 0.
вот набросила код
код рабочий
однако небольшой косяк. Вместе с исходной матрицей паскаль распечатывает новую матрицу, ОДНАКО в новой матрице только заменившиеся нулями четные числа. КУДА ДЕЛИСЬ НЕЧЕТНЫЕ?? как их вернуть? wink.gif

program ss;
uses crt;
const n=5;m=5;
var a: array[1..n,1..m] of integer;
i,j:integer;
begin
clrscr;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
if a[i,j] mod 2=0 then begin
a[i,j]:=0;
write(a[i,j]:3);
end;
writeln;
end;
readln
end.

НИЖЕ ПРЕДСТАВЛЮ СКРИН КОСЯКА!

М
Теги! Првила Форума, п.5, и правила раздела Задачи, п.2
Исправил..


М
Название! Правила Форума, п.4, и правила раздела Задачи, п.1.
Исправил..




Прикрепленные файлы
Прикрепленный файл  __________.bmp ( 52.65 килобайт ) Кол-во скачиваний: 482

Автор: Lapp 11.04.2011 16:16

Цитата(nadja yak @ 11.04.2011 12:56) *
НИЖЕ ПРЕДСТАВЛЮ СКРИН КОСЯКА!
только не надо кричать.. (правила Форума, п.6)

Вынеси печать элементов за пределы оператора if
Вот так:
program ss;
uses crt;
const
n=5;
m=5;

var
a: array[1..n,1..m] of integer;
i,j:integer;

begin
randomize;
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln
end;
writeln;
for i:=1 to n do begin
for j:=1 to m do begin
if a[i,j] mod 2=0 then a[i,j]:=0;
write(a[i,j]:3);
end;
writeln;
end;
readln
end.

Обрати внимание, что, если код форматированный, то заметить такую ошибку гораздо проще yes2.gif.

Автор: nadja yak 11.04.2011 16:40

спасибо огромное! yes2.gif очень хороший у вас форум. радует)

Автор: Lapp 11.04.2011 16:42

Цитата(nadja yak @ 11.04.2011 13:40) *
спасибо огромное! yes2.gif очень хороший у вас форум. радует)

вух!! как приятно.. ))