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

Описать функцию Smooth(A,N), заменяющую элементы массива на их среднее арифметическое со своими соседями

23.12.2018, 16:09. Показов 1838. Ответов 2

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

Описать функцию Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его среднее арифметическое со своими соседями ("сглаживание массива"). С помощью этой функции выполнить пятикратное сглаживание данного массива A размера N, выводя на экран результаты каждого сглаживания.

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
const nmax=15;
type mas=array[1..nmax] of real;
 
function Smooth(var a:mas;n:byte) of real;
var i:byte;
    x,y,z:real;
begin
x:=a[1];
y:=a[2];
write(a[1]:5:2);
for i:=2 to n-1 do
 begin
  z:=a[i+1];
  a[i]:=(x+y+z)/3;
  write(a[i]:5:2);
  x:=y;
  y:=z;
 end;
writeln(a[n]:5:2);
end; 
 
var a:mas;
    n,i:integer;
begin
randomize;
repeat
write('Размерность массива от 3 до ',nmax,' n=');
read(n);
until n in [3..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=9*random;
  write(a[i]:5:2);
 end;
writeln;
writeln('Работа процедуры сглаживание');
for i:=1 to 5 do
Smooth(a,n);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2018, 16:09
Ответы с готовыми решениями:

Описать процедуру Smooth(A,N), заменяющую элементы массива на их среднее арифметическое со своими соседями
Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его...

Подпрограмма: Описать процедуру, заменяющую каждый элемент массива на его среднее арифметическое со своими соседями...
Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его...

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

Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его
Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его...

2
5041 / 2617 / 2343
Регистрация: 10.12.2014
Сообщений: 9,971
23.12.2018, 16:50 2
Лучший ответ Сообщение было отмечено Sadmoon как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const nMax = 100;
 
procedure Smooth(var a:array of Real;n:Integer);
begin
  var b:=a;for var i:=1 to n-2 do a[i]:=Round((b[i-1]+b[i]+b[i+1])/3,2);
end;
 
procedure _Print(a : array of Real):=a.Select(x->Format('{0,5:f2}', x)).Println;
 
begin
  var n:Integer;
  repeat
    n:=ReadInteger($'Размерность массива от 3 до ' + nMax + ' n =');
    if Not n.InRange(3,nMax) then WriteLn('Не правильно! Повторите ввод.');
  until n.InRange(3,nMax);
  var a:=ArrRandomReal(n,0,10).Select(x->Round(x,2)).ToArray;
  Write('Исходный массив: ');_Print(a);
  for var s := 1 to 3 do
    begin
      Smooth(a,n);
      Write($'{s,3} сглаживание: ');_Print(a);
    end;
end.
0
2132 / 1276 / 482
Регистрация: 07.04.2017
Сообщений: 4,489
23.12.2018, 17:50 3
Цитата Сообщение от JuriiMW Посмотреть сообщение
var b:=a;
Скопируется только ссылка. Чтоб скопировать содержимое надо писать var b := Copy(a)
И в конце не хватает a := b, чтоб записать результат в ответ.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2018, 17:50
Помогаю со студенческими работами здесь

Описать функцию average(ar, n), вычисляющую среднее арифметическое первых n элементов массива
Дано описание: Type artype=array of real; Описать функцию average(ar,n), вычисляющую среднее...

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

Описать функцию вычисляющую среднее арифметическое и вызвать через делегат
Описать функцию MeanА(X, Y), вычисляющую среднее арифметическое AMean = (X+Y)/2 двух ...

Описать функцию или процедуру, находящую среднее арифметическое элементов списка
Описать функцию или процедуру, которая находит среднее арифметическое элементов непустого списка L...


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

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

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