Calculs sous Scratch

On peut démarrer par des itérations simples amenant aux opérations telles que la multiplication ou l'élévation à la puissance...en revenant donc aux fondamentaux !

Opérations "de base"

Effectuer un produit avec des additions
Une boucle ramène à la définition du produit par un entier.
produit_additions.zip
Archives compressées en format ZIP 41.2 KB
Effectuer un produit avec des additions : une évolution
Une liste permet de visualiser les calculs faits.
produit_additions_2.zip
Archives compressées en format ZIP 41.3 KB
Elévation à la puissance avec des multiplications
Ce qui peut être intéressant ici par rapport aux programmes précédent, c'est le changement nécessaire dans l'initialisation : 1 et non 0.
puissance_produits.zip
Archives compressées en format ZIP 41.2 KB
Elévation à la puissance avec des multiplications : une évolution
Une liste.
puissance_produits_2.zip
Archives compressées en format ZIP 41.3 KB

Retour sur des multiplications à partir d'additions en boucle, en demandant cette fois les deux facteurs de la multiplication souhaitée.

Multiplication en demandant les deux nombres
La boucle intègre donc une des variables.
produit_additions_3.zip
Archives compressées en format ZIP 41.4 KB
élévation à une puissance
Ici on demande le nombre de départ et l'exposant auquel il est élevé.
puissance_produits_3.zip
Archives compressées en format ZIP 41.5 KB

Avec cette demande, on peut très vite tomber sur des calculs très importants. Il peut alors être souhaitable de limiter la valeur maximale de l'exposant.

élévation à une puissance limitée à un maximum
On boucle jusqu'à une valeur d'exposant inférieure à une valeur choisie.
puissance_produits_4.sb2.zip
Archives compressées en format ZIP 53.9 KB
élévation à une puissance : la valeur de l'exposant est encadrée.
Même si le programme fonctionne pour un exposant nul, on peut demander avec un bloc logique de restreindre les exposants dans un intervalle.
puissance_produits_5.sb2.zip
Archives compressées en format ZIP 53.9 KB

Entier...ou pas ?

Entier ou pas
Un programme très simple pour illustrer le si...alors...sinon
entier_ou_pas.zip
Archives compressées en format ZIP 41.1 KB
Entier ou pas : saison 2
Moins performant que le précédent : il cherche juste s'il y a un "." dans l'écriture du nombre. Il n'est donc pas possible de conclure définitivement (1 = 1.0)
entier_ou_pas2.zip
Archives compressées en format ZIP 41.2 KB
Demi-entier
Outre le test entre l'arrondi et le nombre (les doubles), un 'et logique' assez facile d'usage.
demi-entier.zip
Archives compressées en format ZIP 44.9 KB

Programmes de calculs

 1er programme

On va s'intéresser ici au programme de calculs :

  • multiplier par 3
  • ajouter 2
programme de calculs
Une difficulté peut être que la variable change de valeur au fur et à mesure du calcul.
programme_calcul_1.zip
Archives compressées en format ZIP 41.0 KB
programme de calculs avec les étapes
Avec cette programmation, on peut visualiser dans une liste les étapes de calcul.
programme_calcul_2.zip
Archives compressées en format ZIP 41.2 KB
programme de calculs en une instruction
Toutes les opérations sont mises en une seule fois.
programme_calcul_3.zip
Archives compressées en format ZIP 41.0 KB
programme de calculs et priorité
On voit ici la "nuance" entre :
3a+2 et 3(a+2)
mais cette "nuance" peut être difficile à voir sur Scratch !
programme_calcul_4.zip
Archives compressées en format ZIP 41.1 KB

Ceci est rapidement montré dans cette vidéo :

2ème programme

calculs de l'exercice 2 du sujet 2015
On met ici clairement en évidence les étapes.
Il y a de plus la nécessité de garder en mémoire le nombre de départ.
brevet2015_exercice2.zip
Archives compressées en format ZIP 42.7 KB
calculs de l'exercice 2 du sujet 2015
En créant une liste pour les nombres de départ (antécédents) et une autre pour les nombres d'arrivée (images).
brevet2015_exercice2_2.zip
Archives compressées en format ZIP 43.2 KB
calculs de l'exercice 2 du sujet 2015
Les calculs ne s'affichent plus automatiquement. Pour obtenir le 1er résultat, il faut appuyer sur 1, pour le deuxième, il faut appuyer sur 2, ...
Cela peut pratique dans un usage en classe.
brevet2015_exercice2_3.zip
Archives compressées en format ZIP 43.2 KB
calculs de l'exercice 2 du sujet 2015 modifiés
Dans cette version, on garde les mêmes opérations mais on choisit les valeurs au fur et à mesure.
brevet2015_exercice2_modifié.zip
Archives compressées en format ZIP 43.4 KB
calculs de l'exercice 2 du sujet 2015 modifiés
On peut retester la modification faite, pas à pas. Les différentes opérations sont mémorisées.
brevet2015_exercice2_modifié2.zip
Archives compressées en format ZIP 43.6 KB

Programme de Calculs : conversion de températures

Convertir de °C et °F
conversion_C_F.zip
Archives compressées en format ZIP 60.8 KB

Conjecture de Syracuse (3n+1)

La conjecture de Syracuse offre des possibilités de travaux tant sur tableur que sur logiciel d'algorithmique.

Le procédé :

On a un nombre de départ.

S'il est pair, on le divise par deux.

