Quoi de neuf ?
Bienvenue !

Rejoignez-nous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous pourrez créer des sujets, publier des réponses aux discussions existantes, donner de la réputation à vos collègues, obtenir votre propre messager privé, et bien plus encore. C'est aussi rapide et totalement gratuit, alors qu'attendez-vous ?

Algo C03 | Répétitions | TP

Maxime66410

Super Administrateur
Membre du personnel
Inscrit
4/7/20
Messages
58
Points
8
  1. Parité d’un octet :

Exemple dans mon Octet équivaut à un 8 bit, donc je dois faire en sorte que si mon deuxième nombre est pair, le premier sera impair, sauf que si mon second et donc impair, le premier sera pair.

Exemple :

01010101

Inverse :

10101010



Variable bit[8], i, result : Entier

Début

result <- 0

Pour I <- 1 à 8
Ecrire(“Entrer le bit N°”, i)
Lire(bit)
result = result + bit
i Suivant

Si (result % 2 == 0) Alors
bit[0] = 0
SiNon
bit[0] = 1
FinSI

Ecrire(“Le nombre contient”, result, “bit(s) à 1, donc la parité vaut : “, bit[0])
Fin














Donc si on traduit l'algorithme en langage C ça va nous donner.



En utilisant le programme je vais effectuer toutes les conditions possibles.







  1. Filtrage d’un texte :

Donc je dois faire un programme changeant les lettres de majuscule en minuscule.
En prenant le principe des accents, je n’ai pas modifié chaque lettre mais seulement les voyelles.

Je vais devoir utiliser l’include <string.h>.

Donc en premier lieu je vais faire en sorte de mettre les majuscule en minuscule, se sont les voyelles [A, E, I, O, U, Y] :

Donc en algo ça nous fait :

Variable mots[256] : Caractère
Variable i : Entier

Début
Ecrire(“Entrez une phrase”)
Lire(mots)
Pour (i 0 à la fin de la chaîne, i = i+1)
Si (mots=’A’)
mots <- ‘a’
FinSi
Si (mots=’E’)
mots <- ‘e’
FinSi
Si (mots=’I’)
mots <- ‘i’
FinSi
Si (mots=’O’)
mots <- ‘o’
FinSi
Si (mots=’U’)
mots <- u’
FinSi
Si (mots=’Y’)
mots <- y’
FinSi
i Suivant
Ecrire(mots)
Fin











Donc maintenant je vais le traduire en langage C :




Et donc en résultat ça nous fait :




Sauf que les consonne ne sont pas indiqués dans le code donc il nous fera ce genre de résultat :


  1. Ecriture d’une table :

Tout d’abord nous allons utiliser l’include <math.h> qui nous permettra d’inclure des fonctions mathématiques.

M_PI vas me servir a faire un macro qui définit la valeur, de type double, de la constante π.

Donc en algorithme je traduis ça par :

Variables x : Entier
Variables sinus1, sinus2, radians : Réel

Début
Ecrire(“X Sin(x) X Sin(x)”)
Pour ((x allant de 0 à 45))
radians <- M_PI * x / 180
sinus1 <- sin(radians)
radians <- M_PI * ( x + 45) / 180
sinus2 <- sin(radians)
Ecrire( x, ” “, sinus1, ” “, x+45, ” “, sinus2 )
Fin pour
Fin


Traduit en langage C ça nous fait ce petit bout de code.




Donc en résultat ça nous fait tout ceci :





  1. Combinaison de N objets pris P à P :


Variables n, p, a, m, n1, p1, m1, i : Entier

Début
Ecrire(“Entrez une valeur pour n :”)
lire(n)
Ecrire(“Entrez une valeur pour p :”)
Lire(p)

m <- n - p

Pour (i allant de i à n)
n1 <- i * n1
Fin Pour

Pour (i allant de i à p)
p1 <- i * p1
Fin Pour

Pour (i allant de i à m)
m1 <- i * m1
Fin Pour

a <- n1 / ( p1 * m1)

Ecrire(a)
Fin

On ne peut pas avoir un nombre à virgule pour a puisque a est un nombre entier et non un réel, donc on dois utiliser un “int” au lieu d’un “float”

















Donc maintenant je vais traduire tout ça en langage C :



Voici donc nos résultats du programme :




  1. Evaluation d’expression :

Donc a chaque fin de code de ligne de chaque groupe j’ai ajouter un printf pour voir les résultats du groupe et pouvoir les comparer.

J’ai du aussi ajouter #include <stdio.h> pour que mes printf fonctionnent.




Donc si je m’amuse à me tester ça me donnera ces résultats :




  1. Moyenne d’une classe :

Algo :

Variables n1,n2,n3,moy : Réel
Variables i,id,nbeleves : Entier

Début
Ecrire("Entrez le nombre d'élèves")
Lire(nbeleves)
Pour(i allant de 0 à nbeleves)
Ecrire("Entrez le numéro de l'élève : ")
Lire(id)
Ecrire("Entrez la note (/100) 1 de l'élève n°",id)
Lire(n1)
Ecrire("Entrez la note (/100) 2 de l'élève n°",id)
Lire(n2)
Ecrire("Entrez la note (/100) 3 de l'élève n°",id)
Lire(n3)
moy <- ((n1 + n2 + n3)/3)
Ecrire("L'élève ",id," a eu les notes ",n1", ",n2" et ",n3" et a une moyenne de",moy"/100)
Fin pour
Fin


Donc traduit en langage C ça nous fait :


Donc voici un exemple de résultat que mon programme peut réaliser sans problèmes :




  1. Code ASCII :


Variable Caractere : Caractère
Début
Ecrire(“ENTRER UN CARACTERE : “)
Lire(Caractere)
Ecrire(“VOICI SON CODE ASCII :”, Caractere)
Retour = 0
Fin

Quand je change %c par %d il me traduit le caractère en son code ASCII.





 
Haut