Creare Videogiochi - Game Developer

Versione completa: Pascal, come si può utilizzare?
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2
Ciao a tutti, poco fà ho tenuto la mia prima lezione di informatica a scuola... la prof ci ha introdotto all' informatica, ci ha spiegato di cosa si occupa e tutt' il resto appresso.
Poco dopo un ripetente (i nuovi studenti, esclusi pochi, non sapenano nemmeno di cosa si trattava... mi chiedo io perchè avbbiano scelto informatica xd) a chiesto alla prof quale linguaggio voleva farci studiare: Pascal o C++?
La prof ha detto che il pascal è piu da "materia scolastica" dato che è più di facile comprensione...
Avrei preferito di più il C++... ma... mi devo adeguare Sad
Potete dirmi una volta studiato il pascal cosa posso farci? come posso applicarlo?
Per lo sviluppo di videogames c'è CAST II, ma resta da chiedersi se arriverai a impararlo quanto basta per utilizzare questo engine (non ho idea di come venga studiata l'informatica a scuola, ma penso che dovrai farti un po' da autodidatta).

Per applicazioni in generale penso che ti insegneranno solo a sviluppare su console (una finestra cmd per intenderci, niente GUI), ma in teoria si possono fare anche interfacce grafiche (vedi Lazarus).
grazie steve... comunque...a me interessa programmare in c++ (sono troppo pretenzioso forse xd)
Sò che siamo in italia, paese in cui si taglia sull' istruzione per garantire alla famiglia di berlusconi una vita felice e... vabbè non andiamo ot xd
Non mi aspetto molto dai professori, anche se almeno le basi della programmazione le voglio imparare!

Per iniziare a studiare il c++ cosa occorre sapere?
Conta che io non so NIENTE in campo informatico...quindi metti tutto ciò che puoi xd Grazie! ^^
Quando ho iniziato a studiarlo io (ho fatto tutto da autodidatta, a scuola studio elettronica) ho cercato qualche guida online e basta, non sapevo praticamente niente, eppure non è stata tanto dura... sarà perché lo studiavo quando e come volevo io, niente vincoli scolastici, oppure perché ne avevo sopravvalutato la difficoltà.
Fortunatamente in internet si trova ottimo materiale, anche se non sempre è in italiano.

Scaricati un IDE (consiglio Visual Studio oppure Code::Blocks) e segui qualche guida, magari passo passo con gli argomenti che trattate a scuola (i concetti fondamentali sono uguali per ogni linguaggio).

PS. spostare in programmazione?

Zapetino

spostato Smile

Lorenz

Il Pascal è il linguaggio che si studia a scuola (credo lo facciano tutte le scuole con informatica) anche se il motivo mi resta un mistero dato che il vb.net secondo me ha più campi di applicazione sopratutto al giorno d'oggi ed è più semplice dato che assomiglia a frasi scritte in inglese, o comunque è intuitivo più del pascal. Nella mia scuola facciamo java mentre il pascal lo abbiamo snobbato.
(21-09-2011, 03:41 PM)Lorenz Ha scritto: [ -> ]Il Pascal è il linguaggio che si studia a scuola (credo lo facciano tutte le scuole con informatica) anche se il motivo mi resta un mistero dato che il vb.net secondo me ha più campi di applicazione sopratutto al giorno d'oggi ed è più semplice dato che assomiglia a frasi scritte in inglese, o comunque è intuitivo più del pascal. Nella mia scuola facciamo java mentre il pascal lo abbiamo snobbato.

ma tu da quanto stai studiando il java? hai studiato altri linguagggi prima del java?
(21-09-2011, 03:41 PM)Lorenz Ha scritto: [ -> ]Il Pascal è il linguaggio che si studia a scuola (credo lo facciano tutte le scuole con informatica) anche se il motivo mi resta un mistero dato che il vb.net secondo me ha più campi di applicazione sopratutto al giorno d'oggi ed è più semplice dato che assomiglia a frasi scritte in inglese, o comunque è intuitivo più del pascal. Nella mia scuola facciamo java mentre il pascal lo abbiamo snobbato.

