IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> работа с массивом., посчитать ср.арифм. для предыдущих эл.
сообщение
Сообщение #1


Гость






Уважаемые мастера,прощу помощи с написанием программы из курсовой...вот:
Заменить каждый элемент массива средним арифметичекским всех предшествующих ему элементов.Число элементов N>=100.Итоговый массив записываеться в файл с контролем на экране монитора.Исходный массив сформировать из случайныйх действительныйх чисел и хранить на МД.
Буду очень благодарен если хотя бы укажете примерный алгоритм решения.

название темы!
Цитата
1. Заголовок темы должен быть  информативным В противном случае тема удаляется


Сообщение отредактировано: Oleg_Z -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


А в какой части конкретно не понятно что делать ? У нас просто не очень приветствуется решать задачу полностью.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Drow,
Цитата
хранить на МД.

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(klem4 @ 11.09.05 12:55)
А в какой части конкретно не понятно что делать ?  У нас просто не очень приветствуется решать задачу полностью.

1 создать массив из случайныйх действительныйх чисел
2 посчитать среднее арифметическое
с 1 уже справился а 2ое теоретически знаю как делать а вот программно не могу реализовать.=(
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
1 создать массив из случайныйх действительныйх чисел

random используй.

Цитата
2 посчитать среднее арифметическое

соеднее арифм с i по j
summ:=0;
for c:=i to j do summ:=summ+a[c];
summ:=summ div (j-i);


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


помойму среднее арифметической от 1 до i-1 будет так :

type

Tarr = array [1..100] of single;

var
mass : Tarr;

n,j : integer;

function Sr(var x : Tarr; size, p : integer) : single;
var
i:integer;
s:single;
begin

s := 0;

for i := 1 to p do
s := s+x[i];

s := s/(p);

Sr := s;

end;

// в основном блоке после ввода массива :

for j := n downto 2 do
mass[j] := Sr(mass, n, j-1);


из массив 1,2,3,4,5 => 1, 1, 1.5, 2.0, 2.5 т.е

mass[5] = (4+3+2+1)/4
mass[4] = (3+2+1)/3
и т.д.

поправьте если я не прав.

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






klem4, а не лишнее это, КАЖДЫЙ раз пересчитывать сумму стольких элементов? Может, вот так будет проще:
{ ввод массива }
s := 0;
for i := 1 to n do
s := s + mass[i];

{ и теперь: }
for i := n downto 2 do begin
s := s - mass[i];
mass[i] := s / (i - 1)
end;
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да, точно, не допер :D


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата(Oleg_Z @ 11.09.05 13:13)
random используй.
соеднее арифм с i по j
summ:=0;
for c:=i to j do summ:=summ+a[c];
summ:=summ div (j-i);


средним арифметичекским всех предшествующих ему элементов,а не всех элементов.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата(klem4 @ 11.09.05 13:22)
помойму среднее арифметической от 1 до i-1 будет так :

я сделал так :
program z1n1;
uses crt;
type
tarr=array[1..100] of single;
var
mass:Tarr;
n,j,k:integer;
function Sr(var x:Tarr;size,p:integer):single;
var
i:integer;
s:single;
begin
s:=0;
for i:=1 to p do
s:= s+x[i];
s:=s/(p);
Sr:=s;
end;
begin
clrscr;
writeln('ISHODNIY MASSIV :');
for k:=1 to 100 do begin
mass[k]:=random(100)+1;
write(' * ',mass[k]:3:0);
end;
writeln;
writeln('POLUCHENIY MASSIV :');
for j:=n downto 2 do
mass[j] :=Sr(mass,n,j-1);
for k:=1 to 100 do begin
write(' ',mass[k]:3:1);
end;
readln;
end.


но у меня получаеться что исходный и полученный массивы одинаковы.
Тегами пользуйся...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Пост №7 внимательно перечитай ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата(volvo @ 11.09.05 13:39)
klem4, а не лишнее это, КАЖДЫЙ раз пересчитывать сумму стольких элементов? Может, вот так будет проще:
{ ввод массива }
s := 0;
for i := 1 to n do
  s := s + mass[i];

{ и теперь: }
for i := n downto 2 do begin
  s := s - mass[i];
  mass[i] := s / (i - 1)
end;
?

а чему должно быть равно n?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


smile.gif))) n - количество элементов в твоем массиве


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






а как теперь сохранить в файл?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


goto FAQ Файлы


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 6:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name