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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 14:15   #1
lili.lili
 
Регистрация: 11.05.2010
Сообщений: 2
По умолчанию паскаль

пожалуйста помогите с задачами.
спасибо.

Дан массив С(15). Распечатать массив, расположив в его начале все нулевые элементы этого массива.

Найти минимальный и максимальный элементы на главной диагонали матрицы М(5,5) и поменять их местами.
lili.lili вне форума Ответить с цитированием
Старый 16.05.2010, 14:39   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

пиши, выполню за небольшое вознаграждение
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 16.05.2010, 14:45   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Элементарно, сделаю быстро и недорого!
Контакты:
e-mail: skiper@rol.ru
icq: 585281783
Skype: delmas61
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 16.05.2010, 14:48   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

-II-
Код:
uses
   crt;
var
  mas:array[1..20,1..20] of integer;
  i,j,n,m,max,min,imax,jmax,imin,jmin,t:integer;
begin
clrscr;
randomize;
write('Введите количество строк: ');
readln(n);
write('Введите количество столбцов: ');
readln(m);
writeln('Исходная матрица: ');
For i:=1 to n do
begin
 For j:=1 to m do
  begin
  mas[i,j]:=random(10)-5;
  write(mas[i,j]:3);
  end;
  writeln;
  end;
  writeln;
  max:=mas[1,1];
  imax:=1;
  jmax:=1;
  min:=mas[1,1];
  imin:=1;
  jmin:=1;
  For i:=1 to n do
  begin
   For j:=1 to m do
   begin
   if (i=j) and (mas[i,j]>max) then
  begin
   max:=mas[i,j];
   imax:=i;
   jmax:=j;
   end;
   if  (i=j) and (mas[i,j]<min) then
  begin
   min:=mas[i,j];
   imin:=i;
   jmin:=j;
   end;
 end;
 end;
writeln(' MAX[',imax,';',jmax,']:= ',max);
writeln(' MIN[',imin,';',jmin,']:= ',min);
t:=mas[iMax,jMax];
 mas[iMax,jMax] := mas[imin,jMin];
 mas[iMin,jMin] := t;
 writeln;
 For i:=1 to n do
begin
 For j:=1 to m do
  begin
  write(mas[i,j]:3);
  end;
  writeln;
  end;
readln;
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 16.05.2010, 14:59   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот это громадьё
Код:
For i:=1 to n do
  begin
   For j:=1 to m do
   begin
   if (i=j) and (mas[i,j]>max) then
  begin
   max:=mas[i,j];
   imax:=i;
   jmax:=j;
   end;
   if  (i=j) and (mas[i,j]<min) then
  begin
   min:=mas[i,j];
   imin:=i;
   jmin:=j;
   end;
 end;
 end;
гораздо компактнее запишется, если учесть что для главной диагонали матрицы соблюдается условие i=j. Тогда не нужно использовать встроенные циклы (все делается в одном и количество операций сравнения сокращается ровно в (N-1)* M раз) для прохода ВСЕХ элементов матрицы, а только элементов главной диагонали, да и условия будут выглядеть гораздо компактнее
if mass[i,j]>max и if mass[i,j]<min...
Да и зачем делать ввод размерности, если по условию матрица 5х5??? Да и в матрице однозначно должно быть N=M, иначе о какой главной диагонали может идти речь???

В общем, мое предложение пока еще в силе!!!
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 16.05.2010 в 15:14.
Grag вне форума Ответить с цитированием
Старый 16.05.2010, 15:16   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
Да и зачем делать ввод размерности, если по условию матрица 5х5??? Да и в матрице однозначно должно быть N=M, иначе о какой главной диагонали может идти речь???
Ну я думаю автор сможет сделать это.Замечания понял.Исправлюсь.А вторую если подумать нехотите то вот вам люди предложение сделали.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 16.05.2010, 15:22   #7
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
uses
   crt;
Const
 n=5;
 m=5;
var
  mas:array[1..n,1..m] of integer;
  i,j,max,min,imax,jmax,imin,jmin,t:integer;
begin
clrscr;
  max:=mas[1,1]; imax:=1; jmax:=1;
  min:=mas[1,1]; imin:=1; jmin:=1;
randomize;
writeln('Исходная матрица: ');
For i:=1 to n do
begin
 For j:=1 to m do
  begin
  mas[i,j]:=random(10)-5;
  write(mas[i,j]:3);
  if (i=j) then
   begin
  if (mas[i,j]>max) then
  begin
   max:=mas[i,j];
   imax:=i;
   jmax:=j;
   end
   else
   if mas[i,j]<min then
  begin
   min:=mas[i,j];
   imin:=i;
   jmin:=j;
   end;
 end;
  end;
   writeln;
  end;
  writeln;
writeln(' MAX[',imax,';',jmax,']:= ',max);
writeln(' MIN[',imin,';',jmin,']:= ',min);
t:=mas[iMax,jMax];
 mas[iMax,jMax] := mas[imin,jMin];
 mas[iMin,jMin] := t;
 writeln;
 For i:=1 to n do
begin
 For j:=1 to m do
  begin
  write(mas[i,j]:3);
  end;
  writeln;
  end;
readln;
end.
Вот отредактировал.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 16.05.2010, 21:25   #8
lili.lili
 
Регистрация: 11.05.2010
Сообщений: 2
По умолчанию

спасибо огромное.
lili.lili вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
Паскаль sllh_111 Помощь студентам 1 29.03.2010 12:06
Паскаль Jenny104 Помощь студентам 2 11.10.2008 11:06