Salut,j'ai un exercice à résoudre en Pascal, vous pouvez m'aider ?
Faire un programme qui affiche le jour à partir d'une date précise; par exemple : on lui donne 04/07/1985 et il affiche jeudi.
Merci d'avance.
Version imprimable
Salut,j'ai un exercice à résoudre en Pascal, vous pouvez m'aider ?
Faire un programme qui affiche le jour à partir d'une date précise; par exemple : on lui donne 04/07/1985 et il affiche jeudi.
Merci d'avance.
Non on peut pas t'aider.
-> http://club.developpez.com/regles
Pose une question précise et nous y répondrons
:?
Bonjour,et bienvenu ce formidable forum,
ah oui..............
tout code quel qu'il soit est basé sur un algorithme ,
1-faire un algo
2-optimiser cet algo
3-passer a pascal.........
4.............
...
Nul ne fera ton exo a ta place (il preciser que j'aime dire cette phrase quand la situation l'exige)
:mouarf: :mouarf: :mouarf: :mouarf: :mouarf: :mouarf:Citation:
Envoyé par wormful_sickfoot
etonnéé?Citation:
Envoyé par fatifati
@bonne nuit
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 FUNCTION FACTJOUR(J,M,A:INTEGER):longint; (*transforme une date en un nombre*) VAR FACT:REAL; BEGIN IF M IN[1,2] THEN BEGIN FACT:=(1.0*365*A)+1*J; FACT:=FACT+(1.0*(31*(M-1))); FACT:=FACT+(1.0*INT(((A-1)/4))); FACT:=FACT-(1.0*INT(3/4*INT(((A-1)/100)+1))); END ELSE BEGIN FACT:=(1.0*365*A)+J; FACT:=FACT+(1*(31*(M-1))); FACT:=FACT+(1.0*INT((A/4))); FACT:=FACT-INT(3/4*INT((A/100)+1)); FACT:=FACT-INT(((0.4*M)+2.3)); END; FACTJOUR:=round(FACT); END; function jourclair(j,m,a:integer):jou; (*donne en clair le nom du jour d'une date*) var u:integer; begin u:=factjour(j,m,a) mod 7; case u of 0 : jourclair:='samedi'; 1 : jourclair:='dimanche'; 2 : jourclair:='lundi'; 3 : jourclair:='mardi'; 4 : jourclair:='mercredi'; 5 : jourclair:='jeudi'; 6 : jourclair:='vendredi'; end; end;
Halo,
Moi qui insiste toujours pour que le code soit écrit avec une indentation régulière et cohérente. :lol:Citation:
Envoyé par random
De plus,
renvoie un type jou qui n'est pas défini. Disons string :lol:Code:function jourclair(j,m,a:integer):jou;
Debut édition
Pourquoi ne pas faire l'équivalent pour le nom des mois ?
Fin édition
Un peu plus spécialisé : il vaudrait autant transformer la date en valeur de jour julien, qui est universel, et permet de gérer les dates en tenant compte de la modification de l'ancien calendrier en calendrier grégorien (décalage brutal de 10 jours + modification de la détermination des années bissextiles)
ok pour le type jour cette fonction est tirée d'un tpu perso où il est défini mais
effectivement il s'agit d'un string (merci d'avoir suivi)
pourquoi ne pas faire la même chose pour les mois : parceque la question posée était comment afficher le jour ? mais tu pourras toujours t'amuser à compléter.
Ceci étant cela ne pose nulle difficulté.
Pourquoi ne pas utiliser le julien ? parceque son emploi varie avec les pays utilisation du julien francais est différente du julien anglais ou tchèque
mon algo est indépendant des pays
quant à l'indentation ce n'est qu'une convention destiné à faciliter la lecture
ce code ne comprenant pas de if ou boucles imbriqués se lit de façon linéaire
mais
....... rien
..............ne
..................t'inderdit
..............de
...... rajouter
des canines molaires si cela satisfait on sens esthétique
ô qu'elle est pretty my printer
Certes, maisCitation:
Envoyé par random
reste tout de même plus clair à lire.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 FUNCTION FACTJOUR(J,M,A:INTEGER):longint; (*transforme une date en un nombre*) VAR FACT:REAL; BEGIN IF M IN[1,2] THEN BEGIN FACT:=(1.0*365*A)+1*J; FACT:=FACT+(1.0*(31*(M-1))); FACT:=FACT+(1.0*INT(((A-1)/4))); FACT:=FACT-(1.0*INT(3/4*INT(((A-1)/100)+1))); END ELSE BEGIN FACT:=(1.0*365*A)+J; FACT:=FACT+(1*(31*(M-1))); FACT:=FACT+(1.0*INT((A/4))); FACT:=FACT-INT(3/4*INT((A/100)+1)); FACT:=FACT-INT(((0.4*M)+2.3)); END; FACTJOUR:=round(FACT); END; function jourclair(j,m,a:integer):string; (*donne en clair le nom du jour d'une date*) var u:integer; begin u:=factjour(j,m,a) mod 7; case u of 0 : jourclair:='samedi'; 1 : jourclair:='dimanche'; 2 : jourclair:='lundi'; 3 : jourclair:='mardi'; 4 : jourclair:='mercredi'; 5 : jourclair:='jeudi'; 6 : jourclair:='vendredi'; end; end;
Bien sûr, on peut se passer d'indentation, ce qui d'ailleurs vaut mieux plutôt qu'en faire une aléatoire comme tu l'as fait :lol:
salut tt le monde chui interessé par le code , qui pourré m'expliké un peu la signification ou l'équivalent en java ou en vb de 'var' 'round' ':' svppp j'en ai besoin mnt !! :( :( :(
bonjour,
juste une petite chose le mot urgent n'existe pas dans le vocabulaire de ce forum mais je veux bien t'aider
var veut dire qu'on va declarer des variables
ex:si tu veux la traduition en java alor ça veut dire que tu connais java et donc tu sais que pas besion de dire qu'on va declarer en java ,ceci dit var n'existe pas en java ,et pour round c'est Math.round()Code:
1
2
3
4
5
6
7 program ex; var i:integer; {declaration des variable } begin {corps du programme } end.
en vb..........................................
@+
si tu veux que je t'aide commences d'abord par ecrire du français
t'a pas compris quoi var ou round
tu ne peux pas faire de declaration en pascal sans le mot clévar t'a qu'a faire une recherche sur google sur varsi t'es si pressé que ça
si tu reformule corectement ta question je pourrais t'aiderCitation:
Envoyé par morenita1
@++
Ah bon ???Citation:
Envoyé par krachik
Au contraire, en Java on est obligé de déclarer et de typer toutes les variables !
Code:
1
2
3
4
5
6 int i; // déclaration typée (comme en pascal) i = 0; // utilisation // ou bien String s = "test"; // déclaration typée + utilisation dans le même temps
g compris la signification de var merci et round aussi merci et juste une question à quoi sert un forum si on peut pas discuter d'une façon adulte ss commentaire ???
a+
Alors on s'est pas compris ce que je voulais dire c'est que en java il n'y a pas de mot clé à ecrire avant de faire une declaration quelconque(encore plus claire il n'existe pas d'equivalent de var en java on passe directement aux declarations)Citation:
Envoyé par Loceka
j'espere que la c'est clair
c'est que j'ai constaté que tout a l'heure t'avais l'air pressé que tu ecrivais style sms c'est pour ça je t'ai dit d'ecrire du français excuses moi si tu l'a mal pris sinon tu peux aller les regles du forum avantCitation:
Envoyé par morenita1
@+
svp , je trouve qlq difficultés à comprendre le programme vu que je connais rien du pascal , qui pourrez m'expliké ligne par ligne :(
le programme se compose de deux fonctions
la première construit un nombre à partir des éléments d'une date (jour,mois,an)
ces nombres sont des entiers consécutifs et permettent de construire des fonctions plus élaborées (différence de date, ou ajout d'un nombre de jours)
ils doivent être manipulés avec précaution pour les dates antérieures au 20
décembre 1582 (en France)
une semaine se composant généralement de sept jours
il suffit de calculer le modulo (reste de la division entière) de ce nombre
par 7 pour savoir quel jour on se situe
java comporte des fonctions de date qui devraient t'éviter d'avoir à recourir à ce genre de fonction
tu disposes de 3 classes
java.util.GregorianCalendar
java.util.Calendar
java.util.Date
Plus simple alors :
:mrgreen: :lol: :yaisse2:Code:DayOfTheWeek(StrToDateTime('10/05/2007'));
Edit : Ah non, ça ne marche que pour Delphi. Dommage...
la plupart des langages ont de telles fonctions en standard ou des bibliothèques
ça marche donc sans Delphi
'M'étonnerais que ça marche sous TP7... :(
si cela avait existé en tp je n'aurais pas écrit de fonction à l'époque