Bonjour,

Nouveau au C++ depuis deux mois, un travail d'école requiert un prog qui calcule les jeux d'impressions d'une imprimerie. La compilation se fait sans problème mais lors de l'éxécution, je reçois plusieurs erreurs de variables utilisées non-initialisées. L'entête du programme est comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iomanip>
#include <string>
#include <conio.h>
#include <cctype>
#include "c:\\cvm.h"
 
using namespace std;
 
void main (void)
 
{
	//déclaration des variables
	char FormatPapier, TypeImpression, TypePapier, Aperforer, TypeFaconnage;
	int NbOri, NbExe, NbImpR, NbImpRV, Reste;
	float CoutR, CoutRV, CoutPapier, CoutFaconnage, CoutProduction, CoutTotal, CoutTPS, CoutTVQ;
	const float Prix8x11R=31, Prix8x11RV=60, Prix11x17R=61, Prix11x17RV=100,
			PrixPapier1=20.50, PrixPapier2=67.34, PrixPapier3=122.94,
			PrixBroche=0.03, PrixEncoller=0.6, PrixTable=0.35, PrixDosCheval=0.10, PrixPerforer=3,
			TPS=0.05, TVQ=0.075;
L'usage initial des variables NbImpR et NbImpRV :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
if (TypeImpression == 'R')
	{
		if (TypePapier == '1' || TypePapier == '2')
		{
			NbImpR = NbOri*NbExe;
			NbImpRV = 0;
		}
		else if (TypePapier == '3')
		{
			Reste = NbOri % 2;
			if (Reste = 0)
				NbOri=NbOri+1;
			else if (Reste != 0) 
			{
				NbOri = NbOri+1;
				NbImpR = (NbOri*NbExe) / 2;
				NbImpRV = 0;
			}
		}
	}
	else if (TypeImpression == 'V')
	{
		if (TypePapier == '1' || TypePapier == '2')
		{
			Reste = NbOri % 2;
			if (Reste != 0)
			{
				NbImpR=NbExe;
				NbImpRV= ((NbOri-1)*NbExe) / 2;
			}
			else if (Reste = 0)
			{
				NbImpR=0;
				NbImpRV= (NbOri*NbExe) / 2;
			}
		}
		else if (TypePapier == '3')
		{
			Reste = NbOri % 4;
			if (Reste == 0)
				NbImpRV= (NbOri*NbExe) / 4;
			if (Reste == 1 || Reste == 2)
			{
				NbImpRV=NbExe;
				NbImpRV= ((NbOri-Reste) *NbExe) /4;
			}
			if (Reste==3)
				NbImpR = 0;
				NbImpRV = ((NbOri+1)*NbExe) / 4;
		}
	}
Le début des erreurs commence ici avec NbImpR et NbImpRV:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
if ((NbImpR + NbImpRV) / NbExe == 1)
	{
		cout << "\nVoulez-vous des documents perfor\x82s ? (O/N)";
		cin >> Aperforer;
	}
	else if ((NbImpR+NbImpRV)/NbExe != 1)
	{
		cout << "\nVoulez-vous des documents perfor\x82s ? (O/N)";
		cin >> Aperforer;
	}
il y a d'autres cas du même genre plus bas dans le programme mais la tendance se maintient; il semble que lors d'un nouveau if-else, les valeurs assignées aux variables auparavant ne suivent pas (si je comprend bien). Avec le faible bagage de connaissances que nous possèdons à ce moment (if, else, switch), je vois mal comment y remédier.

Je ne veux pas alourdir le message en affichant tout le code dès le début (260+ lignes) mais je peux si vous croyez cela utile.

Merci pour tout commentaire ou suggestion.