Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 689

/ вопрос открыт /

добрый вечер, уважаемые эксперты! не могли бы вы мне помочь сделать 3 задачи по массивам:
1. N=15 определить количество элементов, значение которых больше суммы соседних элементов (предыдущего и последующего).
2. определить количество простых чисел в массиве.
3. найти элемент, наиболее близкий к среднему значению всех элементов массива.

tolik384 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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]:

"переделайте свою функцию по проверке простоты числа"

Это работа для автора вопроса.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.03 сек.