Задача на матрицы!
Сформировать новую матрицу, элементы которой будут равны разностям элементов исходной матрицы. Задачу решить с помощью процедур (ввод, вывод массивов и т.д.).
Неполучается - "...элементы которой будут равны разностям элементов исходной матрицы..."!
Неполучается - "...элементы которой будут равны разностям элементов исходной матрицы..."!
Что-то я непонял вопроса... что от чего надо вычитать?
Задача:
Сформировать новую матрицу, элементы которой будут равны разностям элементов исходной матрицы. Задачу решить с помощью процедур (ввод, вывод массивов и т.д.).
Неполучается - "...элементы которой будут равны разностям элементов исходной матрицы..."!
По правилам форума, да и здравого смысла :), с твоей стороны будет очень хорошо, если запостишь сюда то, что уже сделал.
И объясни вопрос, не ясно какую именно разность.
По правилам форума, да и здравого смысла :), с твоей стороны будет очень хорошо, если запостишь сюда то, что уже сделал.
И объясни вопрос, не ясно какую именно разность.
Ну к примеру элемент a[1,1] новой матрицы получается из разницы элементов a[1,2]-a[1,1] исходной матрицы.
Ну к примеру элемент a[1,1] новой матрицы получается из разницы элементов a[1,2]-a[1,1] исходной матрицы.
Т.е. в новой матрице получится на один столбец меньше?
Например: есть матрица 5*4 => из нее формируем матрицу 5*3.
Если так, то задача очень легкая, уверенна что запутался на пустяке, тащи свой код :).
Т.е. в новой матрице получится на один столбец меньше?
Например: есть матрица 5*4 => из нее формируем матрицу 5*3.
Если так, то задача очень легкая, уверенна что запутался на пустяке, тащи свой код :).
Да я сам, если честно, не знаю! Я как понял первый элемент новой матрицы получаем при вычитании второго элемента из первого исходной матрицы?!
У меня кроме кода ввода и вывода матрицы больше ничего нет, остальное не доходит!:(
Да я сам, если честно, не знаю! Я как понял первый элемент новой матрицы получаем при вычитании второго элемента из первого исходной матрицы?!
У меня кроме кода ввода и вывода матрицы больше ничего нет, остальное не доходит!:(
Хотя бы это бы принес!
Есть матрица N*M, значит размер новой матрицы будет(по моему мнению) N*(M-1).
matrix1 - матрица введеная с клавы
matrix2 - новая матрица
for j:=1 to (M-1) do
matrix2(i,j) := matrix1(i,j+1) - matrix1(i,j);
Думаю что то вроде этого.
var a:array[1..30,1..30] of integer;
b:array[1..30,1..30] of integer;
i,j,n,k,max,at:integer;
begin
clrScr;
writeln('Vvedite rasmernost massiva:');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin write('a[',i,j,']=');
readln(a[i,j])
end;
writeln('Ishodnij massiv:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:4);
writeln
end;
for i:=1 to n do
begin for j:=1 to (n-1) do begin
b[i,j]:=a[i,j+1]-a[i,j];
end;
writeln
end;
writeln('Novij massiv:');
for i:=1 to n do
begin for j:=1 to n do
write(b[i,j]:4);
writeln
end;
readln;
End.
Ввожу:
Размерность: 2
Получаем матрицу:
1 2
1 2
Новая матрица:
1 0
1 0
Почему получаем нули? Их в новой матрице вообще-то, наверно, не должно быть!
Я думаю, что матрица должна выглядеть:
1-2 2-0
Что-то вообще запутался, блин!
Вот код задачи:
writeln('Novij massiv:');
for i:=1 to n do
begin for j:=1 to n do
write(b[i,j]:4);
writeln
end;
readln;
End.
Ввожу:
Размерность: 2
Получаем матрицу:
1 2
1 2
Новая матрица:
1 0
1 0
Почему получаем нули? Их в новой матрице вообще-то, наверно, не должно быть!
Я думаю, что матрица должна выглядеть:
1-2 2-0
Что-то вообще запутался, блин!
Все правильно, просто расспе чатывать новый массив надо до (n-1), я писала почему. А нули - это значения массива по умолчанию, которые получаем когда объявляем его.
1 2
1 2
Новая матрица:
1 <=> {2-1}
1 <=> {2-1}
Все правильно, [COLOR=red]просто расспечатывать новый массив надо до (n-1)[/COLOR]
, я писала почему. А нули - это значения массива по умолчанию, которые получаем когда объявляем его.
по столбцам естественно
Сформировать новую матрицу, элементы которой будут равны разностям элементов исходной матрицы. Задачу решить с помощью процедур (ввод, вывод массивов и т.д.).
Я думаю это не полный текст задания? Напиши задание целиком.
Далее. В этом коде:
var a:array[1..30,1..30] of integer;
b:array[1..30,1..30] of integer;
i,j,n,k,max,at:integer;
begin
clrScr;
writeln('Vvedite rasmernost massiva:');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin write('a[',i,j,']=');
readln(a[i,j])
end;
writeln('Ishodnij massiv:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:4);
writeln
end;
for i:=1 to n do
begin for j:=1 to (n-1) do begin
b[i,j]:=a[i,j+1]-a[i,j];
end;
writeln
end;
writeln('Novij massiv:');
for i:=1 to n do
begin for j:=1 to n do
write(b[i,j]:4);
writeln
end;
readln;
End.
есть как минимум две ошибки (на одну из них указала OlgaKr).
Третье. Мне кажеться здесь неправильно поняли "разность элементов исходной матрицы".
Третье. Мне кажеться здесь неправильно поняли "разность элементов исходной матрицы".
А каким, по твоему мнению, способом находить эту разность?
MoM вроде написал:
"Ну к примеру элемент a[1,1] новой матрицы получается из разницы элементов a[1,2]-a[1,1] исходной матрицы."
Убрал немного лишнего из кода:
Var a:Array[1..30,1..30] Of Integer;
i,j,n:Integer;
Begin
ClrScr;
Write('Vvedite rasmernost massiva: '); ReadLn(n);
For i:=1 To n Do
For j:=1 To n Do
Begin
Write('a[',i,',',j,']=');
ReadLn(a[i,j])
End;
ClrScr;
WriteLn('Ishodnij massiv:');
For i:=1 To n Do
Begin
For j:=1 To n Do Write(a[i,j]:4);
WriteLn;
End;
For i:=1 To n Do
For j:=1 To (n-1) Do a[i,j]:=a[i,j+1]-a[i,j];
WriteLn('Novij massiv:');
For i:=1 To n Do
Begin
For j:=1 To n-1 Do Write(a[i,j]:4);
WriteLn;
End;
ReadLn;
End.
Я думаю это не полный текст задания? Напиши задание целиком.
Нет, это полный текст задания!
есть как минимум две ошибки (на одну из них указала OlgaKr).
А какая другая ошибка, если не секрет?
А каким, по твоему мнению, способом находить эту разность?
MoM вроде написал:
"Ну к примеру элемент a[1,1] новой матрицы получается из разницы элементов a[1,2]-a[1,1] исходной матрицы."
Это я написал так, как понял из объяснений преподавателя, хотя я их уже смутно помню(объяснения)! А на самом деле как правильно решать задачу я не знаю, поэтому и обратился к вам за помощью!
Это я написал так, как понял из объяснений преподавателя,[COLOR=red] хотя я их уже смутно помню(объяснения)![/COLOR] А на самом деле как правильно решать задачу я не знаю, поэтому и обратился к вам за помощью!
Неужели ты не понимаешь! что невозможно решить задачу, если ты даже не понимаешь что в ней нужно сделать.
Проблема начинается не с [COLOR=red]КАК[/COLOR], а с [COLOR=red]ЧТО[/COLOR].
Прежде чем просить помощи, потрудись хотя бы понять, узнать ЧТО делать надо. А то викторина получается "ЧТО? ГДЕ? КОГДА?", и между прочим это уже 2-ой раз.
Интересно кто, если не ты, должен знать что тебе задали?
Нет, это полный текст задания!
Значит хреновый у тебя преподаватель.
А какая другая ошибка, если не секрет?
Введённая "rasmernost massiva" не проверяется на соответствие размеру выделенной под массив памяти. Кроме того у тебя получается "квадратный" массив (N*N), а в условии про размеры массива ничего не сказано.
Это я написал так, как понял из объяснений преподавателя, хотя я их уже смутно помню(объяснения)! А на самом деле как правильно решать задачу я не знаю, поэтому и обратился к вам за помощью!
Выясни, как именно надо считать разность элементов матрицы (хотя бы у преподавателя).
1234
0567
0089
00010
и такого еще:
17 16 15 14 13
0 12 11 10 0
0 0 9 0 0
0 8 7 6 0
1 2 3 4 5
заранее спасибо большое!!!:)