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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2010, 12:47   #1
Slap
Пользователь
 
Регистрация: 03.09.2010
Сообщений: 25
По умолчанию Задача по Pascal c произвольной последовательностью. Тема: циклы.

Помогите решить следующую задачу:
Вводится произвольная последовательность целых чисел, заканчивающаяся нулем.
Найти наибольшее из всех чисел, кратных трем.
Slap вне форума Ответить с цитированием
Старый 04.09.2010, 12:55   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

а где наработки? или надо не "помочь", а решить за тебя?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 04.09.2010, 13:01   #3
Slap
Пользователь
 
Регистрация: 03.09.2010
Сообщений: 25
По умолчанию

Решать за меня не надо...Подскажите только, пожалуйста, как в паскале задается произвольная последовательность. Можно ли, обойтись без огромного числа переменных?
Slap вне форума Ответить с цитированием
Старый 04.09.2010, 13:03   #4
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

можно использовать массив переменных
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 04.09.2010, 13:07   #5
Slap
Пользователь
 
Регистрация: 03.09.2010
Сообщений: 25
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
можно использовать массив переменных
А можно обойтись без массива?
Slap вне форума Ответить с цитированием
Старый 04.09.2010, 13:10   #6
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Тогда только куча переменных, да еще и неизвестно, сколько их будет.
А лучше делать сразу проверку и заносить по условию в массив:
Код:
Var
  x,i:integer;
  a:array[1..100] of Integer;
begin
  i:=1;
  repeat
   begin
    readln(x);
    if x div 3<>0 then
     a[i]:=x;
     inc(i);
   end
 until x=0;

{НУ А ТУТ УЖЕ ИЩЕШЬ НАИБОЛЬШЕЕ ЗНАЧЕНИЕ ЭЛЕМЕНТОВ МАССИВА}
end.
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 04.09.2010 в 13:33.
DIgorevich вне форума Ответить с цитированием
Старый 04.09.2010, 15:03   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Причем тут DIV и зачем вообще нужен массив???
Код:
Var
  X, Max:integer;
Begin
  Max:=Low(integer);
  repeat
    readln(X);
    if (X mod 3)=0 then
      if X>Max then Max:=X
  until X=0;
  writeln(Max)
End.
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 04.09.2010 в 15:17.
Grag вне форума Ответить с цитированием
Старый 04.09.2010, 15:11   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

DIgorevich
Коллега, ну зачем тут переменные, массив и прочая, прочая, прочая.. (я уж не говорю, что Вы перепутали div с mod)
Ведь тут же классический подхода, когда из всех предыдущих чисел достаточно хранить ОДНО - максимальное число, делящееся на три.
примерно так:
Код:
var 
   isFound : boolean;
   MaxFound : integer;
   k : integer;
begin
   isFound := false;
   repeat 
      WriteLn('Введите очередное число (ноль - окончание): ');
      Readln(k);
      if k<>0 then
        if (k mod 3) = 0 then
           {нашли число, кратное трём}
           if isFound then begin
              if k>MaxFound then MaxFound := k;
           end
           else begin
              MaxFound := k;
              isFound := true
           end;
   until k=0;

   {вывод результата}
   if isFound then Writeln('Максимальное число кратное трём в последовательности было ',MaxFound :1)
   else WriteLn('А не было введено подходящих чисел!');
   Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.09.2010, 18:39   #9
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

М-да... действительно, что-то я намудрил...
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Pascal) Выделение произвольной области на экране bobby2008 Помощь студентам 1 29.05.2009 21:33
Pascal.Циклы. Задача NitriNKa Помощь студентам 2 02.05.2009 13:29
Нужна помощь в решении задачек, тема "Циклы с переменным количеством шагов" DJ Kost Помощь студентам 3 16.01.2009 13:26