Calendario Perpetuo in pascal (con sorgente)

Discussioni su qualunque linguaggio di programmazione o engine
Rispondi
Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

Tempo fa ho creato un calendario perpetuo:

si tratta di questo, di un programma che data una data (scusate il gioco di parole :mrgreen: ) ti dice quale giorno della settima era (o sarà) purchè la data sia valida e compresa tra il 1857 e il 2036

praticamente è formato da 3 tabelle di dati e da un programma che vi accede secondo una certa logica
Le tabelle le vedi qui: http://zanpakuto.altervista.org/perpetuo.pdf

Lo posto qui perchè non l'ho fatto in GM ma in pascal

il sorgente è questo:
Spoiler
Uses CRT;
Const MAX = 28+5; GIORNI :Array[1..7] Of String =
('Domenica','Lunedi','Martedi','Mercoledi',
'Giovedi','Venerdi','Sabato');
Var GIORNO2,MESE2 : shortint;
ANNO2 : Integer;
Q : Text;
K,K2,NUM : shortint;
ANNO : Array[1..7,1..MAX] Of Integer;
MESE : Array[1..12,1..MAX] Of Integer;
GIORNO : Array[1..2,1..MAX] Of Integer;
C : Char;
Begin;

Clrscr;
TextColor(White);
Repeat
Writeln('C A L E N D A R I O P E R P E T U O (1857-2036)');
Writeln('');
Writeln('Giorno=');
Readln(GIORNO2);
Writeln('Mese=');
Readln(MESE2);
Writeln('Anno=');
Readln(ANNO2);

Assign(Q,'anni.txt');
reset(Q);
For K2:=1 To MAX Do
Begin;
For K:=1 To 7 Do
Begin;
Readln(Q,ANNO[K,K2]);
(* Write(ANNO[K,K2],' '); *)
End;
End;
Close(Q);

Assign(Q,'mesi.txt');
reset(Q);
For K2:=1 To MAX Do
Begin;
For K:=1 To 12 Do
Begin;
Readln(Q,MESE[K,K2]);
(* Write(MESE[K,K2],' '); *)
End;
End;
Close(Q);

Assign(Q,'giorni.txt');
reset(Q);
For K2:=1 To MAX Do
Begin;
For K:=1 To 2 Do
Begin;
Readln(Q,GIORNO[K,K2]);
(* Write(GIORNO[K,K2],' '); *)
End;
End;
Close(Q);

K:=1; K2:=1;
Repeat
K:=K+1;
If K > 7 Then Begin; K:=1; K2:=K2+1; End;
Until ANNO[K,K2] = ANNO2;
Writeln;
(* Writeln(K,' ',K2); *)
(* Writeln(MESE2,' ',K2); *)


NUM:=MESE[MESE2,K2]+GIORNO2;
(* WriteLn('num= ',NUM,' '); *)


K:=1; K2:=1;
Repeat
K:=K+1;
If K > 2 Then Begin; K:=1; K2:=K2+1; End;
Until GIORNO[K,K2] = NUM;


Write(' ',(*K2,*)' il giorno Š ',GIORNI[K2 mod 7]);
if K2 mod 7 = 0 then Write('Sabato');
Writeln;
(* Write('ok'); *)
(* Readln; *)
Writeln('Vuoi uscire? S / N');
ReadLn(C);
C := UpCase(C);
Until C='S';
End.
Non posto screen perchè è inutile (e in modalità testuale "grezza")

