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 C01 | TP

Maxime66410

Super Administrateur
Membre du personnel
Inscrit
4/7/20
Messages
73
Points
8
  1. Calcul du prix de revient d’un câble de liaison :

Code entier :


Donc le prix d’un câble de liaison sera de 144€ sans données entrée (0, 0).



Si je rajoute une longueur de 1 avec un mâle alors le prix changera.





  1. Conversion du temps :

Donc pour faire mon programme qui va faire de la conversion de temps je vais utiliser une ou plusieurs valeurs int.

Avec ces int je vais essayer de les transformer en une durée fournie en minutes qui sera équivalent en jours, heures et minutes.

Donc les données que je devrais exécuter équivalents seront 1501 minutes, 10080 minutes, 42524 minutes et 43200 minutes.

par exemple je vais faire en sorte que dans mon script si je tape un chiffre comme par exemple 1908 il sera converti en minutes donc ce qui devrait faire .

Ce qui fait environ 1 jour, 7 heures et 48 minutes

Donc pour faire mon script j’ai besoin de créer un petit schéma pour m’aider.

Variables Minutes, Heures, Jours, Secondes, Entree, Heures_Sauvegarder, Minutes_Sauvegarder : Entier

Début
Ecrire(“Grâce au exploit de la technologie tu peux désormais converti un nombre random”)
Ecrire(“Frappe un numéro de ton choix pour le converti :”)
Lire(entree)
Ecrire(“Tu a donc choisie :”, Entree)

Jours = entree / 60 / 24
Heures_Sauvegarder = Entree % 1440
Heures = Heures_Sauvarder / 60
Minutes_Sauvegarder = Heures_Sauvegarder % 60
Minutes = Minutes_Sauvegarder;

Ecrire(“ Jour(s), Heure(s), Minute(s)”, Jours, Heures, Minutes)
Retour = 0
Fin

1501 minutes = 1 jour, 1 heure, 1 minute
10080 minutes = 7 jours, 0 heure, 0 minute
42524 minutes = 29 jours, 12 heures, 44 minutes
43200 minutes = 30 jours, 0 heure, 0 minute



Donc en créant le programme sur xCode j’ai converti la version document en version code ce qui devrait faire si on applique bien toutes les corrections pour que le logiciel fonctionne.



  1. Résistance équivalente et conditionnement d’articles :

Dans le programme présenté nous avons beaucoup d'erreurs à corriger.

Dès le début on peut voir que la ligne “
” il manque les accolade {} pour mettre le code a l’intérieur, de plus il y a un point virgule qui ne serre a rien puisque un point virgule ferme la ligne de code, alors que la ce n’est pas une ligne de code normal, c’est le main du programme.

On peut aussi apercevoir que dans “Mainc” il y a une erreur par exemple il y a un “c” en trop ce qui donne un avertissement dans le logiciel mais pas d’erreur majeur.

Version corriger :

Je vais aussi rapidement changer void main par int main parce que dans le logiciel le fait un avertissement, je peux ne pas le changer, mais j’ai préféré mettre int pour retirer ce petit avertissement.
Dans cette ligne de code “
”on ne peut voir aucune erreur malgré qu’il est placé dans le mauvais endroit, on peut le placer à l’intérieur de main mais aussi à l'extérieur de main !

Version corriger :


Donc pour la suite nous avons ce gros bloc de code qui n’est pas dans le bon endroit du code et n’est pas pris en compte.



Donc maintenant ça devrait ressembler comme ceci :



Donc nous allons prendre la première ligne du code
, donc ici nous avons plusieurs erreurs, déjà en premier lieu nous avons une erreur un peu débile c’est que le texte (string) ajouter dans scanf et ajouter en ‘ ‘ alors qu’il devrait être en “ “.

En plus de ça en fin du scanf pour le texte il manque un petit %d pour ne pas avoir une erreur “d'argument de données non utilisé par la chaîne de format”, on peut aussi voir que dans “resist-1” nous avons une erreur puisque la vrais variable et “resist_1” en plus de ça vu comme on et en scanf nous devons mettre un & au début de la variable sélectionner.

Code corrigé :


Dans la deuxième ligne du code il y a des erreurs similaires, comme par exemple l’oublie du %d dans scanf, ainsi qu'un “ “ différend a été mis.

Code corrigé :


Dans la troisième ligne il y a une erreur similaire encore un petit problème de “ “.
En fin de ligne du code dans scanf on peut voir que la variable est entouré de “ “ alors qu’il ne le devrais pas.

Code corrigé :


Grâce à ces trois lignes de code corrigées de nouvelles erreurs sont apparues !



Je vais donc devoir corriger tout ça.

Donc en premier lieu je vais prendre la première ligne du screen précédent, nous pouvons voir que dans les première ligne, il y a une erreur de frappe, 1/ a était rajouter avant même d'avoir mis la variable, je vais donc la retirer et voir ce les erreurs qui vont apparaître.

Après avoir corriger la ligne du code elle devrait apparaître comme ceci :



Maintenant je vais corrigé la dernière ligne du code et nous pouvons enfin testé le code sans avoir de problème !

