Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 17 Jun 2004 13:04:31

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Projet toponoff

alors voila.
TOPONOFF est à leure actuelle un programme qui fonctionne en basic, constitué de 133 programmes.

Ce programme est destiné aux étudiants en formation de BTS Géomètre Topographe. Il possède des fonctions qui permettent de faire des calculs beaucou plus rapidement que si on voulai les faire à la main.

Mon but est de transformer ce programme pour en faire un executable beaucou plus plus rapide à l'executions et donc plus rentable.

Plusieurs questions me viennent alors à l'esprit:
- j'ai besoin de gérer des données rentrées préalablement par l'étudian. Ces données sont sou la forme de : un poin, ainsi que ses coordonnées (en X,Y,Z)
-comment gérer ces points? Peu on utiliser les matrices (peu on les controlées à partir d'un .exe?)
si non, commen je peu faire pour gérer des données? fau il créer un tableau? (sachant que parfois il es possible davoir 200 points x4 données soit 800 nombres à stokés).
- peu on réalisé tout les calculs scientifiques possibles? (tan, cos, sin, arcsin,....) et est ce que la caltos gère les Grades en angulaire dans un .exe?
-j'ai réalisé un premier menu:
ce n'est qu'un début, car jy connai rien (ATTENTION les 'goto' disparaitront dans la version finale, remplacés par la fonction en elle meme):
Ce ne sont que les premières pages:


#include <stdio.h>
#include <casio2.h>
#include <graphic.h>

main()
{

/* AFFICHAGE DU MENU */


/*page 1*/
page1:
clrscr();
gotoxy(1,1);printf("[ESC]>Quit     Page1");
gotoxy(1,2);printf("F1 informations");
gotoxy(1,3);printf("F2 autres systemes");
gotoxy(1,4);printf("F3 voir Fich wjklmn");
gotoxy(1,5);printf("F4 sauve charge fich");
gotoxy(1,6);printf("F5 effacer 1 fichier");
gotoxy(1,7);printf("F6 resolut. triangle");

while (getkey()!=K_ESC){

switch (getkey()){
    case K_F1:
    goto informations;
    break;
    case K_F2:
    goto autres_systemes;
    break;
    case K_F3:
    goto voir_fich_wjklmn;
    break;
    case K_F4:
    goto sauve_charge_fich;
    break;
    case K_F5:
    goto effacer_1_fichier;
    break;
    case K_F6:
    goto resolut_triangle;
    break;
    case K_GAUCHE:
    wait(10);
    goto page3;
    break;
    case K_DROITE:
    wait(10);
    goto page2;
    break;
}
}
goto fin;

/*page 2*/
page2:
clrscr();
gotoxy(1,1);printf("[ESC]>Quit     Page2");
gotoxy(1,2);printf("F1 entrer des coord.");
gotoxy(1,3);printf("F2 voir coord. 1 pt");
gotoxy(1,4);printf("F3 liste coord ou No");
gotoxy(1,5);printf("F4 supprimer 1 point");
gotoxy(1,6);printf("F5 changement numero");
/*gotoxy(1,7);printf("F6 ");*/

while (getkey()!=K_ESC){

switch (getkey()){
    case K_F1:
    goto entrer_des_coord;
    break;
    case K_F2:
    goto voir_coord_1pt;
    break;
    case K_F3:
    goto liste_coord_ou_No;
    break;
    case K_F4:
    goto supprimer_1_point;
    break;
    case K_F5:
    goto changement_numero;
    break;
    case K_GAUCHE:
    wait(10);
    goto page1;
    break;
    case K_DROITE:
    wait(10);
    goto page3;
    break;
}
}
goto fin;

Voila, jorai pleins dotres questions alors ce Topic n'est pa près d'etre fermer. Je pense ke j'en ai en gros pour un an à réaliser ce programme. (parce qque j connai vraiment rien au C). J'ai déja lu certains tutos très bien fait, mais qui ne répondent pa à mes besoins (gestion de données), ou alors j'ai pas fai attention.

Merci d'avance pour vos conseils...

Vous pouvez également me contacter à john_lenfr@yahoo.fr pour m'envoyer dse fichiers, exemples, programmes, sources qui pouraient m'aider dans ma démarche.


john_lenfr

Hors ligne

 

#2 17 Jun 2004 14:43:19

[neo]f4kill
Programmeur Graph100
Lieu: montauban
Date d'inscription: 05 Oct 2003
Messages: 678
Site web

Re: Projet toponoff

ben tu peux les enregistrer dans un tablo tes points ..;
si tu veux pouvoir les sauvegarder enregistre les dans des fichiers basics ta toutes les libs pour faire sa.

pour les calculs tu peux utiliser math.h mais sa prend de la place pour rien...
et c pas très rapide.
si ta pas besoin d'un immense précision le mieu c'est peut-être d'avoir un tableau dans lequel tu a les valeurs de cosinus et sinus par exemple .. (rapidité)
mais sa ne marche pas pour toute les fonctions... tout dépend de celles que tu compte utiliser.


p.s.: je pense que ta bien fait de préciser : "ATTENTION les 'goto' disparaitront dans la version finale" lool
Sa pourai éviter des dérapages ...  :mrgreen:


=> Auteur de : Code, Hot-dog (v alpha), Aspirin v1.2, Memory v1.0, Slider v1.0 + 2 ou 3 progs à la noi wink


http://www.danasoft.com/sig-fre.jpg

Hors ligne

 

#3 17 Jun 2004 14:47:07

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

Le langage C permet à la base de manipuler des tableaux de dimensions quelconques... Donc tu peux travailler avec des ensembles de variables sans le moindre problème.
Pour ce qui est des matrices, elles sont en effet accessibles à partir d'un exe mais il faut voir si ca doit s'avérer vraiment utile...
Tu peux faire en sorte que l'utilisateur doive d'abord rentrer toutes ses valeurs en matrice (à partir du mode normal de la g100), pour aller ensuite les récupérer, mais tu peux aussi faire en sorte que ton prog demande lui-meme d'entrer chaque valeur (moyennant la réécriture d'une fonction ad hoc) yikes


Pensez à surveiller mes releases wink

Hors ligne

 

#4 17 Jun 2004 16:01:22

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff


Le langage C permet à la base de manipuler des tableaux de dimensions quelconques... Donc tu peux travailler avec des ensembles de variables sans le moindre problème.
Pour ce qui est des matrices, elles sont en effet accessibles à partir d'un exe mais il faut voir si ca doit s'avérer vraiment utile...
Tu peux faire en sorte que l'utilisateur doive d'abord rentrer toutes ses valeurs en matrice (à partir du mode normal de la g100), pour aller ensuite les récupérer, mais tu peux aussi faire en sorte que ton prog demande lui-meme d'entrer chaque valeur (moyennant la réécriture d'une fonction ad hoc)

