begin process at 2012 05 27 13:30:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > AMORTISSEMENT LINÉAIRE ET DÉGRESSIF EN C PAR MARIK 7335

AMORTISSEMENT LINÉAIRE ET DÉGRESSIF EN C PAR MARIK 7335


 Information sur la source

Note :
Aucune note
Catégorie :Application Niveau :Débutant Date de création :28/01/2004 Date de mise à jour :28/01/2004 00:34:14 Vu / téléchargé :7 265 / 287

Auteur : marik7335

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

programme en C permettant efficacement de calculer les amortissements linéiares et dégressifs. Je pense aussi que le source n'est pas optimiser au maximum mais bon ...

Source

  • #include<stdio.h>
  • #include<conio.h>
  • #include<iostream.h>
  • #include<stdlib.h>
  • void titre(void);
  • int Datation (int j, int m, int a) ; //PROTOTYPE
  • main()
  • {
  • //Calcul de la base d'amortissement
  • float prix_HT;
  • float prix_TTC;
  • float frais_achat;
  • float TVA;
  • float duree_utilisation;
  • float Base_amortissement;
  • char select;
  • titre();
  • printf("- 'x' saisir un prix HT + frais d'achats\n\n");
  • printf("- 'c' saisir un prix TTC + le taux de TVA + frais d'achat\n");
  • printf("\nSaisie : ");
  • scanf("%c",&select);
  • while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("\nSaisie : ");
  • scanf("%c",&select);
  • };
  • system("cls");
  • if(select == 'x' || select == 'X')
  • {
  • printf("Saisir Montant HT : ");
  • scanf("%f",&prix_HT);
  • while(prix_HT <=0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("Saisir Montant HT : ");
  • scanf("%f",&prix_HT);
  • };
  • printf("Frais d'achat (0 si pas de frais d'achat): ");
  • scanf("%f",&frais_achat);
  • while(frais_achat < 0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("Frais d'achat (0 si pas de frais d'achat): ");
  • scanf("%f",&frais_achat);
  • };
  • Base_amortissement = prix_HT + frais_achat;
  • }else
  • if(select == 'c' || select =='C')
  • {
  • printf("Saisir Montant TTC : ");
  • scanf("%f",&prix_TTC);
  • while(prix_TTC <=0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("Saisir Montant TTC : ");
  • scanf("%f",&prix_TTC);
  • };
  • printf("Saisir Montant TVA (en poucentage ex : 19.6 pour 19.6 %%) : ");
  • //scanf("%f",&TVA);
  • cin >> TVA;
  • while(TVA <= 0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("Saisir Montant TVA : ");
  • cin >> TVA;
  • };
  • TVA = TVA/100;
  • prix_TTC = prix_TTC/(1+TVA);
  • printf("Frais d'achat (0 si pas de frais d'achat): ");
  • scanf("%f",&frais_achat);
  • while(frais_achat < 0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("Frais d'achat (0 si pas de frais d'achat): ");
  • scanf("%f",&frais_achat);
  • };
  • Base_amortissement = prix_TTC + frais_achat;
  • };
  • system("cls");
  • printf("- Saisir une dur%ce d'utilisation : 'x'\n\n- Saisir un taux lin%caire 'c'\n\n",130,130);
  • printf("Saisie : ");
  • cin >> select;
  • while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("\nSaisie : ");
  • cin >> select;
  • };
  • system("cls");
  • double tx_lin;
  • double tx_deg;
  • if (select == 'x' || select == 'X')
  • {
  • printf("Dur%ce d'utlisation (en ann%ces) : ",130,130);
  • scanf("%f",&duree_utilisation);
  • tx_lin = (100/(duree_utilisation));
  • };
  • if(select == 'c' || select == 'C')
  • {
  • printf("Saisir Taux lin%caire (en poucentage ex : 19.6 pour 19.6 %%) : ",130);
  • cin >> tx_lin;
  • while(tx_lin <= 0)
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("\nResaisie du taux lin%caire : ",130);
  • cin >> tx_lin;
  • };
  • duree_utilisation = (float)(100/tx_lin);
  • int calcul = (duree_utilisation - (int)duree_utilisation)*10;
  • if (calcul < 5)
  • duree_utilisation = (int)duree_utilisation;
  • if (calcul >= 5)
  • duree_utilisation = (int)duree_utilisation++;
  • };
  • if(duree_utilisation <= 4)
  • tx_deg = tx_lin*1.25;
  • else
  • if(duree_utilisation <= 6)
  • tx_deg = tx_lin*1.75;
  • else
  • if(duree_utilisation > 6)
  • tx_deg = tx_lin*2.25;
  • system("cls");
  • //Ammortissement linéaire ou dégressif
  • printf("- 'x' pour un amortissement lin%caire\n\n- 'c' pour un amortissement d%cgressif\n",130,130);
  • printf("\nSaisie : ");
  • cin >> select;
  • while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
  • {
  • system("cls");
  • printf("Erreur de saisie !\n");
  • printf("\nSaisie : ");
  • cin >> select;
  • };
  • system("cls");
  • //Amortissement linéaire
  • if(select == 'x' || select == 'X')
  • {
  • int j, m, a , n, n1; //5 variables locales pour cette fct exckusivement
  • printf("PRECISION : 13/01/1 et 16/03/1 sont deux dates de m%cme ann%ce \n 13/01/1 et 14/02/2 sont deux dates s%cpar%ces par une ann%ce\n",136,130,130,130,130);
  • printf ("\nEntrer date de mise en sercice (jj/mm/a) \nou date d'achat si date de mise en service inexistante: ",138); scanf ("%d/%d/%d", &j, &m, &a);
  • double nb_jour;
  • n = Datation (j, m, a); //APPEL DE LA FONCTION
  • n1 = n;
  • printf ("\nEntrer date d'inventaire (jj/mm/a) : ",138); scanf ("%d/%d/%d", &j, &m, &a);
  • n = (Datation (j, m, a)); //APPEL DE LA FONCTION
  • nb_jour = (n-n1);
  • system("cls");
  • double annuite_1 = Base_amortissement * (tx_lin/100) * (double)(nb_jour/360);
  • double annuite_n = Base_amortissement * (tx_lin/100);
  • double VNC = Base_amortissement - annuite_1;
  • int size = 1;
  • int num_an = 1;
  • printf("\n\nTableau d'amortissement : ");
  • printf("\n\n\nAnn%ce Base d'amortissement Taux Amortissement VNC\n",130);
  • printf(" %3d %3.2f %3.2f %3.2f %3.2f\n",num_an,Base_amortissement,tx_lin,annuite_1,VNC);
  • while (size < duree_utilisation)
  • {
  • VNC -= annuite_n;
  • num_an++;
  • printf(" %3d %3.2f %3.2f %3.2f %3.2f\n",num_an,Base_amortissement,tx_lin,annuite_n,VNC);
  • size++;
  • };
  • if(VNC != 0)
  • {
  • printf(" %3d %3.2f %3.2f %3.2f %3.2f\n",num_an+1,Base_amortissement,tx_lin,VNC,0);
  • };
  • };
  • //Amortissement dégéssif
  • if(select == 'c' || select == 'C')
  • {
  • int j, m, a , n, n1;
  • printf("PRECISION : 13/01/1 et 16/03/1 sont deux dates de m%cme ann%ce \n 13/01/1 et 14/02/2 sont deux dates s%cpar%ces par une ann%ce\n",136,130,130,130,130);
  • printf ("\nEntrer date d'achat (jj/mm/a) : ",138); scanf ("%d/%d/%d", &j, &m, &a);
  • double nb_jour;
  • double nb_mois;
  • n = Datation (j, m, a) ; //APPEL DE LA FONCTION
  • n1 = n;
  • printf ("\nEntrer date d'inventaire (jj/mm/a) : ",138); scanf ("%d/%d/%d", &j, &m, &a);
  • int J = j;
  • n = (Datation (j, m, a)); //APPEL DE LA FONCTION
  • nb_jour = n-n1;
  • nb_mois = (nb_jour/30);
  • /*if(J < 30)//le jour du deuxième mois
  • nb_mois++;*/
  • nb_mois = (int)nb_mois;
  • system("cls");
  • double annuite_1 = Base_amortissement * (tx_deg/100) * (double)(nb_mois/12);
  • double VNC = Base_amortissement - annuite_1;
  • int size = 1;
  • int num_an = 1;
  • printf("\n\nTableau d'amortissement : ");
  • printf("\n\n\nAnn%ce Base d'amortissement Taux Amortissement VNC\n",130);
  • printf(" %3d %3.2f %3.2f %3.2f %3.2f\n",num_an,Base_amortissement,tx_deg,annuite_1,VNC);
  • while (size < duree_utilisation)
  • {
  • if(size == duree_utilisation - 3)
  • {
  • if(tx_deg < 33.33)
  • tx_deg = 33.33;
  • };
  • if(size == duree_utilisation - 2)
  • tx_deg = (100/2);
  • if(size == duree_utilisation - 1)
  • tx_deg = 100;
  • double annuite_n = VNC * (tx_deg/100);
  • double VNC2 = VNC;
  • VNC2 -= annuite_n;
  • num_an++;
  • printf(" %3d %3.2f %3.2f %3.2f %3.2f\n",num_an,VNC,tx_deg,annuite_n,VNC2);
  • VNC=VNC2;
  • size++;
  • };
  • };
  • getch();
  • return 0;
  • };
  • int Datation (int j, int m, int a) //DEFINITION COMPLETE DE LA FONCTION
  • {
  • int n ; //variable locale pour cette fonction exclusivement
  • n = a*360 + m*30 + j;
  • return n;
  • };
  • void titre(void)
  • {
  • printf(" _______________________________________\n");
  • printf(" | __________________ |\n");
  • printf(" | | | |\n");
  • printf(" | | Amortissements | |\n");
  • printf(" | |__________________| |\n");
  • printf(" |_____________________________________|\n\n\n");
  • printf(" PAR LEONARD MAXIME\n\n\n");
  • };
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>