Non so se può interessare qualcuno (anche perchè in internet c'è il database di calendari) comunque ormai che l'ho fatto eccolo qui!

:cursor: per il download (exe+pas): http://giochi3.altervista.org/software/calper.htm

edit:
[aprile 2015]
- ho fatto una conversione da pascal a GML, per poi sfruttare l'exporter HTML5 di GM:S. Ovvero, ora il soft è MULTIPIATTAFORMA e NON necessita di scaricare niente! :D
Ultima modifica di gameplay_extreme il 03/04/2015, 12:59, modificato 4 volte in totale.
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
alrosa
Membro attivo
Messaggi: 353
Iscritto il: 18/07/2011, 13:35
Specialità: programmazione
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da alrosa »

Si non è male come programma davvero simpatico ma sopratutto utile in certe occasioni magari potresti farne un'app per iphone e iPad chissà :fapensare:
Immagine

Avatar utente
Paccato
Membro super
Messaggi: 922
Iscritto il: 13/02/2011, 18:41
Specialità: Concept
Uso: GameMaker 8
Località: Marche
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Paccato »

Mi ricorda un vecchio lavoro fatto a scuola in C: "calcolare la differenza in giorni tra 2 date", però in quel programma le date dovevano essere comprese tra 0 e infinito.

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

alrosa ha scritto:Si non è male come programma davvero simpatico ma sopratutto utile in certe occasioni magari potresti farne un'app per iphone e iPad chissà :fapensare:
:cappa: Sono lieto che vi sia piaciuto
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Homunculus »

Domanda stupida (non conoscendo il Pascal): ma non ci sono librerie già presenti nel linguaggio per la gestione delle date e l'estrapolazione quindi del giorno della settimana? :shock:

Avatar utente
Stavros
GMI Advanced
Messaggi: 1914
Iscritto il: 24/02/2010, 20:03
Specialità: PixelArt - Grafica
Uso: GM:Studio 2
Località: QDMA12
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Stavros »

@homu: uh uh, il pascal, no no, non ci sono... Apparte che è da 5 anni che non lo uso essendo perlopiù un linguaggio didattico quindi potrei sbagliarmi, il Pascal anche se aveva i suoi limiti potevi farci cose carine (simulazioni testuali o i classici, snake, tetris, tris)

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

Homunculus ha scritto:Domanda stupida (non conoscendo il Pascal): ma non ci sono librerie già presenti nel linguaggio per la gestione delle date e l'estrapolazione quindi del giorno della settimana? :shock:
Va be anche se esistessero ho voluto fare questa prova comunque...
se esistono io sinceramente non ne ho mai sentito parlare, al massimo nella unit "dos" c'è il comando

Codice: Seleziona tutto

getdate(year, month, day, day_of_week)
che riversa nelle variabili year, month, day, day_of_week (tutte di tipo word) i dati sul giorno corrente (funziona sia sul turbo pascal che sul free pascal).
Stavros ha scritto:@homu: uh uh, il pascal, no no, non ci sono... Apparte che è da 5 anni che non lo uso essendo perlopiù un linguaggio didattico quindi potrei sbagliarmi, il Pascal anche se aveva i suoi limiti potevi farci cose carine (simulazioni testuali o i classici, snake, tetris, tris)
Il vecchio pascal (turbo pascal) aveva anche una modalità grafica a 16 colori e, scaricando un programma aggiuntivo dal web, ero riuscito a portarla a 256 colori( però cosi facendo potevo usare solo un put_pixel fatto a posta, tutti i vari rectangle, circle e outtetxtxy non funzionavano più), invece il pascal nuovo (free pascal) non lo so.
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Stavros
GMI Advanced
Messaggi: 1914
Iscritto il: 24/02/2010, 20:03
Specialità: PixelArt - Grafica
Uso: GM:Studio 2
Località: QDMA12
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Stavros »

Guarda che FreePascal è solo un compilatore (o se proprio vogliamo un IDE), il linguaggio è sempre quello dagli anni '70.
Io a scuola utilizzavo il Borland Turbo Pascal, poi è "uscito" il DevPascal e alla fine il FreePascal... Ma il linguaggio quello è!

Ricordo che avevamo fatto un progettino che caricava una bitmap a 16 colori, se possibile, per immagini 32x32 ancora ancora poteva starci, quando andavi più su con le dimensioni i tempi si facevano biblici!

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

Stavros ha scritto:Guarda che FreePascal è solo un compilatore (o se proprio vogliamo un IDE), il linguaggio è sempre quello dagli anni '70.
Io a scuola utilizzavo il Borland Turbo Pascal, poi è "uscito" il DevPascal e alla fine il FreePascal... Ma il linguaggio quello è!
Si ho capito...ma il compilatore più nuovo sfrutterà meglio le caratteristiche dei nuovi computer
Stavros ha scritto:Ma il linguaggio quello è!
Ma non potrebbe essere che il compilatore più nuovo accetti anche dei nuovi comandi (o che siano incluse nuove unit)? che poi se sono uguali come dici tu a cosa serve l'opzione del free pascal "rendi compatile con il turbo pascal"?
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Stavros
GMI Advanced
Messaggi: 1914
Iscritto il: 24/02/2010, 20:03
Specialità: PixelArt - Grafica
Uso: GM:Studio 2
Località: QDMA12
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Stavros »

Infatti non ho detto che Free Pascal = (Borland) Turbo Pascal... Ho detto che sono ambienti di sviluppo e compilatori per lo stesso linguaggio, il Pascal...
Magari hanno struttura dei file diversa (ecco spiegato perchè c'è l'opzione di compatibilità), ma la compilazione avviene nel medesimo modo...
Per approfondire Pascal (wikipedia)... Viene menzionato Free Pascal come compilatore open source, prima differenza dal Borlant TP, e seconda differenza che ha la sintassi compatibile con l'Object Pascal (un altro linguaggio, non solo un IDE) evidentemente diversa da quella del Turbo Pascal...

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

:cappa: Grazie per le info...
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da Jak »

marco23452b ha scritto:Si ho capito...ma il compilatore più nuovo sfrutterà meglio le caratteristiche dei nuovi computer
Un compilatore più nuovo offre, generalmente, più funzionalità e lo adatta ad essere utilizzato nei nuovi computer. Ma se vuoi le prestazioni generalmente sono meglio quelli vecchi proprio perchè erano studiati per andare su pc muli e non offrire un'ottimo ambiente di sviluppo :baron:
marco23452b ha scritto:Ma non potrebbe essere che il compilatore più nuovo accetti anche dei nuovi comandi (o che siano incluse nuove unit)?
E' chiaro che un compilatore nuovo o aggiornato ti permette di utilizzare librerie standard e cambiamenti sintattici avvenuti successivamente il rilascio dei vecchi compilatori ma generalmente gli standard di un linguaggio non cambiano ne molto ne molto frequentemente specialmente per linguaggi un po vecchi dove per adattarlo alle nuove metodologie di programmazione renderebbe più facile e performante fare un nuovo linguaggio da capo, non ne vale la pena quindi.
Per quanto ne so con il pascal non è cambiato niente da molto tempo.

Fatto sta che linguaggio e compilatore son due cose completamente diverse. :baron:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Calendario Perpetuo in pascal (con sorgente)

Messaggio da gameplay_extreme »

Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti