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

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

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

 
 Ответить  Открыть новую тему 
> найти среднее арифметическое вектора, вектор N<=40
сообщение
Сообщение #1


Новичок
*

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

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


Дан вектор В(N), N<=40. Найти среднее арифметическое всех элементов вектора за исключением
максимального и минимального по абсолютной величине. (учесть, что |max| u |min| могут быть несколько)

нужно написать все с процедурами и функцией. Сделайте пожалучста кто-нибудь. А то я не знаю как описывать процедуры с функциями... wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


Во первых, что уже готово ? Во вторых зайди сюда : FAQ : Массивы, матрицы, типичные задачи, если есть проблемы в работе с массивами

А алгоритм решение твоей задачи следующий : находишь абсолютные значение максимального и минимального элементов, затем делеаешь следующее :


sr := 0;
count := 0;
for i := 1 to n do
if (x[i] <> min) and (x[i] <> max) then begin
sr := sr + x[i];
inc(count);
end;

if count <> 0 then sr := sr / count;



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


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


Новичок
*

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

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


Цитата(klem4 @ 10.02.2006 13:54)
Во первых, что уже готово ?

у меня не получается описывать процедуры с функциями, покажи как будет выглядеть функция с поиском min и max плиз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Я бы сделал по-другому: Сначала отсортировал вектор (неважно, в каком направлении - можно и так и так...), потом "отсек" все крайние одинаковые элементы с обеих сторон, и потом уже прошелся бы обычным циклом, суммируя элементы...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


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

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

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



type
TArr = array [1..100] of integer;

...

function Min(a : TArr; n : integer) : integer;
var
i,Amin : integer;
begin
Amin := maxint;
for i := 1 to n do
if abs(a[i]<abs[Amin]) then Amin := abs(a[i]);
Min := Amin;
end;


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


Новичок
*

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

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


сделайте кто-нибудь, только обязательно с процедурами и функцией.
200 рублей плачу кто сделает.

ты не на рынке... mad.gif

при чем здесь рынок??
я реально прошу просто сделать мне задачу.
очень срочно нужно....

Сообщение отредактировано: Altair -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


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

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

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


Я могу перенести тему в разед "Задачи на заказ", но шансов что там ее тебе кто-то решит я думаю не много, я привел тебе пример как работать с массивм через подпрограмму + воспользуйся поиском, огромное множество задач на массивы решено с использованием подпрограмм, да почти все наверное + основной алогитм я тебе тоже показал. Решай.


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


Гость






const
n = 10;
type
buffer = array[1 .. n] of integer;

procedure sort(var ar: buffer; n: integer);
var i, j, T: integer;
begin
for i := 1 to n do
for j := n downto i + 1 do
if ar[Pred(j)] > ar[j] then begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
end
end;

procedure get_ranges(const arr: buffer;
var start, finish: integer);
begin
start := 1; finish := n;
while (arr[start + 1] = arr[start]) and (start < n) do
inc(start); inc(start);
while (arr[finish - 1] = arr[finish]) and (finish > 1) do
dec(finish); dec(finish);
end;

function get_average(const arr: buffer;
start, finish: integer): real;
var
i: integer;
s: real;
begin
s := 0;
for i := start to finish do s := s + arr[i];
get_average := s / (finish - start + 1);
end;

var
i, st, fn: integer;
const
a: buffer = (1, 9, 4, 3, 5, 6, 8, 9, 9, 1);

begin
sort(a, n);
get_ranges(a, st, fn);
writeln('average = ', get_average(a, st, fn) : 10 : 5);
end.

dry.gif Думать сам не хочешь? Больше ничего делать не буду - разбирайся сам ...
 К началу страницы 
+ Ответить 

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

 





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