Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 16:04   #1
ArKaWa
 
Регистрация: 07.11.2012
Сообщений: 3
По умолчанию задача

Дана матрица А(4,4).
Найти сумму S отрицательных элементов на побочной диагонали.
Найти наибольший элемент второго столбца и его местоположения.
Заменить найденный максимальный элемент во 2-ом столбце на значение суммы S.

вот код похожей задачи.
Дана матрица A(5;3).
Найти строку, содержащую минимальный элемент матрицы.
Найденную строку поменять местами с4-й строкой.
В полученной матрице подсчитать сумму для элементов 3-й строки по формуле.
Код:
Program PoiskMin;
Const m=5;n=3; {число строк и столбцов}
Type arrA=array[1..m,1..n]of real; {описание типа массива}
Var A:arrA; {описание переменных}
{процедура ввода элементов массива}
Procedure VVOD; 
var i,j: integer;
Begin
for i:=1 to m do
for j:=1 to n do begin
Write('Введите элемент массива а[',i,',',j,']: ');
readln(a[i,j]);
end;
End ;
{Функция поиска строки с минимумом. На выходе - номер строки}
Function MinStr: integer;
var i,j: integer;
mins: integer;
min: real;
begin
min:=a[1,1];
mins:=1;
for i:=1 to m do
for j:=1 to n do
if a[i,j]<min then begin
mins:=i;
min:=a[i,j];
end;
MinStr:=mins;
end;
{Процедура замены строк. str1, str2 - номера строк для замены}
Procedure StrReplace(str1,str2: integer);
var j: integer;
begin
For j:=1 to n do begin
a[str1,j]:=a[str1,j]+a[str2,j]; {Классический вариант смены значений без ввода
дополнительной переменной: a:=a+b}
a[str2,j]:=a[str1,j]-a[str2,j]; {b:=a-b}
a[str1,j]:=a[str1,j]-a[str2,j]; {a:=a-b}
end;
End;
{Функция подсчета суммы строки s}
Function SumStr(s: integer): real;
var j: integer;
sum: real;
begin
sum:=0;
For j:=1 to n do sum:=sum+sqrt(abs(1.2+a[s,j]));
SumStr:=sum;
end;

{Процедура вывода массива}
Procedure OutArray;
var i,j: integer;
begin
for i:=1 to m do begin
for j:=1 to n do Write(a[i,j]:2:2,' ');
WriteLn;
end;
End;
{Основная программа}
begin
Vvod;
WriteLn('Исходный массив: ');
OutArray;
WriteLn;
WriteLn('Номер строки с минимумом: ',MinStr);
WriteLn;
StrReplace(MinStr,4);
WriteLn('Массив после замены строк: ');
OutArray;
WriteLn;
WriteLn('Сумма элементов 3-ей строки: ',SumStr(3):2:2);
ReadLn;
End.
внесите изменения которые нужны.

Последний раз редактировалось Stilet; 23.12.2012 в 17:31.
ArKaWa вне форума Ответить с цитированием
Старый 23.12.2012, 16:16   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

в чем проблема?
Pein95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача о станках Задача Джонсона Aiga Помощь студентам 4 05.02.2012 21:48
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51