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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2009, 15:19   #1
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию Pascal (массивы)

помогите пож-та написать :
в матрице F(7х7) упорядочить элементы главной диагонали в порядке возрастания. Определить сумму элементов, лежащих под главной диагональю.
program lab2;
type mas=array[1..7] of real;
var a:mas;
i,j:integer;
sum:real;
begin
for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i,i]>a[j,j] then
begin
temp:=a[i,i];
a[i,i]:=a[j,j];
a[j,j]:=temp;
end;
sum:=0;
for i:=2 to 7 do
for j:=1 to i-1 do
sum:=sum+a[i,j];
end.
4otenado вне форума Ответить с цитированием
Старый 27.12.2009, 15:27   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Ну и чего у Вас не получается? В коде две ошибки - неправильно задана матрица
Цитата:
Код:
type mas=array[1..7, 1..7] of real;
и не объявлена переменная temp. Исправляете их и добавляете ввод-вывод. По логике вроде ошибок нет
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 27.12.2009, 19:35   #3
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от 4otenado Посмотреть сообщение
помогите пож-та написать :
в матрице F(7х7) упорядочить элементы главной диагонали в порядке возрастания. Определить сумму элементов, лежащих под главной диагональю.
program lab2;
type mas=array[1..7,1..7] of real;
var a:mas;
i,j:integer;
sum,temp:real;
begin
for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i,i]>a[j,j] then
begin
temp:=a[i,i];
a[i,i]:=a[j,j];
a[j,j]:=temp;
end;
sum:=0;
for i:=2 to 7 do
for j:=1 to i-1 do
sum:=sum+a[i,j];
end.
исправил, но куда ввод и вывод - не понял
4otenado вне форума Ответить с цитированием
Старый 27.12.2009, 20:19   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
type mas=array[1..7,1..7] of real;
var a:mas;
i,j:integer;
sum,temp:real;
begin
for i := 1 to 7 do
begin
  for j := 1 to 7 do
  begin
    a[i, j] := random(10);
    write(a[i, j]:3:0)
  end;
  writeln
end;

for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i,i]>a[j,j] then
begin
temp:=a[i,i];
a[i,i]:=a[j,j];
a[j,j]:=temp;
end;
sum:=0;
for i:=2 to 7 do
for j:=1 to i-1 do
sum:=sum+a[i,j];

writeln('summa = ', sum:0:2);
for i := 1 to 7 do
begin
  for j := 1 to 7 do write(a[i, j]:3:0);
  writeln
end;
readln
end.
eoln вне форума Ответить с цитированием
Старый 13.01.2010, 16:25   #5
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Код:
type mas=array[1..7,1..7] of real;
var a:mas;
i,j:integer;
sum,temp:real;
begin
for i := 1 to 7 do
begin
  for j := 1 to 7 do
  begin
    a[i, j] := random(10);
    write(a[i, j]:3:0)
  end;
  writeln
end;

for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i,i]>a[j,j] then
begin
temp:=a[i,i];
a[i,i]:=a[j,j];
a[j,j]:=temp;
end;
sum:=0;
for i:=2 to 7 do
for j:=1 to i-1 do
sum:=sum+a[i,j];

writeln('summa = ', sum:0:2);
for i := 1 to 7 do
begin
  for j := 1 to 7 do write(a[i, j]:3:0);
  writeln
end;
readln
end.
спсибо.



помогите пож-та сделать из этой задачи:
определить сумму элементов над побочной диагональю.
нужно прямой сейчас, сижу в комп. классе защищаю задачу.
4otenado вне форума Ответить с цитированием
Старый 13.01.2010, 16:44   #6
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

program lab2;
uses crt;
type mas=array[1..7,1..7] of real;
var a:mas;
i,j:integer;
sum,temp:real;
begin
clrscr;
randomize;
writeln (' ');
for i:=1 to 7 do
begin
for j:=1 to 7 do
begin
a[i,j]:=-10+random(20);
write(a[i,j]:3:0)
end;
writeln ('');
writeln
end;
for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i,i]>a[j,j] then
begin
temp:=a[i,i];
a[i,i]:=a[j,j];
a[j,j]:=temp;
end;
writeln (' ');
sum:=0;
for i:= 2 to 7 do
for j:= 1 to i-1 do
sum:= sum+a[i,j];
writeln('summa nad pobo4noi diagonalu =',sum:0:0);
writeln (' ');
for i:= 1 to 7 do
begin
writeln ('');
for j:= 1 to 7 do write(a[i,j]:3:0);
writeln
end;
readln
end.
end.
4otenado вне форума Ответить с цитированием
Старый 13.01.2010, 16:45   #7
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

вот, погите пож-та определить сумму над побочной диагональю.
4otenado вне форума Ответить с цитированием
Старый 13.01.2010, 16:50   #8
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

а чем проблема ?
Код:
for i:= 2 to 7 do
for j:= 1 to i-1 do
sum:= sum+a[i,j];
это разве не нахождение суммы?
P.S. в конце end. лишний, возможно описка, но все-таки
Базиля вне форума Ответить с цитированием
Старый 13.01.2010, 16:57   #9
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

[QUOTE=Базиля;436805]а чем проблема ?
Код:
for i:= 2 to 7 do
for j:= 1 to i-1 do
sum:= sum+a[i,j];
это разве не нахождение суммы?


это сумма под главной диагональю, а мне нужно над побочной.
4otenado вне форума Ответить с цитированием
Старый 13.01.2010, 18:45   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Тех. поддержка, блин...
Код:
for i:=1 to 6 do
for j:=1 to 7-i do
sum:=sum+a[i,j];
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal-массивы Айдар Помощь студентам 3 20.10.2009 20:15
Массивы [pascal] Rulyas Помощь студентам 14 10.09.2009 00:12
Pascal: массивы Juventus91 Помощь студентам 2 06.09.2009 14:21
Pascal/Массивы ромка) Паскаль, Turbo Pascal, PascalABC.NET 6 14.06.2008 18:29
Pascal. Массивы Danilyuk Помощь студентам 1 22.01.2008 19:56