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

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

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

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

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

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

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

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

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

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

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

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

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

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

А если всё сделают за Вас - Вы вряд ли чему-нибудь научитесь!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2011, 17: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 в 19:28.
Bjac@ вне форума Ответить с цитированием
Старый 09.01.2011, 18: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.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 09.01.2011, 18:41   #7
Bjac@
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 11
По умолчанию

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

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

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

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

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

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

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

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

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

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


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

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

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


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