Другие языки программирования и технологии
Помогите решить задачу паскаль (за вознаграждение)
Дана целочисленная матрица {Aij}i=1..n,j=1..m (n,m<=100). Найти строку с наибольшей суммой элементов и увеличить все элементы этой строки на 1. (В конце программы оставте номер своего телефона и укажите оператора- пришлю вознаграждение)
uses crt;
var i,j,s,m,n,maxstr,s1,ad:integer;
a:array[1..100,1..100]of integer;
begin
randomize;
readln(n,m);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(2);//åñëè õî÷åøü ìîæåøü ðó÷êàìè ââåñòè
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4)
end ;
for i:=1 to n do
begin
s:=0;
for j:=1 to m do
begin
s:=s+a[i,j];
ad:=s;
if s>s1 then
begin
s:=s1;
maxstr:=i;
s1:=ad;
end;
end;
end;
for j:=1 to m do
a[maxstr,j]:=a[maxstr,j]+1;
writeln;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4)
end
end.
может на совсем рационально но работает
var i,j,s,m,n,maxstr,s1,ad:integer;
a:array[1..100,1..100]of integer;
begin
randomize;
readln(n,m);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(2);//åñëè õî÷åøü ìîæåøü ðó÷êàìè ââåñòè
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4)
end ;
for i:=1 to n do
begin
s:=0;
for j:=1 to m do
begin
s:=s+a[i,j];
ad:=s;
if s>s1 then
begin
s:=s1;
maxstr:=i;
s1:=ad;
end;
end;
end;
for j:=1 to m do
a[maxstr,j]:=a[maxstr,j]+1;
writeln;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4)
end
end.
может на совсем рационально но работает
Доброго времени суток.
Сначала пишем функцию возвращающую сумму элементов строки.
function SumItems(R: Integer, Dim: Integer) Integer;
var
j, S : Integer;
begin
S := 0;
for j:=1 to Dim do S := S + A[R,j];
SumItems := S;
end;
А затем в программе
Maxnd : =1;
MaxSum := SumItems(1, m);
for j:= 2 to n do begin
N := SumItems(j, m);
if N > MaxSum then begin
MaxSum := N;
MaxInd := j;
end;
end;
Все, MaxInd содржит номер строки с максимальной суммой, а MaxSum эту сумму.
А, еще увеличить надо. Тогда так.
for j:=1 to m do A[MaxInd, j] := A[MaxInd, j] + 1;
Вот теперь все.
Удачи!
Сначала пишем функцию возвращающую сумму элементов строки.
function SumItems(R: Integer, Dim: Integer) Integer;
var
j, S : Integer;
begin
S := 0;
for j:=1 to Dim do S := S + A[R,j];
SumItems := S;
end;
А затем в программе
Maxnd : =1;
MaxSum := SumItems(1, m);
for j:= 2 to n do begin
N := SumItems(j, m);
if N > MaxSum then begin
MaxSum := N;
MaxInd := j;
end;
end;
Все, MaxInd содржит номер строки с максимальной суммой, а MaxSum эту сумму.
А, еще увеличить надо. Тогда так.
for j:=1 to m do A[MaxInd, j] := A[MaxInd, j] + 1;
Вот теперь все.
Удачи!
Похожие вопросы
- Помогите решить задачу Паскаль
- помогите решить задачу паскаль срочно нужно ответ напишите
- Помогите решить задачу ПАСКАЛЬ!!!
- Помогите решить задачу на Турбо паскале
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить задачу в паскале
- Помогите решить задачу на языке Паскаль. Найти сумму всех чётных чисел от 1 до 1000 (задачу решить 2 способами)
- Помогите решить задачу на паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".