In: Computer Science
Transient Population
Populations are effected by the birth and death rate, as well as
the number of people who move in and out each year. The birth rate
is the percentage increase of the population due to births and the
death rate is the percentage decrease of the population due to
deaths. Write a program that displays the size of a population for
any number of years. The program should ask for the following
data:
Write a function that calculates the size of the population
after a year. To calculate the new population after one year, this
function should use the formula
N = P + BP - DP + A - M
where N is the new population size, P is the previous population
size, and B, D, A and M are as defined above. The function should
return the value computed for N and should receive the values of P,
B, D, A and M as parameters.
Prompts And Output Labels. The program first
displays the message "This program calculates population change."
on a line by itself, followed by these prompts for the inputs
described above: "Enter the starting
population size: "
"Enter the annual birth rate (as % of
current population): "
"Enter the annual death rate (as % of
current population): "
"How many individuals move into the
area each year? ";
"How many individuals leave the area
each year? ";
"For how many years do you wish to
view population changes? "
The output of the program starts with a line:
Starting population: P (where
P is the starting population (surprise)),
and then continues with a separate line for each year, each line
being of the form: Population at the end of year ||Y is
P. (where Y is
the year number (1,2,3,...) starting with 1, and where
P is the population calculated for that
year).
Input Validation. The program should validate all data read. None of the data should be negative, the number of years should not be less than 1 and the initial population should not be less than 2. If an invalid value is read, the program should print an error-specific message on a line by itself, followed by the directive "Please re-enter:" and then input another value-- until a valid value is entered. The error specific messages are: "Starting population must be 2 or more.", "Birth rate percent cannot be negative.", "Death rate percent cannot be negative.", "Arrivals cannot be negative.", "Departures cannot be negative.", and "Years must be one or more.".
#include<bits/stdc++.h>
using namespace std;
int calculate(int p,float b,float d,int a,int m,int n)
{
for (int i=1;i<=n;i++)
{
int N = p + floor(b*p) - floor(d*p) + a - m;/* you can use formula as int N = p + floor(b*p/100) - floor(d*p/100) + a - m whenever rate is suppose 2% to get the right answer i have written as it is formula given in question but to get right answer you have to write the formula gievn in the comment section */
cout<<"Population at the end of Year "<<i<<" is "<<N<<endl;
p = N;
}
}
int main()
{
int p,a,m,n;
float b,d;
cout<<"Enter the starting population size";
cin>>p;
while(p<2)
{
cout<<"Please re-enter"<<endl<<"Starting population must be greater than or equal to 2";
cin>>p;
}
cout<<"Enter the annual birth rate (as % of current population): ";
cin>>b;
while(b<0)
{
cout<<"Please re-enter"<<endl<<"Birth rate cannot be negative";
cin>>b;
}
cout<<"Enter the annual death rate (as % of current population): ";
cin>>d;
while(d<0)
{
cout<<"Please re-enter"<<endl<<"Death rate cannot be negative";
cin>>d;
}
cout<<"How many individuals move into the area each year? ";
cin>>a;
while(a<0)
{
cout<<"Please re-enter"<<endl<<"Arrivals cannot be negative";
cin>>a;
}
cout<< "How many individuals leave the area each year? ";
cin>>m;
while(m<0)
{
cout<<"Please re-enter"<<endl<<"Departures cannot be negative";
cin>>m;
}
cout<< "For how many years do you wish to view population changes? ";
cin>> n;
while(n<1)
{
cout<<"Please re-enter"<<endl<<"Years must be one or more";
cin>>n;
}
calculate(p,b,d,a,m,n);
return 0;
}
If you have any doubt you can ask in comment section