Paul Hartrick dot com Paul Hartrick dot com






The First Program I Ever Wrote Le premier programme que j'ai jamais écrit

Feb 7th 2008 7 février 2008
4 Comments 4 Commentaires
261 views 261 vues
respond répondre
trackback trackback

Todays post is in response to a good friend of mine always asking about the “Mumbo Jumbo” that I talk about or create during the course of my job. Todays poste est en réponse à un de mes bons amis demandent toujours sur les "Mumbo Jumbo" que je parle ou de créer au cours de mon travail. “Mumbo Jumbo” is actually “Japanese English” for technical talk according to some. "Mumbo Jumbo" est en fait "anglais japonais" pour les discussions techniques en fonction de certains. I have to take you all back to when I was about 14 years old, this is when I purchased my first computer. Je dois vous prendre tous Retour à quand j'avais environ 14 ans, c'est à ce moment que j'ai acheté mon premier ordinateur. My first computer wasn't an IBM 486 or 386, or even a 286, my first computer was a Casio PB-100. Mon premier ordinateur n'était pas un IBM 486 ou 386, ou même un 286, mon premier ordinateur était un Casio PB-100.

Here are the details of my first PC. Voici les détails de mon premier PC.

Casio PB 100

The PB-100 represents Casio's step towards “real” pocket computers. Le PB-100 représente l'étape de Casio en direction de "réelle" des ordinateurs de poche. While its ancestor, the Alors que son ancêtre, le FX-702P FX-702P , was still called “Programmable Calculator”, the PB-100 proudly bears the title “Personal Computer”. , Était encore appelé "Programmable Calculator", le PB-100 porte fièrement le titre de "Personal Computer".

In its standard version, it is equipped with 1 KB of RAM which results in only 544 bytes for BASIC, which is really limiting. Dans sa version standard, elle est équipée avec 1 Ko de RAM qui se traduit par plus que 544 octets pour base, qui est vraiment limiter. At least, with the memory module OR-1, it can be upgraded to 1568 bytes of user memory, so it begins to make sense that BASIC memory can be subdivided into 10 independent program areas. Au moins, avec le module de mémoire ou-1, il peut être amélioré à 1568 octets de mémoire utilisateur, de sorte qu'il commence à faire sens que BASIC mémoire peut être subdivisé en 10 domaines de programme indépendant.

The main circuits of the PB-100 are basically made up of two chips. Les circuits principaux du PB-100 sont essentiellement constitués de deux puces. Processor logics, ROM, display driver, and keyboard controller are integrated in a single CMOS VLSI chip HD61913, which has an external 4-bit bus. Logiques du processeur, ROM, pilote d'affichage, et le contrôleur de clavier sont intégrés dans un HD61913 seule puce VLSI CMOS, qui a un bus externe de 4 bits. The second main component is a HD61914, which is a 8192-bit static RAM organized as 2048 words by 4 bits. La deuxième composante principale est un HD61914, qui est un 8192-RAM peu statique organisée comme 2048 mots de 4 bits.

I had the lot, 1k ram upgrade for a total of 1.5k of ram, thermal printer and tape drive, needless to say it want a very powerful PC, but you would be surprised what could be done with such an underpowered PC, keep reading…. J'ai eu le lot, 1k Ram upgrade pour un total de 1,5 km de RAM, imprimante thermique et un lecteur de bande, il va sans dire qu'il veut un PC très puissant, mais vous seriez surpris de ce qu'on pourrait faire avec un tel PC de faible puissance, continuez à lire ....

My first program was written in BASIC, and could calculate the Factorial of any number you like. Mon premier programme a été écrit en BASIC, et pourrait calculer la factorielle d'un nombre que vous voulez. What is Factorial ? Quel est factoriel? In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. En mathématiques, la factorielle d'un non-n entier négatif, notée n!, Est le produit de tous les entiers positifs inférieurs ou égaux à n. For example, 5! Par exemple, 5! = 1 x 2 x 3 x 4 x 5 = 120 and 6! = 1 x 2 x 3 x 4 x 5 = 120 et 6! = 1 x 2 x 3 x 4 x 5 x 6 = 720. = 1 x 2 x 3 x 4 x 5 x 6 = 720. As you can imagine the numbers get very large very quickly. Comme vous pouvez imaginer les chiffres deviennent très grands très rapidement. Most calculators, even today, can only manage 69!, this is the point where the exponent exceeds 99. La plupart des calculatrices, même aujourd'hui, ne peut gérer que 69!, Il s'agit du point où l'exposant est supérieure à 99.

