Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите решить задачу на матрицу 
V
    Опции темы
jorjinho10
Дата 16.4.2009, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 31.3.2009
Где: Saint-Petersburg

Репутация: нет
Всего: нет



ребята , помогите решить такую задачку:
Создать матрицу , вывести на экран , найти строку с наименьшей и наибольшей суммой элементов , вывести 2 эти строки и посчитать сумму их элементов (по отдельности).
Примечание : Матрица должна на экране выглядеть как матрица,(не в виде столбца(строки) с номером строки и столбца)

ВОПРОС ТАКОЙ КАК СДЕЛАТЬ ЭТО БЕЗ ФУНКЦИИ ИЛИ ПРОЦЕДУРЫ
Код

program labrab5;
uses crt;
Const
Nmax=10;
NMAXIMUM=999999;
var i,j,imax,imin,min,max,m,n,b,c,l:integer;
    a,h,p:string[40];
    k:array[1..Nmax,1..Nmax] of real;

function Summ(t:integer):real;
var i:integer;
    sum:real;
begin
 sum:=0;
 for i:=1 to n do sum:=sum+k[t,i];
 summ:=sum;
end;

begin
 repeat
 repeat
 writeln('Vvedite kolvo strok v matrice (do ',Nmax,')');readln(p);
 until (p[1]<>'0') or (p[2]='.');
 val(p,m,l);
 if (l<>0) or (m<1) or (m>Nmax) or (p[1]='0') then Writeln('Oshibka! Povtorite vvod! ');
 until (l=0) and (m>=1) and (m<=Nmax);
 repeat
 repeat
 writeln('Vvedite kolvo stolbcov v matrice (do ',Nmax,')');readln(h);
 until (h[1]<>'0') or (h[2]='.');
 val(h,n,b);
 if (b<>0) or (n<1) or (n>Nmax) or (h[1]='0') then Writeln('Oshibka! Povtorite vvod! ');
 until (b=0) and (n>=1) and (n<=Nmax);
 writeln;

 for i:=1 to m do
 for j:=1 to n do
 begin
 repeat
 repeat
 write('k[',i,',',j,']: ');readln(a);
 until (a[1]<>'0') or (a[2]='.');
 val(a,k[i,j],c);
 if (c<>0) or (k[i,j]<-NMAXIMUM) or (k[i,j]>NMAXIMUM) then writeln('Oshibka! Povtorite vvod !');
 until (c=0) and (k[i,j]>=-NMAXIMUM) and (k[i,j]<=NMAXIMUM);
end;

 writeln;
 writeln('Vvedennaya matrica:');
 writeln;
 for i:=1 to m do
 begin
  for j:=1 to n do write(k[i,j]:7:1,' ');
  writeln;
 end;

 min:=1;
 imin:=1;
 max:=1;
 imax:=1;
 for i:=1 to m do if Summ(i)>=max then
 begin
 max:=i;
 imax:=i;
 end
 else if summ(i)<=min then
 begin
 min:=i;
 imin:=i;
 end;
 writeln;

 write('MIN: ');
 for i:=1 to n do write(k[min,i]:7:1,' ');
 writeln('  Summa= ',summ(min):5:1,' index=',imin);

 write('MAX: ');
 for i:=1 to n do write(k[max,i]:7:1,' ');
 writeln('  Summa= ',summ(max):7:1,' index=',imax);
 readln;
 clrscr;
end.




Это сообщение отредактировал(а) jorjinho10 - 16.4.2009, 21:09
PM MAIL ICQ Skype   Вверх
flyleaf
Дата 17.4.2009, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 40
Регистрация: 6.4.2009

Репутация: нет
Всего: нет



Вот так можно сделать) с максимальным я сделала, с минимальным по тому же примеру)

Код

var
     a:array[1..5,1..5]  of integer;
     i,j,k:integer;
     smax,max:integer;
begin
randomize;
smax:=0;
max:=0;
for i:=1 to 5 do          {Заполнени масива}
for j:=1 to 5 do
a[i,j]:=random(10);


i:=1;                        {Берем за максимальный первый ряд}
for j:=1 to 5 do
smax:=smax+a[i,j];
for i:=2 to 5 do                   {сумируем следующие...}
begin
for j:=1 to 5 do
max:=max+a[i,j];
if max>smax then begin smax:=max; k:=i;end; {если следующий больше предыдущего, присваеваем его smax}
max:=0;
end;


for i:=1 to 5 do             {вывод масива}
begin
writeln;
for j:=1 to 5 do
write(a[i,j],' ');
end;
writeln;
writeln(smax);           {вывод максимальной суммы}
writeln(k);                 {вывод номера ряда в котором сумма максимальная}
end.


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.