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

Ошибка в программе на тему подпрограммы и с использованием массива

26.01.2014, 15:29. Показов 418. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте , написал программу по условию :
Дан двумерный массив А состоящий из чисел.
Составить массив Б который состоит из True и False.
true если сумма соседних елементов массива меньше числу s(число мы задаем) и false если больше
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
program asd;
 const s=8;
 n=4;
 m=4;
 type masd=array[1..n,1..m] of real;
 bol=array[1..n,1..m] of boolean;
 var
 a:masd;
 i,j,x,k,sum:integer;
 d:boolean;
 {_____________________________________________________}
   procedure poisksym (var a:masd);
   var i1,j1:integer;
   sum1:real;
   b1:bol;
   begin
   sum1:=0;
   for i1:=1 to n do 
    for j1:=1 to m do 
    begin
     if (i1=1) and (j1=1) then 
      begin
      sum1:=0;
       sum1:=(a[(i1+1),j1])+(a[i1,(j1+1)])+(a[(i1+1),(j1+1)]);
       if (sum1)>(s) then 
        b1[i1,j1]:=false
        else
        b1[i1,j1]:=true;
        end; 
      if (i1=n) and (j1=1) then 
      begin
      sum1:=0;
        sum1:=(a[(i1-1),j1])+(a[i1,(j1+1)])+(a[(i1-1),(j1+1)]);
         if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
      if (i1=1) and (j1=m) then 
       Begin
       sum1:=0;
         sum1:=(a[(i1+1),j1])+(a[i1,(j1-1)])+(a[(i1+1),(j1-1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
      if (i1=n) and (j1=m) then 
      Begin
      sum1:=0;
         sum1:=(a[(i1-1),j1])+(a[i1,(j1-1)])+(a[(i1-1),(j1-1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end; 
       if (j1=1) and ((i1>1)and(i1<n)) then 
         Begin
         sum1:=0;
         sum1:=(a[(i1-1),j1])+(a[(i1+1),j1])+(a[i1,(j1+1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
           if (i1=1) and ((j1>1)and(j1<m)) then 
         Begin
         sum1:=0;
         sum1:=(a[(i1+1),j1])+(a[i1,(j1+1)])+(a[i1,(j1-1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
          if (i1=n) and ((j1>1)and(j1<m)) then 
         Begin
         sum1:=0;
         sum1:=(a[i1,(j1+1)])+(a[i1,(j1-1)])+(a[(i1-1),j1]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
           if (j1=m) and ((i1>1)and(i1<n)) then 
         Begin
         sum1:=0;
         sum1:=(a[(i1+1),j1])+(a[(i1-1),j1])+(a[i1,(j1-1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
          if ((j1>1)and(j1<m)) and ((i1>1)and(i1<n)) then 
         Begin
         sum1:=0;
         sum1:=(a[(i1-1),j1])+(a[(i1+1),j1])+(a[i1,(j1+1)]);
           if (sum1)>(s) then 
          b1[i1,j1]:=false
          else
          b1[i1,j1]:=true;
          end;
        end;
        i1:=1;
        j1:=1;
         for i1:=1 to n do 
         begin
         for j1:=1 to m do 
          Begin
           if b1[i1,j1] then 
            write('true',' ')
            else
             write('false',' '); 
            end;
            writeln;
            end;
       end; 
 {___________________________________________________________________}      
    Begin
     for i:=1 to n do 
      for j:=1 to m do 
        Begin
          writeln('введите A[',i,',',j,']','  ');
          read(A[i,j]);
        end;
        poisksym(A);
            end.
на 3 строке уже идет неправильно, пытаюсь выявить ошибку,помогите пожалуйста .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2014, 15:29
Ответы с готовыми решениями:

Ошибка в простой задаче на массивы с использованием подпрограммы
Здравствуйте) я только начинаю изучать c#. Прошу помочь с задачей, ну никак не даются мне...

подпрограммы.обработка одномерного массива с использованием подпрограмм
Дан массив действительных чисел А1...,А16. получить min(A1*A9,A2*A10,....,A8*A16). Но работать не с...

Ошибка в программе с использованием функций
#include &lt;stdio.h&gt;//подключение #include &lt;conio.h&gt;//необходимых #include &lt;locale&gt;//библиотек...

Ошибка в программе с использованием массивов
Доброго времени. Совсем не давно пользуюсь матлабом. Столкнулся с такой проблемой: задаю массив...

2
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.01.2014, 16:01 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
49
50
51
52
53
54
55
56
57
program asd;
uses crt;
const s=8;
      n=4;
type masd=array[0..n+1,0..n+1] of integer;
     bol=array[1..n,1..n] of boolean;
{_____________________________________________________}
procedure massivA(var a:masd);
var i,j:integer;
begin
//создадим периметр из 0 для удобства
for i:=0 to n+1 do
 begin
  a[i,0]:=0;
  a[i,n+1]:=0;
  a[0,i]:=0;
  a[n+1,i]:=0;
 end;
writeln('Массив А');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-5+random(11);
    write(a[i,j]:4)
   end;
  writeln;
 end;
end;
{___________________________________________________________________}
procedure massivB(a:masd;var b:bol);
var i,j,i1,j1:integer;
    sum:integer;
begin
writeln('Массив В');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    sum:=0;
    for i1:=i-1 to i+1 do
    for j1:=j-1 to j+1 do
    sum:=sum+a[i1,j1];
    sum:=sum-a[i,j];
    b[i,j]:=sum<s;
    write(b[i,j]:6);
   end;
  writeln
 end;
end;
{___________________________________________________________________}
var a:masd;
    b:bol;
Begin
massivA(a);
massivB(a,b)
end.
1
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 6
26.01.2014, 16:48  [ТС] 3
Спасибо большое , вы очень мне помогли.
0
26.01.2014, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2014, 16:48
Помогаю со студенческими работами здесь

Ошибка создания отчета в программе с использованием CrystalReports
Доброго времени суток! Сразу прошу прошения, если вопрос совсем тупой или не адекватный, но...

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

Подпрограммы в программе
Добрый день! помогите пожалуйста добработать программу, что бы на начальном экране при запуске...

Добавить подпрограммы в программе
Доброго времени суток! Помогите с заданием. Выполнить задания в среде Delphi. Выбор выполняемого...

Ошибка в программе с сортировкой массива
Задание. 1. Получить матрицу А(m x n), образованную по закону А (ij) = (i+j)*tan(j). 2. Получить...

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


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

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

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