vinez voir mon projet + aide pour optimiser si possible =) - C++ - Programmation
Marsh Posté le 28-11-2002 à 07:34:30
Tu fais ta conversion, et si il y a une couille, une erreur est generee ( lance ton prog en faisant une couille en entrant le nombre si tu veux le nom de l'exception).
Ensuite, tu l'attrappes, tu dis "spabiengmongars", et tu lui laisse une seconde chance...
Va sur google et cherche des documents sur les traitements d'exception... tu devrais trouver ton bonheur.
Marsh Posté le 28-11-2002 à 07:57:24
je sui sentrain d eprogrammer un chti truc que en fonction de ta date de naissance te donn ela date d elanniversaire de tes 10000 jours =)
c pour un assignements d info en c++ (je sui sen australie)
et comme j eveus pas faire les choses a moitier j echeck toute les conneries que le mec peu faire.
genre entre 31 pour le jour de naissance alors qu il avit auperevent entrer 2 pour le mois =)
ou bien si justement ce payday tape un chiffre un virgule ou un caractere.
Marsh Posté le 28-11-2002 à 07:58:51
Eh ben tu fais ce que j'ai dit au dessus, tu attrappes l'erreur de conversion et tu files une seconde chance au mec
Marsh Posté le 28-11-2002 à 08:18:35
voila le debut du code, ce sont les function qui permette de chercker et enregistrer le jour mois date de naissance.
le premiere deconne ct just un test
if(inta = false) sa marche pas du tout..
je voudrai qu il check que a soit 1) entier 2) non char.
la fonction 3 j ai un pb, je voulias qu ilk check que si c<0 (c = jours d enaissance) ou c>28 quand b=2 (le mois) il renvoie sur un ereur "fevrier n a que 28 jours"
mai sle pb c que apperement sa narche pas pour lui b n eat pas declarer alors qu il a etait enregistrer dans la fonction avant..
dans le main y a pas de pb mais pas dans les fonction annexes..
snif comment faire ?
Code :
|
Marsh Posté le 28-11-2002 à 08:22:42
j ai rechercher sur google la gestion des exeptions sa utilise des class (j ai jamias utiliser sa cquoi comment sa marche ?)
la y a un exemple
Code :
|
mais heu je commprend rien
Marsh Posté le 28-11-2002 à 08:58:08
coulix a écrit a écrit : voila le debut du code, ce sont les function qui permette de chercker et enregistrer le jour mois date de naissance. le premiere deconne ct just un test if(inta = false) sa marche pas du tout.. je voudrai qu il check que a soit 1) entier 2) non char. la fonction 3 j ai un pb, je voulias qu ilk check que si c<0 (c = jours d enaissance) ou c>28 quand b=2 (le mois) il renvoie sur un ereur "fevrier n a que 28 jours" mai sle pb c que apperement sa narche pas pour lui b n eat pas declarer alors qu il a etait enregistrer dans la fonction avant.. dans le main y a pas de pb mais pas dans les fonction annexes.. snif comment faire ?
|
1° Défois y'a 29 jours le mois de février
2° Pourquoi tu testes les nombres entre 0 et fin_du_mois
Marsh Posté le 28-11-2002 à 11:01:27
DarkOli a écrit a écrit : 1° Défois y'a 29 jours le mois de février 2° Pourquoi tu testes les nombres entre 0 et fin_du_mois |
ah oui merdee j ai oublie les annes bisaikstil
Marsh Posté le 29-11-2002 à 06:39:04
voila la nouvell eversion le check des erreur numerik sa marche nickel, en regardant le mois si lanne est bissextile ect.
par contre j ereflechier toujouts comment calculer la datte du 10000 jours a partir des donnes entree
Code :
|
Marsh Posté le 29-11-2002 à 06:50:56
premier truc qui me viens a l'esprit ( Conditionne par des annes de prog surement).
-D'abord trouver la bonne annee. Prendre 10000 et retirer 365, puis 365, puis 365, puis 364, puis 365 etc ( en faisant bien gaffe a l'annee de depart pour savoir laquelle est bissextile) jusqu'a ce que le nombre de jours soit < 366 (si annee suivante pas bissextile ) ou < 365 (annee bissextile).
-Retirer ensuite 31, puis 28 ( si bissex) etc, jusqu'a ce que tu aie le mois.
-Le nb restant est le nombre de jours.
Marsh Posté le 29-11-2002 à 06:57:07
Tetedeiench a écrit a écrit : premier truc qui me viens a l'esprit ( Conditionne par des annes de prog surement). -D'abord trouver la bonne annee. Prendre 10000 et retirer 365, puis 365, puis 365, puis 364, puis 365 etc ( en faisant bien gaffe a l'annee de depart pour savoir laquelle est bissextile) jusqu'a ce que le nombre de jours soit < 366 (si annee suivante pas bissextile ) ou < 365 (annee bissextile). -Retirer ensuite 31, puis 28 ( si bissex) etc, jusqu'a ce que tu aie le mois. -Le nb restant est le nombre de jours. |
we c ce que je pensasi au debut j etais partie en denmarant sur les jour smain non , j enverai la suite des que j etrouve. mais j adore ca c notre assignement pour le 18 decemnbre mais une fois que j ai commencer je marrete plus, cett enuit je me suis reveiller en trouvant la solution pour les annees bissextile grave .....
Marsh Posté le 29-11-2002 à 06:59:03
coulix a écrit a écrit : we c ce que je pensasi au debut j etais partie en denmarant sur les jour smain non , j enverai la suite des que j etrouve. mais j adore ca c notre assignement pour le 18 decemnbre mais une fois que j ai commencer je marrete plus, cett enuit je me suis reveiller en trouvant la solution pour les annees bissextile grave ..... |
Bah.
Ensuite je suis desole mais cette phrase la :
-j etais partie en denmarant sur les jour smain non , j enverai la suite des que j etrouve.
Bah je la comprends pas.
Marsh Posté le 29-11-2002 à 08:58:59
puf sa marche pour les annes, mais j ai chiez pour trouver le problem en fait je me plantais dans le == et =
== c pour une comparaison et = c pour assugher non ??
il doit y avoir plus simple...
Code :
|
Marsh Posté le 29-11-2002 à 09:08:26
je viens de rentre une annee a 11 chiffre (j ai changer a en long integer), mon amd 1000@1500 mets au moins 10 seconde pour mafficher le resultat
sa doit etre la boucle pour savoir si l anne est bissextile ...
Marsh Posté le 29-11-2002 à 09:25:50
y apas un truc qui permet de racourcir ceci :
((b==1) || (b==3)|| ( b==5)|| (b==8) || (b==10) || (b==12))
par exemple if b= [1,3,5,8,10,12] sa existe pas ?
Marsh Posté le 29-11-2002 à 12:09:55
coulix a écrit a écrit : y apas un truc qui permet de racourcir ceci : ((b==1) || (b==3)|| ( b==5)|| (b==8) || (b==10) || (b==12)) par exemple if b= [1,3,5,8,10,12] sa existe pas ? |
Code :
|
c'est pas vraiment plus court mais je trouve ca plus lisible
Marsh Posté le 29-11-2002 à 12:33:04
coulix a écrit a écrit : je viens de rentre une annee a 11 chiffre (j ai changer a en long integer), mon amd 1000@1500 mets au moins 10 seconde pour mafficher le resultat sa doit etre la boucle pour savoir si l anne est bissextile ... |
Utilise plutôt ça :
Code :
|
C'est un peu plus rapide
Marsh Posté le 29-11-2002 à 17:39:39
Ca me fait bizarre car j'avais les memes problemes au debut quand je demarrais la prog.
Marsh Posté le 29-11-2002 à 23:34:23
*syl* a écrit a écrit : Utilise plutôt ça :
|
ca c sympa merchi
Marsh Posté le 30-11-2002 à 01:28:35
Il y a des gros problèmes d'indentation !
Les accolades se mettent plutôt seules sur une ligne ou en fin de ligne précédente.
Code :
|
a,b,c,d,i,l,x,p,t ?
Un minimum de signification des noms please.
Code :
|
Code :
|
Pareil pour //day, simplifiable...
Et pour finir, c'est peut-être plus simple de calculer un n° de série de jour, ajouter 10000, puis en extraire la date an/mois/jour.
Marsh Posté le 30-11-2002 à 03:04:18
Musaran a écrit a écrit : Il y a des gros problèmes d'indentation ! Les accolades se mettent plutôt seules sur une ligne ou en fin de ligne précédente.
|
//double répétition et imbrication combo, ouch...
ouai la je sentais que ct pas trop ca ..
merci beaucoup
Marsh Posté le 01-12-2002 à 02:43:18
Sauf que je me suis bien gouré de sens...
Code :
|
Et voilà, c'est de plus en plus propre !
J'ai oublié de critiquer ça: t=="n";
Ça teste une égalité d'identité de chaîne, pas une similitude de contenu.
Et comme les compilateurs sont libres de confondre ou pas des chaîne sidentiques, le résultat est indéfini.
Il suffit de prendre un caractères seul:
Code :
|
Marsh Posté le 23-07-2003 à 15:17:44
et tu tiens compte des années juliennes/grégoriennes ?
et du ralentissement de la rotation de la terre ?
Marsh Posté le 23-07-2003 à 17:05:39
C'est marrant, c'est la première fois que je vois ça :
Code :
|
Et c'est probablement complètement faux car c'est équivalent à :
Code :
|
et en plus, on ne teste pas si "c<0" mais si "c<1"
Version corrigée pour un février a 28 jours :
Code :
|
Marsh Posté le 28-11-2002 à 07:30:47
genre si le gas s amuse a rentrer un nombre a virgule ou une lettre aulieu d un chiifre entier..
comment verifier sa??
merci
Message édité par COULIX le 29-11-2002 à 09:24:18
---------------
.... et dans les tenebres les lier