Il vb.net viene preso poca in considerazione dalle scuole, in quanto ha una sinstassi: anti-studio.

Il C# invece lo potrebbero prendere in considerazione, in quanto è C-Like.

Poi ogni scuola fa come vuole xD.

Comunque:
Java, C\C++, C#, sono tutti ottimi linguaggi.
capito, vabbè...comunque ora inizio ad impararmi bene il pascal (cosi mi porto avanti col programma scolastico e acquisisco le basi per altri linguaggi... 2 piccioni con una fava)...ho trovato quella che sembra essere una buona videoguida sul pascal su youtube xd...
grazie... una curiosità... queste guide insegnano davvero il pascal oppure sono come molte altre, ti dicono cosa devi afre ma non il perchè???

P.S... che differenza c'è tra il turbo pascal e il pascal?
Ti insegnano davvero il pascal, o almeno la prima di sicuro lo fa. Il turbo pascal se non erro, è solo un: IDE, quindi non credo che ci siano differenze.
grazie mille syline ... non so come ringraziarti
Ho appena scoperto che le videolezioni che stavo seguendo sono ferme dal 2009 xd... menomale che me ne sono accorto!...
La guida che sto leggendo mi propone questo esercizio:

Scrivere un programma che, faccia la radice quadrata di un numero reale immesso da tastiera (il numero deve essere maggiore o uguale a zero). Suggerimento: usa la funzione sqrt(x:real) che ritorna la radice quadrata di x.

Io ho fatto:
Program Esercizio;
Var x:real;
begin
if x>=0 then
x=x^2 (*questo comando credo di essermelo inventato dato che non so come dire a free pascal di farmi il quadrato di x*)
end.

Potete dirmi dove ho sbagliato dato che mi esce errore?


Comunque chiedo scusa per il disturbo xd
Il Turbo Pascal è il Pascal con paradigma Object Oriented (i paradigmi di programmazione li studierai a scuola, per farla semplice vedilo come un altro ragionamento per programmare):
"Data la diffusione negli ambienti scolastici, ne sono state create versioni ad oggetti, come il Turbo Pascal e l'Object Pascal (utilizzato nell'ambiente di sviluppo Delphi di Borland)." (cit. wikipedia)
Quindi è proprio un altro linguaggio di programmazione, anche se ispirato al pascal e probabilmente anche compatibile con esso.

