Page 1 of 2

Aide programmation

Unread postPosted: 26 Aug 2010, 13:15
by Nexia
Bonjour, j'ai essayé de créer un programme pour cet exercice:

Image


Pour l'instant j'ai seulement réussi à faire ça:
Define algo(a2)=
Prgm
a:=a2
n:=0
b:=1

disp "b=",b
EndPrgm

J'arrive pas à introduire "tant que b a faire augmenter n de 1 et b prend la valeur 4/3 de b"; j'ai essayé avec l'expression "If....Then....Esle...EndIf" mais je sais pas du tout comment l'écrire, à chaque fois ça me fait "syntaxe error".

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 13:24
by Levak
Nexia wrote:J'arrive pas à introduire "tant que b a faire augmenter n de 1 et b prend la valeur 4/3 de b"; j'ai essayé avec l'expression "If....Then....Esle...EndIf" mais je sais pas du tout comment l'écrire, à chaque fois ça me fait "syntaxe error".


Je vais te paraître brutal, mais... as-tu lu la documentation Nspire disponible en ligne ? :
http://education.ti.com/educationportal ... eLangId=FR

Tu trouveras les réponses à toutes tes questions concernant la syntaxe Nspire

sinon, la réponse au problème :

 
Show/Hide spoilerAfficher/Masquer le spoiler
Define algo(a)=Prgm
Local b,n
n:=0
b:=1

While ba
n:=n+1
b:=3/4*b
EndWhile

Disp "boucle n°",b," : n=",n," : a=",a
EndPrgm

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 13:37
by critor
Nexia wrote:Bonjour, j'ai essayé de créer un programme pour cet exercice:

Image


Pour l'instant j'ai seulement réussi à faire ça:
Define algo(a2)=
Prgm
a:=a2
n:=0
b:=1

disp "b=",b
EndPrgm

J'arrive pas à introduire "tant que b a faire augmenter n de 1 et b prend la valeur 4/3 de b"; j'ai essayé avec l'expression "If....Then....Esle...EndIf" mais je sais pas du tout comment l'écrire, à chaque fois ça me fait "syntaxe error".



Pour informations, tu n'as pas appris à faire ça en Seconde?

Sinon, quand tu es dans l'éditeur de programme, de nombreux mots-clefs sont accessibles via la touche "Menu".

En passant, "tant que - fin tant que" se traduit en anglais pas "while - endwhile".

C'est une boucle conditionnelle (répétition jusqu'au test d'arrêt), et cela ne peut donc pas être traduit par un "if" qui est une instruction conditionnelle (pas de répétition).

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 15:15
by Nexia
Levak: Oui j'ai cherché dans le guide avant de poster mais ça ne m'a pas aidé car les exemples ne s'appliquent pas à l'exercice. Merci pour la réponse, c'était plus simple que je ne le pensais; mais on ne doit pas définir a:=2 ?

critor2000:
J'ai eu à peine 1/2 heure de cours sur ça cette année et l'exemple sur lequel on a travaillé était vraiment simple c'est pour ça que j'ai coincé dans cette exo. J'ai hésité entre "if" et "while" mais je ne savais pas la différence, merci pour l'explication.

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 15:17
by Levak
Nexia wrote:Levak: Oui j'ai cherché dans le guide avant de poster mais ça ne m'a pas aidé car les exemples ne s'appliquent pas à l'exercice. Merci pour la réponse, c'était plus simple que je ne le pensais; mais on ne doit pas définir a:=2 ?


pour que a = 2, suffit de faire algo(2)

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 15:32
by critor
Nexia wrote:
critor2000:
J'ai eu à peine 1/2 heure de cours sur ça cette année et l'exemple sur lequel on a travaillé était vraiment simple c'est pour ça que j'ai coincé dans cette exo. J'ai hésité entre "if" et "while" mais je ne savais pas la différence, merci pour l'explication.



Dommage en effet...

Sinon, n'hésite pas si tu as d'autres questions.

Sur ma vieille caltoche de 1995, une G850V Sharp

Unread postPosted: 26 Aug 2010, 20:18
by charognard
Sur ma vieille caltoche de 1995, une G850V Sharp

on doit pouvoir faire de même sur NSpire
en récursif
Code: Select all
10 int n;
20 double a;
30 main(){
40   double fonction(double);
45   printf("Valeur A:n");
50   scanf("%f",a);
60   printf("b:%Gn",fonction(1));
70   printf("n:%d",n);
80 }
90 double fonction(double b){
100   return(n++,b=a?b:fonction(4./3.*b));
110 }


remarquez les numéro de lignes

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 20:41
by critor
charognard wrote:Sur ma vieille caltoche de 1995, une G850V Sharp

on doit pouvoir faire de même sur NSpire
en récursif
Code: Select all
10 int n;
20 double a;
30 main(){
40   double fonction(double);
45   printf("Valeur A:n");
50   scanf("%f",a);
60   printf("b:%Gn",fonction(1));
70   printf("n:%d",n);
80 }
90 double fonction(double b){
100   return(n++,b=a?b:fonction(4./3.*b));
110 }


remarquez les numéro de lignes



Oui, tes numéros de ligne me rappellent le Microsoft Basic 1.0 sur mon MO5.

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 20:53
by charognard
c'est comme cela sur cette caltoche dédié à la formation à la programmation
avec pas moins de 4 languages intégré + un programmateur de PIC
Image

Re: Aide programmation

Unread postPosted: 26 Aug 2010, 23:16
by morteltoto
critor2000 wrote:
Pour informations, tu n'as pas appris à faire ça en Seconde?


De mon côté, mes professeurs successifs de mathématiques ne m'ont jamais appris à utiliser une calculatrice, et encore moins les fonctions de programmation. Un seul prof de l'école a une V200, sinon je n'ai vu que des 82.
Tout au plus on nous a distribué un programme à moitié fini pour savoir si un nombre est premier. Sinon mes profs étaient incapables d'indiquer quoi que ce soit dans ce domaine, c'est moi qui fait le SAV des calculettes :/ En gros on doit regarder les rabats de nos livres pour connaître la méthode de calcul.
Tout ça doublé de 1 heure de géogébra dans l'année.

Bon j'espère qu'en term S on aura quelqu'un d'un peu plus intéressé !