S'il est impair, on le multiplie par 3 et on ajoute 1.


On applique à nouveau le procédé au nombre obtenu.


la conjecture dit qu'on arrivera toujours à 1. Les calculs s'arrête alors.

Conjecture de Syracuse
aussi appelée conjecture du 3n+1
Syracuse_1.zip
Archives compressées en format ZIP 42.1 KB
avec quelques ajouts
La durée de vol est le nombre d'itérations nécessaire avant d'arriver à 1.
L'altitude maximale est la plus haute valeur obtenue dans les calculs.
Syracuse_2.zip
Archives compressées en format ZIP 41.5 KB

Calcul de PGCD

Un grand classique !

Ci-dessous, 3 programmes : un programme avec la méthode par soustractions successives et deux programmes avec les divisions.

Soustractions successives
Dans ce programme, il faut indiquer d'abord le plus grand nombre, ensuite le plus petit.
PGCD_soustractions.zip
Archives compressées en format ZIP 41.2 KB
Algorithme d'Euclide
Dans ce programme, il faut indiquer d'abord le plus grand nombre, ensuite le plus petit.
PGCD_divisions_1.zip
Archives compressées en format ZIP 41.2 KB
Algorithme d'Euclide
Dans ce programme, on peut les nombres de départ dans l'ordre que l'on souhaite.
PGCD_divisions.zip
Archives compressées en format ZIP 41.2 KB

...DES TRIS...

Tri bulle

Tri bulle
Programmation de base, sans chercher à améliorer la performance.
tri_bulle_1.zip
Archives compressées en format ZIP 42.1 KB
Tri bulle "amélioré"
Sur mon ordinateur, pour trier 50 nombres, le premier programme travaille pendant 1 minute et 24 secondes alors que celui-ci ne nécessite que 42 s !
Il va donc deux fois plus vite !
tri_bulle_2.zip
Archives compressées en format ZIP 42.2 KB

Tri par insertion

Tri par insertion
On imagine qu'on dispose d'une liste déjà ordonnée dans laquelle on veut intégrer un élément nouveau :
- s'il est plus petit que le 1er, on le met en premier
- s'il est compris entre le ième et le (i+1)ème, on le met en (i+1)ème
-s'il est plus grand que le dernier, on le met en dernier
tri_insertion.zip
Archives compressées en format ZIP 42.1 KB

Tri par sélection

Tri par sélection
On cherche le plus petit élément d'une liste et on le met au début d'une autre liste.
Dans la liste de départ, on recommence avec les éléments qui restent autant de fois que nécessaire.
tri_sélection.zip
Archives compressées en format ZIP 41.6 KB

Tri par fusion

tri fusion
La liste est séparée en deux listes de taille comparable (à 1 valeur près). Chaque petite liste est triée (tri bulle) puis la liste de départ est reconstituée en comparant successivement les termes des petites listes.
Pour trier 50 valeurs : 4 secondes.
Pour trier 500 valeurs : 35 secondes.
tri_fusion.zip
Archives compressées en format ZIP 42.5 KB

Somme des cubes des chiffres d'un nombre...

Petit problème : déterminer les nombres à trois chiffres égaux à la somme des cubes de leurs chiffres.

On peut montrer qu'il y en a 4 : 153 ; 370 ; 371 et 407.


Voici 2 programmations de ce petit problème.

somme des cubes
cube_somme_chiffres2.zip
Archives compressées en format ZIP 41.6 KB
somme des cubes : autre approche
cube_somme_chiffres3.zip
Archives compressées en format ZIP 41.5 KB

Suite de Fibonacci

suite de Fibonacci
Avec écriture des rapports successifs convergents vers le nombre d'or.
Fibonacci.zip
Archives compressées en format ZIP 42.2 KB

Diviseurs, facteurs premiers

Diviseurs
Ce programme établit la liste des diviseurs d'un nombre compris entre 1 et 1000000.
Il est intéressant alors de chercher comment améliorer les performances : il reste une marge de manoeuvre importante !
diviseurs.zip
Archives compressées en format ZIP 41.5 KB
Décomposition en facteurs premiers
Une liste de nombres premiers (inférieurs à 1250) a été saisie et permet la décomposition de tout nombre entier jusqu'à 1250.
facteurs premiers.zip
Archives compressées en format ZIP 42.7 KB

Diviseurs : bases

Convertir en binaire
Passe un nombre de la base 10 à la base 2.
binaire.zip
Archives compressées en format ZIP 41.6 KB
Convertir un nombre en base 10 dans une base de 2 à 9.
base_inf_10.zip
Archives compressées en format ZIP 41.6 KB

Recherche d'un nombre mystère : dichotomie

nombre mystère
Un nombre à découvrir en un nombre limité d'essais.
nombre mystère.zip
Archives compressées en format ZIP 41.4 KB

Calendrier : jour de la semaine

Jour de la semaine
On entre une date au format JJ/MM/AAAA et le programme donne le jour de la semaine correspondant.
joursemaine.zip
Archives compressées en format ZIP 42.5 KB

Racine carrée et suite

calcul de la racine carrée d'un nombre
en travaillant à partir d'une suite de nombres...
calcul_racine_carrée.zip
Archives compressées en format ZIP 40.8 KB

Mouvement généré aléatoirement

Faire tourner le lutin en se basant sur un tirage aléatoire
On pourrait l'appeler : lutin crétin !
rotation lutin dé.zip
Archives compressées en format ZIP 40.7 KB