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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2015, 12:54   #1
Vladys95
Пользователь
 
Регистрация: 02.12.2015
Сообщений: 24
По умолчанию

1. Дан двумерный массив А[1..n,1..m], действительных чисел. Определить:
1) Сумму элементов k-го столбца;
2) Произведение элементов С-й строки;
3) Наибольший и наименьший элементы массива и значения их индексов;
4) Номер строки, сумма элементов которого является наименьшей;
5) Номер строки, среднее арифметическое значение элементов которого больше заданного числа Х;
6) Номер столбца, в котором все элементы делятся без остатка на число У.

1,2,3 я сделал, помогите с 4 пж., вот сумму ряда я нашол, а как выбрать из них наименьший и его вывести?
Код:
Program А1_1; 
 
Var 
   A: array [1..10,1..10] of integer; 
   j, i, n, m, S: integer; 
 
Begin 
  WriteLn('Введіть розміри масиву: '); 
  ReadLn(n,m); 
  WriteLn('Введіть ',n*m,' елементів масиву'); 
  For i:=1 to n do 
    For j:=1 to m do 
      Read(A[i,j]); 
  ReadLn; 
  WriteLn('Матриця:'); 
  For i:=1 to n do 
    Begin 
      For j:=1 to m do 
        Write(A[i,j]:4); 
      WriteLn; 
    end; 
  For i:=1 to n do 
    Begin 
      S:=0; 
      For j:=1 to m do 
        S:=S+A[i,j]; 
      WriteLn ('Сума в рядку №',i,' = ',S); 
    end; 
end.

Последний раз редактировалось Stilet; 02.12.2015 в 13:18.
Vladys95 вне форума Ответить с цитированием
Старый 02.12.2015, 13:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
4) Номер строки, сумма элементов которого является наименьшей;
Код:
var smin:integer;
...
  k:=1; smin:=0;
  For i:=1 to n do 
    Begin s:=0 
      For j:=1 to m do 
        s:=s+A[i,j];
      if s<smin then begin smin:=s; k:=i; end;
    end;
Выводим "К"
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2015, 14:13   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
For i:=1 to n do 
    For j:=1 to m do 
      Read(A[i,j]); 
  ReadLn;
Вот не понимаю такой конструкции і все
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 02.12.2015, 16:14   #4
Vladys95
Пользователь
 
Регистрация: 02.12.2015
Сообщений: 24
По умолчанию

Что-то не получается, оно вседа выводит номер ряда 1, а значение ряда последнего.....крутил как мог, все никак...
Код:
Program À1_1; 

Var 
   A: array [1..10,1..10] of integer; 
   j, i, n, m, S, min, k: integer; 

Begin 
  WriteLn('Розмер масива: '); 
  ReadLn(n,m); 
  WriteLn('Элементы: '); 
  For i:=1 to n do 
    For j:=1 to m do 
      Read(A[i,j]); 
  ReadLn; 
  WriteLn('Масив: '); 
  For i:=1 to n do 
    Begin 
      For j:=1 to m do 
        Write(A[i,j]:4); 
      WriteLn; 
    end; 
  For i:=1 to n do 
    Begin 
      S:=0; 
      For j:=1 to m do 
        S:=S+A[i,j]; 
      WriteLn ('Сума ряда № ',i,' = ',S); 
    end; 
  k:=1; 
  min:=0; 
  For i:=1 to n do 
    Begin 
      S:=0; 
      For j:=1 to m do 
        S:=S+A[i,j]; 
      If S<min then 
        Begin 
          min:=S; 
          k:=i; 
        end; 
    end; 
  WriteLn('Рядок № ',k,', значение, ', S); 
end.

Последний раз редактировалось Vladys95; 02.12.2015 в 16:19.
Vladys95 вне форума Ответить с цитированием
Старый 02.12.2015, 16:34   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

вместо
Код:
 min:=0;
напиши например
Код:
 min:=35000;
а лучше
Код:
 min:=a[1,1];
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 02.12.2015 в 16:37.
Aleksandr H. вне форума Ответить с цитированием
Старый 02.12.2015, 16:39   #6
Vladys95
Пользователь
 
Регистрация: 02.12.2015
Сообщений: 24
По умолчанию

Тоесть если какой то ряд будет больше 3500 она опять не привильно начнет работать? И она все равно выводит не то значение ряда...

Все равно не правильно работает... например у меня 1 ряд равен 78, 2= 13, 3=45 и оно виводит ряд номер 1 со значением 45....где логика....аааа

Последний раз редактировалось Stilet; 06.12.2015 в 17:50.
Vladys95 вне форума Ответить с цитированием
Старый 02.12.2015, 17:20   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

