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

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

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

 
 Ответить  Открыть новую тему 
> Массивы, среднее арифетическое
Kaliban
сообщение 26.06.2007 13:57
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

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


Народ, помогите плиз, из полного бреда сделать рабочую прогу smile.gif

В массивах R1..R8, T1..T6 найти среднее арифметическое положительных и среднее арифметическое отрицательных элементов (среди обоих массивов).
Заменить последние элементы в массивах на максимальное среднее арифметическое.

использовать процедуру нада еще

Прикрепленный файл  1.rar ( 523 байт ) Кол-во скачиваний: 334


Сообщение отредактировано: Kaliban - 26.06.2007 13:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 27.06.2007 17:05
Сообщение #2


Человек
*****

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

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


ты б эти отступы сделал, заметил что begin-а не хватает...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 29.06.2007 16:35
Сообщение #3


Человек
*****

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

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


Цитата(Kaliban @ 26.06.2007 13:57) *
...из полного бреда сделать рабочую прогу smile.gif
вобщем я(с помощью volvo) тут накидал...

program exam;//а можно узнать, где такие экзамены?
type
m=array [0..10] of real ;//подставишь сваи размеры...
var
R,T:m;
sr1,sr2: real;

function Positive(const r:real):boolean;//проверяет является ли число положительным
begin
if r>=0 then Positive:=true else Positive:=false; //0 --положительное число
end;

function More(const A,B:real):real; //возвращает большее из двух чисел
begin
if A>B then More:=A else More:=B;
end;

procedure SrArP( const ar:array of real; var sr:real); // можна организовать функцию...
var
i:integer;
sum:real;
begin
sum:=0;
for i:=Low(ar) to High(ar) do if Positive(ar[i]) then sum:=sum+ar[i];
sr:=sum/(High(ar) - Low(ar)+1)(*(i+1)*);//High(ar) - Low(ar), можна заменить на (i+1
end;

procedure SrArN(const ar:m; var sr : real);
var
//...
begin
//напишешь по аналогии...
end;

begin
SrArN(R, sr1); writeln(sr1);
SrArN(T, sr1); writeln(sr1);
SrArP(R, sr1); writeln(sr1);
SrArP(T, sr2); writeln(sr2);
R[High®]:=more(sr1,sr2); T[High(T)]:=R[High®];
readln;
read;
end.

вроде все...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 29.06.2007 16:51
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


function Positive(const r:real):boolean;//проверяет является ли число положительным
begin
Positive:=(r>=0);
end;


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 29.06.2007 17:38
Сообщение #5


Человек
*****

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

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


опять... в соседней теме такая-же ошибка...

спасибо что поправляете.


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.06.2007 11:28
Сообщение #6


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

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

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


Positive:=(r>=0);


C каких пор 0 - положительное число ?


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


Гость






Это, вообще говоря, не единственная ошибка:

	for i:=Low(ar) to High(ar) do if Positive(ar[i]) then sum:=sum+ar[i];
sr:=sum/(High(ar) - Low(ar)+1); // <--- Вот тут меня интересует ...

... с каких пор, чтобы найти среднее арифметическое всех положительных, надо найти сумму только положительных, и разделить ее на общее число элементов?

(про использование того, что в комментариях - я вообще молчу: по окончании цикла For в его управляющей переменной может быть что угодно, Борланд крайне НЕ рекомендует после такого цикла обращаться к его счетчику)
 К началу страницы 
+ Ответить 
compiler
сообщение 30.06.2007 17:48
Сообщение #8


Человек
*****

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

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


Цитата(volvo @ 30.06.2007 11:46) *
... с каких пор, чтобы найти среднее арифметическое всех положительных, надо найти сумму только положительных, и разделить ее на общее число элементов?
тогда пишем
	a:integer; ... a:=0;
//можна и типизированной константой, но я их не люблю :)
...for i:=Low(ar) to High(ar) do if Positive(ar[i]) then begin sum:=sum+ar[i]; inc(a)end;
sr:=sum/a;

Цитата(volvo @ 30.06.2007 11:46) *
(про использование того, что в комментариях - я вообще молчу: по окончании цикла For в его управляющей переменной может быть что угодно, Борланд крайне НЕ рекомендует после такого цикла обращаться к его счетчику)
поэтому оно и в комментариях :) , имхо, так легче разбиратся в программе. а потом лично у меня оптимизатор ничего такого не творил не разу...

насчет нуля -- >= , меняем на >

теперь из моего бреда делают рабочую прогу :)

Сообщение отредактировано: compiler - 30.06.2007 17:57


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.06.2007 18:08
Сообщение #9


Гость






Цитата
тогда пишем
...

, передаем массив, в котором НЕТ положительных элементов, и наслаждаемся видом ошибки Divizion By Zero ... Ну, такие вещи надо ловить все-таки, или как? Вот тут как раз лишнее условие не помешает.
 К началу страницы 
+ Ответить 
compiler
сообщение 30.06.2007 18:20
Сообщение #10


Человек
*****

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

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


Цитата(volvo @ 30.06.2007 18:08) *
Вот тут как раз лишнее условие не помешает.
а ну да... а вообще надоела эта ошибка надо бы переопределить операцию деления smile.gif


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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