So I had a problem I want to solve, what is the factorial of 1 million, 1,000,000! Donc j'ai eu un problème que je voudrais résoudre, ce qui est la factorielle de 1 million, 1,000,000! logarithms to the rescue. logarithmes à la rescousse. What is a 14 year old boy doing researching logarithms you ask? Qu'est-ce qu'un garçon de 14 ans faisant des recherches sur les logarithmes demandez-vous? I guess thats a story for another post. I guess thats une histoire pour un autre poste. After a few hours of reading a book, yes a book!( no internet in those days) I was able to establish that product of integers is the sum of their logs. Après quelques heures de lecture d'un livre, oui un livre! (Pas d'Internet à l'époque), j'ai pu établir que le produit d'entiers est la somme de leurs journaux.

so 1 * 2 * 3 * 4 * 5 … is equal to exp( log(1) + log(2) + log(3)+ log(4) + log(5) ) donc 1 * 2 * 3 * 4 * 5 ... est égal à exp (log (1) + log (2) + log (3) + log (4) + log (5))

Easy right… yeah right! Easy droit ... yeah right!

So I embarked on my first programming task. J'ai donc entamé ma tâche première programmation. I was able to come up with a simple routine that broke the calculation down into small chunks easily handled by any programmable calculator or PC. J'ai pu arriver à une simple routine qui a fait déborder le calcul vers le bas en petits morceaux facilement manipulé par une calculatrice programmable ou un PC.

10 input x 10 entrées x
20 for a = 1 to x 20 pour a = 1 à x
30 b = b + log10(a) 30 b = b + log10 (a)
40 next a 40 suivant une
50 c = b – frac(b) 50 c = b - frac (b)
60 d = b – c 60 D = B - C
70 e = 10 ^ d 70 E = 10 ^ d
80 print e , “E+” , c 80 e d'impression, "E +", c

Certainly not the best way to achieve the result by todays standards, and faced with many command restrictions,  still not to bad for a 14 year old boy. Certainement pas le meilleur moyen d'atteindre le résultat par rapport aux normes d'aujourd'hui, et face à de nombreuses restrictions de commande, toujours pas mal pour un garçon de 14 ans.

You can still use this program today, go and download Vous pouvez toujours utiliser ce programme d'aujourd'hui, rendez-vous et téléchargez small basic Small Basic and copy/paste the code and give it a try. et copier / coller du code et de lui donner un essai. It took more than 12 hours on my PB-100 to calculate 1,000,000!, now it takes about 1 second, I can now appreciate how much performance my laptop has, however my little program still beats the WindowXP calculator at Factorial.. Il a fallu plus de 12 heures sur mon PB-100 pour calculer 1,000,000!, Maintenant il faut environ 1 seconde, je peux maintenant apprécier la performance combien mon ordinateur portable a, cependant mon petit programme bat encore la calculatrice WindowXP à Factorielle .. try it and see. Essayez pour voir.

So what is 1 million Factorial? Alors, que est de 1 million factorielle? 1,000,000! 1,000,000! = 8.263930499EXP5565708, that 5.5 million zeros, give or take a few. = 8.263930499EXP5565708, que 5,5 millions de zéros, en donner ou recevoir quelques-uns.

Now for all the other math heads who read this, I know it is an approximation as I am only using 16 significant digits, and there are more accurate ways to do this, blah blah blah, please remember I was only 14 at the time. Maintenant, pour tous les autres chefs de mathématiques qui ont lu cela, je sais que c'est un rapprochement que je me sers que de 16 chiffres significatifs, et il ya des moyens plus précis pour ce faire, blah blah blah, s'il vous plaît me souviens que je n'avais que 14 ans à l'époque.