comment on fait pour gérer les matrices: fonctions? librairies?
et quelle est la fonction quui permet la saisie clavier (comme ?-> en basic) ?

ben tu peux les enregistrer dans un tablo tes points ..;

Comment on fait un tableau et comment on l'utilise?

si tu veux pouvoir les sauvegarder enregistre les dans des fichiers basics ta toutes les libs pour faire sa.

Le fichier basic va pa etr tro gros?

pour les calculs tu peux utiliser math.h mais sa prend de la place pour rien...
et c pas très rapide.

ça dépend ce que c'est 'pas très rapide',

si ta pas besoin d'un immense précision le mieu c'est peut-être d'avoir un tableau dans lequel tu a les valeurs de cosinus et sinus par exemple .. (rapidité)
mais sa ne marche pas pour toute les fonctions... tout dépend de celles que tu compte utiliser.

Je peu pas faire ça parce que ce programme est destiné à des professionnels, pas seulement des étudiants, il me faut la meilleure précision possible, meme si j'arondi les résultats finaux

p.s.: je pense que ta bien fait de préciser : "ATTENTION les 'goto' disparaitront dans la version finale" lool
Sa pourai éviter des dérapages ...

Oui je m'en doutai qu'en C les 'goto' n'étaient pas les bienvenus...

lol


john_lenfr

Hors ligne

 

#5 17 Jun 2004 16:33:58

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Projet toponoff

hum...
tu connais pas les "n" (et "r" qui peut servir avec cprintf )...
ca t'eviterai de mettre 40 gotoxy, et en plus tu n'aurai pas besoin d'appeler cette fonction


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#6 17 Jun 2004 16:37:37

[neo]f4kill
Programmeur Graph100
Lieu: montauban
Date d'inscription: 05 Oct 2003
Messages: 678
Site web

Re: Projet toponoff

ba 800 nombres c pas la mort!
tout dépend quel genres de nombres c'est ...
mais sachant que certains jeux font +de 10 Ko
ta de la place


=> Auteur de : Code, Hot-dog (v alpha), Aspirin v1.2, Memory v1.0, Slider v1.0 + 2 ou 3 progs à la noi wink


http://www.danasoft.com/sig-fre.jpg

Hors ligne

 

#7 17 Jun 2004 16:56:38

Guest
Invité

Re: Projet toponoff

hum...
tu connais pas les "n" (et "r" qui peut servir avec cprintf )...
ca t'eviterai de mettre 40 gotoxy, et en plus tu n'aurai pas besoin d'appeler cette fonction

C'est en prévision de changements, car le menu est vraiment très basic pour l'instan mais merci du conseil.


Je ne pense pa que je vai utiliser des fichiers basics, ils sont tro 'fragiles' lor d'un bug. Ils peuvent disparaitre très vites.

Donc je préfèrerai stoker dans un tableau ds mon prog, et puis exporter les données vers les matrices si ya besoin.
Mais lorsque le prog fonctionne plu, les valeurs du tableau sont gardées en mémoire?
Si non comment je peu me procurer des informations sur la gestion des matrices? (programme executable en C svp)

 

#8 17 Jun 2004 17:01:41

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

hum...
tu connais pas les "n" (et "r" qui peut servir avec cprintf )...
ca t'eviterai de mettre 40 gotoxy, et en plus tu n'aurai pas besoin d'appeler cette fonction

C'est en prévision de changements, car le menu est vraiment très basic pour l'instan mais merci du conseil.


Je ne pense pa que je vai utiliser des fichiers basics, ils sont tro 'fragiles' lor d'un bug. Ils peuvent disparaitre très vites.

Donc je préfèrerai stoker dans un tableau ds mon prog, et puis exporter les données vers les matrices si ya besoin.
Mais lorsque le prog fonctionne plu, les valeurs du tableau sont gardées en mémoire?
Si non comment je peu me procurer des informations sur la gestion des matrices? (programme executable en C svp)

john_lenfr  (dsl pour les admins, g fait une bétise et g posté en 'Anonyme')


john_lenfr

Hors ligne

 

#9 17 Jun 2004 17:09:07

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

C'est pas tres malin ce que tu dis là, car les programmes basic et les matrices sont enregistrés exactement de la même façon... donc si un bug se produit, les 2 disparaissent lol

Explique nous quelle serait réellement la gestion des données que tu veux faire, ça nous aidera à t'indiquer la meilleure façon de procéder... Est-ce qu'il s'agit juste de faire un prog qui recoit des données, qui effectue un traitement et puis qui affiche le résultat, ou bien est-ce que tu tiens vraiment à utiliser des données externes au programme et à effectuer une sauvegarde des résultats lorsqu'il a terminé?


Pensez à surveiller mes releases wink

Hors ligne

 

#10 17 Jun 2004 17:48:16

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

ba en fait je veux saisir des coordonnées des points , en calculer d'autres et pouvoir utiliser le listing des points par ailleur.
Le programme permet de calculer des point avec des formules mathématique, (intersections de droite, de cercle, angles, distance) et après il faut que je soi capable de jongler avec ces nouveaux points pour en calculer d'autres, et encore d'autres après etc....
Donc il fau que je puisse garder les premiers points saisi (comment on saisi en C:fonction?) pour en calculer d'autres. A la fin il fau que je soi capable de redonner les coordonnées des point avc minimum 4 chiffres après la virgule.
C'est assez clair?

RAPPEL: Toponoff en basic est constitué de 133 programmes


john_lenfr

Hors ligne

 

#11 18 Jun 2004 03:47:32

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

Toponoff en basic est constitué de 133 programmes

Mouarf  8O

Bon donc il vaut mieux en effet que le programme manipule principalement des données en externe...
Tu as deux possibilités: ou bien tu imposes que ton prog s'utilise avec des matrices ou des listes classiques, et tu traites les données enregistrées par l'utilisateur à un certain endroit; ou bien tu crées ton propre système d'enregistrement des données, cad que tu peux utiliser des zones de mémoire (comme les progs basic) pour tout stocker à ta façon, et dans ce cas ton prog doit aussi servir à accéder à ces données et à pouvoir les modifier.

Je pense que la deuxieme solution est la meilleure, étant donné que passer par des matrices en dehors du prog n'est pas vraiment pratique et qu'en plus je ne suis pas sur qu'on ait bcp de doc sur leur structure dans la ram... Tu peux facilement y accéder mais il faudrait que tu fasses des recherches pour comprendre leur fonctionnement dans ce cas.
Par contre, si tu définis toi-meme la facon dont ces données seront organisées, ca te permet de savoir exactement quoi en faire et à intégrer directement leur manipulation et leur traitement sans utiliser d'autres programmes ou modes de la caltoche...

