1

Salut tout le monde,

En fait ça ne concerne pas directement la programmation GP32 puisque je suis en train d' apprendre le C (pour pc) afin de pouvoir m' en resservir pour programmer sur GP32.

Le problème qui suit est simple, quand j' écris un programme il s' execute normalement, le problème c' est que quand on a une fonction printf a la fin il execute tellement vite le code qu' on a rien le temps de voir! Donc ma question est la suivante: peut on définir le temps d' affichage de la derniere fonction? ou au moins y a t' il un moyen pour que le résultat soit lisible.

Je sais pas si je suis très clair, donc j' ai pris un exemple (un programme tout con qui calcule la moyenne d' une classe de 25 élèves et qui indique combien ont au dessus de la moyenne):
main()
{

float notes[25], //tableau prévu pour 25 élèves
somme, //variable somme pour le calcul de la moyenne
moyenne; //moyenne de la classe
int nb, //nombre de nots supp a la moyenne
i, //compteur 1
j; //compteur 2

printf("donnez les 25 notes\n");
for ( i=0 ; i<25 ; i=i+1 )
scanf("%f", &notes[i]); //lecture des notes des élèves


somme= 0 ; //initialisation de somme
for ( i=0 ; i<25 ; i=i+1 )
somme= somme + notes[i];
moyenne= somme / 25 ;




nb= 0;//initialisation de nombre

for( j=0 ; i<25 ; i=i+1)
if (notes[i] > moyenne) nb=nb+1 ;
printf ("il y a %d notes supperieures a la moyenne %9.2f", nb, moyenne);/*problème, affichage éclair et fermeture quasi instantanée du programme*/


}
-supprimé par mes soins-

2

Il te faut juste une instruction qui fasse une pause en attendant que tu appuies sur une touche, je sais pas trop ce qu'il y a de disponible sur GP32, pause(), sleep(), system("truc"), ... ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

Lance le dans une console (je suppose que tu es sous windows) : Demarrer/executer command.com

4

A la fin du programme un return 0; c'est bien venu pour que ton printf s'affiche!!

Edit : par contre relis ton programme tu verras qu'il y a une erreur!!
Le j te sert à quoi là, sachant que le i est à 25 et pas réinitialisé et que c'est le i que tu incrémente dans le for!! grin

Puis les commentaires c'est bien mais il n'en faut pas trop non plus. Il faut trouver le jutse milieu entre peu et trop de commentaires!!
Ex pour i et j pas besoin de dire que ce sont des compteurs, vu qu'il s'agit d'une convention!! Idem somme et moyenne ont un nom suffisement explicite pour que tu n'es pas a dire à quoi ca sert par contre tu devrais commenter les boucles!!

5

Ça s'affiche, d'après lui, et ce n'est pas un return 0 qui va y changer grand chose. J'avais pas vu que c'était pour PC, si t'es sous win tu peux faire system("pause"); après ton printf, par exemple.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

oups, désolé pour le programme, je l' ai refait en vitesse...

pour le commentaire c t juste pour bien expliciter le programme, je ne commente pas autant d' habitude.

je vais tester avec system("pause")

merci pour vos réponses
-supprimé par mes soins-

7

normal que je connaissais pas system("pause") ca marche pas sous unix!! tongue

8

Bah forcément... Faut la commande équivalente à "pause" sous unix, que je connais pas grin

system() ne fait qu'executer la chaine passée en paramètre à l'OS, donc sous win ça prend des commandes MS-Dos, sous Unix ça prend celles du shell smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

ça marche! merci, de plus j' ai fait une petite modif perso, j' ai mis adapté la fonction printf dans la premiere boucle pour entrer successivement la note de chaque élève!
-supprimé par mes soins-

10

Sur GP32 tu utilises une boucle infinie (while(1) ou for( ; ; )) et tu affiches telle ou telle chose à une certaine condition, testée à chaque itération.
Dis moi si tu veux des sources hein smile
Le premier site francophone d'actualité Zodiac :
Zodiac France

11

ok merci beaucoup Sanosuke!
-supprimé par mes soins-

12

en gros, moi je voyais trois possibilites:
- sleep (le programme se met en pause un certain nombre de secondes)
- for (int a;a < 1e5;a++) (le programme fait tourner une boucle assez longue) ou while avec une condition sur l'horloge pour gerer le temps de la pause
- getc, scanf, cin << demandant a l'utilisateur d'appuyer sur une touche pour continuer (system ("pause") fait pareil)
Le pouvoir aux loutres !!!
(et aussi, vive le rose !)
mes petits programmes GP32: http://yaouank.gp32news.com

