Informatique

CHAPITRE I

Phase D’élaboration D’un Programme
Un Programme Avant Son Introduction En Production (Opérationnel) Passe Par 4 Phases :

Show spoiler
Analyse
Spécification
Cette phase permet d’élaborer un algorithme à partir du modèle conceptuel d’analyse. Un algorithme est une suite finie d’étapes et d’actions donnant une solution informatique à un problème posé.
L’écriture d’un algo doit suivre un formalisme qui définit les règles syntaxiques et sémantiques à respecter.
a. Syntaxe générale:
Un algorithme est def par un nom et est composé de deux parties :
– partie déclaration : on déclare l’ensemble des objets de données qui seront utilisés dans la deuxième partie.
– partie corps : composée d’une suite d’action qui agissent sur les objets de données.

Algo : nom_algo
Déclaration 
	//objets de données
Début
	//traitement : actions
Fin nom_algo

On peut expliciter le rôle des objets de données ou celui des actions en insérant des commentaires. Un commentaire permet de documenter un algorithme. Un commentaire est inséré entre /* et */, ou s’il peut tenir sur une seule ligne, il démarre avec //.
(L’importance de la documentation +++ importance pour les autres dev mais aussi pour la maintenance de l’algorithme. Obligation doc code et doc autre format)
b. Les types et les obj de données
Un obj de données est défini par :

x	y	x et y 	x ou y	x             Non(x)
0	0	0	0       0               1
0	1	0	1       1               0
1	0	0	1	
1	1	1	1	

– Les opérations de test : >, >=, <, <=, !=, =.
A ne peut pas utiliser : <> pour différent
e. Exemple complet
Rappel du premier exemple en MCA

