Algorithme - aide

Fermé
zazou26 - 2 mars 2010 à 18:41
Kuku007 Messages postés 183 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 7 septembre 2011 - 2 mars 2010 à 21:19
Bonjour,
j'ai une procédure et une séquence algo qui exploite la procédure suivante:

//--permet de contrôler si un nombre est pair --
procédure pair (E a:entier, S b:booléen)
debut
b <-- vrai
si a mod 2 <> 0 alors
b <-- faux
finsi
fin

// --séquence permettant de forcer la saisie d'un nombre pair --
...
repeter
saisir nb
pair (nb, estpair)
jusqu'à est pair
...

mes questions sont les suivantes:
Quelles variables je dois déclarer en local du programme principal ?
comment je peux transformer la procédure en fonction la plus optimisée possible ?
quelqu'un a une idée d'écriture de séquence algorithmique la plus simple possible pour qu'elle puisse marcher avec la fonction la plus optimisée possible ?

Merci d'avance pour votre aide.
A voir également:

1 réponse

Kuku007 Messages postés 183 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 7 septembre 2011 23
2 mars 2010 à 21:19
//--permet de contrôler si un nombre est pair --
procédure pair (E a:entier, S b:booléen)
debut
b <-- vrai
si a mod 2 <> 0 alors
b <-- faux
finsi
fin

// --séquence permettant de forcer la saisie d'un nombre pair --
...
repeter
saisir nb
jusqu'à est PAIR (NB, ESTPAIR)
...


Hum j'ai du mal à saisir le réel sens de ta question. Un algorithme selon moi reste une idée directrice générale de ce que l'on souhaite réaliser. En d'autres termes, je ne vois pas comment optimiser du générique... Il faudrait choisir le langage de programmation et ensuite implémenter une version optimisée.

Par exemple en langage C :

#include <stdio.h>

//Retourne vrai si a est pair
int pair (int a) {
return a % 2;
}

//Force l'utilisateur à saisir un nombre pair
int main (){

int n,val;

do {
printf("Entrez un nombre\n");
scanf("%d",&n);
}while (pair(n));

system ("pause");
return 0;
}

Par exemple en Java :

import java.util.Scanner;

public class Test {
//Retourne vrai si a est pair
private static boolean pair (int a){

if(a%2==0)return true;
return false;
}

//Force l'utilisateur à saisir un nombre pair
public static void main(String[] args) {

do {
System.out.println("Entrez un nombre");
}while(pair(new Scanner(System.in).nextInt()));
}
}

Comme je l'ai dis on voit bien qu'il y a des légères différences d'optimisation en fonction du langage utilisé.
0