Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Вася11222
1 / 1 / 1
Регистрация: 13.12.2016
Сообщений: 9
1

Массив. Подпрограммы. Найти ошибки

27.03.2017, 22:54. Просмотров 158. Ответов 1
Метки нет (Все метки)

1.Вычислить произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами.
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
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
const
  n = 10;
 
type
  mas = array [1..n] of integer;
 
var
  i: integer;
  i1,i2: integer;{Номер макс и мин по модулю элемента}
  c, d: mas;
  a, b: integer; {Интервал}
  s: integer;{Произведение}
//___________________________________________
 
procedure sl_ch(a1, b1: integer; var c1: mas);
var
  j: integer;
 
begin
  randomize;
  for j := 1 to n do 
    c1[j] := random(b - a) + a;
end;
//___________________________________________
 
procedure vivod(c2: mas);
var
  j: integer;
 
begin
  for j := 1 to n do
    write(c2[j]:3);
  writeln;
end;
//___________________________________________
 
{Функция вычисления индекса макс по модулю элемента массива :}
 
function index_max(c3: mas): integer;
var
  j: integer;
  max: integer;
  k: integer;
 
begin
  max := abs(c3[1]);
  k := 1;
  for j := 2 to n do
    if max < abs(c3[j]) then 
    begin
      max := abs(c3[j]);
      k := j;
    end;
  index_max := k;    
end;
 
 
{Функция вычисления индекса мин по модулю элемента массива :}
 function index_min(c5: mas): integer;
var
  j: integer;
  min: integer;
  u: integer;
 
begin
  min := abs(c5[1]);
  u := 1;
  for j := 2 to n do
    if min > abs(c5[j]) then 
    begin
      min := abs(c5[j]);
      u := j;
    end;
    
    if min < abs(c5[j]) then
        begin
            min := abs(c5[1]);
        u := j;
        end;
    
     
  index_min := u;
end;
 
 
 
 
{Функция вычисления произведения элементов одномерного массива: }
 
function proizvedenie(c4: mas; n1: integer): integer;
var
  j: integer;
  s1: integer;{произведение}
begin
  s1 := 1;
  for j := n1 + 1 to n-1 do
    s1 := s1 * c4[j];
  proizvedenie := s1;
end;
//___________________________________________
 
procedure sortirovka(var c0: mas);
var
  i, j: integer;
  r: integer;
begin
  for i := 1 to n - 1 do
    for j := 1 to n - 1 do
      if(c0[j] < c0[j + 1]) then
      begin
        r := c0[j];
        c0[j] := c0[j + 1];
        c0[j + 1] := r;
      end;
  for i := 1 to n do
  
end;
 
begin{Главная}
  
  write('a = ');
  readln(a);
  write('b = ');
  readln(b);
  sl_ch(a, b, c);
  vivod(c);
  
  i1 := index_max(c);
  writeln('Индекс макс. по модулю элем. = ', i1);
  s := proizvedenie(c, i1);
  
  i2 := index_min(d);
  writeln('Индекс мин. по модулю элем. = ', i2);
  
  sortirovka(c);
  writeln('s = ', s);
  writeln('Новый массив: ');
  vivod(c);
  
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2017, 22:54
Ответы с готовыми решениями:

Подпрограммы,массивы,текстовые файлы(!покажите ошибки!).
Прошу, подскажите, где у меня ошибки? Не понимаю... Привожу код и сообщения...

Операторы цикла, одномерный массив, подпрограммы
Я наверно вас сегодня замучаю но мне правда срочно надо!!1 заранее спасибо...

Составление прогами по использованию подпрограммы процедур и подпрограммы функций
Записать программу решения задачи. Процедуру вычислений повторяющихся записать...

Подпрограммы. Найти ошибку
Помогите найти ошибку. Задание: Создать процедуру, формирующую вектор ...

Найти площадь 3х прямоугольников, используя подпрограммы
Даны действительные числа а1,b1(длина и ширина первого прямоугольника)...

1
Hitoku
Модератор
1703 / 1302 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
28.03.2017, 00:57 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const n=10;
type mas=array[1..n] of integer;
 
procedure gen(var m:mas; a,b:integer); //заполнение массива
var i:byte;
begin
  for i:=1 to n do m[i]:=random(b*2+1)+a;
end;
 
procedure vivod(m:mas); //вывод массива
var i:byte;
begin
  for i:=1 to n do write(m[i],' ');
  writeln;
end;
 
function minf(m:mas):integer; //индекс минимального
var i,im:byte;
    min:integer;
begin
  min:=m[1]; im:=1;
  for i:=2 to n do
    if m[i]<min then begin
      min:=m[i]; im:=i;
    end;
  minf:=im;
end;
 
function maxf(m:mas):integer; //индекс максимального
var i,im:byte;
    max:integer;
begin
  max:=m[1]; im:=1;
  for i:=2 to n do
    if m[i]>max then begin
      max:=m[i]; im:=i;
    end;
  maxf:=im;
end;
 
function mul(m:mas; a,b:byte):longint; //произведение
var i:byte;
    p:integer;
begin
  p:=1;
  for i:=a+1 to b-1 do p:=p*m[i];
  mul:=p;
end;
 
procedure sort(var m:mas); //сортировка
var i,j:byte;
    x:integer;
begin
  for i:=1 to n-1 do
    for j:=i to n do
      if abs(m[i])<abs(m[j]) then begin
        x:=m[i]; m[i]:=m[j]; m[j]:=x;
      end;
end;
 
var imin,imax:byte;
    a,b:integer;
    p:longint;
    m:mas;
begin
  write('a,b = '); readln(a,b);
  write('Исходный массив: '); gen(m,a,b); vivod(m);
  imin:=minf(m); imax:=maxf(m);
  if abs(imin-imax)=1 then p:=0 else
    if imin<imax then p:=mul(m,imin,imax) else p:=mul(m,imax,imin);
  writeln('Произведение элементов между min (',imin,') и max (',imax,'): ',p);
  write('Отсортированный массив: '); sort(m); vivod(m);
end.
Добавлено через 1 минуту
Пример ввода диапазона в самом начале: a=-50, b=50
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2017, 00:57

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

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

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


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

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

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