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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

помогите пожалуйста с решением :
Определить, через сколько итераций члены ряда (а+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,031
Репутация: 5656
По умолчанию

кстати, можно решить и без всякого цикла (хотя, я уверен, что данная задача на использование цикла с неопределённым числом повторений (т.е. цикл 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
Репутация: 10
По умолчанию

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

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

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

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

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

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

Код:
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
Репутация: 181

skype: MaximALL89
По умолчанию

Код:
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
Репутация: 10
По умолчанию

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

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

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор условия или как сделать чтобы анализировало все переменные 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


06:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.