Algo: calcul_moyenne
Déclaration 
note1, note2, note3, s, m : réel
Début
	afficher("donner la note 1 : ")
	saisir (note1)
	afficher ("Donner la note 2 : ")
	saisir (note2)
	afficher ( "Donner la note 3”)
	saisir (note3)
	s<- note1+note2+note3
	m<- s/3
	afficher ("La moyenne est de : ", m)
fin calcul_moyenne

Le Langage C :
1. Introduction
Le C est né de l’expérience de M. Denis Ritchie qui travaillait dans les laboratoires AT&T de Thomson en 1972 sur le système d’exploitation Unix. (la bible du C)
Les ancêtres du C :
– Algol en 1960
– Basic en 1966
Le C existe sur toutes les plateformes et est gratuit :
– MSDOS : Turbo C
– Windows : Dev C++, Code Blocs, Visual Studio C++
– Linux : Unix, VMS, MAC : Compilateur GNU gcc
Les langages respectant la syntaxe du C :
– C++ (1980), C#
– Java
– PHP, python, Ruby
2. Les types et les objets
Les types :
Algo                Langage
Entier              int, short, long, unsigned
Réel                float (6 décimales) , double( 12 décimales)
caractère        char
chaîne            tableau de char
booleen         assimilé à int (0,1)
Déclaration de variables : Types nomVariable ;
Exemple :
Int heures;
float prix;
Déclaration constante :
const type nomConstante = valeur;
Exemple :
const float tva = 20
3. Les actions
a. L’affichage
Algo : afficher C : printf
Syntaxe :
printf(« texte »);
printf(« format », nomVariable);
Format :    %d pour un entier
                  %f pour un float
                  %c pour un char
                  %s pour un string (chaine)
Exemple : printf(« La moyenne est de : %f », moyenne);
b. La saisie
Algo : Saisir Langage C: scanf
Syntaxe :
scanf(« format », & nomVariable);
Format :    %d pour un entier
                  %f pour un float
                  %c pour un char
                  %s pour un string (chaine)
& : Opérateur d’adresse mémoire qui donne l’adresse de la variable.
Exemple :
scanf(« %d », & heure);
c. L’affectation
Algo              Langage C
<-                    =                      affectation
=                     ==                    test d’affectation
Syntaxe :
s = lg*lr;
Les opérations :
– Arithmétiques : + ; – ; * ; / ; %
S’ajoutent à ces opérations les raccourcis :
++ ; — : x++; idem que x= x+1;
++x; idem que x= x+1;
+= ; -= ; *= ; /= ; %=
raccourcis de : x=x+a; idem que x += a;
raccourcis de : x= x/2 idem que x/=2
– Opérations logiques
Algo                    C
ET                        &&
OU                      ||
NON                   !
– Opérations de test
– >, >=, <, <=, !=, ==
Exemple :
Traduction en l’algo et en C

Déclaration 
note1, note2, note3, s, m : réel
Début
	afficher("donner la note 1 : ")
	saisir (note1)
	afficher ("Donner la note 2 : ")
	saisir (note2)
	afficher ( "Donner la note 3")
	saisir (note3)
	s<- note1+note2+note3
	m<- s/"
	afficher ("La moyenne est de : ", m)
fin calcul_moyenne 
#include<stdio.h>
int main() {
	float, note1, note2, note3, s, m;
	printf("donner la note 1 : ");
	scanf (%f, ¬e1);
	printf ("Donner la note 2 : ");
	scanf (%f, ¬e2);
	printf ( "Donner la note 3");
	scanf (%f, ¬e3);
	s=note1+note2+note3;
	m=s/3;
	printf ("La moyenne est de : ",   m);
	return 0;
}

include : inclusion des librairies
stdio. h: standard librairie input output
fonctions d’entrée/sorties telles UE PRINTF? SCANTF
string.h : fonctions de chaines de caractères
math.h : fonctions mathématiques

CHAPITRE II

Show spoiler
Alternative simple :

Syntaxe d’algo :
si condition
	alors instruction
finsi
Syntaxe en C et PHP :
If (condition) {
	instruction;
}

L’alternative simple conditionne l’exécution d’une ou de plusieurs instructions. Si la condition est vérifiée, l’instruction est exécutée. Dans le cas contraire, le bloc d’instruction est simplement sauté (ignoré).

La condition peut être simple ou composée à l’aide des opérateurs logiques qui sont :
ET (&&), OU (||), NON(!).

Exemple :

Si note<0 ou note>20
		alors afficher ("erreur de saisie de la note")
Fin si
If (note<0 || note>20){
		printf("Erreur de saise de la note");
}

Alternative double :
Syntaxe :

Si condition
	Alors instruction1
	Sinon instruction2
fin si
if (condition) {
	instruction1;
} else { 
	instruction2;
}

L’alternative double permet l’exécution de l’une des instructions selon que la condition est vérifiée ou non. Il y a une exclusion mutuelle, soit la première instruction qui est exécutée, soit la deuxième instruction qui est exécutée, mais jamais les deux à la fois.

Le SINON exprime la négation du ALORS.

Syntaxe :

Si moyenne>=10 10
	alors afficher ("Etudiant admis")
	sinon afficher ("Etudiant recalé")
Fin si
if (moyenne>=10){
	printf ("Etudiant admis");
} else {
	printf ("Etudiant recalé");
}

Choix multiple
‘Dans certaines résolutions de problèmes en informatique, on utilisera des alternatives simples ou doubles en cascades (imbrication). Les schémas obtenus peuvent être illisibles et difficiles à comprendre. Pour cela, Le Selon (Switch) est utilisé pour rendre les programmes plus ergonomiques.
Syntaxe :

Selon expression faire
	cas valeur1 : instruction1
	cas valeur2 : instruction2
	…
	cas valeurN : instructionN
Fin Selon
Switch (expression){ 
	case valeur1 : instruction1; break; 
	…
	case valeurN : instructionN; break; 
	default : instruction_par_defaut; break;
}

L’expression doit être de type énuméré : entier(int), ou caractère (char). En PHP , l’expression peut être une chaîne de caractères.

Exemple :

Selon jour faire
	cas1 : cas2 : cas3 : cas4 : cas5:
		Afficher ("C’est un jour de travail")
	cas6 : cas7 :
		Afficher ("C’est un jour de repos")
sinon : afficher ("erreur de saisie")
fin selon

Switch (jour){ 
	case 1 : case 2 : case 3 : case 4 : case 5: 
		printf ("C'est un jour de travail")
		break;
	case 6 : case 7 :
		printf ("C’est un jour de repos")
	break; 
	default : printf ("erreur de saisie"); break;
}

Exercices réalisés

Chaque exercices a été réalisé en MCA, Algorithme, PHP et langage C

Exercice 1 : Calculer grâce aux méthodes apprises la surface et le périmètre d’un rectangle
Solution MCA

Solution Algo

Algo : perimetre_surface
Déclaration
L, l, perimetre, surface: réel
Début
afficher("donner la longueur du rectangle : ")
saisir (L)
afficher ("donner la largeur du rectangle : ")
saisir (l)
perimetre<-2*L+2*l
surface<-l*L
afficher("le périmètre est de ",  perimetre)
afficher("la surface est de ",  surface)
fin perimetre_surface

Solution C++

#include<stdio.h>
int main(){
	float lg, lr, p, a;
	printf("Donner la longueur : ");
	scanf("%f", &lg);
	printf("Donner la largeur : ");
	scanf("%f", &lr);
	p = 2*(lg+lr);
	a = lg*lr;
	printf("Le périmètre est de : %f" p);
	printf("L'air est de : %f", a);
return 0;
}

Solution PHP

<!DOCTYPE html>
<html>
<head>
	<title>Rectangle</title>
	<meta charset="utf-8"/>
</head>
<body>
	<center>
		<h1>Exercice rectangle</h1>
		<p>
			Ecrire un script PHP qui calcule la surface et le périmètre d'un rectangle.
		</p>
		<form method="post" action="rectangle.php">
			<table border = 0>
				<tr>
					<td>longeur:</td>
					<td><input type="text" name="lg"/> </td>
				</tr>
				<tr>
					<td>largeur:</td>
					<td><input type="text" name="lr"/></td>
				</tr>
				<tr>
					<td><input type="reset" name="Annuler" value="Annuler"/></td>
					<td><input type="submit" name="Valider" value="Valider"/></td>
				</tr>
			</table>
		</form>

		<?php
		if(isset($_POST['Valider'])){
			$lg = $_POST['lg'];
			$lr = $_POST['lr'];
			//calcul
			$s = $lg*$lr;
			$p = 2*($lg+$lr);

			printf("<br/> La surface est de : %d", $s);
			printf("<br/> Le périmètre est de : %d", $p);
		}
		?>
	</center>
</body>
</html>

Exercice 2 : Calculer grâce au méthodes apprises un temps en heures minutes secondes qui sera exprimé en seconde totale
Solution MCA

Solution Algo

Algo : temps_en_ss
Déclaration
	HH, mm, ss, tss : entier
Début
	afficher("Donner le nombre d'heures : ")
	saisir(HH)
	afficher("Donner le nombre de minutes : ")
	saisir(mm)
	afficher("Donner le nombre de secondes : ")
	saisir(ss)
	tss<-mm*60+HH*3600+ss
	afficher("Le total de secondes pour le temps saisie est de : " ,tss)
fin temps_en_ss

Solution C++

#include<stdio.h>
int main(){
	int h, min, s, tot;
	printf("donner les heures : ");
	scanf("%d", &h);
	printf("donner les minutes : ");
	scanf("%d", &min);
	printf("donner les secondes : ");
	scanf("%d", &s);
	tot = (h*60*60)+ (min*60)+s;
	printf("Cela fait : %d secondes", tot );
return 0;
}

Solution PHP

<!DOCTYPE html>
<html>
<head>
	<title>Convertir le temp en second</title>
	<meta charset="utf-8">
</head>
<body>
	<center>
		<h1>Convertir le temp en second</h1>
		<p>
			Ecrire un script PHP qui convertire le temp en second.
		</p>
		<form method="post" action="convertion_en_second.php">
			<table border = 0>
			<tr>
				<td>heures:</td>
				<td><input type="text" name="h"> </td>
			</tr>
			<tr>
				<td>minutes:</td>
				<td><input type="text" name="min"></td>
			</tr>
			<tr>
				<td>seconds:</td>
				<td><input type="text" name="s"> </td>
			</tr>
			<tr>
				<td><input type="reset" name="Annuler" value="Annuler"></td>
				<td><input type="submit" name="Valider" value="Valider"></td>
			</tr>
		</table>
		</form>

		<?php
		if(isset($_POST['Valider'])){
			$h = $_POST['h'];
			$min = $_POST['min'];
			$s = $_POST['s'];
			//calcul
			$tot = 60*(($h*60)+$min)+$s;

			printf("<br/> Le temp en second est de : %d", $tot);
		}
		?>
	</center>
</body>
</html>

Exercice 3 : Un salarié est rémunéré selon le nombre d’heures fixes réalisées en une journée, un nombre de jours fixes par mois avec une indemnités horaire. Il perçoit en plus un pourcentage sur le bénéfice mensuel de l’entreprise. Calculer grâce au méthodes apprises le salaire mensuel total du salarié.
Solution MCA

Solution Algo

Algo : salaire_mensuel_salarie
Déclaration
	HH, Jr: Entier
	Rem, Benef, Pr, Salaire : Réel
Début
	afficher("Donner le nombre d'heures : ")
	saisir =(HH)
	afficher("Donner le nombre de jours : ")
	saisir =(Jr)
	afficher =("Donner la taux/horaire : ")
	saisir =(Rem)
	afficher("Donner le bénéfices : ")
	saisir(Benef)
	afficher(" Donner le pourcentage : ")
	saisir =(Pr)
	Salaire<-Rem*Jr*HH+Pr*Benef/100
	afficher("Le salaire mensuel est de : ", Salaire)
Fin salaire_mensuel_salarie

Solution C++

#include<stdio.h>
int main() {
	float r, j, h, p, b, tot;
	printf("Donner la rémunérations : ");
	scanf("%f", &r);
	printf("Donner Le nombre de jour : ");
	scanf("%f", &j);
	printf("Donner les heures : ");
	scanf("%f", &h);
	printf("Donner pourcentage : ");
	scanf("%f", &p);
	printf("Donner Les bénéfices : ");
	scanf("%f", &b);
	tot = r*j*h+((p*b)/100);
	printf("Le salaire est de : %f", tot);
return 0;
}

Solution PHP

<!DOCTYPE html>
<html>
<head>
	<title>salaire mensuel</title>
	<meta charset="utf-8">
</head>
<body>
	<center>
		<h1>Exercice salaire mensuel</h1>
		<p>
			Ecrire un script PHP qui calcule le salaire mensuel total d'un employer.
		</p>
		<form method="post" action="salaire_mensuel.php">
			<table border = 0>
			<tr>
				<td>rémunération:</td>
				<td><input type="text" name="r"> </td>
			</tr>
			<tr>
				<td>nombre de jour:</td>
				<td><input type="text" name="j"></td>
			</tr>
			<tr>
				<td>les heures:</td>
				<td><input type="text" name="h"> </td>
			</tr>
			<tr>
				<td>poucentage:</td>
				<td><input type="text" name="p"> </td>
			</tr>
			<tr>
				<td>les bénéfices:</td>
				<td><input type="text" name="b"> </td>
			</tr>
			<tr>
				<td><input type="reset" name="Annuler" value="Annuler"></td>
				<td><input type="submit" name="Valider" value="Valider"></td>
			</tr>
		</table>
		</form>

		<?php
		if(isset($_POST['Valider'])){
			$r = $_POST['r'];
			$j = $_POST['j'];
			$h = $_POST['h'];
			$p = $_POST['p'];
			$b = $_POST['b'];
			//calcul
			$tot = $r*$j*$h*(($p*$b)/100);

			printf("<br/> La surface est de : %f", $tot);
		}
		?>
	</center>
</body>
</html>

Exercice 4 : Le soleil, la terre et la lune sont sur la même ligne dans une éclipse. Nous connaissons, le rayon de la terre, le rayon de la lune et la distance Terre Lune. Calculer grâce au méthodes apprises l’aire de l’ombre projeté sur un plan que fait la terre sur la lune.
Solution MCA

Solution Algo

Algo : Aire_de_Lombre
Déclaration
	Rt, RL, DTL, Aire : Réel
Début
	afficher ("Donner le rayon de La terre : ")
	saisir (Rt)
	afficher ("Donner le rayon de la lune : ")
	saisir (RL)
	afficher ("Donner la distance terre lune : ")
	saisir (DTL)
	Aire<-(DTL*RT*2) -((Rt-RL)*DTL)
	Afficher ("L'aire de l'ombre est de : ", Aire)
fin Aire_de_Lombre

Solution C++

#include<stdio.h>
int main() {
	float rt, rl, dtl, aire;
	printf("Donner le rayon de la terre : ");
	scanf("%f", &rt);
	printf("Donner le rayon de la lune : ");
	scanf("%f", &rl);
	printf("Donner la distance terre-lune : ");
	scanf("%f",&dtl);
	aire = (dtl*rt*2)-((rt-rl)*dtl);
	printf("L'aire de l'ombre est de : %f", aire);
return 0;
}

Solution PHP

<!DOCTYPE html>
<html>
<head>
	<title>ombre entre terre et lune</title>
	<meta charset="utf-8">
</head>
<body>
	<center>
		<h1>Exercice ombre entre terre et lune</h1>
		<p>
			Ecrire un script PHP qui calcule la surface de l'ombre entre terre et lune
		</p>
		<form method="post" action="ombre_entre_terre_et_lune.php">
			<table border = 0>
			<tr>
				<td>rayon de la lune:</td>
				<td><input type="text" name="rl"> </td>
			</tr>
			<tr>
				<td>rayon de la terre:</td>
				<td><input type="text" name="rt"> </td>
			</tr>
			<tr>
				<td>distance entre terre et lune:</td>
				<td><input type="text" name="tl"> </td>
			</tr>
			<tr>
				<td><input type="reset" name="Annuler" value="Annuler"></td>
				<td><input type="submit" name="Valider" value="Valider"></td>
			</tr>
		</table>
		</form>

		<?php
		if(isset($_POST['Valider'])){
			$rl = $_POST['rl'];
			$rt = $_POST['rt'];
			$tl = $_POST['tl'];
			//calcul
			$a1 = $tl*$rt+2;
			$a2 = ($rt-$rl)*$tl;
			$a = $a1-$a2;

			printf("<br/> La surface de l'ombre de la lune sur la terre est de : %f", $a);
		}
		?>
	</center>
</body>
</html>

Exercice 5 : Un phare d’une hauteur exprimée en mètre  lance un rayon laser d’une longueur exprimée en km sur un bateau. Le bateau avance vers le quai avec une vitesse supposée constante exprimée en km. Calculer grâce au méthodes apprises le temps qu’il va mettre pour arriver en heure min et sec.
Solution MCA

Solution Algo

Algo : temps_quai
Déclaration
	Vb, HH, MM, SS, TSS : Entier
	Ht, L, Qb : Réel
Début
	Afficher ("Donner La vitesse du bateau : ")
	saisir(Vb)
	Afficher("Donner la longueur du laser : ")
	Saisir(L)
	Afficher ("Donner La hauteur du phare : ")
	saisir(Ht)
	Qb <- V L*L-(HT/100)*(HT/100)
	TSS <- (Qb/Vb) *3600
	HH <- TSS/3600
	MM <- (TSS%3600/60)
	SS <- (TSS%3600)%60
	Afficher("Temps pour arriver à quai : ",HH, MM, SS)
fin temps_quai

Solution C++

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main() {
	int vb, hh, mm, ss, tss;
	float ht, longr, qb;
	printf("Donner la vitesse du bateau : ");
	scanf ("%d", &vb);
	printf("Donner la longueur du laser : ");
	scanf ("%f", &longr);
	printf("Donner la hauteur du phare : ");
	scanf ("%f", &ht);
	qb=sqrtf (pow(longr,2)-pow((ht/100),2));
	tss=(qb/vb)*3600;
	hh=tss/3600;
	mm=(tss%3600)/60;
	ss=(tss%3600)%60;
	printf("Temps pour arriver : %d : %d : %d",hh, mm, ss);
	system("pause");
return 0;
}

Solution PHP

<!DOCTYPE html>
<html>
<head>
	<title>bateau</title>
	<meta charset="utf-8">
</head>
<body>
	<center>
		<h1>Exercice Bateau</h1>
		<p>
			Ecrire un script PHP qui calcule le temps que le bateau va mettre pour arriver a quai.
		</p>
		<form method="post" action="bateau.php">
			<table border = 0>
			<tr>
				<td>Vitesse du bateau:</td>
				<td><input type="text" name="vb"> </td>
			</tr>
			<tr>
				<td>Longeur du laser:</td>
				<td><input type="text" name="lz"></td>
			</tr>
			<tr>
				<td>Hauteur du phare:</td>
				<td><input type="text" name="ht"> </td>
			</tr>
			<tr>
				<td><input type="reset" name="Annuler" value="Annuler"></td>
				<td><input type="submit" name="Valider" value="Valider"></td>
			</tr>
		</table>
		</form>

		<?php
		if(isset($_POST['Valider'])){
			$vb = $_POST['vb'];
			$lz = $_POST['lz'];
			$ht = $_POST['ht'];
			//calcul
			$qb = sqrt(pow($lz, 2)-pow($ht, 2));
			$tss = ($qb/$vb)*3600;
			$hh = $tss/3600;
			$mm = ($tss%3600)/60;
			$ss = ($tss%3600)%60;

			printf("Le temps est de : %d :%d :%d", $hh, $mm, $ss);
		}
		?>
	</center>
</body>
</html>

3 commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.