Помощь - Поиск - Пользователи - Календарь
Полная версия: Получить новый массив B из массива A заменой нулей массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
swe-4a
Почему не работает? Паскаль АВС.
Дан двумерный массив A[m,n]. Получить сумму первой строки. Получить новый массив B из массива A заменой нулей массива A на сумму первой строки. Результаты выдать на экран.

PROGRAM kr_5; 

const
n = 3; m = 4;
var
a,b: array[1..n, 1..m] of real;
i: integer;
j: integer;
s: real;
begin
Writeln('значение элементов матрицы:');
for i:=1 to n do for j:=1 to m do readln(a[i,j]);
s:=0;
for i:=1 to 1 do
for j:=1 to m do
s:=s+a[1,j];
writeln(' = ',s:7:2);

begin

for i:=1 to n do for j:=1 to m do readln(a[i,j]);
a [i,j]:=b[i,j];
if a[ i,j ] =0 then begin b[i,j]:=Round(S);
writeln('massiv b', b[i,j]);
writeln;
end;

readln;
end;
end.
мисс_граффити
Смотри, что ты делаешь:
1. читаешь массив а
2. считаешь сумму (зачем там for i:=1 to 1 - не поняла, ну да фиг с ним, не о том речь)
3. опять читаешь массив а
4. какому-то из элементов (скорее всего, последнему) массива а присваиваешь какое-то значение из b (ничем не инициализированное... скорее всего, 0). это уже вне цикла. зачем???
5. если этот непонятный элемент равен нулю (вполне вероятно), изменяешь значение (скорее всего последнего) элемента из b

собственно, вопросы - зачем ты делаешь п.3-4?
swe-4a
Цитата(мисс_граффити @ 25.01.2011 10:12) *

Смотри, что ты делаешь:
1. читаешь массив а
2. считаешь сумму (зачем там for i:=1 to 1 - не поняла, ну да фиг с ним, не о том речь)
3. опять читаешь массив а
4. какому-то из элементов (скорее всего, последнему) массива а присваиваешь какое-то значение из b (ничем не инициализированное... скорее всего, 0). это уже вне цикла. зачем???
5. если этот непонятный элемент равен нулю (вполне вероятно), изменяешь значение (скорее всего последнего) элемента из b

собственно, вопросы - зачем ты делаешь п.3-4?

тогда вообще ни чего не понимаю....как получить новый массив из имеющегося при этом в новом массиве заменить нули старого на сумму первой строки старого массива?
Гость
> как получить новый массив из имеющегося

b:=a например

> при этом в новом массиве заменить нули старого на сумму первой строки старого массива?

for i := 1 to n do for j := 1 to m do
if a[i,j] = 0 then b[i,j] := s
else b[i,j] := a[i,j];
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.