Derniers sujets | » Numbers par Ver2guerre Dim 02 Avr 2023, 00:47
» Mort ? par godbod Dim 22 Aoû 2021, 12:23
» Network, essai 1 par godbod Dim 09 Juil 2017, 02:18
» GODBOD par godbod Sam 08 Juil 2017, 14:05
» mon humeur par Ver2guerre Sam 30 Juil 2016, 19:44
» [A voir] Programme de traduction original : WikiTranslate par AdRiWeB Lun 01 Fév 2016, 04:50
» Reprise ? par Emyl Jeu 14 Juin 2012, 21:17
» Euh, ah ? par Ver2guerre Dim 27 Mai 2012, 12:11
» Problème TI 89 Titanium non visible après mise à jour par abdoukid Mer 23 Mai 2012, 13:37
» Y'a quelqu'un ? par Ver2guerre Sam 21 Avr 2012, 23:10
|
Qui est en ligne ? | Il y a en tout 9 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 9 Invités Aucun Le record du nombre d'utilisateurs en ligne est de 367 le Dim 18 Oct 2009, 00:16 |
| | Auteur | Message |
---|
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: [ALL] Return Mar 30 Déc 2008, 02:11 | |
| P'tit jeu tout simple : Le but du jeu est simplement de deviner ce que va retourner le programme, dans un cas simple : 0->A If A=0 Then 0 Else 1 End Ans
(oui je sais c'est optimisable, mais là n'est pas le sujet ...) ou dans un cas particulier 0 Repeat Ans getKey End Ans
Q : que va t-il retourner si j'appuie sur [Clear] ? R : 45 Je rappelle que ce que je considère comme "étant retourné" est ce qui s'affiche en dernier, éventuellement suivi du "Done" Un programme peut ainsi, selon cette définition, ne rien retourner si rien ne s'affiche (il est alors inutile d'aller chercher la valeur de Ans ...) ou s'il y a une erreur Il est bien sûr possible de tester sur TI, mais il vaut mieux éviter quand c'est possible pour plus de "fun" :p Vala, alors on commence par un truc simple : "1ER CODE .... C'EST PAS MARRANT ?->Str0 length(Str0->Z For(A,1,Z For(B,A+1,Z If sub(Str0,A,1) = sub(Str0,B,1) Then Disp {A,B Stop End End End
Q : Que va retourner ce code ?EDIT : et au passage, on peut en faire un petit défi de ce code : une fois le but de ce code trouvé, l'optimiser : celui-là tient en 105 octets. |
| | | Syfo Pokémophile
Nombre de messages : 1978 Age : 33 Localisation : IYA items :
Personalized field : 26 jetons Réputation : 8 Points : 6749 Date d'inscription : 09/08/2007
Profil TI: 80, 82, 83, 83+, 84+ TO: 2 945 [GAIN * 1.1] Spécialité: Basic z80
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 13:28 | |
| Ce code va retourner {2,8}, soit le premier e qui est en seconde position et le second qui est en huitieme position. - Code:
-
"1ER CODE .... C'EST PAS MARRANT ?->Str0 length(Str0->Z For(A,1,Z For(B,A+1,Z If sub(Str0,A,1) = sub(Str0,B,1 //une parenthèse fermante en moins xD Return {A,B //suppression du stop et donc d'un then/end End End
J'vois pas des masses d'optimisations par conte. |
| | | Ver2guerre chasseur en chef
Nombre de messages : 3145 Age : 113 Localisation : Partout en même temps (V2g quantique) Loisirs : #pkill boulet Humeur : Happy :) items : Personalized field : 12 jetons Réputation : 8 Points : 7516 Date d'inscription : 15/09/2007
Profil TI: (TI-89Tita)^2+TI83Plus TO: 50 [2380 - 2%] {54} Spécialité: Autres
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 14:05 | |
| J'adore l'heure de ton message tama |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 14:35 | |
| 0:11 ? et alors ? =p ça va peut-être être pire demain :p
Syfo> Ca marche pas le "Return {A,B" sur z80 ? Sinon y a une optimisation assez bizarre en vitesse (vue sur TIBD gérée par les membres de UTI), si tu enlèves une parenthèse au for( dans une boucle, certaines instructions comme DS>( seront plus lentes à l'exécution ... bizarre
Euh, bonne réponse sinon, tu peux décider de prendre la main (proposer un code) ou la laisser :p |
| | | Baruch OPTIMIZATOR
Nombre de messages : 193 Age : 32 items : Personalized field : Réputation : 0 Points : 5846 Date d'inscription : 07/08/2008
Profil TI: 83+ TO: 200 Spécialité: Basic z80
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 15:13 | |
| On peut optimiser en vitesse en calculant le 1er sub avant la 2e boucle. |
| | | Syfo Pokémophile
Nombre de messages : 1978 Age : 33 Localisation : IYA items :
Personalized field : 26 jetons Réputation : 8 Points : 6749 Date d'inscription : 09/08/2007
Profil TI: 80, 82, 83, 83+, 84+ TO: 2 945 [GAIN * 1.1] Spécialité: Basic z80
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 15:18 | |
| Spa faux. C'est meme plutot juste. Je laisse la main. |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 16:28 | |
| Bon, très bien :p 0->A 290->B Repeat A>B A+19->A B+11->B End Disp {A,B
Q : Une bête inéquation à résoudre, que va retourner ce code ? |
| | | godbod membre
Nombre de messages : 72 Age : 36 items : o Personalized field : Réputation : 0 Points : 5713 Date d'inscription : 23/12/2008
Profil TI: 89 titanium TO: 200 Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 16:35 | |
| Je ne programme plus sur z80 mais je crois que ça donnera : 2 et 290 Plus qu'on ne pourra pas entrer dans la boucle Repeat |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 17:51 | |
| hmm non parce que c'est Repeat, pas While ... |
| | | godbod membre
Nombre de messages : 72 Age : 36 items : o Personalized field : Réputation : 0 Points : 5713 Date d'inscription : 23/12/2008
Profil TI: 89 titanium TO: 200 Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 18:26 | |
| pfffffff la syntaxe m'embrouille, ... je ferais mieux de ne pas m'embrouiller avec ça ... - Code:
-
#include <tigcclib.h> void _main(void){ int A=0; int B=290; do{ A=A+19; B=B+11; }while(A>B); printf(" A= %d and B=%d",A,B); }
A=19 and B=301 Les gars excusez moi pour le 68k en plein z80 ... - Citation :
- Qui peut le plus ne peut pas toujours le moins
Si le C n'est plus lisible de le BASIC quelques fois ... |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mar 30 Déc 2008, 20:25 | |
| euh non tu t'es trompé dans le code, c'est pas while(A>B), c'est while(A <B) c'est bizarre mais en quelque sorte Repeat condition revient à dire While not(condition)Ci-dessous un long blabla sur la différence While/Repeat, mis en spoiler parce que .... j'ai envie :p- Spoiler:
Par exemple : 0->A Repeat A>10 ... End
C'est la même chose que : 0->A While A<=10 ... End
L'avantage c'est que s'il y a plusieurs conditions, While s'arrêtera à la première qui n'est pas respectée, tandis qu'avec Repeat il faut que toutes les conditions ne soient pas respectées pour que le programme sorte de la boucle Par exemple : (1) 0->A 5->B 0->N While A<90 and B<100 N+1->N A+1->A B+1->B End Disp N
(2) 0->A 5->B 0->N
Repeat A>=90 and B>=100 //note : c'est pas tout à fait l'inverse de la condition précédente : on a gardé le And alors que si c'était vraiment rigoureux, ça aurait été un Or N+1->N A+1->A B+1->B End Disp N
N contient le nombre d'itérations effectuées par le programme : (1) -> N = 90 (2) -> N = 95 : Le programme a continué même si A a déjà dépassé 90 (pour preuve, rajouter un "Disp {N,A,B}" dans la boucle Repeat et regarder les valeurs qui s'affiche) Ca peut être utile pour certains programmes (un RPG par exemple, le programme continue même si un perso de l'équipe est mort ...)
Bref, retour au sujet, il faut prendre exactement le même code mais remplacer le > par < dans la boucle do...while Vala vala :) |
| | | godbod membre
Nombre de messages : 72 Age : 36 items : o Personalized field : Réputation : 0 Points : 5713 Date d'inscription : 23/12/2008
Profil TI: 89 titanium TO: 200 Spécialité: C 68k
| Sujet: Re: [ALL] Return Mer 31 Déc 2008, 09:19 | |
| Je décroche ... |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mer 31 Déc 2008, 14:25 | |
| Bah euh .... j't'ai presque donné la solution oO dans le code C que tu as mis, tu as juste à remplacer le "while(A>B)" par "while(A |
| | | godbod membre
Nombre de messages : 72 Age : 36 items : o Personalized field : Réputation : 0 Points : 5713 Date d'inscription : 23/12/2008
Profil TI: 89 titanium TO: 200 Spécialité: C 68k
| Sujet: Re: [ALL] Return Mer 31 Déc 2008, 14:59 | |
| Oui oui je t'ai bien compris bien sur ^^ tienkiet Nan en fait le problème c'est que je trouve la syntaxe du TI BASIC trop rudimentaire. Bon mais merci quand meme. |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9427 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: [ALL] Return Mer 31 Déc 2008, 16:27 | |
| ehh la fin n'est pas passée dans mon message .... stupide balise note: penser à mettre un espace après le < sinon il va interpéter comme une balise html
Bon bref, et le résultat alors ça donne quoi ? |
| | | Contenu sponsorisé
| Sujet: Re: [ALL] Return | |
| |
| | | |
Page 1 sur 1 | |
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
|
|