R1.01 – Prog#7 – Corrigé

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
void Flux_cin()
{
string Ligne;
while (true)
{
getline (cin, Ligne);
if (cin.eof()) break;
cout << Ligne << endl;

}
}

void AffichFich()
{
ifstream ifs ("LaFontaine.txt");
string Ligne;
while (true)
{
getline (ifs, Ligne);
if (ifs.eof()) break;
cout << Ligne << endl;
}
}

void NomFichAuClavier()
{
ifstream ifs;
ofstream ofs;

string FichierSource, FichierDestination;
getline (cin, FichierSource);
ifs.open(FichierSource);
getline (cin, FichierDestination);
ofs.open(FichierDestination);
string Ligne;
unsigned Cpt (1);
while (true)
{
getline (ifs, Ligne);
if (ifs.eof()) break;
ofs << Cpt++ << " " << Ligne << endl;
}
}

void ValidFichier()
{
ifstream ifs;
ofstream ofs;

string FichierSource, FichierDestination;

unsigned NbVies (0);
while (true)
{
getline (cin, FichierSource);
ifs.open(FichierSource);
if (ifs.is_open()) break;
++NbVies;
cout << "Gros boulet" << endl;
if (3 == NbVies)
{
cout << "3 echecs d'ouverture de fichier en lecture" << endl;
return;
}
}

NbVies = 0;
while (true)
{
getline (cin, FichierDestination);
ofs.open(FichierDestination);
if (ofs.is_open()) break;
++NbVies;
cout << "Gros boulet" << endl;
if (3 == NbVies)
{
cout << "3 echecs d'ouverture de fichier en ecriture" << endl;
return;
}
}

string Ligne;
unsigned Cpt (1);
while (true)
{
getline (ifs, Ligne);
if (ifs.eof()) break;
ofs << Cpt++ << " " << Ligne << endl;
}
}

void FonctionGet()
{
ifstream ifs;

string FichierSource;
getline (cin, FichierSource);
ifs.open(FichierSource);
char car;

while (true)
{
car = char (ifs.get());
if (ifs.eof()) break;
cout << car /*<< endl*/;
}
}

void  ExtractionsMots()
{
string mot;
while (cin >> mot)
cout << mot << endl;
}

void ExtractionsCars()
{
char Car;
while (cin >> Car)
cout << Car /*<< endl*/;
}

void ExtractionsEntiers()
{
int Entier;
while (cin >> Entier)
cout << Entier << endl;
}

void ExtractionsReels()
{
float Reel;
while (cin >> Reel)
cout << Reel << endl;
}

int main()
{
//cout << "Hello World!" << endl;
//Flux_cin();
//AffichFich();
//NomFichAuClavier();
ValidFichier();
//FonctionGet ();
//ExtractionsMots ();
//ExtractionsCars();
//ExtractionsEntiers ();
//ExtractionsReels ();
return 0;
}

M1103-TD1 Exercie1 Corrigé

[algo]procedure TriSelection (TabInt : in_out tableau_de entier)
debut
pour (i variant_de 0 a taille(TabInt) – 1)
faire
declarer min : entier_naturel;
min <- i;
pour (j variant_de i + 1 a taille(TabInt) – 1)
faire
si (TabInt[j] < TabInt[min])
min <- j;
fsi
ffaire
si (min ne_vaut_pas i)
PermuterEntier (TabInt[i], TabInt[min]);
fsi
ffaire
fin[/algo]

M1103-TD1 Exercie2 Corrigé

[Algo]
procedure TriInsertion (TabInt : in_out tableau_de entier)
debut
pour (i variant_de 1 a taille(TabInt) – 1)
faire
declarer x : entier;
x <- TabInt [i];
declarer j : entier_naturel;
j <- i;

tant_que ((j > 0) ET_ALORS (TabInt[j – 1] > x))
faire
TabInt[j] <- TabInt[j – 1];
j <- j – 1;
ffaire

TabInt[j] <- x;
ffaire
fin
[/Algo]

M1103-TD1 Exercie3 Corrigé

[Algo]
procedure TriBulles (TabInt : in_out tableau_de entier)
debut
pour (i variant_de taille(TabInt) – 1 a 1 descendant)
faire
pour (j variant_de 0 a i – 1)
faire
si (TabInt[j+1] < TabInt[j])
PermuterEntier (TabInt[j+1], TabInt[j]);
fsi
ffaire
ffaire
fin
[/Algo]