Donc dans la dernière ligne de code je peux voir plusieurs erreurs de “ “, il nous manque aussi le %d en fin de la première ligne du texte et du coup j’ai du aussi inverser deux petit mots ce qui nous fait :










Au final après avoir réglé toutes les petites dernières erreurs dans le code tout fonctionne parfaitement !

Bien sûr, pour que le programme soit plus jolie a lire pendant l'exécution j’ai ajouter quelque petit printf.



  1. Moyenne de trois notes.


Variable note_1, note_2, note_3, result : Float

Début
Ecrire(“Veuillez entrée la première note a attribué”)
Lire(note_1)

Ecrire(“Veuillez entrée la deuxième note a attribué”)
Lire(note_2)

Ecrire(“Veuillez entrée la troisième note a attribué”)
Lire(note_3)

result = (note_1 + note_2 + note_3) / 3

Ecrire(“La moyenne des trois notes est :” result)
Fin


Donc si on traduit ça en langage c, nous devrons obtenir :



Donc si j' exécute le code et que je rentre mes données ça devrais donc faire un bon résultat.



  1. Possibilités de lecture / écriture :

1.1)

Donc en premier lieu je vais créer un petit programme qui va me servir a faire en sorte que l’utilisateur peut entrer une chaine de caractère, un entier et un réel.











Variable entree_1 : Entier
Variable entree_2 : Caractère
Variable entree_3 : Réel

Début
Ecrire(“Veuillez entrer un Entier [Exemple : 10]”)
Lire(entree_1)

Ecrire(“Veuillez entrer un Caractère [Exemple : A]”)
Lire(entree_2)

Ecrire(“Veuillez entrer un Réel [Exemple : 1.2]”)
Lire(entree_3)

Ecrire(“Vous avez entrer en entier %d, vous avez entrer en caractère %c, vous avez entrer en float %f”, enree_1, entree_2, entree_3)
Fin

J’ai fait une version encore plus facile à prendre en main donc voici le graphique que j'ai créer :

Variable entree_1 : Entier
Variable entree_2 : Caractère
Variable entree_3 : Réel

Début
Ecrire(“Veuillez entrer un suivie de chaîne de Entier, Caractère et Float [Exemple : 1 A 1.1] :”)
Lire(entree_1, entree_2, entree_3)

Ecrire(“Vous avez entrer en entier %d, vous avez entrer en caractère %c, vous avez entrer en float %f”, enree_1, entree_2, entree_3)
Fin

Donc maintenant je vais le traduire en C pour que le compilateur comprend ce que j’ai écrit, donc j’ai pris la deuxième méthode :


Donc j’ai fait un exemple de résultat :



1.2)

Donc j’ai repris le code qui était donné dans l'énoncé et j’ai rapidement corrigé le code pour qu’il puisse fonctionner.



Donc maintenant il fonctionne parfaitement, voici un de mes résultats.



Donc %3.2f fait en sorte qu' il ne prendra en compte que deux chiffres après la virgule, mais personnellement j'utiliserais %.2f ça fonctionne de la même manière.












  1. Types de données :

6.1 )
Donc dans le programme demandé nous devons faire en sorte que l’interface graphique ressemble à ceci.



Donc dans mon logiciel j’ai fait en sorte que l’utilisateur puisse changer le Numérateur et le Dénominateur.

Donc voici le code source que j’ai effectué pour faire fonctionner ce programme.



6.2)
Donc entre temps j’ai dû changer d'ordinateur puisque j’ai dû changer bref.
Si non j’ai effectué ce qui était demandé dans l’exercice, j’ai fait en sorte que l’utilisateur peut entrer plusieurs chaîne en Entier, Réel, l’utilisateur peut donc faire une fraction avec deux nombre Entier, Réel ET Entier avec Réel.






Screen du code :


Donc j’essaie de programmer pour voir si il fonctionne.



Et donc notre programme fonctionne parfaitement.
  1. Permutation circulaire :


7.1 )
On peut permuter plusieurs variable avec une ou plusieurs variables qui pourront sauvegarder les données écrite par exemple les variables VAR_1, VAR_2 et VAR_3 sont des variables a données réels, donc pour pouvoir les sauvegarder je vais devoir créer une variable Sauvegarde en réel donc float pour sauvegarder un de des données écrite au par avant.

7.2)


Variable VAR_1 = 12.57, VAR_2 = 89.08, VAR_3 = -1.25, Sauvegarde : Réel

Début
Ecrire(“Etat initiale : %.2f %.2f %.2f”, VAR_1, VAR_2, VAR_3)
Getchar()
Sauvegarde = VAR_1
VAR_1 = VAR_2
VAR_2 = Sauvegarde
Sauvegarde = VAR_3
VAR_3 = VAR_2
VAR_2 = Sauvegarde
Ecrire(“Etat final : %.2f %.2f %.2f”, VAR_1, VAR_2, VAR_3)
Retour = 0
Fin

Donc maintenant je vais traduire l’algorithme en langage C !

Code :



Donc grâce a mon code que j’ai créé on peut faire une permutation a l’infinie.

Exemple :



Comment faire une permutation à l'infinie ?

C’est simple ajouter seulement un While dans le programme ;)
 
Haut