Ho sfogliato velocemente la guida di su pierotofy. Ora scarico Free Pascal (un compilatore) e ti faccio sapere dov'è l'errore, intanto:
  1. L'IDE ti dovrebbe segnalare un errore ben preciso
  2. L'esercizio ti dice di fare la radice quadrata, ma tu stai provando a fare l'elevamento a potenza (l'opposto); il testo dell'esercizio ti dice di usare la funzione sqrt(x:real):real (penso che basti fare così radice:=sqrt(x);)
  3. Serve uses crt; per importare la libreria standard (o parte di essa)
  4. L'operatore di assegnamento è := e non = , quindi al massimo la sesta riga dovrebbe essere x:=x^2
  5. Esegui i calcoli, ma non li stampi a schermo

[EDIT]
Ok, installato Free Pascal (un IDE per il pascal). Il tuo codice non funziona perché l'elevazione a potenza non si fa in quel modo (e anche se funzionasse non svolgerebbe l'esercizio richiesto).
La radice quadrata si fa in questo modo: radice:=sqrt(numero);
Per stampare scritte a schermo bisogna usare o write o writeln, ma il modo indicato su pierotofy è sbalgliato... funzionano così: writeln('testo ',variabile,'testo',variabile); (su pierotofy non sono indicate le ' ).

Per farti capire come ho strutturato il programma ti dico che l'output è questo (non so come mai, ma i numeri vengono visualizzati con la notazione scientifica):
Codice:
Inserisci un numero:
25 (*inserito dall'utente*)
La radice quadrata di 2.500000E+001 è 5.00000E000

Prova a vedere se capisci come fare, in caso non riesci ti posto il mio codice.


PS. nessun disturbo, tranquillo Wink

  1. [1]L'esercizio ti dice di fare la radice quadrata, ma tu stai provando a fare l'elevamento a potenza (l'opposto); il testo dell'esercizio ti dice di usare la funzione sqrt(x:real):real (penso che basti fare così radice = sqrt(x);)
    [2]Serve uses crt; per importare la libreria standard (o parte di essa)
    [3]L'operatore di assegnamento è := e non = , quindi al massimo la sesta riga dovrebbe essere x:=x^2

[/quote]

1- si me ne sono accorto ora (ho letto l' esercizio male xd)
3- Faccio schifo ç_ç xd

Lorenz

e il punto 2 ? XDD
Ho aggiornato il post precedente, non mi ero accorto che c'erano risposte.
x lorenz: già ci avevo pensato ma non ho editato xd...
x steve. ora "cerco" di capire xd..

allora, ho fatto cosi, ma so che è sbagliato:
Program esercizio;
uses crt; (*richiama libreria*)
Var x:real; (* imposta x come una variabile*)
begin
if x>=0 then (*se x è maggiore o uguale a 0 allora*)
writeln(x:=sqrt(x)) (* fai radice quadrata di x*)
end.

P.S Ho scritto sottoforma di commento una mia "traduzione" per farti capire come leggo io questo programma... non so se mi sono spiegato bene... xd

Comunque ho un problema...perchè quando clicco su Run mi esce per pochi millesimi di secondo uan finestra nera dove (credo) dovrebbe uscire il programma ma poi scompare?
Guarda com'è strutturato il mio output (l'ho scritto sopra):
  1. chiede di inserire un numero
  2. aspetta che venga inserito un numero
  3. stampa la radice quadrata (con la scritta che indica che è la radice quadrata)
  4. se il numero è inferiore a 0 dice che non è possibile fare la radice quadrata

Il tuo programma non prende in input il numero (prima però l'avevi scritto), quindi fa la radice di che x?
Inoltre ti consiglio di dichiarare 2 variabili: una per il numero e l'altra per la radice; in questo modo eviti di fare il writeln in quel modo (probabilmente non si può fare così).

Per non farlo chiudere aprilo da prompt dei comandi (vai nel percorso dell'exe).
allora, questa volta ho seguito il tuo "schema":

Program RadiceQuadrata;
Uses Crt;
Var x:real;
begin
write(inserisci un numero: );
read(x);
if x<0 then
write(non è possibile effettuare l' operazione);
else x:=sqrt(x);
end.


probabilemnte ho sbagliato qualcosa ma credo che mi ci sto avvicinando xd...
Che compilatore usi? Con Free Pascal mi segna degli errori mettendo il tuo codice ( il write che non usa ' e dei ; che non vanno messi).
Comunque l'hai praticamente risolto, però non stai stampando in output il valore di x. Ti do un consiglio: ad ogni variabile fai corrispondere un solo significato (utilizzare una x sia per il numero semplice che per il numero sotto radice si può fare, ma non è buona norma farlo).

Finito questo programma ti consiglio di farne degli altri (prima di continuare la guida) almeno ti fissi meglio i concetti.
si, sicuramente ne farò altri... nella guida ci sono 3-4 esercizi ogni 5 capitoli... comunque ho modificato il programma:

Program RadiceQuadrata;
Uses Crt;
Var x:real;
begin
write('inserisci un numero: ');
read(x);
if x<0 then
write('non è possibile effettuare l' operazione')
else x:=sqrt(x)
end.

Non mi segna errori, anche a me dava i tuoi stessi errori ma li ho risolti (non mettevo le " ' " d inizio e fine "frase" e ho tolto alcunni " ; " di troppo...)
Ora il problema è: vado nel file exe, scrivo (ad esempio) 25 e si chiude l' exe -.-...forse è questo che intendi quando scrivi "non stai stampando in output il valore di x" ??

Potresti darmi il programma che hai fatto tu? cosi almeno li confronto xd...
Edit. uso free pascal..
Questo è il mio codice:

Codice:
program esercizio;
uses crt;
var x,rad_x:real; (* x -> valore inserito dall'utente | rad_x -> radice quadrata di x *)

begin
    clrscr; (* pulisco lo schermo *)
    write('Inserire un numero: ');
    readln(x);
    if x>=0 then
        begin
        rad_x:=sqrt(x); (* io non sovrascrivo il valore di x, ho creato apposta 2 variabili differenti *)
        writeln('La radice quadrata di ',x,' è ',rad_x); (* questo è quello che ti manca, devi far vedere il valore della radice quadrata *)
        end
    else
        writeln('La radice quadrata di ,x, è un numero immaginario');
writeln('Premere invio per chiudere...');
readln (* pausa, il programma non si chiude e lo puoi avviare con 2 click sull'exe *)
end.

Tu hai calcolato il valore della radice quadrata, ma poi non lo fai vedere... basterebbe un write(x); per vederlo.
Probabilmente si può anche evitare di aprire il programma da prompt dei comandi, però è la prima volta che provo il pascal e non so dirti di più. Vedo di informarmi e ti faccio sapere.

[EDIT]
Per mettere in pausa basta mettere: readln prima di end. (ho modificato il mio programma ora)
grazie steve...nei prossimi giorni continuerò a fare gli esercizi! ti farò sapere se riesco a farli
Ti ringrazio tantissimo Big Grin
Non c'è problema... ne approfitto per vedere anch'io come funziona questo linguaggio Wink

Ho appena finito anche gli altri 3 esercizi. Man mano che li finisci ti faccio vedere anche come li ho fatti io, almeno vediamo dove migliorare.
Io non ho particolar interesse ad andare avanti e studiare tutto il linguaggio (se devo sviluppare qualcosa utilizzo C++), quindi quando vai avanti a con gli altri capitoli fammi sapere che gli do un occhiata e mi porto avanti con gli esercizi.
appena tornato da scuola ^^ faccio gli altri 3 esercizi e ti faccio sapere ^^
ecco che ti dico cosa ho fatto col 2 esercizio:
L' intestazione era : Scrivere un programma che, inserito un numero da tastiera maggiore di 0, dice se è pari o se è dispari. Suggerimento: usa l'operatore mod, che ritorna il resto di una divisione. (x mod y=resto di x/y)

Il mio codice è:
Codice:
Program PariDispari;
uses crt;
var x,y:integrer;

begin
clrscr;
write(' inserire un numero: ');
readln(x);
if x>0 then
begin
if x mod y=0 then
write(' ',x,' è pari')
else
if x mod y<>0 then
write(' ',x,' è dispari');
end;
else
writeln(' il numero è minore di 0');
writeln('premere invio per chiudere...);
readln
end.

Mi da questo errore:
Fatal: Syntax error ";" expected but "ELSE" found

che significa?
Bello, ti assegnano esercizi e non ti spiegano nulla sulle eccezzioni.

Da come hai scritto, forse l'errore si trova su

end;

dovresti levare il ;
Stai sbagliando a fare gli IF... ELSE.

Funzionano in questo modo:
Codice:
(* PRIMO CASO *)
if (* condizione *) then
(* singola istruzione con ; alla fine *)

(* SECONDO CASO *)
if (* condizione *) then
(* singola istruzione senza ; alla fine *)
else
(* singola istruzione con ; alla fine *)

(* TERZO CASO *)
if (*condizione *) then
begin
(* serie di istruzioni con ; alla fine *)
end (* senza il ; *)
else
begin
(* serie di istruzioni con ; alla fine *)
end;

Ovviamente si può fare anche con più istruzioni solo sull'IF o con più istruzioni solo sull'ELSE, ma il senso credo che si capisca. Nel tuo caso devi togliere il punto e virgola su end; perché è seguito da un else.
Per aiutarti a distinguere gli if nidificati e cose del genere ti consiglio di usare i caratteri di tabulazione o gli spazi (come ho fatto io nel codice della radice quadrata).

@BassMonsterZ: non è un esercizio scolastico, si sta portando avanti con una guida online visto che l'insegnante ha detto che si studierà quel linguaggio.
Pagine: 1 2