1. пиши
Код:
 min:=3500
не нравиться 3500, пропиши в секции ввода масива min:=min+a[i,j]
2. по поводу логики спроси себя какого х ты выводишь S когда сумма хранится в min
Код:
WriteLn('Рядок № ',k,', значение, ', S);
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 02.12.2015 в 17:26.
Aleksandr H. вне форума Ответить с цитированием
Старый 02.12.2015, 17:49   #8
Vladys95
Пользователь
 
Регистрация: 02.12.2015
Сообщений: 24
По умолчанию

Спасибо большое)))

Понимаю, что нагло, но с 5 и 6 может кто помоч?

Последний раз редактировалось Stilet; 06.12.2015 в 17:50.
Vladys95 вне форума Ответить с цитированием
Старый 02.12.2015, 19:45   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Реально нагло. имееть готовую 4 задачу і на основе ее не мочь сделать 5?
Потуги свои в решении со своей логикой хотя б предоставь.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 02.12.2015, 20:10   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Vladys95
Я предпочел бы решать твою задачу вот так:
Код:
program project1;
const
  n=5; m=5;
var
  a:array[1..n,1..m] of integer;
  SumCols:array[1..m] of integer;
  YDivCols:array[1..m] of integer;

  MulRows:array[1..n] of integer;
  SumRows:array[1..n] of integer;
  AvgRows:array[1..n] of integer;
  AvgRowsNum:array[1..n] of integer;

  min,max:array[1..2] of integer;
  i,j,y,x,k,c:integer;
begin
  x:=Random(50)+20; Writeln('Заданный Х:',x:10);
  y:=Random(50)+20; Writeln('Заданный Y:',y:10);
  k:=Random(m)+1;   Writeln('Заданный K:',k:10);
  c:=Random(n)+1;   Writeln('Заданный C:',c:10);
  writeln;    min[1]:=1;min[2]:=1;max[1]:=1;max[2]:=1;
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=Random(100)+1; write(a[i,j]:5);
      SumCols[j]:=SumCols[j]; //Сумма столбцов
      if j=1 then MulRows[i]:=a[i,j] else MulRows[i]:=a[i,j]*MulRows[i]; //Произведение строк
      if a[i,j]<a[min[1],min[2]] then begin min[1]:=i; min[2]:=j; end; //Минимум
      if a[i,j]>a[max[1],max[2]] then begin max[1]:=i; max[2]:=j; end; //Максимум
      SumRows[i]:=SumRows[i]+a[i,j];//Сумма строк
      if a[i,j]>x then begin AvgRows[i]:=AvgRows[i]+a[i,j]; inc(AvgRowsNum[i]); end;//среднее больше Х
      if (a[i,j] mod y)<>0 then YDivCols[j]:=1;
		end;
		writeln;
	end; writeln;

  writeln('1) Сумма элементов ',k,'-го столбца: ',SumCols[k]);
  writeln('2) Произведение элементов ',c,'-й строки: ',MulRows[c]);
  writeln('3a) Наибольший: A[',max[1],',',max[2],']=',a[max[1],max[2]]);
  writeln('3б) Наименьший: A[',min[1],',',min[2],']=',a[min[1],min[2]]);
  j:=1; for i:=1 to n do if  SumRows[i]<SumRows[j] then j:=i;
   writeln('4) Номер строки, сумма элементов которого является наименьшей: ',j);
  j:=1; for i:=1 to n do if (AvgRowsNum[i]>0) and ((AvgRows[i]/AvgRowsNum[i])>x) then
   writeln('5) Номер строки, среднее арифметическое больше Х: ',i);
  j:=1; for i:=1 to m do if YDivCols[j]<>1 then
   writeln('6) Номер столбца, в котором делятся без остатка на число У.: ',i);

 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив А, элементами которого являются n действительных чисел. Найти количество отрицательных элементов массива... ENTERPRISE2015 Паскаль, Turbo Pascal, PascalABC.NET 10 21.11.2015 20:20
Дан массив a из n действительных чисел . Ghyt Помощь студентам 5 19.11.2014 12:59
Помогите, пожалуйста, решить задачу. Дан двумерный массив чисел. Nata-95 Общие вопросы C/C++ 5 09.06.2014 22:57
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A vikysha55 Помощь студентам 1 16.04.2014 10:50
Задана последовательность действительных чисел a1, a2, ..., an. определить количество соседства двух положительных чисел (Паскаль) elene Паскаль, Turbo Pascal, PascalABC.NET 6 21.11.2013 00:30