Algorithme -2-

Schéma de programme (partie-2)

Pour donner un aperçu de comment se traduit le schéma de programme « Calcul de moyenne » dans un langage de programmation, voyons sa traduction en Ada, Go, C et Swift.

Programme principal en langage C
 #include <stdio.h>
int main()
{
    double resultat;
    int note;
    int compteur = 0;
    int nombreTrimestre = 3;
    resultat = 0;
    printf ("Calcul de la moyenne des notes de math de l’année \n");
    while(compteur < nombreTrimestre) 
    { 
        printf("Entrez une note: "); 
        scanf("%2d",&note); 
        fflush(stdin); 
        resultat = resultat + note;
        compteur = compteur + 1; 
    } 
    resultat = resultat / nombreTrimestre;
    printf("la moyenne  est  %2.2f   ", resultat);
    if ( resultat < 10)
        printf("Travail insuffisant \n");
    else if ( resultat < 14)
        printf("Bon travail \n");
    else 
        printf("Excellent travail \n");
} 

Les mots et signes réservés du langage sont de couleur bleue. Les variables sont de couleur verte.

Programme principal en langage Ada
with gnat.Io; use gnat.io;
with ada.float_text_io; use ada.float_text_io; 
use ada;
procedure CalculMoyenne is
    nombreTrimestre : float := 3.0;
    resultat : float :=0.0;
    note : float:= 0.0;

begin
    put_line("Calcul de la moyenne de Math "); 
    for  nombreTrimestre in 1 .. 3 loop
        put_line(" Entrer une note  ");
        float_text_Io.Get(note);
        resultat := resultat + note;
    end loop;
    resultat := resultat / nombreTrimestre ;
    put ("La moyenne est   "); 
    put(resultat,aft=>2, exp=>0);
    put_line("   ");
    if resultat < 10.0 then
        put_line("Travail insuffisant");
    elsif resultat < 14.0 then
        put_line("Bon travail");
    else
        put_line("Excellent travail");
    end if;
end CalculMoyenne;
Programme principal en langage Go
package main
import ("fmt")
func main() {
    var resultat float32
    var nombreTrimestre int = 3
    var note float32
    resultat = 0
    nombreTrimestre = 0
    fmt.Printf("Calcul de la moyenne !\n")
    for nombreTrimestre < 3 {
        fmt.Printf("Entrez une note: ")
        fmt.Scanf("%f", &note)
        resultat += note
        nombreTrimestre += 1
    }
    resultat = resultat / 3
    fmt.Printf("%.2f\n", resultat)

    if resultat < 10 {
        fmt.Printf("Travail insuffisant\n")
    } else {
        if resultat < 12 {             
            fmt.Printf("Bon travail\n")         
        } else {             
            fmt.Printf("Excellent travail\n ")         
        }     
    } 
} 
Programme principal en langage Swift

Le schéma de programme CalculMoyenne est traduit en Swift sous forme d’une Fonction. Pour rendre la traduction du schéma de programme aussi fidèle que possible on définit:

  • le type Entier avec l’instruction typealias pour redéfinir le type Int
  • Le type Texte avec l’instruction typealias pour redéfinir le type String
  • La fonction Afficher qui encapsule l’instruction print
  • La fonction Prendre pour que l’utilisateur entre les notes depuis la console
typealias Entier = Int
typealias Texte = String

func Afficher(texte: Texte) {
    print(texte)
}

func Prendre() -> Int {
    print("Entrer une note ->", terminator: " ")
    let entier = readLine()
    let nombre = Int(entier!)
    return nombre!
}

func CalculMoyenne() {
    /*  Déclaration
        nombreTrimestre : Nombre -- "nombreTrimestre" est un nombre
        compteur : Nombre        -- "compteur" de boucle  est un nombre
        resultat : Nombre        -- "résultat" est un nombre
     */

    Afficher("Calcul de la moyenne")
    var compteur : Entier  = 0
    let nombreTrimestre : Entier  = 3
    var resultat : Entier  = 0
    var note : Entier  = 0
    
    while (compteur <  nombreTrimestre)  {
        note = Prendre()
        resultat = resultat + note
        compteur += 1
    }
    resultat = resultat / nombreTrimestre
    Afficher ("Le resultat est \(resultat)")
    if resultat < 10 {
        Afficher("Doit mieux faire")
    } else if resultat < 14 {
        Afficher("Bon travail")
    } else {
        Afficher("Excellent travail")
    }
}