0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 45
1

Как подсчитать наружный круг Двухмерного Массива

18.11.2015, 15:04. Показов 978. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Во первых, ДА! я нуб и не горжусь етим, не ругайте меня за не правильный код.
Во вторых, Я не русский по этому не ругайте за ужасную граматику.(Буду старатся соблюдать хотябы пунктуацию).

Кхмм, так вот. Данный код создаёт рандомизированный массив 5х5, от -100 до 100.

Задача: Подсчитать наружный круг Двухмерного Массива.

Пример Массива :
20 -21 25 12 52
-12 -22 56 34 22
-11 100 25 99 -99
55 66 77 88 99

Тоесть, надо подсчитать 1 ряд, последнию колонну и последний ряд и первую колонну.
Благодарю за помощь!

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
Program masivi;
uses crt;
const m=5;
         n=5;
var a:array[1..m,1..n] of integer;
    i,j,c,p,count:integer;
    sg:real;
Begin
randomize;
        for i:=1 to m do
        for j:=1 to n do
        a[i,j]:=-100+random(201);
        for i:=1 to m do
 
        begin
        for j:=1 to n do
        write (a[i,j]:5);
        writeln;
        end;
writeln;
count:=0;
c:=1;
p:=1;
while c<=n do
        begin
        for i:=1 to m do
                begin
                if a[i,c]>0 then
                begin
                        p:=p*a[i,c];
                        count:=count+1;
                end;
        end;
end;
End.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2015, 15:04
Ответы с готовыми решениями:

Подсчитать суммы положительных и отрицательных элементов двухмерного массива
Для зачета нужна задача. Подсчитать суммы положительных и отрицательных элементов двухмерного...

Подсчитать суммы положительных и отрицательных элементов двухмерного массива
В обем завтра зачет, нужно сделать ещё одну лабу, как делать не знаю, условие: Подсчитать суммы...

Подсчитать количество столбцов двухмерного массива, содержащих более двух одинаковых элементов
Составьте программу подсчета столбцов двухмерного массива, содержащих более двух одинаковых...

Подсчитать сумму всех элементов двухмерного массива и найти медиану (среднее арифметическое)
Подсчитать сумму всех элементов двухмерного массива и найти медиану (среднее арифметическое) а)...

7
APALoff
18.11.2015, 15:41
  #2

Не по теме:

Вайрис, Вы выразились достаточно грамотно, чтобы Вас можно было понять, в отличии от некоторых других "русских", да и хоть какой-то код выложить, пусть не рабочий, это далеко не каждый может сделать, да еще и воспользовавшись соответствующими тегами - так что Вам большой респект - Вы практически идеальный посетитель форума.

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32953 / 21272 / 8167
Регистрация: 22.10.2011
Сообщений: 36,542
Записей в блоге: 8
18.11.2015, 16:49 3
Цитата Сообщение от Вайрис Посмотреть сообщение
Подсчитать наружный круг
Что именно подсчитать? Произведение? (Именно произведение считается в приведенном фрагменте кода) Оно может просто не поместиться в переменную типа Integer. Граничный вариант - все крайние элементы матрицы = 100, их 14 штук, произведение равно 10014, это за пределами целочисленных типов.
0
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 45
18.11.2015, 17:35  [ТС] 4
Посчитать* . Надо посчитать наружный круг масива. Все числа в Болд которые я отметил в примере. 1 ряд + 5 колонна + 5 ряд + 1 колонна. Так должно быть правильно .

Извините за непонятки )

Добавлено через 35 минут
Так как я написал какую-та чушь, я переписал немного программу. Вот этот код нужно дописать, чтоб на экран вывело ответ. Сумма чисел отмеченных в примере.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Program masivi;
uses crt;
const m=5;
      n=5;
var a:array[1..m,1..n] of integer;
    i,j,c,p,count:integer;
    sg:real;
Begin
randomize;
        for i:=1 to m do
        for j:=1 to n do
        a[i,j]:=-100+random(201);
        for i:=1 to m do
 
        begin
        for j:=1 to n do
        write (a[i,j]:5);
        writeln;
        end;
writeln;
End.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
18.11.2015, 18:18 5
Лучший ответ Сообщение было отмечено Вайрис как решение

Решение

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
Program masivi;
uses crt;
const n=5;
var a:array[1..n,1..n] of integer;
    i,j,c,p,sum:integer;
begin
clrscr;
randomize;
writeln('Матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-100+random(201);
    write(a[i,j]:5);
   end;;
  writeln;
 end;
sum:=0;
for i:=1 to n-1 do
sum:=sum+a[1,i]+a[i,n]+a[n,i+1]+a[i+1,1];
write('Сумма элементов периметра=',sum);
readkey;
end.
1
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 45
18.11.2015, 18:26  [ТС] 6
Большое спосибо! )))
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7792 / 4616 / 2829
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
19.11.2015, 10:26 7
Небольшое дополнение.
Поскольку в стартовом сообщении темы матрица не квадратная, то менее изящное (но не менее эффективное) решение для общего случая может быть таким:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const
  m=5; n=5;
var
  a: array [1..m,1..n] of Integer;
  i, j, sum: Integer;
begin
  Randomize;
  WriteLn('Матрица');
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=-100+Random(201); Write(a[i,j]:5);
    end; WriteLn;
  end;
  sum:=0;
  for j:=1 to n   do sum:=sum+a[1,j]+a[m,j]; { строки  }
  for i:=2 to m-1 do sum:=sum+a[i,1]+a[i,n]; { столбцы }
  WriteLn('Сумма элементов периметра=',sum);
end.
Добавлено через 2 минуты
Для произведения могло быть что-то подобное:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const
  m=5; n=5;
var
  a: array [1..m,1..n] of Integer;
  i, j: Integer;
  p: Real;
begin
  Randomize;
  WriteLn('Матрица');
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=-100+Random(201); Write(a[i,j]:5);
    end; WriteLn;
  end;
  p:=1;
  for j:=1 to n   do p:=p*a[1,j]*a[m,j]; { строки  }
  for i:=2 to m-1 do p:=p*a[i,1]*a[i,n]; { столбцы }
  WriteLn('Произведение элементов периметра=',p:0:0);
end.
Добавлено через 3 минуты
И еще пара вариантов:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
  m=5; n=5;
var
  a: array [1..m,1..n] of Integer;
  i, j: Integer;
  s: Longint;
begin
  Randomize; s:=0;
  WriteLn('Матрица');
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=-100+Random(201); Write(a[i,j]:5);
      if (i in [1,m]) or (j in [1,n]) then s:=s+a[i,j];
    end; WriteLn;
  end;
  WriteLn('Сумма элементов периметра=',s);
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
  m=5; n=5;
var
  a: array [1..m,1..n] of Integer;
  i, j: Integer;
  p: Real;
begin
  Randomize; p:=1;
  WriteLn('Матрица');
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=-100+Random(201); Write(a[i,j]:5);
      if (i in [1,m]) or (j in [1,n]) then p:=p*a[i,j];
    end; WriteLn;
  end;
  WriteLn('Произведение элементов периметра=',p:0:0);
end.
1
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 45
19.11.2015, 18:12  [ТС] 8
Ну тут вы уже перестарались ) Но большое спосибо за варианты )
0
19.11.2015, 18:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2015, 18:12
Помогаю со студенческими работами здесь

Для заданного двухмерного массива подсчитать число элементов, которые расположены за первым отрицательным
Помогите с заданием: Для заданного двухмерного массива подсчитать число элементов, которые...

В каждой строке двухмерного массива определить наибольший элемент и подсчитать сумму этих максимальных элементов
В каждой строке двухмерного массива определить наибольший элемент и подсчитать сумму этих...

Перенос повторяющихся значений из двухмерного двухмерного массива в другой массив и запуск функции
Здравствуйте, форумчане! У меня есть двухмерный массив (string,string) В первом столбце хранятся...

Как перебрать все возможные варианта массива с неопределённой длинной, из двухмерного массива такой же длинны?
Как перебрать все возможные варианта массива с неопределённой длинной, из двухмерного массива такой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru