A voir également:
- Un algorithme a resoudre svp
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Algorithme qui calcule le carré d'un nombre - Forum Algorithmes / Méthodes
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
15 réponses
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
29 sept. 2008 à 22:45
29 sept. 2008 à 22:45
Bonsoir,
Peux-tu nous dire ce que tu as fait exactement afin qu'on puisse te guider vers la solution ?
Cordialement
Peux-tu nous dire ce que tu as fait exactement afin qu'on puisse te guider vers la solution ?
Cordialement
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 22:52
29 sept. 2008 à 22:52
Je vais peut-être te paraître un peu dur en disant ça, mais apprendre à écrire un algorithme ne s'apprend pas en ayant la réponse et en cherchant à la comprendre ... (ou du moins si t'y arrives tant mieux pour toi mais j'ai jamais vu qqu'un réussir comme ça). Le but du forum n'est pas non plus de faire ton exo à ta place.
Ce que je peux te dire, si ça peut t'aider :
C'est qu'écrire un algorithme n'est pas infaisable même pour un débutant. Ce qu'il faut bien comprendre pour faire un algorithme, c'est comprendre comment le programme doit faire pour fonctionner.
Imagine-toi en train de dire à ta machine ce qu'elle doit faire... en la prenant pour une conne (lol), elle ne comprends que les condition (si machin alors truc), mettre des valeurs là où tu lui dis, et répéter des opérations un certain nombre de fois (ou selon une condition).
Tu dois donc penser les étapes nécessaires au fonctionnement, et éventuellement les préciser en sous-étapes.
Il vaut mieux avoir réfléchi à faire l'algo sans avoir réussi, plutôt qu'on te le donne sans trop réfléchir (on n'avance pas comme ça)
Bon courage
Ce que je peux te dire, si ça peut t'aider :
C'est qu'écrire un algorithme n'est pas infaisable même pour un débutant. Ce qu'il faut bien comprendre pour faire un algorithme, c'est comprendre comment le programme doit faire pour fonctionner.
Imagine-toi en train de dire à ta machine ce qu'elle doit faire... en la prenant pour une conne (lol), elle ne comprends que les condition (si machin alors truc), mettre des valeurs là où tu lui dis, et répéter des opérations un certain nombre de fois (ou selon une condition).
Tu dois donc penser les étapes nécessaires au fonctionnement, et éventuellement les préciser en sous-étapes.
Il vaut mieux avoir réfléchi à faire l'algo sans avoir réussi, plutôt qu'on te le donne sans trop réfléchir (on n'avance pas comme ça)
Bon courage
re, merci de me repondre marco
je suis un nouveau etudiants qui reçoit une formation en .net, la derniére chose ue j'ai apris c'est les boucles,
voila ce que j'ai repondu moi mais je suis sur que c pas correcte lol
http://img297.imageshack.us/img297/6837/image18tz9.jpg
je suis un nouveau etudiants qui reçoit une formation en .net, la derniére chose ue j'ai apris c'est les boucles,
voila ce que j'ai repondu moi mais je suis sur que c pas correcte lol
http://img297.imageshack.us/img297/6837/image18tz9.jpg
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 22:59
29 sept. 2008 à 22:59
Dsl de m'être emballé :p Le premier post m'a fait penser au genre de personnes qui demande la réponse...
Petite astuce : si tu veux vérifier ton algorithme, mets-toi à la place de la machine et déroule-le.
Tu t'appercevras d'une inexactitude dans ton algo : si le nombre est premier (ou non d'ailleurs), tu ne sors pas de ta boucle ;-)
Petite astuce : si tu veux vérifier ton algorithme, mets-toi à la place de la machine et déroule-le.
Tu t'appercevras d'une inexactitude dans ton algo : si le nombre est premier (ou non d'ailleurs), tu ne sors pas de ta boucle ;-)
g déja essayé mec je veux juste que quelqu'un me corrige xD merci bien pour tes conseilles :)
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
29 sept. 2008 à 23:20
29 sept. 2008 à 23:20
Hello powerwave,
-premier commentaire : et si ton entier est supérieur à 9999999999, que fais-tu ? Ton algorithme est faux.
- 2nd commentaire : pas la peine de parcourir tous les entiers jusqu'à cette valeur d'ailleurs. L'énoncé te dit qu'il suffit d'aller jusqu'à la racine de n, c'est beaucoup plus intéressant car tu gagnes énormément de temps.
- 3ème commentaire, comme le dit bizu53, l'algorithme doit retourner quelque chose, pas simplement afficher la réponse (mais bon, ça c'est du détail).
L'algo :
N'hésite pas à poser des questions.
Cordialement,
-premier commentaire : et si ton entier est supérieur à 9999999999, que fais-tu ? Ton algorithme est faux.
- 2nd commentaire : pas la peine de parcourir tous les entiers jusqu'à cette valeur d'ailleurs. L'énoncé te dit qu'il suffit d'aller jusqu'à la racine de n, c'est beaucoup plus intéressant car tu gagnes énormément de temps.
- 3ème commentaire, comme le dit bizu53, l'algorithme doit retourner quelque chose, pas simplement afficher la réponse (mais bon, ça c'est du détail).
L'algo :
fonction estPremier (entier n) : booléen si (n > 0 et n <= 2) retourner vrai; fin si soit i entier; i = 2; tant que i < sqrt(n) faire si ( n mod i = 0 ) retourner vrai; fin si i = i + 1; fin tant que retourner faux;
N'hésite pas à poser des questions.
Cordialement,
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
29 sept. 2008 à 23:23
29 sept. 2008 à 23:23
Le beau cadeau piégé ! (petit piège) :p
Tant qu'à donner la solution, je corrige ta solution :
Il ne faut absoluement pas de :
si (n > 0 et n <= 2)
retourner vrai;
fin si
Le nombre 1 n'est PAS un nombre premier
Tant qu'à donner la solution, je corrige ta solution :
Il ne faut absoluement pas de :
si (n > 0 et n <= 2)
retourner vrai;
fin si
Le nombre 1 n'est PAS un nombre premier
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
10
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
29 sept. 2008 à 23:24
29 sept. 2008 à 23:24
OMG c'est quoi ce truc de ouf, merci mec xD
on utilise le visual studio pour programmer?? on a toujours pas passer a la pratique lol juste des trucs de base sur le cahier ^^'
on utilise le visual studio pour programmer?? on a toujours pas passer a la pratique lol juste des trucs de base sur le cahier ^^'
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
>
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
29 sept. 2008 à 23:29
29 sept. 2008 à 23:29
Effectivement, désolé.
J'avais gardé en tête la définition "divisible par un et par lui même", donc j'ai effectivement oublié ce cas exceptionnel.
L'erreur est humaine n'est-ce pas ? La prochaine fois tu présenteras ta solution bizu, j'essaierai de te trouver des bugs moi aussi ;)
Cordialement,
J'avais gardé en tête la définition "divisible par un et par lui même", donc j'ai effectivement oublié ce cas exceptionnel.
L'erreur est humaine n'est-ce pas ? La prochaine fois tu présenteras ta solution bizu, j'essaierai de te trouver des bugs moi aussi ;)
Cordialement,
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
>
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
29 sept. 2008 à 23:29
29 sept. 2008 à 23:29
Tu peux utiliser Visual Studio ou tout autre environnement de développement ^^.
Perso je développe dans Dev-c++ (parce que je ne supporte pas dans VS qu'il faille obligatoirement faire un projet, il ne compile pas un .c tout seul [à vrai dire jme suis jamais vraiment penché sur la question]), mais j'utilise VS quand même pour son excellent débuggeur :)
Perso je développe dans Dev-c++ (parce que je ne supporte pas dans VS qu'il faille obligatoirement faire un projet, il ne compile pas un .c tout seul [à vrai dire jme suis jamais vraiment penché sur la question]), mais j'utilise VS quand même pour son excellent débuggeur :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
10
29 sept. 2008 à 23:32
29 sept. 2008 à 23:32
ok merci les gars, je passerai souvent vous faire chier avec d'autre questions mdrrrrrrr
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 23:34
29 sept. 2008 à 23:34
Pour moi pas de pb tant que ce n'est pas du "chiage" d'une solution toute faite :) je pisse du code par plaisir depuis maintenant 8ans :p (donc l'algo va avec ^^)
slt...
juset une ptite remarque pour bizu53 .. bah tu lui a ecri l algorithme avec une fonction ... bah je croix que ce n 'est pas la bonne idéé pacequ'il debute deja ... il est tot pour les procedures et les fonctions !! nn?? :)
juset une ptite remarque pour bizu53 .. bah tu lui a ecri l algorithme avec une fonction ... bah je croix que ce n 'est pas la bonne idéé pacequ'il debute deja ... il est tot pour les procedures et les fonctions !! nn?? :)
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 23:36
29 sept. 2008 à 23:36
Ce n'est pas moi qui l'ait écrit ;-) relis bien
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
10
29 sept. 2008 à 23:36
29 sept. 2008 à 23:36
c sur g rien pigé xD je viens juste d'aprendre les boucles aujourd'hui xD
est ce que ta premiere seance aujourd'hui en algortihme parceque ca m'ettonnerai enormement si c le cas ...apprendre plus qu'une boucle c tro !!:O
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
10
29 sept. 2008 à 23:47
29 sept. 2008 à 23:47
ben g apris en quelques seances les trucs de base, stocker, ecrire".....",lire "....",si .... alors, x mod y = 0, SQR, et une boucle, c tt pour le moment xD je suis un vrai debutant ^^
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 23:49
29 sept. 2008 à 23:49
Bah de toute façon, à part les fonctions/procédures, il n'y a pas grand chose de + en algo :)
C'est très basique, c'est le principe même de l'algorithmique (le plus basique possible pour détailler un programme, comme ça si tu le donnes à un développeur il n'a [quasiment] pas à réfléchir)
C'est très basique, c'est le principe même de l'algorithmique (le plus basique possible pour détailler un programme, comme ça si tu le donnes à un développeur il n'a [quasiment] pas à réfléchir)
bah si si.. y a beaucoup de chose plus difficile en algo .. moi niveau 3eme informatique tunisie (un an avant le bac) une fois en jettant un coup d'oueil sur le devoir de pascal de bac pour l' anné 2008 j'ai rien compri xD !! voila le corrigé :
program bac_pratique;
uses wincrt;
type
convertition=record
dec:integer;
bin:string;
oct:string;
hex:string;
end;
fichier1=file of integer;
fichier2=file of convertition;
{-----------------------------------------------}
procedure saisie1( var n:integer);
begin
repeat
write('Donner N : ');
readln(n);
until ((n>5) and (n<100));
end;
{-----------------------------------------------}
procedure saisie2(var nombres:fichier1; n:integer);
var i,p:integer;
begin
{$i-} reset(nombres);{$i+}
if ioresult<> 0
then
rewrite(nombres);
for i:=1 to n do
begin
repeat
write('Donner Un Entier à Remplir Dans Le Fichier Nombres : ');
readln(p);
until (p<32000);
write(nombres,p);
end;
end;
{-----------------------------------------------}
function inver(ch:string):string;
var i:integer; ch1:string;
begin
ch1:='';
for i:=length(ch) downto 1 do
ch1:=ch1+ch[i];
inver:=ch1;
end;
{-----------------------------------------------}
function conv(p,b:integer):string;
var ch,ch1:string; r:integer;
begin
ch:=''; ch1:='';r:=0;
repeat
r:=p mod b;
p:=p div b;
if b=16
then
begin
if r in [0..9]
then
str(r,ch1)
else
ch1:=chr(r+55);
end
else
str(r,ch1);
ch:=ch+ch1;
until (p=0);
conv:=inver(ch);
end;
{------------------------------------------------}
procedure remplir(var nombres:fichier1;var nbr_conv:fichier2);
var i,p:integer; con:convertition;
begin
reset(nombres);
rewrite(nbr_conv);
for i:=0 to (filesize(nombres)-1) do
begin
seek(nombres,i);
read(nombres,p);
with con do
begin
writeln('L"enregistrement N°',i,':');
dec:=p;
writeln('En Dicimale : ',dec);
bin:=conv(p,2);
writeln('En Binaire : ',bin);
oct:=conv(p,8);
writeln('En Octet : ',oct);
hex:=conv(p,16);
writeln('En Hexadicimal : ',hex);
writeln;
end;
write(nbr_conv,con);
end;
end;
{-----------------------------------------------}
var nombres:fichier1; nbr_conv:fichier2; choix,n:integer;
begin
assign(nombres,'d:\nombres.dat');
assign(nbr_conv,'d:\nbr_conv.dat');
repeat
writeln('Saisie De N : (1) ');
writeln('Saisie De Fichier Nombres : (2) ');
writeln('Remplissage Et Affichage De convertition : (3) ');
writeln('Recréer Le Fichier Nombres : (4) ');
writeln('Recéer Le Fichier Nbr_conv : (5) ');
writeln;
repeat
write('donner votre choix : ');
readln(choix);
until choix in [0..5];
case choix of
1:saisie1(n);
2:saisie2(nombres,n);
3:remplir(nombres,nbr_conv);
4:rewrite(nombres);
5:rewrite(nbr_conv);
end;
write('Traitment Terminer Taper Entrer Pour Continuer ');
readln;
clrscr;
until choix=0;
gotoxy(30,15);write('Programme terminer');
end.
program bac_pratique;
uses wincrt;
type
convertition=record
dec:integer;
bin:string;
oct:string;
hex:string;
end;
fichier1=file of integer;
fichier2=file of convertition;
{-----------------------------------------------}
procedure saisie1( var n:integer);
begin
repeat
write('Donner N : ');
readln(n);
until ((n>5) and (n<100));
end;
{-----------------------------------------------}
procedure saisie2(var nombres:fichier1; n:integer);
var i,p:integer;
begin
{$i-} reset(nombres);{$i+}
if ioresult<> 0
then
rewrite(nombres);
for i:=1 to n do
begin
repeat
write('Donner Un Entier à Remplir Dans Le Fichier Nombres : ');
readln(p);
until (p<32000);
write(nombres,p);
end;
end;
{-----------------------------------------------}
function inver(ch:string):string;
var i:integer; ch1:string;
begin
ch1:='';
for i:=length(ch) downto 1 do
ch1:=ch1+ch[i];
inver:=ch1;
end;
{-----------------------------------------------}
function conv(p,b:integer):string;
var ch,ch1:string; r:integer;
begin
ch:=''; ch1:='';r:=0;
repeat
r:=p mod b;
p:=p div b;
if b=16
then
begin
if r in [0..9]
then
str(r,ch1)
else
ch1:=chr(r+55);
end
else
str(r,ch1);
ch:=ch+ch1;
until (p=0);
conv:=inver(ch);
end;
{------------------------------------------------}
procedure remplir(var nombres:fichier1;var nbr_conv:fichier2);
var i,p:integer; con:convertition;
begin
reset(nombres);
rewrite(nbr_conv);
for i:=0 to (filesize(nombres)-1) do
begin
seek(nombres,i);
read(nombres,p);
with con do
begin
writeln('L"enregistrement N°',i,':');
dec:=p;
writeln('En Dicimale : ',dec);
bin:=conv(p,2);
writeln('En Binaire : ',bin);
oct:=conv(p,8);
writeln('En Octet : ',oct);
hex:=conv(p,16);
writeln('En Hexadicimal : ',hex);
writeln;
end;
write(nbr_conv,con);
end;
end;
{-----------------------------------------------}
var nombres:fichier1; nbr_conv:fichier2; choix,n:integer;
begin
assign(nombres,'d:\nombres.dat');
assign(nbr_conv,'d:\nbr_conv.dat');
repeat
writeln('Saisie De N : (1) ');
writeln('Saisie De Fichier Nombres : (2) ');
writeln('Remplissage Et Affichage De convertition : (3) ');
writeln('Recréer Le Fichier Nombres : (4) ');
writeln('Recéer Le Fichier Nbr_conv : (5) ');
writeln;
repeat
write('donner votre choix : ');
readln(choix);
until choix in [0..5];
case choix of
1:saisie1(n);
2:saisie2(nombres,n);
3:remplir(nombres,nbr_conv);
4:rewrite(nombres);
5:rewrite(nbr_conv);
end;
write('Traitment Terminer Taper Entrer Pour Continuer ');
readln;
clrscr;
until choix=0;
gotoxy(30,15);write('Programme terminer');
end.
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
29 sept. 2008 à 23:59
29 sept. 2008 à 23:59
... ce n'est pas un algo mais du code !
Je parlais d'algo moi ...
edit : en même temps... même en jettant un coup d'oeil rapide à ton code je ne vois où est-ce que tu trouves des difficulté dans ça ... enfin bon chacun son niveau ^^ (sans prétention)
Je parlais d'algo moi ...
edit : en même temps... même en jettant un coup d'oeil rapide à ton code je ne vois où est-ce que tu trouves des difficulté dans ça ... enfin bon chacun son niveau ^^ (sans prétention)
oui mais c presque la meme chose la difference c juste la traducction en pascal !!
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
30 sept. 2008 à 00:02
30 sept. 2008 à 00:02
Je suis d'accord que c'est "presque" la même chose mais "presque" n'est pas synonyme de "strictement"
oui !! je vais te poser une question : ) .. quelles sont les branches dans l' orientation chez vous en France ?? parceque j'ai aucune idée!!
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
30 sept. 2008 à 00:12
30 sept. 2008 à 00:12
Je n'y connais rien, je ne suis pas conseiller d'orientation ...
powerwave
Messages postés
38
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
17 novembre 2014
10
30 sept. 2008 à 00:09
30 sept. 2008 à 00:09
chui marocain moi ne parlez pas chnois svp xD