13

j' avais déja essayé avec do while, mais ça me répetait les instructions de lecture a l' infini, system ("pause") est parfait pour ce que je voulais faire
-supprimé par mes soins-

14

Dis moi si tu veux des sources hein
Moi j'en veux bien si ca te dérange pas!! des trucs très basic pour l'instant!! wink

15

Tiens, d' ailleurs Sanosuke, si tu avais une source pour le tirage d' un nombre aléatoire je te serais gré si tu pouvais me la passer stp!
-supprimé par mes soins-

16

sleep (secondes) j'y ai pensé, mais c'est la librairie unistd.h (spécifique unix).
Tu peux aussi faire getchar() tout simplement (si tu es sous gcc).
Tu devras te passer de cette technique (ou de system(pause) ) pour porter sur GP32, parce que c'est incompatible avec le sdk, il me semble... Enfin ca reste à vérifier !

Si tu veux un truc qui marche sur GP32, tu peux faire while (!keydata=GpKeyGet()), ca boucle tant qu'on n'appuie sur aucune touche.

17

Dumoria :
sleep (secondes) j'y ai pensé, mais c'est la librairie unistd.h (spécifique unix).

moi je donnais des genres de solution pour iceberg.
Pas forcement pour gp32.

sleep, ok ca marche pas sur gp32 (j'ai pas regarde, je te crois sur parole) mais bon, ca marche sous unix et windows donc c'est deja pas mal (pour windows si je me souviens bien, faut regarder du cote de Sleep, avec une majuscule)

Perso ma solution preferee pour ce genre de probleme, c'est le "press a key to continue": getc, GpKeyGet et compagnie.
Le pouvoir aux loutres !!!
(et aussi, vive le rose !)
mes petits programmes GP32: http://yaouank.gp32news.com

18

Tout a fait d'accord
Juste pour prévenir qu'au passage sur GP32, ya quelques habitudes à perdre. Enfin c'en est pas encore là...

19

ouep, c' est vrai qu' il faut déja gagner quelques habitudes, mais bon je vais quand meme essayer de pas trop trainer histoire de faire le simulateur de lancé de dés dans pas trop longtemps!

tiens, d' ailleur, comment on fait pour connaitre les commandes des fonctions du sdk GP??
-supprimé par mes soins-

20

Le document nommé "GP32 SDK API Reference" est bien, les fonctions présentes sont bien expliquées. Lien : http://www.gp32x.com/gp32download.php?do_what=selectfolder&id=48

Il en existe surement une version plus récente (certaines fonctions sont legerement changees dans le sdk dont je dispose, style GetTickCount devient GpTickCountGet), et toutes les fonctions du sdk n'y sont pas présentées, mais c'est deja une bonne base.

21

ok je te remercie, mais les liens ont l' air down wink

C' est vrai que Yaouank m' avais filé un truc dans le genre, va falloir que je fouille dans les anciens topics!

ps:comment savoir les nouvelles fonctions?
-supprimé par mes soins-

22

ps:comment savoir les nouvelles fonctions?
Regarde le topic qui parle des bookin de C 2005 j'ai filé tous les liens qu'il faut!!

23

heu, pour les livres j' ai "le livre du C premier language" par Claude Delannoy si tu parles de ça...
-supprimé par mes soins-

24

API v1.0 http://www.gp32x.com/gp32download.php?do_what=selectfolder&id=48
API v2.1.5 http://www.gp32x.de/cgi-bin/cfiles.cgi?0,0,0,0,45,521

Ce qui est important à savoir c'est que les 2 docs sont indispensables, puisque certaines fonctions ne sont documentées que dans un des documents.
Vous avez dit bizarre? triso

25

Merci! Mais il n' y a que le deuxième lien qui marche!
-supprimé par mes soins-

26

heu, pour les livres j' ai "le livre du C premier language" par Claude Delannoy si tu parles de ça...
Oui mais y'a des liens plus bas!!

27

ok lol
-supprimé par mes soins-

28

iceberg :
Merci! Mais il n' y a que le deuxième lien qui marche!

gp32x.com est en train de travailler dessus (cf. une news sur la page d'accueil de leur site)
Le pouvoir aux loutres !!!
(et aussi, vive le rose !)
mes petits programmes GP32: http://yaouank.gp32news.com

29

ouep, j' ai vu , bah de toutes façon ça peut encore attendre un peu
-supprimé par mes soins-

30

En tout cas la version 2.1.5 donne beaucoup plus d'info, et dire que je m'en passais... Obligé de récupérer des exemples des fonctions qui n'étaient pas dans la 1ere...