A voir également:
- Resoudre un algorithme(lisez le SVP)
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Ecrire un algorithme qui calcule le produit de deux nombres - Forum Programmation
7 réponses
Var N1, N2,G,p,posG, posp,compteur
Sortir "Entrer un nombre"
Entrer N1
G=N1
p=N1
Compteur=1
posG=1
posp=1
Pour compteur=1 jusqua x-1 'x étant le nombre de nombres entrés
Sortir "Entrer N2"
Entrer N2
Si N2>=G et N2<>0 alors
G=N2
posG=compteur+1
Sinon N2<=p et N2<>0 alors
p=N2
posp=compteur+1
Fin SI
Fin pour
Sortir G,p,posG,posp
Sortir "Entrer un nombre"
Entrer N1
G=N1
p=N1
Compteur=1
posG=1
posp=1
Pour compteur=1 jusqua x-1 'x étant le nombre de nombres entrés
Sortir "Entrer N2"
Entrer N2
Si N2>=G et N2<>0 alors
G=N2
posG=compteur+1
Sinon N2<=p et N2<>0 alors
p=N2
posp=compteur+1
Fin SI
Fin pour
Sortir G,p,posG,posp
p.legal
Messages postés
88
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
21 mars 2008
24
4 déc. 2005 à 03:49
4 déc. 2005 à 03:49
je me demande si ce post resistera !
y'a un modal qui m'en veux et qui efface mes posts, alors j'espere que t'auras le temps de le lire !
c'est un peu plus court et c'est ecrit en liberty basic ! (mais faut pas le dire, le modal fou effaceur de post rôde dans le coin !)
@++
--
y'a un modal qui m'en veux et qui efface mes posts, alors j'espere que t'auras le temps de le lire !
for i=1 to 5 print "entrez le nombre ";i;" "; input n nb(i)=n next i for i=1 to 5 if i=1 then mini=nb(i)+1 if nb(i)=mini and nb(i)<>0 then pmini$=pmini$+","+str$(i) if nb(i)<mini and nb(i)<>0 then mini=nb(i) :pmini$=str$(i) if nb(i)=maxi and nb(i)<>0 then pmaxi$=pmaxi$+","+str$(i) if nb(i)>maxi and nb(i)<>0 then maxi=nb(i) :pmaxi$=str$(i) next i print mini;" est le plus petit nombre different de zero." print "il se trouve en position :";pmini$ print maxi;" est le plus grand nombre." print "il se trouve en position :";pmaxi$ wait
c'est un peu plus court et c'est ecrit en liberty basic ! (mais faut pas le dire, le modal fou effaceur de post rôde dans le coin !)
@++
--
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
4 déc. 2005 à 10:27
4 déc. 2005 à 10:27
Salut,
la même chose en C.
La saisie des nombres se fait sur la même ligne avec des espaces entre les nombres (tu peux modifier).
Ce n'est que pour les entiers, si besoin il faut modifier.
Il ne vérifie pas les doublons (à toi de modifier)
Exécution :
Le code
la même chose en C.
La saisie des nombres se fait sur la même ligne avec des espaces entre les nombres (tu peux modifier).
Ce n'est que pour les entiers, si besoin il faut modifier.
Il ne vérifie pas les doublons (à toi de modifier)
Exécution :
[lamitest@localhost bin]$ ./nb_min_max Entrez les 5 nombres (separés par espace) : 15 456 42 0 9 Le nombre plus grand est : 456 dans la position 2 Le nombre plus petit est : 9 dans la position 5 [lamitest@localhost bin]$
Le code
/* --------------------- */ /* nb_min_max.c */ /* --------------------- */ #include <stdio.h> main() { /* declarations */ int i,tab_nb[5],plus_grand,plus_petit; int pos_max,pos_min; /* --- SAISIE des nombre --- */ printf("Entrez les 5 nombres (separés par espace) : "); for (i=0 ; i<5 ; i++) scanf("%d",&tab_nb[i]); /* === Recherche le nombre le plus petit et le plus grand === */ /* initialisation a une valeur petite et grande */ /* ..(il faut adapter en fonction de type de variable)..ici on utilise int */ plus_petit= 2147483647; plus_grand=-2147483647; /* boucle de recherche nb plus grand et plus petit */ for (i=0 ; i < 5 ; i++) { if (tab_nb[i] > plus_grand && tab_nb[i] != 0) { /* on memorise le nombre le plus grand */ plus_grand=tab_nb[i] ; pos_max=i+1; /* la position du plus grand*/ } else if (tab_nb[i] < plus_petit && tab_nb[i] != 0) { /* on memorise le nombre le plus petit */ plus_petit=tab_nb[i] ; pos_min=i+1; /* la position la position du plus petit*/ } } printf("Le nombre plus grand est : %d dans la position %d\n",plus_grand,pos_max); printf("Le nombre plus petit est : %d dans la position %d\n",plus_petit,pos_min); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
enzito
Messages postés
52
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
12 janvier 2006
13
3 déc. 2005 à 20:39
3 déc. 2005 à 20:39
Dans quel language dois-tu faire cet algo?
Peut-être que l'on pourra te donner un petit coup de main...
Peut-être que l'on pourra te donner un petit coup de main...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
mina_cherou
4 déc. 2005 à 15:36
4 déc. 2005 à 15:36
Regarde le poste N°5
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 déc. 2005 à 21:55
3 déc. 2005 à 21:55
Salut,
Voila ton algo en Perl. J'ai apporté quelques modifications.
1. Le nombre N tu peux le choisir, j'ai laissé 5 par défaut.
2. Le cas où un numéro est saisie plusieurs fois. Le programme il te dit combien des fois et les positions.
Que fait le script?
1. Stocke les nombres entrés au clavier.
2. Les fonction min est max trouve les valeur min et max.
3. Une boucle while trouve la/les position(s) du/des min et max
Exemple 1 (ton exemple)
Exemple 2 ( 456 deux fois )
Le script
Voila ton algo en Perl. J'ai apporté quelques modifications.
1. Le nombre N tu peux le choisir, j'ai laissé 5 par défaut.
2. Le cas où un numéro est saisie plusieurs fois. Le programme il te dit combien des fois et les positions.
Que fait le script?
1. Stocke les nombres entrés au clavier.
2. Les fonction min est max trouve les valeur min et max.
3. Une boucle while trouve la/les position(s) du/des min et max
Exemple 1 (ton exemple)
[lamitest@localhost my_perl_script]$ perl algo_nombre_ccm_03122005.pl Fixez le nombre N, 5 par défaut: Entrez le nombre 1 : 15 Entrez le nombre 2 : 456 Entrez le nombre 3 : 42 Entrez le nombre 4 : 0 Entrez le nombre 5 : 9 Vous avez entrez les nombres suivantes : 15 456 42 0 9 Le plus grand nombre est : 456 et se trouve dans la position 2 Le plus petit nombre différent de 0 est : 9 et se trouve dans la position 5
Exemple 2 ( 456 deux fois )
[lamitest@localhost my_perl_script]$ perl algo_nombre_ccm_03122005.pl Fixez le nombre N, 5 par défaut: Entrez le nombre 1 : 15 Entrez le nombre 2 : 456 Entrez le nombre 3 : 0 Entrez le nombre 4 : 9 Entrez le nombre 5 : 456 Vous avez entrez les nombres suivantes : 15 456 0 9 456 Le plus grand nombre est : 456. Saisie 2 fois. Trouvé dans les positions 2 5. Le plus petit nombre différent de 0 est : 9 et se trouve dans la position 4 [lamitest@localhost my_perl_script]$
Le script
#! /usr/bin/perl -w use strict; $"=", "; my @nb; my @position_max; my @position_min; my %max; my %min; my $pos_max=1; my $pos_min=1; =head1 NAME file_decouper - couper les fichiers texte selon un nombre de lignes. =head1 SYNOPSIS [user@localhost ~]$ perl algo.pl head1 DESCRIPTION Ecrire un algorithme qui demande successivement N nombre à l’utilisateur, et qui lui dise ensuite quel était le plus grand nombre différent de 0 et le pus petit ombre différent de 0, et doit retrouver la position du plus grand et du plus petit nombre. Exemple d’exécution : Si N=5 Enter le nombre1 :15 Enter le nombre2 :456 Enter le nombre3 :42 Enter le nombre4 :0 Enter le nombre5 :9 Le lus rand nombre : 456 sa position : 2 Le plus petit nombre : 9 sa position : 5 =cut # On saisi le nombre N, par défaut 5 print "Fixez le nombre N, 5 par défaut: "; chomp(my $nombre=<STDIN>); $nombre ||= 5; my $compteur=1; while ($compteur <= $nombre){ print "Entrez le nombre $compteur : "; chomp(my $nb=<STDIN>); push @nb,$nb; # stocker les nombres dans un tableau $compteur++; } print "\nVous avez entrez les nombres suivantes : @nb\n"; # trouver le max sub max { my $max = shift @_; foreach(@_){ if ($_>$max){ $max=$_; } } return $max; } my $maxim=max(@nb); # trouver le min sub min { my $min = shift @_; foreach(@_){ if ($_<$min and $_<=>0){ $min=$_; } } return $min; } my $minim=min(@nb); my $elem_nb=join " ", @nb; # trouver la positon de max et min et/ou les nombres d'occurences while (@nb){ $_ = shift @nb; if ($_ =~/$maxim/){ $max{$_}++; $pos_max=$nombre - @nb; push @position_max,$pos_max; }elsif ($_=~/$minim/){ $min{$_}++; $pos_min=$nombre - @nb; push @position_min,$pos_min; } } # affichage du/des nombre(s) max if ($max{$maxim}==1){ print "Le plus grand nombre est : $maxim et se trouve dans la position $pos_max\n"; }else{ print "Le plus grand nombre est : $maxim. Saisie $max{$maxim} fois. Trouvé dans les positions @position_max.\n"; } # affichage du/des nombre(s) min if ($min{$minim}==1){ print "Le plus petit nombre différent de 0 est : $minim et se trouve dans la position $pos_min\n"; }else{ print "Le plus petit nombre différent de 0 est : $minim. Saisie $min{$minim} fois. Trouvé dans les positions @position_min.\n"; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 déc. 2005 à 22:17
3 déc. 2005 à 22:17
Désolé il y quelques petites erreurs concernant les commentaires.
Voilà le script avec les corréctions.
Voilà le script avec les corréctions.
#! /usr/bin/perl -w =head1 NAME Trouver le max et le min de nombres saisies. =head1 SYNOPSIS [user@localhost ~]$ perl algo.pl =head1 DESCRIPTION Ecrire un algorithme qui demande successivement N nombre à l’utilisateur, et qui lui dise ensuite quel était le plus grand nombre différent de 0 et le pus petit ombre différent de 0, et doit retrouver la position du plus grand et du plus petit nombre. Exemple d’exécution : Si N=5 Enter le nombre1 :15 Enter le nombre2 :456 Enter le nombre3 :42 Enter le nombre4 :0 Enter le nombre5 :9 Le lus rand nombre : 456 sa position : 2 Le plus petit nombre : 9 sa position : 5 =cut use strict; $"=", "; my @nb; my @position_max; my @position_min; my %max; my %min; my $pos_max=1; my $pos_min=1; # On saisi le nombre N, par défaut 5 print "Fixez le nombre N, 5 par défaut: "; chomp(my $nombre=<STDIN>); $nombre ||= 5; my $compteur=1; while ($compteur <= $nombre){ print "Entrez le nombre $compteur : "; chomp(my $nb=<STDIN>); push @nb,$nb; # stocker les nombres dans un tableau $compteur++; } print "\nVous avez entrez les nombres suivantes : @nb\n"; # trouver le max sub max { my $max = shift @_; foreach(@_){ if ($_>$max){ $max=$_; } } return $max; } my $maxim=max(@nb); # trouver le min sub min { my $min = shift @_; foreach(@_){ if ($_<$min and $_<=>0){ $min=$_; } } return $min; } my $minim=min(@nb); my $elem_nb=join " ", @nb; # trouver la positon de max et min et/ou les nombres d'occurences while (@nb){ $_ = shift @nb; if ($_ =~/$maxim/){ $max{$_}++; $pos_max=$nombre - @nb; push @position_max,$pos_max; }elsif ($_=~/$minim/){ $min{$_}++; $pos_min=$nombre - @nb; push @position_min,$pos_min; } } # affichage if ($max{$maxim}==1){ print "Le plus grand nombre est : $maxim et se trouve dans la position $pos_max\n"; }else{ print "Le plus grand nombre est : $maxim. Saisie $max{$maxim} fois. Trouvé dans les positions @position_max.\n"; } if ($min{$minim}==1){ print "Le plus petit nombre différent de 0 est : $minim et se trouve dans la position $pos_min\n"; }else{ print "Le plus petit nombre différent de 0 est : $minim. Saisie $min{$minim} fois. Trouvé dans les positions @position_min.\n"; }