Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

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

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 19.11.2008, 19:50   #1
deu4er
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 18
Репутация: 7
По умолчанию Написал прогу в паскале...

Училка прикопалась, сказала вывести в ней ещё 2 матрицы - первкю размером 5 на 1 из сумм строк, вторую 1 на 10 из сумм столбцов. Помогите это сделать. У меня не че не получается.

Program Max_i_Min;
Const n=5;
m=10;
Type mymas=array [1..n, 1..m] of integer;
Var a:mymas;
i, j: integer;
max1, max2, min1, min2, s: integer;
stroka_max, stroka_min: integer;
stolbec_max, stolbec_min: integer;

Procedure BBog;
Begin
writeln('BBeguTe MaccuB');
for i:=1 to n do
begin
for j:=1 to m do
(a[i,j]):=random(5);
end;
end;

Procedure BbIBog;
Begin
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:5);
writeln;
end;
end;

Procedure CTpoka_MuH_u_Makc;
Begin
for i:=1 to 1 do
begin
S:=0;
for j:=1 to m do S:=S+a[i,j];
min1:=S;
max1:=S;
stroka_max:=i;
stroka_min:=i;
end;


for i:=2 to n do
begin
S:=0;
for j:=1 to m do S:=S+a[i,j];
if S>max1 then
begin
max1:=S;
stroka_min:=i;
end;

if S<min1 then
begin
min1:=S;
stroka_max:=i;
end;
end;
writeln('cyMma min=',min1,' cTpoKa=',stroka_max);
writeln('cyMMa max=',max1,' cTpoKa=',stroka_min);
End;

Procedure CToJI6eLL_MuH_u_Makc;
begin
for j:=1 to 1 do begin
S:=0;
for i:=1 to n do S:=S+a[i,j];
max2:=S;
min2:=S;
stolbec_max:=j;
stolbec_min:=j;
end;

for j:=2 to m do
begin
S:=0;
for i:=1 to n do S:=S+a[i,j];
if S>max2 then
begin
max2:=S;
stolbec_max:=j;
end;

if S<min2 then
begin
min2:=S;
stolbec_min:=j;
end;
end;
writeln('cyMMa min=',min2,' ctoJI6eLL=',stolbec_min);
writeln('cyMMa max=',max2,' cToJI6eLL=',stolbec_max);
End;

BEGIN
BBog;
BbIBog;
CTpoka_MuH_u_Makc;
CToJI6eLL_MuH_u_Makc;
readln
End.
deu4er вне форума   Ответить с цитированием
Старый 19.11.2008, 20:39   #2
puporev
Профессионал
 
Регистрация: 13.10.2007
Сообщений: 2,739
Репутация: 965
По умолчанию

Я думаю что суммы по строкам и столбцам надо не в матрицы выводить, а в линейные массивы, это и есть матрица [1,n].
Поправил ошибки, перепутаны были минимальные и максимальные, а также убрал лишние циклы. Короче посмотрите, будут вопросы, пишите.
Код:

Program Max_i_Min;
uses crt;
Const n=5;
      m=10;
Var a:array [1..n, 1..m] of integer;
    sstr:array[1..n] of integer;
    sstb:array[1..m] of integer;
    i, j: integer;
    max1, max2, min1, min2, s: integer;
    stroka_max, stroka_min: integer;
    stolbec_max, stolbec_min: integer;

Procedure BBog;
Begin
writeln('BBeguTe MaccuB');
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(5);
end;

Procedure BbIBog;
Begin
for i:=1 to n do
   begin
     for j:=1 to m do
     write(a[i,j]:5);
     writeln;
   end;
end;

Procedure CTpoka_MuH_u_Makc;
Begin
max1:=-maxint;stroka_max:=1;min1:=maxint;stroka_min:=1;
for i:=1 to n do
  begin
    S:=0;
    for j:=1 to m do 
    S:=S+a[i,j];
    sstr[i]:=S;
    if S>max1 then
      begin
        max1:=S;
        stroka_max:=i;
      end;
    if S<min1 then
      begin
       min1:=S;
       stroka_min:=i;
      end;
   end;
writeln('cyMma min=',min1,' cTpoKa=',stroka_min);
writeln('cyMMa max=',max1,' cTpoKa=',stroka_max);
writeln;
End;

Procedure CToJI6eLL_MuH_u_Makc;
begin
max2:=-maxint;stolbec_max:=1;min2:=maxint;stolbec_min:=1;
for j:=1 to m do
   begin
     S:=0;
     for i:=1 to n do
     S:=S+a[i,j];
     sstb[j]:=S;
     if S>max2 then
        begin
          max2:=S;
          stolbec_max:=j;
        end;
     if S<min2 then
         begin
            min2:=S;
            stolbec_min:=j;
         end;
    end;
writeln('cyMMa min=',min2,' ctoJI6eLL=',stolbec_min);
writeln('cyMMa max=',max2,' cToJI6eLL=',stolbec_max);
writeln;
End;

BEGIN
clrscr;
randomize;
BBog;
BbIBog;
CTpoka_MuH_u_Makc;
CToJI6eLL_MuH_u_Makc;
writeln('Massiv summ strok:');
for i:=1 to n do
write (sstr[i],' ');
writeln;
writeln;
writeln('Massiv summ stolbcov:');
for i:=1 to m do
write (sstb[i],' ');
readln
End.

puporev вне форума   Ответить с цитированием
Старый 19.11.2008, 21:08   #3
deu4er
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 18
Репутация: 7
По умолчанию

спасибо Вам огромное!
deu4er вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно составить прогу в паскале по примеру NATKA Помощь студентам 5 27.11.2009 15:55
написал книгу и хочу продавать через интернет celebrex Свободное общение 10 23.07.2008 11:49
Написал бэкдор, оцените KORN Софт 7 18.11.2007 09:55


01:53.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru