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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 11:50   #1
Fender92
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 10
По умолчанию Задача с массивами.

Задан массив А 5Х5. Заполнить его случайными числами. Вывести на экран столбец массива, который имеет наибольшее произведение элементов.
Fender92 вне форума Ответить с цитированием
Старый 19.03.2011, 19:47   #2
ice!girl
 
Регистрация: 04.03.2011
Сообщений: 7
По умолчанию

var
a:array [1..5,1..5] of integer;
b:array [1..5] of integer;
j,i,max,z:integer;
begin
randomize;
write('исходный массив: ');
writeln;

for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=random(10)-5;

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

for j:=1 to 5 do
b[j]:=1;
for i:=1 to 5 do
for j:=1 to 5 do
b[j]:=b[j]*a[i,j];

max:=b[1];z:=1;
for j:=1 to 5 do
if b[j]>max then
begin
max:=b[j];z:=j;
end;
write('номер искомого столбца:',z);
end.
ice!girl вне форума Ответить с цитированием
Старый 20.03.2011, 01:52   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

ice!girl
текст программы нужно оформлять в тегах)))
по коду собственно...

можно объединить заполнение массива и вывод исходных данных
а при поиске максимального можно обойтись только индексом
Код:
var
  a: array [1..5, 1..5] of integer;
  b: array [1..5] of integer;
  j, i, jmax: integer;

begin
  randomize;
  write('исходный массив: ');
  writeln;  
  for i := 1 to 5 do 
  begin
    for j := 1 to 5 do 
    begin
      a[i, j] := -5 + random(20);
      write(a[i, j]:5);
    end;
    writeln;
  end;
  
  jmax := 1;
  for i := 1 to 5 do 
  begin
    b[j] := 1; //присваивать первоначальное значение можно прям в цикле, а не создавать еще один
    for j := 1 to 5 do
      b[j] := b[j] * a[i, j];
    if b[j] > b[jmax] then jmax := j;
  end;  
  write('номер искомого столбца:', jmax);
end.
unbanned вне форума Ответить с цитированием
Старый 20.03.2011, 14:19   #4
ice!girl
 
Регистрация: 04.03.2011
Сообщений: 7
По умолчанию

хотела как лучш,получилось как всегда...
ice!girl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с массивами(Паскаль) Сирокко Помощь студентам 0 23.11.2010 19:09
Задача с массивами....на Си Sabolch Помощь студентам 3 19.11.2010 19:58
Задача с массивами Artem04 Помощь студентам 2 17.06.2009 16:46
Задача с динамическими массивами _grusha_ Помощь студентам 2 22.04.2009 19:46
Задача с массивами 11twin11 Общие вопросы C/C++ 2 09.02.2009 23:27