Pour ce qui est de la saisie au clavier, c'est évidemment avec une fonction que ca se fait, mais malheureusement si les fonctions classiques d'affichage de texte (comme printf) fonctionnent, celles de saisie de texte (comme scanf) ne marchent pas, puisque la touche EXE n'est pas reconnue sad
Donc tu dois te créer ta propre fonction en repérant les touches du clavier qu'on utilise...

Tu peux travailler avec des nombres à virgule sans problème, mais les calculs seront plus lourds pour le processeur et donc moins rapides (surtout si tu dois recalculer des sinus et cosinus etc)... mais bon ca reste bcp plus rapide que le basic wink Il faudra cependant veiller à ce que ton code ne fasse pas trop d'opérations inutiles.


Pensez à surveiller mes releases wink

Hors ligne

 

#12 18 Jun 2004 04:06:08

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Projet toponoff

:beurk:


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#13 18 Jun 2004 05:38:35

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

Pour l'enregistrement des données, créer mon propre tableau me parai la meilleure solution effectivement. Sauf que j connai rien du tout.



Pour ce qui est de la saisie au clavier, c'est évidemment avec une fonction que ca se fait, mais malheureusement si les fonctions classiques d'affichage de texte (comme printf) fonctionnent, celles de saisie de texte (comme scanf) ne marchent pas, puisque la touche EXE n'est pas reconnue 
Donc tu dois te créer ta propre fonction en repérant les touches du clavier qu'on utilise...

J'ai remarqué, car j'ai essayé la fonction scanf et ça ne faisai rien sur la caltos.
Tu as un exemple de code de saisie que je peux utiliser?
(Extrait d'un autre programme déja compilé?)


Tu peux travailler avec des nombres à virgule sans problème, mais les calculs seront plus lourds pour le processeur et donc moins rapides (surtout si tu dois recalculer des sinus et cosinus etc)... mais bon ca reste bcp plus rapide que le basic  Il faudra cependant veiller à ce que ton code ne fasse pas trop d'opérations inutiles.

Pour ces nombres à virgule je les décarent en tant que réels (%f)? entier décimal (%d)? en caractère (%c)?

Enfin, comment ongère un tableau? Je veux dire comment on fait pour saisir au clavier, mettre le valeur ds le tableau et après pouvoir la rapeller? Comment on fait aussi pour mettre ces valeurs en mémoire de telle façon à les garder une fois sorti de mon programme?


:beurk:

g pas compri là X-thunder28 ?


john_lenfr

Hors ligne

 

#14 18 Jun 2004 05:46:39

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

hum...
tu connais pas les "n" (et "r" qui peut servir avec cprintf )...
ca t'eviterai de mettre 40 gotoxy, et en plus tu n'aurai pas besoin d'appeler cette fonction

C'est en prévision de changements, car le menu est vraiment très basic pour l'instan mais merci du conseil.

je pense que je vais utiliser la police de KTR. Alors un grand merci à lui.
Elle est claire et permet d'afficher un peu plus de choses sur l'écran que l'affichage classique (dommage qu'on ait pa les minuscule, mais bon, on peu pa tout avoir ds la vie)


john_lenfr

Hors ligne

 

#15 18 Jun 2004 05:48:42

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: Projet toponoff

pour saisir des valeurs au clavier c'est assez compliqué
il faut utiliser différentes fonctions comme getkb ou getkey se trouvant dans des librairies spécifiques à la calculatrice et ensuite regarder la valeur renvoyée

pour les tableaux ca marche comme à peu prés comme les simples varaibles
par exemple
machin[0][0]=1;
met 1 dans la case  aux coordonées 0,0 (la premiere case) du tableau appelé machin


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#16 18 Jun 2004 06:04:19

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

