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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 20:35   #1
pityara
Новичок
Джуниор
 
Регистрация: 26.09.2011
Сообщений: 1
По умолчанию Задача с вложеным циклом

Дана функция y=f(x,a)

x1<=x<=x2 шаг-x3

a1<=a<a2 шаг-a3

x - через for
a - через repeat

Вывести все значения x при которых y-четное положительное число

Помогите пожалуйста.
Зарание благодарен.
pityara вне форума Ответить с цитированием
Старый 26.09.2011, 22:04   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Код:
for x:=x1 to x2 do
begin
   if(0<y)and(y mod 2=0)then WriteLn(y);
   x:=x+x3;
end;
//*****************
a:=a1;
repeat
   if(0<y)and(y mod 2=0)then WriteLn(y);
a:=a+a3;
until a<=a2;
или это задание надо было с помощью вложенных циклов реализовать, типа
Код:
for x:=x1 to x2 do
begin
   a:=a1;
   repeat
      //тут считаете значение функции y(x,a)
      ...
      if(0<y)and(y mod 2=0)then WriteLn(y);
      a:=a+a3;
  until a<=a2;
  x:=x+x3;
end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 26.09.2011 в 22:07.
NetSpace вне форума Ответить с цитированием
Старый 27.09.2011, 14:44   #3
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
x:=x+x3;
Вопрос, а не пишет такой гон ?
Цитата:
[Error] Unit1.pas(42): Assignment to FOR-Loop variable 'I'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 27.09.2011, 15:34   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как раз в этой теме (пост #7) только что было про это) http://programmersforum.ru/showthread.php?t=166720

Но странно почему в ошибке о "variable 'I'".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 17:18   #5
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

ну тогда надо в теле цикла включать ещё один счётчик, чтоб проверял каждое значение X на "вшивость". типа так:
x=3//это значение берём - оно первое
x=4//это не берём
x=5//это не берём
x=6//а вот это берём, потому что оно как раз 3 по счёту - у нас шаг +3
x=7//а это снова не берём
x=8//и это тоже...
x=9//а вот это опять берём в расчёт
...
Код:
for x:=x1 to x2 do
begin
   a:=a1;
   if((x-x1)mod 3=0)then//вот оно - условие проверки на "вшивость"
   begin
      repeat
      //тут считаете значение функции y(x,a)
      ...
      if(0<y)and(y mod 2=0)then WriteLn(y);
      a:=a+a3;
     until a<=a2;
   end;
end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 27.09.2011 в 17:20.
NetSpace вне форума Ответить с цитированием
Старый 28.09.2011, 03:23   #6
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
ну тогда надо в теле цикла включать ещё один счётчик, чтоб проверял каждое значение X на "вшивость".
Гм. А если "вшивых" одно на миллион? Хороший способ занять комп делом, чтоб не шлялся по подворотням.. ))

Есть способ проще:
Код:
for i:=0 to (x2-x1) mod x3 do begin
  a:= a1;
  repeat
    y:= f(x1+i*x3,a);
    if (y>0) and not Odd(y) then Writeln(x)
    a:= a+a3;
  untili a>a2
end
Автор не указал, какого типа переменные, так что я считал все целыми.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача с циклом while lammy Помощь студентам 1 09.12.2009 16:06
задача с циклом for lammy Помощь студентам 3 04.12.2009 06:45
Задача с циклом на Паскале Карабин Помощь студентам 2 02.04.2009 00:26
Задача с циклом for в c++ Many man Помощь студентам 5 14.12.2008 12:01
Задача с циклом POPOV Общие вопросы Delphi 13 01.02.2008 20:33