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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2010, 00:13   #1
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию Последовательность (Паскаль)

Прошу помочь с написанием программы для вывода последовательности.

Цепочка образуется следующим образом:
следующий = предыдущий делённый на 2, если предыдущий - четное число;
следующий= 3 * следующий, если предыдущий - нечётное число

Заранее спасибо.
ВОзможно ли, что в задании допущена ошибка?

Последний раз редактировалось slavec; 08.03.2010 в 00:24.
slavec вне форума Ответить с цитированием
Старый 08.03.2010, 02:31   #2
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Объявляешь массив n-ой размерности. К первому компоненту присваиваешь число. Если odd(компонент1)=false, то компонент2=компонент1/2 иначе компонент2=компонент2*3
Оператор odd - проверка на четность, true в случае нечетности, false в случае четности.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 08.03.2010, 10:12   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
ВОзможно ли, что в задании допущена ошибка?
должно быть условие окончания вывода последовательности (это либо достижение какой-то границы (величины членов последовательности), либо,
как было сказано выше - указание N - сколько членов последовательности вывести..
например:
Код:
  var i, N, a : integer;
begin
   WriteLn('vvedite pervyi element posledovatelnosti: ');
   Readln(a);
   WriteLn('Vvedite, skolko elementov vyvodit: ');
   Readln(N);
   
   for i:=1 to N do begin
      Write(a:4,' ');
      if odd(a) then a:= a*3
      else a:= a div 2;
   end;
   readln; 
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.03.2010, 11:31   #4
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

Большое спасибо.
slavec вне форума Ответить с цитированием
Старый 22.03.2010, 23:50   #5
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

Завершение работы должно быть при достижении первого члена равного 1.
НИже приведенный код вылетает.
ПОдскажите пожалуйста как исправить.
Код:
program pnep;

var  a:integer;

begin

  writeln('Ievadiet a');
  readln(a);

  while(a<>1) do begin
      Write(a,' ');
      if odd(a) then a:= a*3
      else a:= a div 2;
  end;
  readln;
End.
slavec вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Последовательность чисел. mDv Помощь студентам 7 24.11.2009 17:44
Последовательность CrazyRabbit Помощь студентам 14 08.02.2009 17:22
ЗАДАЧА НА ПОСЛЕДОВАТЕЛЬНОСТЬ ЧИСЕЛ. ПОМОГИТЕ ПОЖАЛУЙСТF НАПИСАТЬ ПРОГРАММУ НА ЯЗЫКЕ ПАСКАЛЬ владимир/к. Помощь студентам 2 21.01.2009 03:03
Паскаль, последовательность Кагбе_Прогер Помощь студентам 2 22.12.2008 13:11
Из двух натуральных чисел, составить наибольшее число, сохраняя первоначальную последовательность.Паскаль Omedus Помощь студентам 8 19.11.2007 22:02