Exemplo n.º 1
0
Vecteur<int> Capteur::EmbouteillageJour( int d7 )
// Algorithme :
// Structure de retour :	Vecteur 0->23 : nombre d'embouteillage recense par heure
//							24->47 : nombre total de donnees par heure
{
	// Création structure de retour et variables pratiques
	Vecteur<int> donneesRetour;
	Vecteur<Evenement>* jour = nullptr;
	Trafic trafic;

	// Détermination de la branche dans laquelle prendre les données
	switch ( d7 )
	{
	case 1:
		jour = &d1Contenu;
		break;
	case 2:
		jour = &d2Contenu;
		break;
	case 3:
		jour = &d3Contenu;
		break;
	case 4:
		jour = &d4Contenu;
		break;
	case 5:
		jour = &d5Contenu;
		break;
	case 6:
		jour = &d6Contenu;
		break;
	case 7:
		jour = &d7Contenu;
		break;
	default:
		// Erreur : mauvaise demande de jour
		break;
	}  //----- Fin de switch ( d7 )

	// Init de la structure de retour
	for ( int i = 0; i < 48; i++ )
	{
		donneesRetour.insererFin(0);
	}

	// Parcours du tableau d'événements et remplissage de la structure de retour
	for (int i = 0; i < jour->GetTaille(); i++)
	{
		trafic = (*jour)[i].GetTrafic();
		if ( trafic == R || trafic == N )
		{
			donneesRetour[(*jour)[i].GetHeure()] += 1;
		}
		donneesRetour[(*jour)[i].GetHeure() + 24] += 1;		// TODO: plus rapide avec creation de variable ?
	}

	return donneesRetour;

} //----- Fin de EmbouteillageJour
Exemplo n.º 2
0
int Capteur::TempsSegment( int d7, int heure, int minute )
{
	// Création variable de retour et variables pratiques
	int tempsParcours = 0;
	Vecteur<Evenement>* jour = nullptr;

	// Détermination de la branche dans laquelle prendre les données
	switch ( d7 )
	{
	case 1:
		jour = &d1Contenu;
		break;
	case 2:
		jour = &d2Contenu;
		break;
	case 3:
		jour = &d3Contenu;
		break;
	case 4:
		jour = &d4Contenu;
		break;
	case 5:
		jour = &d5Contenu;
		break;
	case 6:
		jour = &d6Contenu;
		break;
	case 7:
		jour = &d7Contenu;
		break;
	default:
		// Erreur : mauvaise demande de jour
		break;
	}  //----- Fin de switch ( d7 )

	for ( int i = 0; i < jour->GetTaille(); i++ )
	{
		// Recherche de l'horaire
		if ( (*jour)[i].GetHeure() == heure && (*jour)[i].GetMinute() == minute )
		{
			switch ( (*jour)[i].GetTrafic() )
			{
			case V:
				tempsParcours += 1;
				break;
			case J:
				tempsParcours += 2;
				break;
			case R:
				tempsParcours += 4;
				break;
			default:	// case N:
				tempsParcours += 10;
				break;
			}
			break;		// On a trouve, on sort de la boucle
		}

	}

	return tempsParcours;

} //----- Fin de TempsSegment