Población transitoria Las poblaciones transitorias se ven afectadas por la tasa de natalidad y muerte, así como por el número de personas que entran y salen cada año.

IDIOMA: C ++

DESAFÍO:

Población transitoria
Las poblaciones se ven afectadas por la tasa de natalidad y muerte, así como por el número de personas que entran y salen cada año.

La tasa de natalidad es el porcentaje de aumento de la población debido a los nacimientos y la tasa de mortalidad es el porcentaje de disminución de la población debido a las muertes.

Escribe un programa que muestre el tamaño de una población para cualquier número de años.

El programa debe solicitar los siguientes datos:

  • El tamaño inicial de una población P
  • La tasa de natalidad anual (como porcentaje de la población expresada como fracción en forma decimal) B
  • La tasa de mortalidad anual (como porcentaje de la población expresada como fracción en forma decimal) D
  • El número medio anual de personas que han llegado A
  • El número medio anual de personas que se han mudado M
  • El número de años para mostrar nYears

Escribe una función que calcule el tamaño de la población después de un año.

Para calcular la nueva población después de un año, esta función debe usar la fórmula N = P + BP – DP + A – M donde N es el nuevo tamaño de la población, P es el tamaño de la población anterior y B, D, A y M son como se define arriba.

La función debe devolver el valor calculado para N y debe recibir los valores de P, B, D, A y M como parámetros.

Avisos y etiquetas de salida. El programa primero muestra el mensaje “Este programa calcula el cambio de población”. en una línea por sí misma, seguida de estas indicaciones para las entradas descritas anteriormente:

  • “Ingrese el tamaño de la población inicial:”
  • “Ingrese la tasa de natalidad anual (como% de la población actual):”
  • “Ingrese la tasa de mortalidad anual (como% de la población actual):”
  • “¿Cuántas personas se mudan al área cada año?”;
  • “¿Cuántas personas abandonan la zona cada año?”;
  • “¿Durante cuántos años desea ver los cambios de población?”

La salida del programa comienza con una línea:
Población inicial: P (donde P es la población inicial (sorpresa)), y luego continúa con una línea separada para cada año, cada línea tiene la forma: Población al final del año || Y es P. (donde Y es el número de año (1, 2, 3,…) comenzando con 1, y donde P es la población calculada para ese año).
Validación de entrada. El programa debe validar todos los datos leídos. Ninguno de los datos debe ser negativo, el número de años no debe ser inferior a 1 y la población inicial no debe ser inferior a 2. Si se lee un valor no válido, el programa debe imprimir un mensaje específico de error en una línea por sí mismo, seguido de la directiva “Por favor, vuelva a ingresar:” y luego ingrese otro valor, hasta que se ingrese un valor válido. Los mensajes específicos de error son: “La población inicial debe ser 2 o más”, “El porcentaje de la tasa de natalidad no puede ser negativo”, “El porcentaje de la tasa de mortalidad no puede ser negativo”, “Las llegadas no pueden ser negativas”, “Las salidas no pueden ser negativas”. . “y” Los años deben ser uno o más. “.

SOLUTION:


#include
using namespace std;

double populationSize(double P, double B, double D, double A, double M);

int main() {
	double populationStart;
	double annualB;
	double annualD;
	double peopleA;
	double peopleM;
	int nYears;
	
	cout<<"This program calculates population change.\n";
	cout<<"Enter the starting population size: "; cin>>populationStart;
	
	if(populationStart < 2) {
		cout<<"\nStarting population must be 2 or more.";
		cout<<"\nPlease re-enter:"; cin>>populationStart;
	}
	
	cout<<"Enter the annual birth rate (as % of current population):"; cin>>annualB;
	
	if(annualB < 0) {
		cout<<"\nBirth rate percent cannot be negative.";
		cout<<"\nPlease re-enter:"; cin>>annualB;
	}
	
	cout<<" Enter the annual death rate (as % of current population):"; cin>>annualD;
	
	if(annualD < 0) {
		cout<<"\nDeath rate percent cannot be negative.";
		cout<<"\nPlease re-enter:"; cin>>annualD;
	}
	
	cout<<" How many individuals move into the area each year? "; cin>>peopleA;
	
	if(peopleA < 0) {
		cout<<"\nArrivals cannot be negative.";
		cout<<"\nPlease re-enter:"; cin>>peopleA;
	}
	
	cout<<"How many individuals leave the area each year? "; cin>>peopleM;
	
	if(peopleM < 0) {
		cout<<"\nDepartures cannot be negative.";
		cout<<"\nPlease re-enter:"; cin>>peopleM;
	}
	
	cout<<"For how many years do you wish to view population changes? \n"; cin>>nYears;
	
	if(nYears < 1) {
		cout<<"\nYears must be one or more.";
		cout<<"\nPlease re-enter:"; cin>>nYears;
	}
	
	cout<<"\nStarting population: "<<populationStart<<"\n";
	
	for(int y = 1; y < nYears; y ) {
		double result = populationSize(populationStart, annualB, annualD, peopleA, peopleM);
		cout<<"\n";
		cout<<"Population at the end of year "<<y<<" is"<<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span><result;
	}
	
	return 0;
}

double populationSize(double P, double B, double D, double A, double M) {
	double n;
	n = P (B * P) – (D * P) A – M;
	return n;
}