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

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

Форум «Всё о Паскале» _ Задачи _ Составить Паскаль-программу, производящую обработку квадратной матрицы

Автор: nice 30.05.2009 15:16

Составить Паскаль-программу, производящую обработку квадратной матрицы по-рядка NxN, из целых положительных чисел, вводимой с клавиатуры. Тестирование провести для пакета тестов из двух-трех матриц различного порядка.Умножение строки с минимальным элементом матрицы на столбец с максимальным элементом;


можете helllllppppp??

Автор: sheka 30.05.2009 19:41

Цитата(nice @ 30.05.2009 15:16) *

можете helllllppppp??

я думаю это можно найти http://forum.pascalnet.ru/index.php?showforum=18

Автор: nice 31.05.2009 12:58

program matrix;
const N = 4;
var i,j:integer;
max, min:integer;
max_i, min_j : integer;
m:array[1..N,1..N] of integer;
sum : integer;
begin
sum := 0;
max := -1;
min := 9999;
writeln('input matrix:');
for i:=1 to N do begin
for j:=1 to N do begin
write('intput m[' + IntToStr(i) + ',' + IntToStr(j) + ': ');
readln(m[i,j]) ;
if max < m[i,j] then begin
max_i := i; max:=m[i,j];
end;
if min > m[i,j] then begin
min_j := j; min:=m[i,j];
end;
end;
end;
writeln('max matrix element: ' + IntToStr(max) + ' in ' + IntToStr(max_i) + ' row');
writeln('min matrix element: ' + IntToStr(min) + ' in ' + IntToStr(min_j) + ' col');
for i:=1 to N do
inc(sum,m[max_i,i]*m[i,max_j]);

writeln('result: ' + IntToStr(sum));

end.



ему не нравится в этой строчке write('intput m[' + IntToStr(i) + ',' + IntToStr(j) + ': ');
в слове IntToStr(i) буква I

Автор: Krjuger 31.05.2009 14:31

и правильно не нравица.Ты вообще себе представляеш как это выглядит?ты зачем такую фигню мутиш???

Цитата

write('intput m[' + IntToStr(i) + ',' + IntToStr(j) + ': ');

Я бы посоветовал просто сделать.То что ты заключаеш в ковычки просто пишется,а то что без ковычек показывается то что есть и выводится на экран любой тип и не обязательно все переводить в стринг.

for i:=1 to N do begin
for j:=1 to N do begin
write('intput m['+i+','+j+': ');
readln(m[i,j]) ;


Цитата

max_i := i; max:=m[i,j];

Зачем??????Кому это надо??? сравнивай сразу max_i например,либо вообще удали mfx_i и делай все в Max.и еще что значит умножение строки на столбец?что должно быть результатом?Число равное сумме произведений элеметов строки на столбец?

Автор: Lapp 31.05.2009 15:20

krjuger, ты немного ошибаешься. Стринги с целыми нельзя складывать. Надо перечислять через запятую

write('intput m[',i,',',j,': '); 


Автор: Krjuger 31.05.2009 15:40

А ну да.
Приношу извинения...Но инт в стринг переводить тоже не вариант,да и вообще я бы просто таблицу печатал получившихся чисел.,а то при n равным хотяб 5 уже как то это построчно проверять уже становиться проблематично,да и ка то старнно делаеш ты зачем вводить и сразу проверять??У тебя массив не заполнен,а ты уже проверяеш, зачем max := -1; min := 9999; ,по сути тоже не нужно,можно просто и в макс и в мин записать первый элемент и не мучатсья.и еще бы я раскидал заполнение и выполнение задачи на две разных процедуры..,а еще когда ты научишся код в теги заключать???????Читать очень не удобно,да и правило нарущается номер 2.

Автор: volvo 31.05.2009 15:51

М
Цитата
Читать очень не удобно,да и правило нарущается номер 2.
mad.gif То, что тобой правило №7 нарушается ПОСТОЯННО - это тебя, стало быть не волнует? Ты начнешь уже проверять что-нибудь, перед тем, как выкладываешь это на форум? Или можно к тебе принимать меры как к злостному нарушителю сразу?


Автор: Krjuger 31.05.2009 16:04

Каюсь,применяй.Готов ответить по всей строгости закона.