J'ai remarqué, car j'ai essayé la fonction scanf et ça ne faisai rien sur la caltos.
Tu as un exemple de code de saisie que je peux utiliser?
(Extrait d'un autre programme déja compilé?)

Pas sous la main...  :?

Pour ces nombres à virgule je les décarent en tant que réels (%f)? entier décimal (%d)? en caractère (%c)?

Enfin, comment ongère un tableau? Je veux dire comment on fait pour saisir au clavier, mettre le valeur ds le tableau et après pouvoir la rapeller? Comment on fait aussi pour mettre ces valeurs en mémoire de telle façon à les garder une fois sorti de mon programme?

déclaration d'une variable de type int (entier) en C:

Code:

int var1; // var1 est une variable entiere

déclaration d'une variable réelle:

Code:

float var2; // var2 est un réel

création d'un tableau de 25 réels:

Code:

float mon_tab[25]; // mon_tab est un tableau de 25 réels

accès à chacun des éléments du tableau:

Code:

mon_tab[0] = 3.14; // le premier (-> indice 0!) élément vaut 3.14
mon_tab[1] = 0.345;
...
mon_tab[24] = 0; // le 25eme (-> indice 24!) vaut 0

pointeurs vers un certain tableau:

Code:

int i; // entier
float tab1[10], tab2[10], tab3[10]; // 3 tableaux de 10 réels
float mat[12][56]; // mat est une matrice de 12*56 float
float a; // a est un réel
float* tab; // pointeur vers un réel
a = 3.14; // ceci est ok, a vaut mnt 3.14
tab =  2.5; // ceci est incorrect, tab n'est pas un réel
tab = a; // incorrect aussi, tab est un pointeur sur float, a est un float
tab = &a; // ceci est correct: tab pointe vers l'adresse de a
*tab = 3; // la variable pointée par tab vaut mnt 3, donc a vaut mnt 3
tab = tab1; // correct: tab désigne le premier élément de tab1
*tab = 4; // équivalent à tab1[0] = 4 ou tab[0] = 4
i=5;
tab[i] = 6.7; // l'élément d'indice i (ici le 6eme, car i=5) du tableau pointé par tab (ici tab1) vaut           mnt 6.7 => équivalent à tab1[5] = 6.7
mat[4][0] = 0; // le premier élément de la 5eme ligne de mat vaut mnt 0

Voila pour la manipulation de tableaux  smile
Habitue-toi à manipuler ça dans un premier temps...

Pour ce qui est de l'enregistrement des données en dehors de ton programme, tu dois utiliser certaines fonctions pour accéder aux bonnes zones de mémoire... Ce n'est pas difficile, mais ca nécessaite de savoir exactement ce qu'on fait. Renseigne-toi sur les lib "memzones" de 2072 wink


g pas compri là X-thunder28 ?

X-Th est allergique aux float lol
Leur manipulation est en effet trop lourde pour un programme qui doit etre fortement optimisé en vitesse... mais bon dans un cas comme le tien ils sont incontournables wink


Pensez à surveiller mes releases wink

Hors ligne

 

#17 18 Jun 2004 06:27:23

[neo]f4kill
Programmeur Graph100
Lieu: montauban
Date d'inscription: 05 Oct 2003
Messages: 678
Site web

Re: Projet toponoff

oui fait des tests entre 2 progs identiques mais qui utilisent les float pour un et des int pour l'autre .. non seulement sa sera plus gro mais aussi plus lent..
surtout qu'ils doivent etre émulés sous g100 .. nan? je me trompe?


=> Auteur de : Code, Hot-dog (v alpha), Aspirin v1.2, Memory v1.0, Slider v1.0 + 2 ou 3 progs à la noi wink


http://www.danasoft.com/sig-fre.jpg

Hors ligne

 

#18 18 Jun 2004 06:34:18

Guest
Invité

Re: Projet toponoff

Merci pour vos réponse, je vai déja pottasser avec ça et voir si je peu m'en sortir.

Il me manque des infos pour fabriquer une fonction 'scanf' pour graph 100.
Et puis savoir comment on gère la mémoire.

Après tout ça je pourai me lancer.

sinon g fai ça tout à leur, TC3 me renvoi l'erreur suivante: "Extra parameter in call to print3"

void dateheure()
{
    clrscr();
        while (){               
        if(get_date(3,0)==0){print3(1,50,"LUNDI");} /*affiche le jour de la semaine*/
        if(get_date(3,0)==1){print3(1,50,"MARDI");}
        if(get_date(3,0)==2){print3(1,50,"MERCREDI");}
        if(get_date(3,0)==3){print3(1,50,"JEUDI");}
        if(get_date(3,0)==4){print3(1,50,"VENDREDI");}
        if(get_date(3,0)==5){print3(1,50,"SAMEDI");}
        if(get_date(3,0)==6){print3(1,50,"DIMANCHE");}

        print3(9,50,"  /  /    ");
               :!: print3(9,50,"%d",get_date(0,0)); /*affiche le jour*/
        print3(20,50,"%d",get_date(1,0)); /*affiche le mois*/
        print3(31,50,"%d",get_date(2,0)); /*affiche l'année*/

        print3(50,50,"  :  ");
        print3(50,50,"%d",get_time(1)); /*affiche les heures*/
        print3(54,50,"%d",get_time(2)); /*affiche les minutes*/
        }
}

Vous pouvez m'aider, c'est une fonction qui me permet d'afficher l'eure eet la date sur mon menu. Merci davance


:jump:

 

#19 18 Jun 2004 06:38:57

[neo]f4kill
Programmeur Graph100
Lieu: montauban
Date d'inscription: 05 Oct 2003
Messages: 678
Site web

Re: Projet toponoff

ben extra paremeter sa veut dire que ta passé un parametre de trop à la fonction.
montre nous la..
sinon ia des trucs que tu peux améliorer la..

par exemple tu peux mettre les jours dans un tableau et remplacer tes 7 lignes par une seule.

edit :
a ba g piG pourquoi sa marche pas j'avais pas vu ...
print3 sa marche pas comme printf...
tu peux pas metre de %d,%s etc
et tu ne doit mettre que 3 parametres ... x,y,chaine de caractere je suppose


=> Auteur de : Code, Hot-dog (v alpha), Aspirin v1.2, Memory v1.0, Slider v1.0 + 2 ou 3 progs à la noi wink


http://www.danasoft.com/sig-fre.jpg

Hors ligne

 

#20 18 Jun 2004 06:39:21

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: Projet toponoff

je pense que la fonction print3 contrairement à printf ne permet pas d'afficher des valeurs de variables
donc il faut soit remplacer print3 par printf soit créer une fonction qui affiche une variable avec print3


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#21 18 Jun 2004 06:56:26

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

f4kill"]ben extra paremeter sa veut dire que ta passé un parametre de trop à la fonction.
montre nous la..
sinon ia des trucs que tu peux améliorer la..

par exemple tu peux mettre les jours dans un tableau et remplacer tes 7 lignes par une seule.

edit :
a ba g piG pourquoi sa marche pas j'avais pas vu ...
print3 sa marche pas comme printf...
tu peux pas metre de %d,%s etc
et tu ne doit mettre que 3 parametres ... x,y,chaine de caractere je suppose

Oui c'est ça.

si je retire %d ça me donne: "Type mismatch in parameter 'string' in call to 'print3'"
Ca veut dire quoi?, parce que ds l'aide ils mettent un truc que je compren pas sur cette erreur.
Comment faire pour afficher le tout avec la police de KTR alors?

[edit]:

La lib de KTR:

/* caractere Ascii */

/* 32 caractères sur 10 lignes*/

unsigned char ktrascii[59][5][3] =
{

  0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //_ -> 32 (00)
  0,1,0, 0,1,0, 0,1,0, 0,0,0, 0,1,0, //! -> 33 (01)
  1,0,1, 1,0,1, 0,0,0, 0,0,0, 0,0,0, //" -> 34 (02)
  1,0,1, 1,1,1, 1,0,1, 1,1,1, 1,0,1, //# -> 35 (03)
  1,1,1, 1,1,0, 1,1,1, 0,1,1, 1,1,1, //$ -> 36 (04)
  1,0,0, 0,0,1, 0,1,0, 1,0,0, 0,0,1, //% -> 37 (05)
  0,1,0, 1,0,1, 0,1,1, 1,0,1, 0,1,1, //& -> 38 (06)
  1,1,0, 1,1,0, 0,0,0, 0,0,0, 0,0,0, //ø -> 39 (07)
  0,0,1, 0,1,0, 0,1,0, 0,1,0, 0,0,1, //( -> 40 (0cool
  1,0,0, 0,1,0, 0,1,0, 0,1,0, 1,0,0, //) -> 41 (09)
  1,1,1, 1,1,1, 1,1,1, 1,1,1, 1,1,1, //* -> 42 (10)
  0,0,0, 0,1,0, 1,1,1, 0,1,0, 0,0,0, //+ -> 43 (11)
  0,0,0, 0,0,0, 0,0,0, 0,1,0, 1,0,0, //, -> 44 (12)
  0,0,0, 0,0,0, 1,1,1, 0,0,0, 0,0,0, //- -> 45 (13)
  0,0,0, 0,0,0, 0,0,0, 0,0,0, 1,0,0, //. -> 46 (14)
  0,0,1, 0,1,0, 0,1,0, 0,1,0, 1,0,0, /// -> 47 (15)
  1,1,1, 1,0,1, 1,0,1, 1,0,1, 1,1,1, //0 -> 48 (16)
  0,1,0, 1,1,0, 0,1,0, 0,1,0, 1,1,1, //1 -> 49 (17)
  1,1,1, 0,0,1, 1,1,1, 1,0,0, 1,1,1, //2 -> 50 (1cool
  1,1,1, 0,0,1, 1,1,1, 0,0,1, 1,1,1, //3 -> 51 (19)
  1,0,1, 1,0,1, 1,1,1, 0,0,1, 0,0,1, //4 -> 52 (20)
  1,1,1, 1,0,0, 1,1,1, 0,0,1, 1,1,1, //5 -> 53 (21)
  1,1,1, 1,0,0, 1,1,1, 1,0,1, 1,1,1, //6 -> 54 (22)
  1,1,1, 1,0,1, 0,0,1, 0,0,1, 0,0,1, //7 -> 55 (23)
  1,1,1, 1,0,1, 1,1,1, 1,0,1, 1,1,1, //8 -> 56 (24)
  1,1,1, 1,0,1, 1,1,1, 0,0,1, 1,1,1, //9 -> 57 (25)
  0,0,0, 0,1,0, 0,0,0, 0,1,0, 0,0,0, //: -> 58 (26)
  0,0,0, 0,1,0, 0,0,0, 0,1,0, 1,0,0, //; -> 59 (27)
  0,0,1, 0,1,1, 1,1,1, 0,1,1, 0,0,1, //< -> 60 (2cool
  0,0,0, 1,1,1, 0,0,0, 1,1,1, 0,0,0, //= -> 61 (29)
  1,0,0, 1,1,0, 1,1,1, 1,1,0, 1,0,0, //> -> 62 (30)
  0,1,0, 1,0,1, 0,0,1, 0,1,0, 0,1,0, //? -> 63 (31)
  1,1,1, 0,0,1, 1,1,1, 1,0,1, 1,1,1, //@ -> 64 (32)
  0,1,0, 1,0,1, 1,0,1, 1,1,1, 1,0,1, //A -> 65 (33)
  1,1,0, 1,0,1, 1,1,0, 1,0,1, 1,1,0, //B -> 66 (34)
  0,1,1, 1,0,0, 1,0,0, 1,0,0, 0,1,1, //C -> 67 (35)
  1,1,0, 1,0,1, 1,0,1, 1,0,1, 1,1,0, //D -> 68 (36)
  1,1,1, 1,0,0, 1,1,0, 1,0,0, 1,1,1, //E -> 69 (37)
  1,1,1, 1,0,0, 1,1,0, 1,0,0, 1,0,0, //F -> 70 (3cool
  1,1,1, 1,0,0, 1,1,1, 1,0,1, 1,1,1, //G -> 71 (39)
  1,0,1, 1,0,1, 1,1,1, 1,0,1, 1,0,1, //H -> 72 (40)
  1,1,1, 0,1,0, 0,1,0, 0,1,0, 1,1,1, //I -> 73 (41)
  1,1,1, 0,0,1, 0,0,1, 1,0,1, 1,1,1, //J -> 74 (42)
  1,0,1, 1,1,0, 1,0,0, 1,1,0, 1,0,1, //K -> 75 (43)
  1,0,0, 1,0,0, 1,0,0, 1,0,0, 1,1,1, //L -> 76 (44)
  1,0,1, 1,1,1, 1,0,1, 1,0,1, 1,0,1, //M -> 77 (45)
  1,0,1, 1,1,1, 1,1,1, 1,0,1, 1,0,1, //N -> 78 (46)
  0,1,0, 1,0,1, 1,0,1, 1,0,1, 0,1,0, //O -> 79 (47)
  1,1,0, 1,0,1, 1,1,0, 1,0,0, 1,0,0, //P -> 80 (4cool
  0,1,0, 1,0,1, 1,0,1, 0,1,0, 0,0,1, //Q -> 81 (49)
  1,1,0, 1,0,1, 1,1,0, 1,1,0, 1,0,1, //R -> 82 (50)
  1,1,1, 1,0,0, 1,1,1, 0,0,1, 1,1,1, //S -> 83 (51)
  1,1,1, 0,1,0, 0,1,0, 0,1,0, 0,1,0, //T -> 84 (52)
  1,0,1, 1,0,1, 1,0,1, 1,0,1, 1,1,1, //U -> 85 (53)
  1,0,1, 1,0,1, 1,0,1, 1,0,1, 0,1,0, //V -> 86 (54)
  1,0,1, 1,0,1, 1,0,1, 1,1,1, 1,0,1, //W -> 87 (55)
  1,0,1, 1,0,1, 0,1,0, 1,0,1, 1,0,1, //X -> 88 (56)
  1,0,1, 1,0,1, 0,1,0, 0,1,0, 1,0,0, //Y -> 89 (57)
  1,1,1, 0,0,1, 0,1,0, 1,0,0, 1,1,1  //Z -> 90 (5cool

};


/*affiche une police (KTR)*/
void putchar3(unsigned char x, unsigned char y, unsigned char lettre)
{
  unsigned char i, j;
    lettre -= 32;

    for (i = 0 ; i < 3 ; i++)
  {
    for (j = 0 ; j < 5 ; j++)
    {
      if (ktrascii[lettre][j][i] == 1) setPix(x + i, y + j,0,1);
          }
  }
}


void print3(unsigned char x, unsigned char y, unsigned char string[])
{int i;
  for(i = 0 ; string[i] != 0 ; i++) putchar3(x + 4*i, y, string[i]);
}


john_lenfr

Hors ligne

 

#22 18 Jun 2004 07:28:01

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: Projet toponoff

il faut que tu crée une fonction pouvoir affiche une variable avec print3

genre :

Code:

void print (int x,int y,int variable)
{
int a,b,c,d;
a=variable/1000;
variable-=a*1000;
b=variable/100;
variable-=b*100;
c=variable/10;
d=variable-10*c;
if (a==0) print3(x,y,0);
if (a==1) print3(x,y,1);
...
if (b==0) print3(x+1,y,0);
...
if (c==0) print3(x+2,y,0);
...
if (d==0) print3(x+3,y,0);
...

voila par exemple pour une variable à 4 chiffres
mais il faudre tester toutes les possibilité (de 0 à 9) pour a,b,c et d


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#23 18 Jun 2004 07:39:33

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

ou bien tu peux utiliser sprintf

Code:

char chaine[50]; // chaine de 50 caracteres
sprintf(chaine,"%d",get_date(1,0)); // on écrit ce qu'on veut dans la chaine 
print3(20,50,chaine); // on affiche la chaine

Sinon y'a d'autres trucs à optimiser...  :?
Par exemple

Code:

if(get_date(3,0)==0){print3(1,50,"LUNDI");} /*affiche le jour de la semaine*/ 
if(get_date(3,0)==1){print3(1,50,"MARDI");} 
if(get_date(3,0)==2){print3(1,50,"MERCREDI");} 
if(get_date(3,0)==3){print3(1,50,"JEUDI");} 
if(get_date(3,0)==4){print3(1,50,"VENDREDI");} 
if(get_date(3,0)==5){print3(1,50,"SAMEDI");} 
if(get_date(3,0)==6){print3(1,50,"DIMANCHE");} 

Il est peu probable que le jour change au moment d'afficher ton menu... Rappeler chaque fois la fonction get_date va ralentir énormément ton prog: il sera bcp plus rapide d'enregistrer le résultat dans une variable et utiliser cette variable...  neutral
Cette remarque tient aussi pour les "getkey"


Pensez à surveiller mes releases wink

Hors ligne

 

#24 18 Jun 2004 07:43:39

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Projet toponoff

idéalement tout ce morceau-là pourrait s'écrire

Code:

char* jours[] = { "LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI","DIMANCHE" };
print3(1, 50, jours[ get_date(3,0) ] );

comme l'a proposé [neo]4kill wink


Pensez à surveiller mes releases wink

Hors ligne

 

#25 18 Jun 2004 12:36:32

john_lenfr
Membre
Lieu: france
Date d'inscription: 14 Jan 2003
Messages: 56

Re: Projet toponoff

Merci pour vos conseils, ça marche nikel!

Maintenant il me reste à comprendre commen on gère les tableaux et pour ça il va me falloir du temp

Julien Posté le: 18 Juin 2004 11:04    Sujet du message: 

--------------------------------------------------------------------------------

john_lenfr a écrit:
J'ai remarqué, car j'ai essayé la fonction scanf et ça ne faisai rien sur la caltos.
Tu as un exemple de code de saisie que je peux utiliser?
(Extrait d'un autre programme déja compilé?)

Pas sous la main... 

@ Julien:  Tu as pu retrouvé quelque chose?



ps: finalement mon programme donne ça:

void dateheure()
{
       
    char* jours[] = { "LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI","DIMANCHE" };
        print3(1,59,jours[get_date(3,0)]);


           print3(60,59,"  /  /    ");
        sprintf(chaine,"%d",get_date(0,0));
        print3(60,59,chaine);                      /*affiche le jour*/

        sprintf(chaine,"%d",get_date(1,0));
        print3(72,59,chaine);                 /* affiche le mois*/

        sprintf(chaine,"%d",get_date(2,0));
        print3(84,59,chaine);                 /*affiche l'annee*/

           print3(100,59,"  h  min");

        sprintf(chaine,"%d",get_time(1));
        print3(100,59,chaine);                 /*affiche les heures*/

        sprintf(chaine,"%d",get_time(2));
        print3(112,59,chaine);                 /*affiche les minutes*/

}

Merci les gar....   lol


john_lenfr

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr