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

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

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

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


Гость






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

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


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


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

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

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


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


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


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

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

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


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

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


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


Гость






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

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


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

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

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


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

random используй.

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

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 11.09.2005 13:22
Сообщение #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 - 11.09.2005 13:26


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.09.2005 13:39
Сообщение #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;
?
 К началу страницы 
+ Ответить 
klem4
сообщение 11.09.2005 13:41
Сообщение #8


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

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

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


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


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


средним арифметичекским всех предшествующих ему элементов,а не всех элементов.
 К началу страницы 
+ Ответить 
Guest
сообщение 11.09.2005 15:07
Сообщение #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.09.2005 15:17
 К началу страницы 
+ Ответить 
volvo
сообщение 11.09.2005 15:18
Сообщение #11


Гость






Пост №7 внимательно перечитай ...
 К началу страницы 
+ Ответить 
Drow
сообщение 11.09.2005 15:30
Сообщение #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?
 К началу страницы 
+ Ответить 
klem4
сообщение 11.09.2005 15:34
Сообщение #13


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

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

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


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


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


Гость






а как теперь сохранить в файл?
 К началу страницы 
+ Ответить 
klem4
сообщение 11.09.2005 16:26
Сообщение #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

 



- Текстовая версия 19.07.2025 23:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"