Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
8 / 8 / 0
Регистрация: 06.01.2013
Сообщений: 47
1

Вычислить сумму положительных элементов строки, в которой находится минимальный элемент матрицы

23.01.2013, 02:04. Просмотров 946. Ответов 3
Метки нет (Все метки)

Задание:
Сформировать двумерный массив Z размером 11 x 11 с помощью генератора случайных чисел и вывести элементы массива на экран. Вычислить сумму положительных элементов строки, в которой находится минимальный элемент матрицы Z (оформить нахождение минимального элемента в виде функции). Вывести на экран полученную сумму и номер строки.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
uses crt;
type mas=array[1..11,1..11] of integer;
var z: mas;
i,j,n,sum: integer;
function min: integer;
var i,j: integer;
begin
min:=z[1,1];
for i:=1 to 11 do
for j:=1 to 11 do
if z[i,j]<min then min:=z[i,j];
end;
begin
clrscr;
randomize;
for i:=1 to 11 do
begin
for j:=1 to 11 do
begin
z[i,j]:=random(100);
write(z[i,j]:4);
end;
writeln;
end;
for i:=1 to 11 do
for j:=1 to 11 do
if z[i,j]=min then
begin
n:=i; exit;
end;
sum:=0;
for j:=1 to 11 do
if z[n,j]>0
then sum:=sum+z[n,j];
write('Srtoka: ',n,' Summa: ',sum);
end.
1. Пыталась написать:
Pascal
1
2
3
4
5
6
7
8
function min(m: mas): integer;
var i,j: integer;
begin
min:=m[1,1];
for i:=1 to 11 do
for j:=1 to 11 do
if m[i,j]<min then min:=m[i,j];
end;
Здесь была ошибка: неверное количество фактических параметров.

1. Заменила на
Pascal
1
2
3
4
5
6
7
8
function min: integer;
var i,j: integer;
begin
min:=z[1,1];
for i:=1 to 11 do
for j:=1 to 11 do
if z[i,j]<min then min:=z[i,j];
end;
Теперь пишет ошибка 202: переполнение стека.


Что я делаю неправильно? Как исправить? Помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2013, 02:04
Ответы с готовыми решениями:

Вычислить сумму элементов той строки и столбца матрицы, на пересечении которых находится её минимальный элемент (сам элемент не учитывать)
Вот,не могу даже придумать, как её сделать: Вычислить сумму элементов той строки и столбца...

Найти сумму элементов строки в которой находится минимальный элемент массива
Помогите пожалуйста! Дан двумерный массив. Найти сумму элементов строки в которой находится...

[emu8086] Найти сумму элементов строки, в которой находится минимальный элемент
В данной целочисленной квадратной матрице порядка n найти сумму элементов строки, в которой...

Найти сумму элементов строки в которой находится минимальный элемент массива
Дан двумерный массив.Найти сумму элементов строки в которой находится минимальный элемент массива.

3
23 / 23 / 16
Регистрация: 23.01.2013
Сообщений: 129
23.01.2013, 04:28 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если есть вопросы - спрашивай

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
uses crt;
const x=11;
label m1;
type mas=array[1..x,1..x] of integer;
var z: mas;
i,j,n,sum: integer;
 
function min(m: mas): integer;
var i,j,minE: integer;
begin
minE:=m[1,1];
for i:=2 to x do
for j:=1 to x do
//begin
if (m[i,j]< minE) then
minE:=m[i,j];
//end;
min:=minE;
end;
 
begin
clrscr;
randomize;
for i:=1 to x do
begin
for j:=1 to x do
begin
z[i,j]:=random(100);
write(z[i,j]:4);
end;
writeln;
end;
 
for i:=1 to x do
for j:=1 to x do
if (z[i,j]=min(z)) then
begin
n:=i;
GoTo m1;
end;
 
m1:
sum:=0;
for j:=1 to x do
if z[n,j]>0
then sum:=sum+z[n,j];
write('Srtoka: ',n,' Summa: ',sum);
end.
0
296 / 274 / 194
Регистрация: 03.05.2012
Сообщений: 567
23.01.2013, 06:44 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const
  size=11;
 
