ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Общий форум

массивы, паскаль
Послано Sombrenom 18 май 2013 19:58
кто бы мог помоч в решении задачек? так то я решил их, но ответ получается не таким каким должен быть по условию

В массиве целых положительных и отрицательных чисел A[5,5], полученным случайным образом, вычислить сумму элементов третьего столбца и главной диагонали. Если сумма элементов главной диагонали больше суммы элементов третьего столбца, то элементы последней строки рассортировать в порядке убывания. В противном случае все отрицательные элементы исходного массива удвоить.


program stim;
uses crt;
var
r: array[1..5, 1..5] of integer;
t: array[1..5] of integer;
i, j, S3, Sg, min, z, b : integer;
begin
clrscr;
randomize;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
r[i,j]:=random(100)-50;
write(r[i,j]:5);
end;
writeln;
end;
S3:=0;
Sg:=0;
for i:=1 to 5 do
begin
S3:=S3+r[i,3];
Sg:=Sg+r[i,i];
end;
writeln('summa3=', S3);
writeln('summa glavnoi diagonali=', Sg);
if Sg>S3
then
begin
for i:=1 to 5 do
for j:=1 to 5 do
if (r[i,j] mod 2=0)
then
begin
z:=z+1;
t[z]:=r[5,j];
end;
for i:=1 to z do
begin
write(t[i]:5);
end;
writeln;
for i:=2 to z do
begin
min:=t[i];
j:=1;
if min<t[j] then inc(j);
for b:=i-1 to j do
t[b+1]:=t[b];
t[j]:=min;
end;
writeln('novii massiv');
for i:=1 to z do
write(t[i]:5);
writeln;
readln;
end
else
begin
for i:=1 to 4 do
for j:=1 to 4 do
if (r[i,j] mod 2<0)
then
r[i,j]:=2*r[i,j];
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
write(r[i,j]:5);
readln;
end;
writeln;
end;
readln;
end;
end.