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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2010, 14:59   #1
Яська
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 50
Восклицание цикл в делфи

Составить программу вычисления численности населения в 2000 году, если в 1980 году численность населения была 1.5 млн. человек, а прирост на селения 3% в год.


получается,что начальный х=1,5млн,шаг 3 %,т.е. х*0,03, численность вычисляется по формуле у=х+h. Только вот понять не могу,какое условие писать в While. мы же не знаем,какой х через 20 лет будет.
Может,я неправильно рассуждаю.Помогите,плиз вникнуть в задачу.
Яська вне форума Ответить с цитированием
Старый 26.09.2010, 15:02   #2
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

начальная точка 1980 год.пользователь вводит до какого года считать населения x=2000 например ну вот

y=1980 x=2000 z=1.5- численность.

while (y<>x) do
begin
z=z*0,03;
inc y//увеличиваем y
end;
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 26.09.2010, 15:04   #3
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Ну смотри. В 1980 население 1,5. Прирост 0,03. То-есть в 1981 будет население 1,5 * 0,03. В 1982 будет (1,5*0,03)*0,03. И так далее. Число лет известно (2000-1980 = 20). Итого, цикл нужно повторить 19 раз. 19 - потому что для 1980 года мы уже знаем население и считать этот год не нужно. Итого примерно так:

Код:
x := 1,5;
for i := 1 to 2000-1980-1 do
x := x * 0,03;
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 26.09.2010, 15:12   #4
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

ну а у меня что написано?

z=z*0,03 на каждым цикле z меняется на 0.03 )

а цикл у меня от 1980 до 2000 и делается inc 1 вот и всё
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 26.09.2010, 15:14   #5
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от savva Посмотреть сообщение
ну а у меня что написано?

z=z*0,03 на каждым цикле z меняется на 0.03 )

а цикл у меня от 1980 до 2000 и делается inc 1 вот и всё
Да я просто пока писал комент, вы уже ответили. Я не видел просто.
Но я думаю что Y должен быть равен все-таки 1981, а не 1980. Хотя хз, может и так )
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 26.09.2010, 15:18   #6
Яська
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 50
По умолчанию

спасибо за помощь.сейчас попробую.
Яська вне форума Ответить с цитированием
Старый 26.09.2010, 15:23   #7
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

ошибся

z=z+z*0.03

))
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 26.09.2010, 15:25   #8
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

Код:
program Project8;

{$APPTYPE CONSOLE}

uses
  SysUtils;

  var
  x,y:integer;
  z:Real;
  a:Real;
begin

 x:=1980;
 y:=2000;
 z:=1500000;
 a:=0.03;
 while(x<>y) do
 begin
   z:=z+z*a;
   inc (x);
 end;
 writeln(z);
 readln;
end.
там с выводом числа нужно немного погорбатиться,я не помню как,а справочника под рукой нету

Там уже сам сделаешь ввод пользователем и так далее.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
цикл ciaonataha Общие вопросы C/C++ 0 24.06.2009 18:47
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34