type
  tmatrix=array [1..size,1..size] of integer;
  tarray=array [1..size] of integer;
 
procedure creatematrix(var az:tmatrix);
var
  i,j:byte;
begin
  for i:=1 to size do begin
    for j:=1 to size do begin
      az[i,j]:=random(100)-50;
      write(az[i,j]:4);
    end;
    writeln;
  end;
end;
 
function findmin(var az:tmatrix):byte;
var
  min:integer;
  i,j:byte;
begin
  min:=az[1,1];
  for i:=1 to size do
    for j:=1 to size do
      if az[i,j]<min then begin
        min:=az[i,j];
        findmin:=i;
      end;
  writeln('минимальный элемент = ',min);
end;
 
function sumrow(var az:tarray):integer;
var
  sum:integer;
  i:byte;
begin
  sum:=0;
  for i:=1 to size do
    if az[i]>0 then
      sum:=sum+az[i];
  sumrow:=sum;
end;
 
var
  z:tmatrix;
  ind:byte;
 
begin
  randomize;
  creatematrix(z);
  writeln;
  ind:=findmin(z);
  writeln('строка ',ind);
  writeln('сумма положительных элементов = ',sumrow(z[ind]));
  readln
end.
1
8 / 8 / 0
Регистрация: 06.01.2013
Сообщений: 47
23.01.2013, 13:39  [ТС] 4
Сделала так:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
uses crt;
type mas=array[1..11,1..11] of integer;
var z: mas;
i,j,n,sum: integer;
 
function min (m: mas): integer;
var i,j,min_el: integer;
begin
min_el:=m[1,1];
for i:=1 to 11 do
for j:=1 to 11 do
begin
if m[i,j]<min_el then min_el:=m[i,j];
end;
min:=min_el;
end;
 
begin
clrscr;
randomize;
for i:=1 to 11 do
begin
for j:=1 to 11 do
begin
z[i,j]:=random(100)-50; {действительно, стоит ли искать положительные элементы среди чисел от 1..99?}
write(z[i,j]:4);
end;
writeln;
end;
writeln;
for i:=1 to 11 do
for j:=1 to 11 do
if z[i,j]=min(z) then begin
n:=i; 
break; {чтобы не использовать label}
end;
sum:=0;
for j:=1 to 11 do
if z[n,j]>0
then sum:=sum+z[n,j];
writeln('Минимальный элемент: ',min(z));
writeln('Строка: ',n);
writeln('Сумма положительных элементов строки: ',sum);
readln;
end.
Всем спасибо!!!

Как я поняла, использование константы в массиве позволяет не копировать значения в подпрограмму?

Оставила как было у меня, ибо 'работает'.

True_LyaLya, почему выбрасываем первую строчку (i:=2) при поиске минимального элемента?

Paster Fob, отметила для себя несколько важных моментов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2013, 13:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти сумму положительных элементов столбца и строки массива, на пересечении которых находится минимальный элемент.
(Turbo C++) Найти сумму положительных элементов столбца и строки массива, на пересечении которых...

Найти сумму элементов строки матрицы, в которой расположен минимальный элемент
Задан массив В(К, М). Найти сумму элементов строки, в которой расположен минимальный элемент.

Найти столбец матрицы, в котором находится минимальный элемент, и вычислить сумму элементов этого столбца
Помогите, пожалуйста, найти ошибки в коде. Задание состоит в том, чтоб найти в каком столбике...

Найти сумму max элементов столбцов, и номер строки, в которой находится элемент матрицы с min значением
Дана вещественная матрица A(n,m). Найти сумму максимальных элементов столбцов и номер строки, в...

Вычисление номера строки матрицы, в которой находится минимальный элемент
задание - дан массив размера 6 x 2 с элементами вещественного типа. Написать программу для...

Определить номер строки матрицы, в которой находится минимальный элемент
Помогите написать код к данному примеру: Дан массив А(NxM) с элементами вещественного типа....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.