void titre(void);
int Datation (int j, int m, int a) ; //PROTOTYPE

main()
{
//Calcul de la base d'amortissement

	float prix_HT;
	float prix_TTC;
	float frais_achat;
	float TVA;

	float duree_utilisation;

	float Base_amortissement;

	char select;

	titre();

	printf("- 'x' saisir un prix HT + frais d'achats\n\n"); 
	printf("- 'c' saisir un prix TTC + le taux de TVA + frais d'achat\n");
	printf("\nSaisie : ");
	scanf("%c",&select);


	while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
	{
		system("cls");
		printf("Erreur de saisie !\n");
		printf("\nSaisie : ");
		scanf("%c",&select);
	};

	system("cls");

	if(select == 'x' || select == 'X')
	{
		printf("Saisir Montant HT : ");
		scanf("%f",&prix_HT);
		while(prix_HT <=0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("Saisir Montant HT : ");
			scanf("%f",&prix_HT);
		};
		printf("Frais d'achat (0 si pas de frais d'achat): ");
		scanf("%f",&frais_achat);
		while(frais_achat < 0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("Frais d'achat (0 si pas de frais d'achat): ");
			scanf("%f",&frais_achat);
			
		};
		Base_amortissement = prix_HT + frais_achat;
	}else
	if(select == 'c' || select =='C')
	{
		printf("Saisir Montant TTC : ");
		scanf("%f",&prix_TTC);
		while(prix_TTC <=0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("Saisir Montant TTC : ");
			scanf("%f",&prix_TTC);
		};
		printf("Saisir Montant  TVA (en poucentage ex : 19.6 pour 19.6 %%) : ");
		//scanf("%f",&TVA);
		cin >> TVA;
		while(TVA <= 0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("Saisir Montant  TVA : ");
			cin >> TVA;
		};
		TVA = TVA/100;
		prix_TTC = prix_TTC/(1+TVA);
		printf("Frais d'achat (0 si pas de frais d'achat): ");
		scanf("%f",&frais_achat);
		while(frais_achat < 0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("Frais d'achat (0 si pas de frais d'achat): ");
			scanf("%f",&frais_achat);
			
		};
		Base_amortissement = prix_TTC + frais_achat;
	};

	system("cls");

	printf("- Saisir une dur%ce d'utilisation : 'x'\n\n- Saisir un taux lin%caire 'c'\n\n",130,130);
	printf("Saisie : ");
	cin >> select;

	while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
	{
		system("cls");
		printf("Erreur de saisie !\n");
		printf("\nSaisie : ");
		cin >> select;
	};

	system("cls");

	double tx_lin;
	double tx_deg;

	if (select == 'x' || select == 'X')
	{
		printf("Dur%ce d'utlisation (en ann%ces) : ",130,130);
		scanf("%f",&duree_utilisation);
		tx_lin = (100/(duree_utilisation));
	};

	if(select == 'c' || select == 'C')
	{
		printf("Saisir Taux lin%caire (en poucentage ex : 19.6 pour 19.6 %%) : ",130);
		cin >> tx_lin;
		while(tx_lin <= 0)
		{
			system("cls");
			printf("Erreur de saisie !\n");
			printf("\nResaisie  du taux lin%caire : ",130);
			cin >> tx_lin;
		};
		duree_utilisation = (float)(100/tx_lin);
		int calcul = (duree_utilisation - (int)duree_utilisation)*10;
		if (calcul < 5)
		duree_utilisation = (int)duree_utilisation;
		if (calcul >= 5)
		duree_utilisation = (int)duree_utilisation++;
	};

	if(duree_utilisation <= 4)
		tx_deg = tx_lin*1.25;
	else
	if(duree_utilisation <= 6)
		tx_deg = tx_lin*1.75;
	else
		if(duree_utilisation > 6)
		tx_deg = tx_lin*2.25;

		system("cls");

//Ammortissement linéaire ou dégressif
	printf("- 'x' pour un amortissement lin%caire\n\n- 'c' pour un amortissement d%cgressif\n",130,130);
	printf("\nSaisie : ");
	cin >> select;

	while(select != 'x' && select != 'X' && select != 'C' && select != 'c')
	{
		system("cls");
		printf("Erreur de saisie !\n");
		printf("\nSaisie : ");
		cin >> select;
	};

	system("cls");
//Amortissement linéaire
	if(select == 'x' || select == 'X')
	{
		int j, m, a , n, n1; //5 variables locales pour cette fct exckusivement
		printf("PRECISION : 13/01/1 et 16/03/1 sont deux dates de m%cme ann%ce \n 13/01/1 et 14/02/2 sont deux dates s%cpar%ces par une ann%ce\n",136,130,130,130,130);
		printf ("\nEntrer date de mise en sercice  (jj/mm/a) \nou date d'achat si date de mise en service inexistante:  ",138); scanf ("%d/%d/%d", &j, &m, &a);

		double nb_jour;
		n = Datation (j, m, a);  //APPEL DE LA FONCTION

		n1 = n;

		printf ("\nEntrer date  d'inventaire  (jj/mm/a) : ",138); scanf ("%d/%d/%d", &j, &m, &a);

		n = (Datation (j, m, a));  //APPEL DE LA FONCTION

		nb_jour = (n-n1);

		system("cls");

		double annuite_1 = Base_amortissement * (tx_lin/100) * (double)(nb_jour/360);
		double annuite_n = Base_amortissement * (tx_lin/100);
		double VNC = Base_amortissement - annuite_1;

		int size = 1;
		int num_an = 1;
		printf("\n\nTableau d'amortissement : ");
		printf("\n\n\nAnn%ce     Base d'amortissement     Taux     Amortissement     VNC\n",130);
		printf("    %3d          %3.2f            %3.2f       %3.2f         %3.2f\n",num_an,Base_amortissement,tx_lin,annuite_1,VNC);
		while (size < duree_utilisation)
		{
			VNC -= annuite_n;
			num_an++;
			printf("    %3d          %3.2f            %3.2f       %3.2f         %3.2f\n",num_an,Base_amortissement,tx_lin,annuite_n,VNC);
			size++;
		};
		if(VNC != 0)
		{
			printf("    %3d          %3.2f            %3.2f       %3.2f         %3.2f\n",num_an+1,Base_amortissement,tx_lin,VNC,0);
		};
	};
//Amortissement dégéssif
		if(select == 'c' || select == 'C')
		{

			int j, m, a , n, n1;
			printf("PRECISION : 13/01/1 et 16/03/1 sont deux dates de m%cme ann%ce \n 13/01/1 et 14/02/2 sont deux dates s%cpar%ces par une ann%ce\n",136,130,130,130,130);
			printf ("\nEntrer date d'achat  (jj/mm/a) :  ",138); scanf ("%d/%d/%d", &j, &m, &a);

			double nb_jour;
			double nb_mois;
			n = Datation (j, m, a) ;  //APPEL DE LA FONCTION

			n1 = n;

			printf ("\nEntrer date d'inventaire  (jj/mm/a) : ",138); scanf ("%d/%d/%d", &j, &m, &a);
			int J = j;

			n = (Datation (j, m, a));  //APPEL DE LA FONCTION

			nb_jour = n-n1;

			nb_mois = (nb_jour/30);

			/*if(J < 30)//le jour du deuxième mois
				nb_mois++;*/

			nb_mois = (int)nb_mois;

			system("cls");

			double annuite_1 = Base_amortissement * (tx_deg/100) * (double)(nb_mois/12);
			double VNC = Base_amortissement - annuite_1;

			int size = 1;
			int num_an = 1;
			printf("\n\nTableau d'amortissement : ");
			printf("\n\n\nAnn%ce     Base d'amortissement     Taux     Amortissement     VNC\n",130);
			printf("    %3d          %3.2f            %3.2f       %3.2f         %3.2f\n",num_an,Base_amortissement,tx_deg,annuite_1,VNC);		
			while (size < duree_utilisation)
			{
				if(size == duree_utilisation - 3)
				{
					if(tx_deg < 33.33)
						tx_deg = 33.33;
				};
				if(size == duree_utilisation - 2)
					tx_deg = (100/2);
				if(size == duree_utilisation - 1)
					tx_deg = 100;
				
				double annuite_n = VNC * (tx_deg/100);
				double VNC2 = VNC;
				VNC2 -= annuite_n;
				num_an++;
				printf("    %3d          %3.2f            %3.2f       %3.2f         %3.2f\n",num_an,VNC,tx_deg,annuite_n,VNC2);
				VNC=VNC2;
				size++;
			};
		};	
		
		getch();

	return 0;
};

int Datation (int j, int m, int a) //DEFINITION COMPLETE DE LA FONCTION
{
  int n ; //variable locale pour cette fonction exclusivement

  n = a*360 + m*30 + j;

  return n;
};

void titre(void)
{
	printf("                     _______________________________________\n");
	printf("                     |          __________________         |\n");
	printf("                     |         |                  |        |\n");
	printf("                     |         |  Amortissements  |        |\n");
	printf("                     |         |__________________|        |\n");
	printf("                     |_____________________________________|\n\n\n");
	printf("          PAR LEONARD MAXIME\n\n\n");
};


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip RÉCUPÉRATION DES DONNÉES D'UN FORMULAIRE HTML - CGI C++ (DEV...
Source avec Zip GESTION D'UN PARC DE VÉHICULES (WIN 32) (POLYMORPHISME + CO...
Source avec Zip GESTION D'UN PARC DE VÉHICULES (POLYMORPHISME + COLLECTION G...
Source avec Zip GESTION D'UNE LISTE CHAÎNÉE AVEC DES FICHIERS

 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,825 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales