![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kaliban |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ, помогите плиз, из полного бреда сделать рабочую прогу
![]() В массивах R1..R8, T1..T6 найти среднее арифметическое положительных и среднее арифметическое отрицательных элементов (среди обоих массивов). Заменить последние элементы в массивах на максимальное среднее арифметическое. использовать процедуру нада еще ![]() Сообщение отредактировано: Kaliban - 26.06.2007 13:58 |
compiler |
![]()
Сообщение
#2
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
ты б эти отступы сделал, заметил что begin-а не хватает...
-------------------- Спасибо!
Удачи! |
compiler |
![]()
Сообщение
#3
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
...из полного бреда сделать рабочую прогу вобщем я(с помощью 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(r)]:=more(sr1,sr2); T[High(T)]:=R[High(r)];
readln;
read;
end.
вроде все... -------------------- Спасибо!
Удачи! |
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
function Positive(const r:real):boolean;//проверяет является ли число положительным
begin
Positive:=(r>=0);
end;
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
compiler |
![]()
Сообщение
#5
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
опять... в соседней теме такая-же ошибка...
спасибо что поправляете. -------------------- Спасибо!
Удачи! |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Positive:=(r>=0);
C каких пор 0 - положительное число ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#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 |
![]()
Сообщение
#8
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
... с каких пор, чтобы найти среднее арифметическое всех положительных, надо найти сумму только положительных, и разделить ее на общее число элементов? тогда пишем
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;
(про использование того, что в комментариях - я вообще молчу: по окончании цикла For в его управляющей переменной может быть что угодно, Борланд крайне НЕ рекомендует после такого цикла обращаться к его счетчику) поэтому оно и в комментариях :) , имхо, так легче разбиратся в программе. а потом лично у меня оптимизатор ничего такого не творил не разу...насчет нуля -- >= , меняем на > теперь из моего бреда делают рабочую прогу :) Сообщение отредактировано: compiler - 30.06.2007 17:57 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата тогда пишем ..., передаем массив, в котором НЕТ положительных элементов, и наслаждаемся видом ошибки Divizion By Zero ... Ну, такие вещи надо ловить все-таки, или как? Вот тут как раз лишнее условие не помешает. |
compiler |
![]()
Сообщение
#10
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Вот тут как раз лишнее условие не помешает. а ну да... а вообще надоела эта ошибка надо бы переопределить операцию деления ![]() -------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 21:38 |