Nombre d'Armstrong En Python et/ou C(++) |
Bienvenue invité ( Connexion | Inscription )
Nombre d'Armstrong En Python et/ou C(++) |
30 Mar 2023, 09:33
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 4 Inscrit : 27 Mar 2023 Membre no 217 569 |
J'ai besoin d'imprimer tous les nombres armstrong entre 1 et 10000. Mon problème est que lorsque j'exécute mon programme et que j'atteins 150, il ne fait rien.
Code (1^3) + ((5^3)-1) + (0^3) au lieu de Code (1^3) + (5^3) + (0^3). Est-ce un bug du compilateur ? Est-il nécessaire de réinstaller mon compilateur ? J'utilise actuellement des blocs de code. Code #include <iostream> #include <math.h> using namespace std; int main() { for(int i = 0;i <= 10000;++i) { int r = i; int dig = 0; while(r != 0) { dig++; r /= 10; } int n = i, sum = 0; while(n != 0) { int d = n % 10; sum += pow(d, dig); n /= 10; } if(sum == i) cout << i << ' '; } cout << "\n\n\n"; return 0; } En conséquence, il n'imprime pas 153 (un nombre d'Armstrong), car la somme est de 152. Je ne sais pas si d'autres nombres effectuent la même chose. Mais j'ai vérifié jusqu'à 200 en utilisant cette source et il n'y a aucun problème avec les autres chiffres sauf ceux de la zone 150-160. Ce message a été modifié par Phil J. Fry - 31 Mar 2023, 12:31.
Raison de l'édition : Titre
|
|
|
30 Mar 2023, 23:21
Message
#2
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 714 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Ton Python ressemble à une Couleuvre++
Ce qui est dommage c'est que ta source donnée en lien n'est pas lisible. Après quelques secondes la lecture est bloquée. -------------------- MBP 16" Sequoia 15.0 MBA 13" Sonoma 14.6.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
30 Mar 2023, 23:33
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 567 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Ce qui est dommage c'est que ta source donnée en lien n'est pas lisible. Après quelques secondes la lecture est bloquée. Sauf si on choisit de passer en mode Lecteur avec son navigateur, en cliquant sur la petite icône en forme de page à gauche de l'URL. (Ou – chez moi – en réduisant la taille d'affichage jusqu'à voir toute la fenêtre popup qui masque l'article. Dès lors, je vois apparaître le bouton de fermeture qui était hors de l'écran et je peux fermer cette fenêtre popup pour lire le reste de l'article — mais il faut recommencer de temps en temps… Le mode Lecteur est plus commode.) -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
30 Mar 2023, 23:48
Message
#4
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 714 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Merci baron
Leur solution a l'air bien compliquée. La mienne tient en 16 instructions en Python3. -------------------- MBP 16" Sequoia 15.0 MBA 13" Sonoma 14.6.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
31 Mar 2023, 00:36
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 567 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Leur solution a l'air bien compliquée. Si j'ai bien compris la "source" de notre ami, il y a là différentes procédures pour arriver au même but limité (vérifier si tel nombre répond ou non aux critères d'un nombre d'Armstrong). Tu parlais en général ou d'une en particulier ? (Pour ma part, j'aime assez celle par les fonctions, que je comprends, à l'inverse de celle par récursion… ) Ensuite, il faudrait encore utiliser la force brute et recommencer pour chaque nombre jusqu'à 10.000. — Ce que veut de toute évidence faire le script d'alfranz, mais je suis trop analphabète en la matière pour le lire ou dire s'il y a une faille dans ce code. La mienne tient en 16 instructions en Python3. Je n'ai pas été plus loin que de parcourir l'article de Wikipedia… (et j'en ai déjà oublié bien des bouts !) Je puis au moins dire que dans la version anglaise, il y a aussi des scripts Python (et C comme ci-dessus ! ) -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
31 Mar 2023, 12:30
Message
#6
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 714 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Je change le titre pour rameuter les experts de C++ ...
-------------------- MBP 16" Sequoia 15.0 MBA 13" Sonoma 14.6.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
8 Apr 2023, 07:07
Message
#7
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 958 Inscrit : 19 May 2005 Lieu : Chateauneuf du pape Membre no 39 495 |
bonjour;
Je ne connais pas le python mais le code suivant ' action script 3.0 est facilement adaptable je crois le "trace " d'action script correspond au "print" du python le reste ne sont que des boucles, j'ai priviliégié les boucles car la boucle while incluent des calculs supplémentaires ( à voir selon les langages).. J'ai tenté aussi une approche par les nombres en base 2, sans succès. Ce code trouve les nombres Armstrong dit narcissique. Ce code a un défaut il compare la somme de cube ou de puissance dont le total est nettement supérieure à l'intervalle sur laquelle porte les recherches, par exemple 9999 des la première élévation à a la puissance 4, on a 94= 6561 de toute évidence au deuxième 9 on va être au dessus de 10 000, je n'ai pas cherché a résoudre le problème car il induit des comparaisons qui risquent d'alourdir le code voire sa célérité.( à voir) une question cette recherche des nombres Armstrong est pédagogique ou a un utilité particulière? Code var s:i,nt// somme var i:int var j:int var k:int var n:int; var l:int; var ex:int // exposant var compteur:int=0 for(i=0;i<=9;i++){ // quatre boucles pour tester les 10 000 nombres for(j=0;j<=9;j++){ for(k=0;k<=9;k++){ for(l=0;l<=9;l++){ n=compteur++; // la variablle compteur qui affiche ces nombres if( compteur< 1000) { ex=3 } // on teste les nombres en dessous de 1000; en effet ceux ci seront representés par 3 chifres et ces trois chiffres seront elevés au cube if( compteur > 999){ ex=4;} // on teste les nombres en dessus de 1000; en effet ceux ci seront representés par 4 chifres et ces 4 chiffres seront elevés a la puissance 4 s=Math.pow(i,ex)+Math.pow(j,ex)+Math.pow(k,ex)+Math.pow(l,ex); // On élève les trois ou les quatre chiffre au cube ou à la puissance 4 selon les conditions if (s==n && n>=100) trace (s + " est un nombre armstrong") // On compare les nombres donnés par le compteur aux nombres donné par le calcul de la somme des puissances, si ce nombre est similaire nous avons un armstrong }}}} et la sortie les nombres Armstrong pour 10 000 153 est un nombre armstrong 370 est un nombre armstrong 371 est un nombre armstrong 407 est un nombre armstrong 1634 est un nombre armstrong 8208 est un nombre armstrong 9474 est un nombre armstrong en langage C Code #include <stdio.h>
#include <stdlib.h> #include <math.h> int main(int argc, const char * argv[]) { int s=0;// somme int i=0, j=0 ,k=0, n=0 , l=0,compteur=0; int ex=0; // exposant for(i=0;i<=9;i++){ // quatre boucles pour tester les 10 000 nombres for(j=0;j<=9;j++){ for(k=0;k<=9;k++){ for(l=0;l<=9;l++){ n=compteur++; // la variablle compteur qui affiche ces nombres if( compteur< 1000) { ex=3;} // on teste les nombres en dessous de 1000; en effet ceux ci seront representés par 3 chifres et ces trois chiffres seront elevés au cube if( compteur > 999){ ex=4;} // on teste les nombres en dessus de 1000; en effet ceux ci seront representés par 4 chifres et ces 4 chiffres seront elevés a la puissance 4 s = pow(i,ex)+ pow(j,ex)+ pow(k,ex)+ pow(l,ex); // On élève les trois ou les quatre chiffre au cube ou à la puissance 4 selon les conditions if (s==n && n>=100) printf ( " %d est un nombre armstrong \n",s);// On compare les nombres donnés par le compteur aux nombres donné par le calcul de la somme des puissances, si ce nombre est similaire nous avons un armstrong }}}} return 0; } Ce message a été modifié par hubeert - 8 Apr 2023, 12:48. -------------------- Musique techno avec MAO (Logic Pro)
des que quelqu'un a du pouvoir il croit détenir la vérité... Des que quelqu'un a un clavier il A la la vérité.(Forcément) |
|
|
6 Jul 2023, 21:05
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Je sais que ça n'aide pas vraiment... je déterre un sujet et je change le langage...
En APL, on peut décoder un nombre en un vecteur de ses chiffres. Code 10 10 10 10 10⊤153 0 0 1 5 3 On peut prendre la puissance 3 d'un vecteur, ce qui produit le vecteur de la puissance 3 de chaque élément. Code (10 10 10 10 10⊤153)*3 0 0 1 125 27 On peut sommer les éléments d'un vecteur par une réduction par l'addition : Code +/(10 10 10 10 10⊤153)*3 153 On peut comparer ce résultat au nombre lui-même Code 153 = +/(10 10 10 10 10⊤153)*3 1 On peut transformer cette expression en fonction lambda (sans nom) en plaçant des accolades autour et en remplaçant l'argument par omega Code {⍵ = +/(10 10 10 10 10⊤⍵)*3} {⍵=+/(10 10 10 10 10⊤⍵)*3} On peut la nommer: armstrong(int) -> bool Code armstrong ← {⍵ = +/(10 10 10 10 10⊤⍵)*3} On peut distribuer la fonction avec un opérateur "chaque" (symbolisé par des trémas), à chacun des arguments de droite Code armstrong ¨ 1 2 3 1 0 0 On peut utiliser ce masque booléen pour filtrer un vecteur de même taille. Donc seul 1 est un nombre d'Armstrong dans le vecteur de 1 à 3 Code (armstrong ¨ 1 2 3)/1 2 3 1 On peut générer un vecteur d'indices avec l'opérateur iota: Code (armstrong ¨ ⍳3)/ ⍳3 1 On transforme l'expression en fonction: Code {(armstrong ¨ ⍳⍵)/ ⍳⍵} {(armstrong¨⍳⍵)/⍳⍵} Et finalement, l'appliquer jusqu'à la limite demandée: Code {(armstrong ¨ ⍳⍵)/ ⍳⍵} 10000 1 153 370 371 407 Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong J-P Ce message a été modifié par Jaypee - 7 Jul 2023, 05:38. |
|
|
10 Jul 2023, 06:07
Message
#9
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 958 Inscrit : 19 May 2005 Lieu : Chateauneuf du pape Membre no 39 495 |
bonjour ; :
que veux tu dire par ta note : Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong de quel javascript parles tu ?et de quel nombre ? sinon 9474 = 94+44+ 74+44 . = 6561+ 256 + 2401 + 256 = 9474 ce qui correspond a la définition d'un Armstrong un nombre égal à la somme de tous ses chiffres élevés à la puissance correspondante aux nombre de chiffre le composant ( ici 4) Sinon ton code est sympa mais sans connaitre l'APL difficile de comprendre pour moi ; malgré les commentaires explicatif Bonne journée a tout le monde. Ce message a été modifié par hubeert - 10 Jul 2023, 06:24. -------------------- Musique techno avec MAO (Logic Pro)
des que quelqu'un a du pouvoir il croit détenir la vérité... Des que quelqu'un a un clavier il A la la vérité.(Forcément) |
|
|
10 Jul 2023, 06:36
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 297 Inscrit : 1 Nov 2021 Membre no 214 848 |
...je déterre un sujet.... Pour en revenir au programme c++ d'origine: Un programme c++ doit toujours inclure la définition des variables. Si tu travaillais en octets signés, après 128 ça coince. -------------------- "Les gens douteront toujours de la vérité sur Internet car l'erreur est constamment prêchée autour de nous" Johann Wolfgang von Goethe
MBP 15" 2014 Retina ( Win11 + Mojave), Macbook Air 2013 (en voyage), iMac 2015 27" Retina (Mojave + Win11), Macbook blanc 2008 (Mate), pour ne citer que les Macs. |
|
|
14 Jul 2023, 10:44
Message
#11
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
bonjour ; : que veux tu dire par ta note : Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong de quel javascript parles tu ?et de quel nombre ? sinon 9474 = 94+44+ 74+44 . = 6561+ 256 + 2401 + 256 = 9474 ce qui correspond a la définition d'un Armstrong un nombre égal à la somme de tous ses chiffres élevés à la puissance correspondante aux nombre de chiffre le composant ( ici 4) Sinon ton code est sympa mais sans connaitre l'APL difficile de comprendre pour moi ; malgré les commentaires explicatif Bonne journée a tout le monde. Au temps pour moi, je n'avais vu que les exemples ne dépassant la puissance 3. La meilleure façon de se faire une idée d'APL est le portail Try APL Il y a des règles simples : on le lit strictement de droite à gauche, les opération arithmétiques sont celles sur le clavier des calculettes : + - x ÷ 2 x 3 + 1, un plus trois égale 4, fois deux, égale 8. En revanche, (2 x 3) + 1 égale 7 avec les parenthèses. APL est un langage d'IBM, dont le premier portable le 5100, antérieur à l'Apple II et au PC, se programmait en APL, une version BASIC a été créée par la suite. Bonne journée à toi également, JP PS: Pour te donner ( un peu ) raison, une version vraiment illisible mais qui fait le job jusqu'à 1 000 000 (testable sur Try APL) Code {({⍵ = +/v*⍴v←10⊥⍣¯1⊢⍵} ¨ ⍳⍵)/⍳⍵} 1000000 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 v est une variable locale qui est le vecteur des chiffres, dont la dimension, le nombre de chiffres est noté rho de v, et le vecteur est monté à la puissance rho de v : v*⍴v puis réduit par l'addition +/v*⍴v et comparé à l'argument ⍵: ⍵ = +/v*⍴v qui produit un résultat 0 ou 1 pour faux ou vrai. Comment obtient-on v ? Iil existe une syntaxe très simple pour encoder un nombre à partir de ses chiffres: 10⊥chiffres, avec chiffres = (c1, c2, c3...), c'est sa réciproque notée ⍣¯1, un peu comme dans ƒ-1, qui est utilisée pour obtenir v : v←10⊥⍣¯1⊢, expression qu'on applique à l'argument initial ⍵ : v←10⊥⍣¯1⊢⍵. Au lieu d'être noté "chiffres", l'argument de cette expression est noté ⊢ Code 10⊥1 2 3
123 (10⊥⍣¯1⊢) 456 4 5 6 Ce message a été modifié par Jaypee - 15 Jul 2023, 08:37. |
|
|
15 Jul 2023, 11:22
Message
#12
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 958 Inscrit : 19 May 2005 Lieu : Chateauneuf du pape Membre no 39 495 |
coucou;
il n'y a pas de mal. Oui je suis allé voir sur le lien qu'a donné Baron et je vais aller voir ton lien. Le problème pour moi, c'est de comprendre la logique ( pas la logique, mais l'utilité pratique avec des exemples), deja savoir qu'on lit de droite a gauche sans priorité, je ne lavais pas vu . Je vais regarder toutes tes indications et essayer de comprendre !!! c'est pas gagné lol. Bon WK -------------------- Musique techno avec MAO (Logic Pro)
des que quelqu'un a du pouvoir il croit détenir la vérité... Des que quelqu'un a un clavier il A la la vérité.(Forcément) |
|
|
15 Jul 2023, 21:43
Message
#13
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
... Le problème pour moi, c'est de comprendre la logique ( pas la logique, mais l'utilité pratique avec des exemples), deja savoir qu'on lit de droite a gauche sans priorité, je ne lavais pas vu . J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité. Ici la logique de très haut niveau est qu'on génère un vecteur booléen pour filtrer la liste des entiers de 1 à la limite qu'on donne. C'est une technique très courante en APL. Pour construire le vecteur booléen on utilise un prédicat qui détermine si un entier est un nombre d'Armstrong ou pas, et on le mappe, ou on le distribue sur la suite des entiers de 1 à la limite qu'on donne. Utiliser explicitement la distribution n'est pas très dans l'esprit APL, puisqu'il travaille naturellement avec des vecteurs. @+JP |
|
|
15 Jul 2023, 23:18
Message
#14
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 567 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité. C'est là : https://forum.macbidouille.com/index.php?sh...=419131&hl= (Et pour les plus curieux, ça vaut la peine de parcourir toute l'œuvre de Jaypee sur ces forums… ) -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
16 Jul 2023, 03:11
Message
#15
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 297 Inscrit : 1 Nov 2021 Membre no 214 848 |
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité. Ici la logique de très haut niveau est qu'on génère un vecteur booléen pour filtrer la liste des entiers de 1 à la limite qu'on donne. C'est une technique très courante en APL. Pour construire le vecteur booléen on utilise un prédicat qui détermine si un entier est un nombre d'Armstrong ou pas, et on le mappe, ou on le distribue sur la suite des entiers de 1 à la limite qu'on donne. Utiliser explicitement la distribution n'est pas très dans l'esprit APL, puisqu'il travaille naturellement avec des vecteurs. Comme disait De Gaulle: C'est du Volapük. -------------------- "Les gens douteront toujours de la vérité sur Internet car l'erreur est constamment prêchée autour de nous" Johann Wolfgang von Goethe
MBP 15" 2014 Retina ( Win11 + Mojave), Macbook Air 2013 (en voyage), iMac 2015 27" Retina (Mojave + Win11), Macbook blanc 2008 (Mate), pour ne citer que les Macs. |
|
|
16 Jul 2023, 07:41
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité. C'est là : https://forum.macbidouille.com/index.php?sh...=419131&hl= (Et pour les plus curieux, ça vaut la peine de parcourir toute l'œuvre de Jaypee sur ces forums… ) Merci, mais ça me donne un peu le vertige...ça fait à peu près 20 ans, j'ai commencé ici, avec ces fameux 15 min de gloire qu'Andy Warhol promet à tout un chacun : Au début de MacOS, chaque mise à jour pouvait casser pas mal de chose. Y compris les premières versions d'Xcode ou de l'installateur de logiciel. Or 20 ans en arrière, on est en pleine révolution de l'ADSL, et sur macOS beaucoup de gens utilisaient pour cet accès Internet le modem USB de France Télécom, la Raie Manta verte. Juste avant la sortie de la version Jaguar, catastrophe ! On découvre que le pilote du modem ne s'installe plus sous Jaguar, donc il fallait choisir entre être à jour et garder l'accès ADSL. Pour cette mise à jour Apple a commencé à s'intéresser de manière plus précise au numéro de version du logiciel pour pouvoir ensuite tester les compatibilités. Or dans la version précédente de l'OS, les outils comme Xcode notait cette version dans deux fichiers différents (sans doute un .h et un .txt, pour la compilation, puis pour le packaging). Or un bug d'Xcode faisait que les deux fichiers pouvaient ne pas être d'accord. Mais ce n'était pas détecté par l'installateur de l'ancienne version qui ne les comparait pas. Arrive Jaguar, qui veut faire bien les choses et qui se met à comparer les deux fichiers, et comme l'installateur du pilote du modem avait été créé avec l'ancien Xcode, il avait cette incohérence, que Jaguar maintenant détectait. Pour une raison dont je ne me souviens plus, je crée un produit vide (pas de code, juste les éléments nécessaires à créer un kit), et je l'installe sur Jaguar, et boum ! exactement le même message que pour le pilote ADSL. De là j'ai pu corriger les deux fichiers textes inclus dans le kit ADSL, le re-packager et pendant quelques heures j'ai été le seul utilisateur de Mac au monde à pouvoir surfer l'ADSL sur Jaguar via l'USB! J'ai essayé de diffuser l'info partout, jusqu'en Australie, chaque fois que je tombais sur un forum où les macusers confiaient leurs soucis avec Jaguar et l'ADSL. Et j'ai reçu énormément de témoignages de sympathie. Voilà comment j'ai débuté ici. JP Comme disait De Gaulle: C'est du Volapük. Je verrais ça plutôt comme du latin, du grec ou de l'hébreu. Les fois où ça sert, on est content d'avoir fait l'effort d'apprendre. JP |
|
|
Nous sommes le : 24th September 2024 - 03:01 |