IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[imprecis]Réaliser a^n avec seulement l'opérateur d'addition


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 84
    Points : 80
    Points
    80
    Par défaut [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    J´ai fait çà, mais çà marche pas top :
    ex: 2² = 9 . .. : (
    -----------------------------------------
    program puiss;
    uses wincrt;
    {résultat: élévation à la puissance d´un nombre a par n avec seulement l´opérateur d´addition}
    var res : integer; {résultat final}
    mult: integer; {résultat intermédiaire, multiplication de a * res avec seulement l´opérateur d´addition}
    cpt1 : integer; {compteur de boucles du premier TantQue}
    cpt2 : integer; {compteur de boucles du second TantQue}
    a : integer; {valeur de a}
    n : integer; {valeur de n}
    o:integer; {correspond à n-1}

    begin
    cpt1:=1;
    res:=1;
    mult:=0;
    cpt2:=1;
    writeln(´Veuillez saisir la valeur de a: ´);
    read(a);
    writeln(´Veuillez saisir la valeur de n: ´);
    read(n);
    while(cpt1<=n)do
    begin
    while(cpt2<=res)do
    begin
    mult:=mult+a;
    cpt2:=cpt2+1;
    end;
    res:=res+mult;
    cpt1:=cpt1+1;
    end;
    writeln(´La valeur "a" élevée à la puissance "n" correspond à : ´);
    writeln(res);
    end.
    --------------------------------------
    Merci à tous les programmeurs qui pourront m´aider ...

  2. #2
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    mars 2002
    Messages
    671
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 671
    Points : 625
    Points
    625
    Par défaut
    Amon inscrit le 3/10/02 pose exactement la même question en Pascal
    que gemini_010 inscrit le 1/10/02 en langage C

    changer d'identité, parce que les réponses antérieures ne vous satisfont
    pas, ne sert à rien puisque vous aurez les mêmes réponses

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    et pire que cela, je viens de trouver que :
    Clark [ 1 Message ]

    Amon [ 1 Message ]
    Postent du même pc et / ou reseau
    c'est tout de même bizard, vous ne trouvez pas ?

    @++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    j'hésite, car il éxiste deja, la même chose éxactement dans le langage c :
    http://www.developpez.net/forums/viewtopic.php?t=34920

    quelqu'un pourrais m'éclairer ? merci :p

    @++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    alors ... ça veut dire quoi ?

    @++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  6. #6
    Membre averti
    Avatar de knotty
    Inscrit en
    mars 2002
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 126
    Points : 397
    Points
    397
    Par défaut
    plusieurs personnes peuvent poster d'une meme IP parce qu'ils partagent une seule connexion.

    Ou bien, si l'IP est dynamique (reseau d'entreprise ou provider internet), les IP sont distribuees plus ou moins aleatoirement.

    Mais bon, deux personnes postent la meme question stupide avec le meme code source a partir de la meme IP, ca commence a faire pas mal d'indices
    Christophe Ludet
    Testez vos connaissances Java - http://knotty.developpez.com
    Donner des ailes a votre application (J2EE patterns) - http://knotty.developpez.com/j2ee

  7. #7
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : mars 2002
    Messages : 1 212
    Points : 3 366
    Points
    3 366
    Par défaut
    Ca n'a rien à faire sur le forum Pascal ça, ni même C par ailleurs.

    C'est uniquement un problème d'algo (et on se renvoie la baballe !).

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    OK !
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  9. #9
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    avril 2002
    Messages
    2 452
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : avril 2002
    Messages : 2 452
    Points : 4 232
    Points
    4 232
    Par défaut
    Moi je crois que c'est des mecs qui font un IUT INFORMATIQUE ( je le sais j'y suis ) et qui sont éjà paumés ( Vous allez souffrir !!!!! )

    Pour la paix je ne répondrais pas...
    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 84
    Points : 80
    Points
    80
    Par défaut
    Ah c'est cool ... je m'étais inscris sur ce forum pour recevoir de l'aide, et qu'est-ce que je reçois en retour ... quasiment des insultes ...
    Et NON je n'ai jamais poster de messages sur a^n avec le langage C ni avec quoi que ce soit, je ne suis ni Gemini ni Clark machin truc ... y a pas que moi qui suit en IUT Info ...

    C'est pas comme si je vous avez posé la question sans même y avoir réfléchi, çà faisait une semaine que je me creusais la tête sur "cette question stupide" comme diront certains et je trouvais pas ... j'étais resté tous les soirs de la semaine jusqu'à 19h00 à l'IUT pour trouver là où çà merdait ... c'est n'importe quoi ce que vous racontez ...

    Dans tous les messages à la con que vous venez de poster, il y en a qu'un qui a raison, je suis en IUT Info et je suis débutant ... et alors ? c'est parce qu'on est débutant qu'on a pas droit au respect ? ah mais j'oubliais, vous avez jamais été débutant, vous étiez même pas nés que vous étiez déjà des pros du Pascal ... veuillez alors m'excuser, messieurs, d'être aussi mauvais ...

  11. #11
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    on n'est pas nés pro du pascal !
    on ne t'en veut pas parce que tu débute !
    c'est jsute que la question avait deja été posé, et cela, c'est une contre laquelle on va pas t'en vouloir, car tu es nouveau, et que tu n'avais pas vu !
    Désolé si on a douté de toi, mais, ça portais quand même a confusion.
    donc, si tu n'est pas rencunié, on se fera un plaisir de t'acceuilir, et de te souhaiter la bienvenue sur le forum pascal !
    Aprés tout, ce n'est qu'un mal entendu !

    Par contre, je ne suis pas d'accord avec une chose : On ne t'a pas insulté !

    @+ + Pascail
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 84
    Points : 80
    Points
    80
    Par défaut
    Bon d'accord on fait la paix ...
    Etant assez assidu sur de nombreux forums, c'est vrai que çà saoule les posts avec les mêmes sujets ... mais j'avais pas fait gaffe ...

    Sinon concernant le truc des IP identiques, malgrè que je fus assez énervé j'ai réfléchis ... et je crois que j'ai poster le premier message sur ce forum (celui avec l'énoncé et ma question) depuis l'IUT. IUT qui comprend près d'une 100aine d'ordinateurs en réseaux ... de plus, un autre groupe que le notre devait programmer cette énoncé en C. Ceci explique peut etre alors celà ... J'en sais trop rien ...

    Et concernant les insultes, j'ai jamais dis que vous m'aviez insulté, mais j'ai dis que vous m'aviez "quasiment insulté" ... tout est dans le "quasiment" ... lol

    Ah oui tant que j'y suis ... j'ai un petit problème avec un autre prog. Il marche en théorie mais il plante quand je compile ...

    program exo10b;
    uses wincrt;
    {résultat:calcule le nombre de mots présents dans la phrase}
    {pré-requis: la phrase doit se terminer par un "."}
    var phrase: char; {caractère de la phrase}
    cpt: integer; {compteur de boucles=résultat final}
    rep: char; {réponse de l'utilisateur permettant un redémarrage du programme}

    begin
    rep:='o';
    while (rep='o') do
    begin
    writeln('*****************************************************');
    writeln('* Calcule le nombre de mots présents dans la phrase *');
    writeln('*****************************************************');
    writeln(' ');
    writeln('Veuillez entrer votre phrase :');
    readln(phrase);
    cpt:=0;
    while(phrase<>'.')do
    begin
    if(phrase=' ') then (cpt=cpt+1);
    if(phrase<>' ') then (readln(phrase));
    end;
    writeln(' ');
    writeln('Il y a ',cpt,' mots dans votre phrase.');
    wrtieln(' ');
    writeln('Realiser l operation avec une autre ? o/n ');
    readln(rep);
    end;
    end.

    Chez moi l'erreur se situe au niveau des if-then, j'ai mis 2 if malgré qu'un else aurait suffit après le premier mais çà change rien ... çà me fait "invalid variable reference".

  13. #13
    Membre actif

    Profil pro
    Inscrit en
    mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    oui ... j'aurais surement fait différement .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Uses crt, dos ;
    var i : integer ;
         str : integer ;
         vari : string ;
     
    begin
    readln ( vari )
     
    for i := 1 to length ( vari ) do if vari[i] = ' ' then str := str + 1 ;
     
    writeln (' Nombre de mot : ', str+1 ') ;
     
    end .
    Voila
    c'est pas complet, mais ça doit marcher

    @++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : août 2002
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    je viens d'y penser, au premier programme tu peux également utiliser une fonction récursive.
    En tenant compte du fait que le nbre de boucle à faire est égal à la puissance
    ex : 2^3

    a(2)
    n(3)

    r:=0;
    x:=a;
    y:=n;
    for i:=1 to n do begin
    for ii:=1 to n do begin
    for iii:=1 to n do begin
    r:=r+a;
    end;
    end;
    end;

    Bon ça complique les choses, de plus cela conssomme plus de temps CPU que celui cité plus haut, mais bon entraînement pour faire une procédure récursive.

    Et si jamais ton erreur, il me semble que c'est : "while(cpt2<=res)do", remplaces par "while(cpt2<res)do".

    Et pour l'autre programme : "if(phrase=' ') then (cpt=cpt+1);", remplaces par "if(phrase=' ') then (cpt:=cpt+1);"
    On ne peut comprendre un processus en l'interrompant. La compréhension doit rejoindre le cheminement du processus et cheminer avec lui

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : août 2002
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    une fonction récursive qui l'est réellement pas comme mon exemple, exemple qui illustrait seulement ce qu'aurait accompli une vrai fonction récursive avec les paramètres 2^3.
    On ne peut comprendre un processus en l'interrompant. La compréhension doit rejoindre le cheminement du processus et cheminer avec lui

  16. #16
    ALT
    ALT est déconnecté
    Membre chevronné
    Avatar de ALT
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    octobre 2002
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 1 182
    Points : 2 115
    Points
    2 115
    Par défaut
    Salut

    Eh, Senke, tu ne confondrais pas 2^3 & 2*3, par hasard ?
    Car 2+2+2 ça fait 6...
    Et quand bien même ça fonctionnerait pour 2^3 (dans ce cas précis), je doute que ça fonctionne pour 2^4, par exemple.

    La fonction de puissance récursive est un exemple classique, mais avec des multiplications & non des additions.

    Cordialement
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  17. #17
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 504
    Points : 745
    Points
    745
    Par défaut
    Citation Envoyé par ALT
    La fonction de puissance récursive est un exemple classique, mais avec des multiplications & non des additions.
    Oui, mais la multiplication peut etre definie recursivement. Cf post :
    http://www.developpez.net/forums/viewtopic.php?t=34920 pour plus de detail (notamment un code (en C) de fonction recursive de la puissance.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : août 2002
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    81 81 4.7731E+152 6400
    2 3 3 2
    2 4 7 3
    2 5 15 4
    2 6 31 5
    3 2 2 2
    3 3 8 4
    3 4 26 6
    3 5 80 8
    3 6 242 10
    3 7 728 12
    3 8 2186 14
    3 9 6560 16
    4 2 3 3
    4 3 15 6
    4 4 63 9
    4 5 255 12
    4 6 1023 15
    4 7 4095 18
    4 8 16383 21
    5 2 4 4
    5 3 24 8
    5 4 124 12
    5 5 624 16
    5 6 3124 20
    5 7 15624 24
    5 8 78124 28
    5 9 390624 32
    5 10 1953124 36
    5 11 9765624 40
    5 12 48828124 44
    5 13 244140624 48
    5 14 1220703124 52
    5 16 30517578124 60
    6 2 5 5
    6 3 35 10
    6 4 215 15
    6 5 1295 20
    6 6 7775 25
    6 7 46655 30
    6 8 279935 35
    6 9 1679615 40
    6 10 10077695 45
    6 11 60466175 50
    6 12 362797055 55
    7 2 6 6
    7 3 48 12
    7 4 342 18
    7 5 2400 24
    7 6 16806 30
    7 7 117648 36
    7 10 40353606 54
    7 14 96889010406 78
    7 15 6.78223E+11 84
    7 20 1.13989E+16 114
    7 21 7.97923E+16 120
    8 8 2097151 49
    8 16 3.51844E+13 105
    8 32 9.90352E+27 217
    8 64 7.84638E+56 441
    8 128 4.9253E+114 889
    8 256 1.9406E+230 1785
    10 10 999999999 81
    100 10 1E+18 891
    10 100 1E+99 891
    100 100 1E+198 9801
    64 64 6.1566E+113 3969
    128 256 #NOMBRE! 32385
    2 512 6.7039E+153 511
    3 512 6.4411E+243 1022
    4 512 4.4942E+307 1533
    8 512 #NOMBRE! 3577
    100 50 1E+98 4851
    100 100 1E+198 9801
    100 150 1E+298 14751
    50 100 1.5777E+168 4851
    100 150 1E+298 14751
    2 81 1.20893E+24 80
    81 2 80 80
    256 256 #NOMBRE! 65025

    colonne 1 : a
    colonne 2 : n
    colonne 3 : nbres de boucles utilisés (récursivité type 1)
    colonne 4: nbres de boucles utilisés (récursivité type 2)

    la récursivité du type 2 est un petit peu différente de celle du type 1

    type 1: 3^3
    3+3=6
    6+3=9
    9+3=12 etc...

    type : 3^3
    3+3=6
    6+3=9

    9+9=18
    18+27

    Quelqu'aurait déjé entendu parler de cette façon de faire (type 2)?
    On ne peut comprendre un processus en l'interrompant. La compréhension doit rejoindre le cheminement du processus et cheminer avec lui

  19. #19
    Membre du Club
    Inscrit en
    août 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Dsl pour le type 2, je ne connais pas.

    Une méthode simple (sans doute pas optimale) consiste à coder la multiplication à partir des additions (très simple), puis les puissances à partir de la multiplication que tu viens de définir.

    Au pire tu mets le code de la fonction multiplication dans la boucle de la fonction puissance et c oki.

Discussions similaires

  1. Réaliser un Chat avec support IP
    Par Sub0 dans le forum Développement
    Réponses: 12
    Dernier message: 14/07/2006, 10h59
  2. Réaliser un 'slideshow' avec OpenGL
    Par jcs2 dans le forum OpenGL
    Réponses: 13
    Dernier message: 27/01/2006, 16h07
  3. réaliser des etats avec jbuilder
    Par 2j dans le forum JBuilder
    Réponses: 3
    Dernier message: 14/01/2006, 18h59
  4. Réaliser calendrier perpetuel avec EXEL
    Par Perdus dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 20/10/2005, 08h05
  5. Réponses: 3
    Dernier message: 12/07/2005, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo