Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2012, 09:32   #1
dmitriy20104
Пользователь
 
Регистрация: 21.06.2012
Сообщений: 36
Восклицание Дана последовательность N целых чисел. Определить число членов последовательности, для которых выполняется условие

Доброго времени суток, программисты! Помогите решить задачку Заранее спасибо!
Дана последовательность N целых чисел a1,a2,...,an. Определить число членов последовательности:
а) являющихся кратными 3 и не кратными 5;
б) для которых выполняется условие ak<((ak-1)+(ak+1))/2, где k принадлежит промежутку [1..N].
dmitriy20104 вне форума Ответить с цитированием
Старый 29.06.2012, 09:49   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Думаю, что помогут условия:

Код:
var a: array[1..n] of integer;

n1 := 0; n2 := 0;
if (((a[i] mod 3) = 0) and ((a[i] mod 5)<>0)) then {случай а)}
  n1 := n1 + 1;

if (((a[k-1] + a[k+1]) div 2) > a[k]) then {случай в)}
   n2 := n2 + 1;
Внимание! k не может быть равно 1, если a - массив в Паскале.
Поскольку в задаче определены числа только целого типа,
то используем целочисленное деление.

Ну вот, наставил скобок ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 29.06.2012, 10:10   #3
dmitriy20104
Пользователь
 
Регистрация: 21.06.2012
Сообщений: 36
По умолчанию

а можно без массивов, пожалуйста?
dmitriy20104 вне форума Ответить с цитированием
Старый 29.06.2012, 10:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
а можно без массивов, пожалуйста?
а что, самостоятельно переделать не получается?

без массивов в подобных задачах можно обойтись, если задача позволяет обрабатывать числа по мере их ввода.
вот так, например:
Код:
  CountGood := 0; {обнулили счётчик подходящих чисел}
  for I:=1 to N do begin
     Write('Введите ',i,'-е число последовательности: ');
     ReadLn(a);
     if (a mod 3 = 0) and (a mod 5 <> 0) 
         then  Inc( CountGood ); {наш случай - увеличили счётчик чисел} 
  end;
  WriteLn('число членов последовательности кратных 3 и не кратных 5 равно ', CountGood );
  Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана последовательность n целых чисел, определить есть ли среди них точные квадраты и вывести их на экран. dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 4 27.06.2012 10:12
дана последовательность n действительных чисел, определить число соседств dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 1 25.06.2012 19:06
дана последовательность n целых чисел, найти минимальный и максимальный члены последовательности и их номера dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 1 22.06.2012 13:45
Дана последовательность из n целых чисел. Найти сумму нечетных элементов этой последовательности.С++ punkvalera Помощь студентам 1 13.05.2012 20:35
Дана последовательность целых чисел за которой следует 0.Найти номер максимального элемента в этой последовательности. Da Magic Помощь студентам 3 22.11.2011 23:08