Questo Forum utilizza i Cookies
Questo Forum fa uso di Cookies per memorizzare le informazioni di login se sei registrato o sulla tua ultima visita se non siete registrati. I Cookies sono piccoli documenti di testo memorizzati sul vostro computer; i Cookies impostati dal Forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza. I Cookies su questo forum servono anche a monitorare gli argomenti specifici che hai letto. Si prega di confermare se accettare o rifiutare i Cookies impostati.

Un cookie verrà memorizzato nel browser indipendentemente dalla scelta, per evitare che il Forum faccia nuovamente questa domanda. Sarete in grado di modificare le impostazioni dei cookies in qualsiasi momento tramite il link a piè di pagina

Rispondi 
Guida al linguaggio C
s n a r m p h
snarmph
*
Offline

Messaggi: 46
Registrato: 12-09-2017
Reputazione: 0
Mi Piace Ricevuti: 171
Pok√©Money: 145.00‚āĪ
Messaggio: #1
Guida al linguaggio C
Introduzione

Setup
Windows

Linux/macOS

Il nostro primo programma

Variabili
(Questo messaggio è stato modificato l'ultima volta il: oggi 11:38 AM da s n a r m p h.)
05-10-2021 09:21 AM
Cerca Cita
 Mi piace ricevuti da: Flygon , Andrea , PacoScarso , MegaTorterra , Boh , IvanFGK , Drk090
MegaTorterra
Glitched trainer
******
Offline

Messaggi: 599
Registrato: 04-05-2017
Reputazione: 1
Mi Piace Ricevuti: 361
Pok√©Money: 1,425.50‚āĪ
Messaggio: #2
RE: Guida al linguaggio C
Questa guida casca a fagiolo, nel prossimo semestre ho l'esame di informatica, almeno non parto da 0
05-10-2021 02:29 PM
Cerca Cita
 Mi piace ricevuti da: s n a r m p h
Boh
Non so cosa mettere, quindi: "..."
***
Offline

Messaggi: 169
Registrato: 13-08-2020
Reputazione: 1
Mi Piace Ricevuti: 61
Pok√©Money: 615.50‚āĪ
Messaggio: #3
RE: Guida al linguaggio C
Interessante, thread già aggiunto alla barra dei preferiti!

Oltre a ciò, mi ricordo che in quel breve periodo in cui avevo provato a imparare il C++ (ho poi rinunciato in favore del Pascal) avevo installato il compilatore TDM-GCC (su Windows), e mi pare di aver letto nel readme che funzionasse anche col C e se non mi sbaglio era anche open source... Dovrebbe andare bene, vero?

In ogni caso prima di buttarmi su linguaggi pi√Ļ "complessi" prover√≤ a capire bene il Pascal!
05-10-2021 06:32 PM
Cerca Cita
s n a r m p h
snarmph
*
Offline

Messaggi: 46
Registrato: 12-09-2017
Reputazione: 0
Mi Piace Ricevuti: 171
Pok√©Money: 145.00‚āĪ
Messaggio: #4
RE: Guida al linguaggio C
Variabili
In C possiamo utilizzare delle variabili per salvare dei valori. Ogni variabile deve avere un tipo, per ora guardiamo a quelli fondamentali:
  • 'char' .......... 1 byte / 8 bit
  • 'short' ......... 2 byte / 16 bit
  • 'int' ............ 4 byte / 32 bit
  • 'long' .......... 4 byte / 32 bit
  • 'float' .......... 4 byte / 32 bit
  • 'double' ....... 8 byte / 64 bit
Tecnicamente la dimensione dei tipi dipende dal computer che si sta utilizzando, ma nel 99.9% dei casi sono questi. I primi 4 tipi non possono rappresentare valori decimali, mentre float e double possono.
Questi 4 tipi di variabili possono essere:
  • 'signed' possono rappresentare valori positivi e negativi
  • 'unsigned' possono solo rappresentare valori positivi, se la variabile va sotto lo zero, semplicemente ritorner√† ad essere il valore maggiore possibile con quella variabile (es. unsigned char a = -1; => a = 255)
Di base tutte e 4 le variabili (tranne char) sono signed, char invece pu√≤ essere sia signed che unsigned, lo standard specifica solo che sia la variabile pi√Ļ piccola rappresentabile (molto spesso in C lo standard non da delle specifiche precise, ma solo dei consigli, questo perch√® C doveva poter essere utilizzabile su qualsiasi computer dagli anni 70 ad oggi)

In C tutte le variabili devono essere dichiarate prima di essere usate, ad esempio:

Codice:
int a; // dichiarazione di a
int b; // dichiarazione di b
int c = 12; // si può dare un valore iniziale durante la dichiarazione
a = c; // oppure darlo dopo

Attenzione a non confondersi con la matematica, quando scrivo
c = 12, sto assegnando il valore a destra alla variabile
a sinistra. Quindi la variabile 'c' diventa '12'.

Inoltre quando si scrive //, da quel momento in poi quella linea viene considerata "commento", cioè viene ignorata dal compilatore

Queste sono le principali operazioni aritmetiche possibili:
  • '+' pi√Ļ
  • '-' meno
  • '*' per
  • '/' diviso
  • '%' resto, data una divisione, ritorna il resto (es. 3 % 2 = 1)
    la precedenza è come in matematica, e si possono usare le parentesi
    per essere pi√Ļ espliciti

Prendiamo ora la formula per convertire fahrenheit in celsius:
celsius = (fahrenheit - 32) * 5 / 9
possiamo tradurre questa formula nel seguente programma in c

Codice:
// per ora vi basti sapere che questa linea
// ci permettere di scrivere cose sullo schermo
#include <stdio.h>

int main() {
    int fahrenheit = 50;
    int celsius = (fahrenheit - 32) * 5 / 9;
    printf("celsius: %d\n", celsius);
}

Se compilate il programma, il risultato dovrebbe essere 10:
[Immagine: txtIXD8.png]

Ma noterete che se mettiamo un valore tipo 33, il risultato diventa 0!
[Immagine: yn2didF.png]

Ma come? anche google dice che il risultato è 0.5555(etc)
[Immagine: Oz0MKq2.png]

Se vi ricordate, prima vi ho detto che 'int' non può rappresentare valori decimali, ma 'double' si! Proviamo allora a modificare il programma per usare double invece che int:
Codice:
#include <stdio.h>

int main() {
    // usiamo .0 per dire a C di convertire il numero in double, altrimenti
    // userebbe comunque int
    double fahrenheit = 33.0;
    double celsius = (fahrenheit - 32.0) * 5.0 / 9.0;
    printf("celsius: %g\n", celsius);
}

E vediamo che ora il risultato è corretto:
[Immagine: jdCqxqu.png]
oggi 11:36 AM
Cerca Cita
 Mi piace ricevuti da: Andrea
Rispondi 




Utente(i) che stanno guardando questa discussione: 1 Ospite(i)
Powered by MyBB, © 2002-2021 MyBB Group. Copyright ¬© | 2021 Pok√©mon Hacking