If you have managed to maintain interest and get to the end of this post, maybe your the type who can impress their friends with some geeky code. Si vous avez réussi à maintenir l'intérêt et arriver à la fin de ce post, peut-être votre le type qui peuvent impressionner leurs amis avec un peu de code geeks.

To get new stuff automatically subscribe to my Pour obtenir des slideshows nouveaux automatiquement vous abonner à mon RSS feed Flux RSS . .
For a more personal insight Follow me on Pour un aperçu plus personnel Suivez-moi sur Twitter Twitter . .


This post is tagged Ce poste est étiqueté , , , , , ,

4 Comments 4 Commentaires

  1. Gil Hartrick Gil Hartrick

    Pauly, do you remember where you got the workings from ?…… It was me who brought the Swinburne Uni PC's to a grinding hault in the early eighties with this Factorial Formulae on PUNCH CARDS… YES! Pauly, vous souvenez-vous d'où vous tenez le fonctionnement à partir de? ... ... C'est moi qui a introduit le Swinburne Uni PC à un hault meulage dans les années quatre précoce avec ce Formules factorielle sur des cartes perforées ... OUI! punch card programming LOL Punch Card programmation LOL

    Reply To This Comment Répondre à ce commentaire

  2. Gil Hartrick Gil Hartrick

    Remember my Casio Calculator the FX-602P?? Se souvenir de mon Calculatrice Casio FX-602P?? It computed 1,000,000 factorial in 4 minutes flat, not bad for a meek calculator Il a calculé 1000000 factorielle en 4 minutes chrono, pas mal pour un simulateur doux

    Reply To This Comment Répondre à ce commentaire

  3. CA Pappas CA Pappas

    Thanks! Merci! Believe it or not, I was actually trying to solve 1000000! Croyez-le ou non, je cherche effectivement à résoudre 1000000! , but, yes, my sci calculator was only good for 69! , Mais, oui, ma calculatrice SCI était seulement bon pour 69! . . My windows sci calculator was much better. Mes fenêtres sci calculateur a été beaucoup mieux. It took me up to (10^5)! Il m'a fallu de (10 ^ 5)! , but it wouldn't give me (10^6)! , Mais il ne m'a pas donné (10 ^ 6)! . .
    I tried some online calculators , but they couldn't even come close to the windows sci calculator. J'ai essayé quelques calculatrices en ligne, mais ils ne pouvaient même pas approché de la fenêtre sci calculatrice. For now, and for my purposes, all I needed was that answer. Pour l'instant, et pour mes fins, tout ce que j'ai besoin était que la réponse. I'll search for a calculator later. Je vais lancer une recherche sur une calculatrice plus tard. Thank you, again, you have saved me a lot of search time. Je vous remercie, encore une fois, vous avez sauvé beaucoup de temps de recherche. As I am rural, I only have dial-up. Comme je suis en milieu rural, je n'ai qu'une ligne commutée. Yes, it only feels like it would be faster to just 1 x 2 x 3 x 4 x 5 x ………….with pencil and paper (how many life-times????). Oui, il ne se sent comme il serait plus rapide à seulement 1 x 2 x 3 x 4 x 5 x ... ... ... .... Avec un crayon et du papier (comment la vie de nombreuses fois ????). than to search for the answer. que de chercher la réponse. and wait for the snail-speed downloads!!!! et attendre que l'escargot-speed downloads!!

    Appreciatively, Élogieusement,
    Chris Aristides Pappas Aristides Chris Pappas

    Reply To This Comment Répondre à ce commentaire

    -Paul -Paul Reply: Réponse:

    I'm glad you found it useful. Je suis content que vous avez trouvé utile. I'm also glad I'm not the only geek who has an interest in factorial of large numbers. Je suis aussi content que je sois pas le seul geek qui a un intérêt dans factoriel des grands nombres.

    Reply To This Comment Répondre à ce commentaire

Incoming Links Liens entrants

    Leave a Reply Laissez une réponse