Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.01.2011, 15:36   #1
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию Цикл (итерации) до достижения условия. сделать в паскале

помогите пожалуйста с решением :
Определить, через сколько итераций члены ряда (а+i)/(i*i), (где а=47;i=1,2...) станут меньше 1.

Последний раз редактировалось Bjac@; 09.01.2011 в 17:18.
Bjac@ вне форума Ответить с цитированием
Старый 09.01.2011, 17:00   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

кстати, можно решить и без всякого цикла (хотя, я уверен, что данная задача на использование цикла с неопределённым числом повторений (т.е. цикл while .. do или repeat .. until )

преобразовав формулу
получаем
(a+1)<i*i
при a=47 получаем
48<i*i
отсюда при i = 7 условие выполнится.
ответ - через 7 итераций
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2011, 17:12   #3
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию

А как это в паскале написать??? Я просто вообще мало чего в нем понимаю. В заранее благодарен
Bjac@ вне форума Ответить с цитированием
Старый 09.01.2011, 17:53   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

да мне то такую элементарщину не сложно написать..
а разве Вам не хотелось бы НАУЧИТЬСЯ?

попробуйте написать самостоятельно...
подскажу. вычисляйте значение очередного элемента.
до тех пор, пока значение вычисленное больше единицы.
Каждый раз, когда вычисляете очередной элемент ряда, увеличивайте переменную-счётчик цикла.
В данной задаче можно использовать одну переменную и как счётчик цикла, и как итерационную переменную: это переменная i
а использовать её как счётчик итераций позволит то, что значение i, по условиям задачи, начинается с единицы и увеличивается на единицу каждый раз...

попробуйте написать самостоятельно...
и опубликуйте здесь то, что у Вас получилось.
Тогда Вас поправят.

А если всё сделают за Вас - Вы вряд ли чему-нибудь научитесь!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2011, 18:05   #5
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию

спасибо. Попробую.

Код:
program Pr53;
const a=47;
var n,i,k1:integer;
k:real;
begin
for i:=1 to n do
begin
k:=(a+i)/(i*i);
if k<1 then
k1:=i;
end;
writeln(k1);
end.



Как то так наверное, поправьте пожалуйста и обьясните что не так

программа работает, ответ пишет 0, где ошибка подскажите

Последний раз редактировалось Stilet; 09.01.2011 в 20:28.
Bjac@ вне форума Ответить с цитированием
Старый 09.01.2011, 19:32   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
for i:=1 to n do
От куда вы знаете заранее сколько раз у вас выполнится этот цикл? Предлагаю свой вариант
Код:
const
a=47;
var
  i:integer;
  k:real;
Begin
i:=0;
Repeat
inc(i);
k:=(a+i)/(i*i);
Until k <= 1;
dec(i);
Writeln('Кол циклов = ',i);
Readln
End.
GetMax вне форума Ответить с цитированием
Старый 09.01.2011, 19:41   #7
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Код:
for i:=1 to n do
Until k <= 1;
[/CODE]
а почему <= ???
Bjac@ вне форума Ответить с цитированием
Старый 09.01.2011, 19:43   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

угу, GetMax - зачёт.

только, как правильно заметил Bjac@ надо строго меньше единицы.

Bjac@ - ну так исправьте:
Код:
Until k < 1;

p.s.
к слову. приношу свои извинения. в пост номер два я написал решение без циклов. Это неправильное решение.
я сослепу не увидел, что к a прибавляется i, а не единица (как мне показалось). Сорри...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2011, 19:46   #9
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
угу, GetMax - зачёт.

только, как правильно заметил Bjac@ надо строго меньше единицы.

Bjac@ - ну так исправьте:
Код:
Until k < 1;

p.s.
к слову. приношу свои извинения. в пост номер два я написал решение без циклов. Это неправильное решение.
я сослепу не увидел, что к a прибавляется i, а не единица (как мне показалось). Сорри...
это вы извините там действительно сначала была единица,моя ошибка.
Приношу свои извинения.И огромное спасибо всем вам. я пытаюсь сам освоить паскаль но у меня оч сложно все.Еще раз огромное СПАСИБО

Последний раз редактировалось Bjac@; 09.01.2011 в 19:49.
Bjac@ вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор условия или как сделать чтобы анализировало все переменные eriskay Помощь студентам 9 07.01.2011 01:19
Цикл в паскале GreenDay Помощь студентам 1 16.11.2010 18:03
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 20:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 02:34


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS