|
Вопрос # 3 689/ вопрос открыт / |
|
добрый вечер, уважаемые эксперты! не могли бы вы мне помочь сделать 3 задачи по массивам:
1. N=15 определить количество элементов, значение которых больше суммы соседних элементов (предыдущего и последующего).
2. определить количество простых чисел в массиве.
3. найти элемент, наиболее близкий к среднему значению всех элементов массива.
 |
Вопрос задал: tolik384 (статус: Посетитель)
Вопрос отправлен: 26 января 2010, 21:02
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Паровоз
Здравствуйте, tolik384!
1)
var
a:array[1..15] of real;
i,count:integer;
begin
count:=0;
for i:=2 to 14 do
if a[i]>a[i-1}+a[i+1] then count:=count+1;
end;
count - искомое число
 |
Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 26 января 2010, 23:23
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 27 января 2010, 09:40; участников в обсуждении: 3.
26 января 2010, 22:05: Вопрос перемещён из тематического раздела Pascal » Программирование на Pascal в раздел Лабораторный практикум » Pascal модератором Ерёмин А.А.
|
Паровоз (статус: 10-ый класс), 26 января 2010, 23:36 [#1]:
2) Пишем функцию,проверяющую простоту числа n:
function IsSimple(n:byte):boolean;
var
i:byte;
begin
Result:=True;
for i:=2 to n-1 do
if (n mod i)=0 then Result:=False;
end;
и решение задачи
var
a:array[1..15] of real;
i,count:integer;
begin
count:=0;
for i:=1 to 15 do
if IsSimple(a[i]) then count:=count+1;
end;
count - число простых чисел в массиве
|
|
Паровоз (статус: 10-ый класс), 26 января 2010, 23:44 [#2]:
3) Вычисляем среднее значение s:
beign
s:=a[1];
for i:=2 to 15 do s:=s+a[i];
s:=s/15;
end;
Находим нужный номер no (возможно, не единственный):
begin
no:=1;
d:=abs(a[1]-s);
for i:=2 to 15 do
begin
if abs(a[i]-s)<d then
begin
no:=i;
d:=abs(a[i]-s);
end;
end;
end;
|
|
Мережников Андрей (статус: Абитуриент), 27 января 2010, 05:31 [#3]:
to Паровоз - переделайте свою функцию по проверке простоты числа!!! Цикл не надо делать до n-1 - вполне достаточно до (n div 2)
|
|
Егор (статус: 10-ый класс), 27 января 2010, 09:07 [#4]:
не, до n div 2 тоже много. хватит до sqrt(n)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Паровоз (статус: 10-ый класс), 27 января 2010, 09:40 [#5]:
"переделайте свою функцию по проверке простоты числа"
Это работа для автора вопроса.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|