Informatique


Les boucles


 
  • Écrire l'algorithme permettant de réaliser l'affichage suivant en utilisant:
    • TANT QUE / WHILE
    • FAIRE TANT QUE / DO WHILE
    • POUR / FOR
    • Quelle est la valeur du compteur de boucle au moment de la sortie, afficher cette valeur à l'écran
    Boucle 0;
    Boucle 1;
    Boucle 2;
    Boucle 3;
    Boucle 4;
    Boucle 5;
  • Écrire l'algorithme permettant de réaliser l'affichage suivant en utilisant:
    • TANT QUE / WHILE
    • POUR / FOR
    • Quelle est la valeur du compteur de boucle au moment de la sortie, afficher cette valeur à l'écran
    Tour 10;
    Tour 11;
    Tour 12;
    Tour 13;
    Tour 14;
  • Ecrire l'algorithme demandant à l'utilisateur une valeur entière N.
    Ensuite faire tourner une boucle (faire l'exercice avec TANT QUE/while et POUR/for) N fois et afficher le résultat sous la forme:

    Valeur entrée: N
    Passage 1
    Passage 2
    Passage 3
    Passage ...
    Passage N
  • Jean- François aimerait s'acheter un nouveau smartphone, il coûte 682€.
    Jean-François dispose de 232€ dans son petit cochon, ses parents lui donnent 150€ d'argent de poche par mois et il décide d'en économiser 74€ qu'il place précieusement chaque mois dans son cochon.
    Dans combien de mois le petit cochon de Jean-François contiendra-t-il assez d'argent pour acheter le smartphone tant désiré?
  • Calculer factorielle N (entier positif ou nul). Rappel: N! = 1 *2*...*(N-1)*N
    On demande d'appeler à partir de l'algorithme principal:
    • un module d'initialisation pour la valeur souhaitée par l'utilisateur
    • un module de traitement (calcul du factoriel)
    • un module d'affichage pour le résultat
  • Calculer la somme et la moyenne d'une série de nombres donnée par l'utilisateur.
    Envisager deux cas :
    1. on demande à l'utilisateur d'introduire d'abord le nombre de valeurs à additionner;
    2. l'utilisateur interrompt la saisie au moyen d'une valeur (qui lui est précisée!!) et qui ne comptera pas dans le calcul de la somme.
  • Faire un module. Notion de sentinelle : à partir d'une série de nombres entiers positifs, rechercher le plus grand (la série se terminera lorsque l'utilisateur introduira le nombre négatif -1).
  • Génération de suites : énumérer les N premiers termes des suites suivantes
    1. 1, 2, 4, 7, 11, 16, ...
    2. 1, 2, 4, 5, 7, 8, 10, 11...
    3. 0, 1, 5, 14, 30, 55, 91, 140... (Démo ite_8c.htm)
    4. 0, 1, 1, 2, 3, 5, 8, 13, 21, ... (suite de Fibonacci)
  • Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants.
    Par exemple, si l'utilisateur entre le nombre 17, le programme affichera 18 19 20 21 22 23 24 25 26 27
  • Ecrire un module qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) :
    7 * 1 = 7
    7 * 2 = 14
    7 * 3 = 21
    ...
    7 * 10 = 70
  • On appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante : on part d'un nombre entier plus grand que zéro ; s’il est pair, on le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. En répétant l’opération, on obtient une suite d'entiers positifs dont chacun ne dépend que de son prédécesseur.
    Par exemple, à partir de 14, on construit la suite des nombres : 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2… C'est ce qu'on appelle la suite de Syracuse du nombre 14. Après que le nombre 1 a été atteint, la suite des valeurs (1,4,2,1,4,2…) se répète indéfiniment en un cycle de longueur 3, appelé cycle trivial.
    Quelle que soit la valeur de u0 il existe n tel que un=1
    un+1=un/2 si un est pair
    un+1=3un + 1 si un est impair
    1. DémoEcrire le module qui prend en paramètre la valeur un et renvoie celle de un+1
    2. DémoEcrire le module qui prend en paramètre la valeur u0 et renvoie la valeur ne n pour laquelle u est égale à 1
    3. DémoEcrire le module qui prend en paramètre la valeur n, recherche la valeur (entre 1 et n) pour laquelle le nombre d'étapes est le plus important pour atteindre 1, renvoie la valeur de uo trouvée et/ou le nombre d'étapes calculées.
  • Voici le code html et son résultat.
    Peux-tu générer dynamiquement ce code JS?
  • Démo Démontrer que lorsqu'on jette un dé 100 fois on obtient quasi le même nombre de fois 1, 2, 3, 4, 5 et 6, car 100 est un grand nombre.
    On propose d'afficher le nombre de fois que chaque chiffre apparaît.
  • Calculer la somme des chiffres qui composent un nombre entier quelconque N. Attention, on lit au départ le nombre mais pas ses chiffres. Exemple: 133045 doit donner comme résultat 16, puisque 1 + 3 +3+0+4+5= 16
  • Jean-François Akbar aime construire des châteaux de cartes.
    Il te demande un programme lui permettant de prévoir le nombre de cartes nécessaires selon le nombre d'étages désiré.
    Il t'apprend que pour un château:
    • de 1 étage il faut 2 cartes
    • de 2 étages il faut 7 cartes
    • de 3 étages il faut 15 cartes
    • de 4 étages il faut 26 cartes
    • ...un algorithme sera plus simple pour le reste!
    A toi de jouer!
  • Tu n'en as pas fini avec Jean-François Akbar, il veut savoir le nombre d'étages maximum possible avec un nombre de cartes X, sois gentil et fais un petit module pour lui faire plaisir.
  • Eléonore El Ajoui dispose d'un petit capital de 4000€, elle le place au taux de 1.4% pendant 5 ans:
    1. combien vaudra ce capital à l'échéance?
    2. dans combien d'années le capital aura dépassé 5000€
  • Etant donné un nombre binaire entier positif, convertir ce nombre en base 10.
  • Ecrire l'algorithme qui, étant donné un nombre entier lu, affiche si ce nombre est divisible par 9.
    Pour rappel: un nombre est divisble par 9 si la somme des chiffres de ce nombre est divisible par 9.
  • Ecrire l'algorithme qui, étant donné un nombre entier lu, affiche si ce nombre est divisible par 4.
    Pour rappel: un nombre est divisble par 4 si les 2 derniers chifrres de ce nombre sont divisibles par 4.
  • Etant donné un nombre décimal entier positif, convertir ce nombre en base 2.
  • Vérifier si un entier positif est un nombre premier. (Rappel : un nombre est premier s'il n'est divisible que par 1 et par lui-même.)
  • Lorsque l'utilisateur introduira une série de triangles (donnés chacun par trois entiers à savoir les trois longueurs des côtés de ce triangle), l'algorithme devra pour chaque triangle afficher s'il s'agit d'un triangle rectangle, d'un triangle équilatéral, d'un triangle isocèle ou d'un triangle scalène.
  • Même exercice que le 9 mais avec une présentation modulaire.
  • Calculer le PGCD (plus grand commun diviseur) de deux entiers positifs.
  • Calculer le PPCM (plus petit commun multiple) de deux entiers positifs.
  • Dans une tombola, les billets vendus comportent un numéro de 6 chiffres. Après la vente des billets, on décide que les numéros gagnants sont ceux qui contiennent exactement 4 fois le chiffre 1. Ecrire un algorithme qui lit une série de numéros et qui dit s'ils sont gagnants ou non. A la fin, il faut afficher le nombres de billets gagnants.
  • Etant donné les heures de départ et d'arrivée (en heures, minutes et secondes) d'un voyage en avion, écrire un algorithme calculant le temps de vol (en heures, minutes et secondes) sachant que l'avion reste dans le même fuseau horaire.
  • A partir d'une série de nombres entiers positifs compter ceux qui sont divisibles par 3 et les afficher. En fin de traitement on affichera la quantité de nombres divisibles par 3.
  • Etant donné un capital à placer pendant une certaine période à un certain taux, sachant que les intérêts sont capitalisés au bout de chaque année, calculer et afficher les informations suivantes et pour chaque année: l'année, le capital de départ, l'intérêt, le capital obtenu.
  • Concevoir le module PUISSANCE qui reçoit en paramètres deux nombres entiers et qui retourne le résultat de l'élévation du premier à la puissance du deuxième. Pour cet exercice on ne peut pas utiliser l'opérateur « élévation à la puissance ».
  • Ecrire le module permettant de lire la suite des prix (en euros entiers) des achats d’un client.
    Calculer la somme qu’il doit, lire la somme qu’il paye, et simuler la remise de la monnaie en affichant les textes "10 Euros", "5 Euros" et "1 Euro" autant de fois qu’il y a de coupures de chaque sorte à rendre.
  • Calculer le produit de deux entiers quelconques, sans utiliser les opérateurs de multiplication et de division.
  • Effectuer la division entière de deux nombres entiers positifs, sans utiliser les opérateurs de multiplication et de division.
    Les résultats seront un quotient et un reste.
  • Idem précédent mais cette fois on effectue la division réelle de deux entiers positifs, on demandera également combien de chiffres l'utilistaue désire après la virgule!
  • Concevoir le jeu de la fourchette qui consiste à chercher un nombre quelconque compris entre 1 et 100 inclus, tiré au sort par l'ordinateur (primitive HASARD). L'utilisateur a droit à huit essais maximum. A chaque essai, l'algorithme devra afficher un message indicatif « nombre donné trop petit » ou « nombre donné trop grand ». En conclusion, soit « bravo, vous avez trouvé » ou « désolé, vous avez épuisé vos huit essais, le nombre était X ».
  • Ecrire un module qui reçoit un nombre entier positif ou nul en paramètre et qui affiche le nombre de fois que chaque chiffre apparaît dans ce nombre. Ainsi, pour le nombre 10502851125, le chiffre 0 apparaît 2 fois, 1 apparaît 3 fois, 2 apparaît 2 fois, 5 apparaît 3 fois, 8 apparaît une fois, les autres chiffres apparaissent 0 fois.
  • Le 22 juin 2020 5 amis décident d'organiser un gigantesque pique-nique au parc Josaphat le 30 juin pour fêter la fin des examens.
    Ils décident qu'ils doivent chacun convaincre 3 autres personnes le lendemain (23 juin), que ces même personnes devront elles aussi convaincre chacune 3 personnes le lendemain (24 juin) et ainsi de suite jusqu'au 30 juin inclus.
    Aucune personne n'a été contactée par 2 personnnes différentes ou plus.
    Le message sera: "Viens avec ta bouffe le 30 juin au parc Josaphat".
    1. DémoCombien de personnes seront présentes le 30 juin sachant que tout le monde a parfaitement rempli sa mission. Ecris le module nombrePersonnes(initiateurPiquenique)
    2. DémoCombien de personnes auraient été présentes si n personnes avaient initié cette splendide idée dans un délais de m jours avant l'événement. Ecris le module nombrePersonnes(initiateurPiquenique,nbrJourAvant)
    3. DémoDétermine le nombre de jours nécessaire pour que le nombre d'invités dépasse 1 milliard