Sei sulla pagina 1di 4

Linguaggio C

20/12/2022

Introduzione
linguaggio di sistema, adatto a:

software di base (sistema operativo, compilatori)


schede elettroniche / microcontrollori (Arduino)
compilato (produce un file eseguibile)

Variabili
contenitori che permettono di memorizzare un valore di un certo tipo
più formalmente: simboli che puntano ad un indirizzo fisico all'interno della memoria RAM

dichiarazione vs inizializzazione

// Es. dichiarazione
int n; // ho riservato uno spazio di memoria nella RAM
// ma non ho ancora inserito alcun valore in quello spazio

n = 10; // adesso nella cella di memoria sarà presente il valore "10"


// Es. inizializzazione
int n = 10; // riservo uno spazio di memoria e assegno subito un
// valore iniziale

Tipi di dato
int -> numeri interi (positivi e negativi)

float / double -> numeri decimali (positivi e negativi)

char -> caratteri (es: lettera dell'alfabeto)

stringhe -> sequenze di caratteri (es: una parola è formata da più lettere)

Strutture condizionali (if)


// Struttura if
if (CONDIZIONE) {
  ...istruzioni...
}

// Struttura if-else
if (CONDIZIONE) {
  ...istruzioni...
}
else {
  ...istruzioni...
}

// Negazione
if (!CONDIZIONE) { // -> se CONDIZIONE è falsa
  ...istruzioni...
}

operatori di confronto:

a == b
a != b --> diverso
a > b , a >= b
a < b , a <= b

Strutture cicliche (for)


int i;
for (i=0; i<10; i++) {
  ...istruzioni...
}

dove:

int i -> dichiaro una variabile contatore

i=0 -> assegno un valore iniziale


i<10 -> condizione per rimanere all'interno del ciclo (simile a if (i<10) )
i++ -> istruzione da eseguire ad ogni ciclo (incrementa il valore del contatore)

Input/Output
funzioni

printf (stampa a schermo)


scanf (ricevere un valore in ingresso al programma)
per poterle usare: #include <stdio.h>
printf("formato", variabili);

// Es
printf("%d", 10); // 10 --> int
printf("%f", 8.5); // 8.5 --> float
printf("Numero %d", 10); // Numero 10

// Per andare a capo (new line) -> \n


printf("Num1: %d \n Num2: %d", 10, 8);
// Num1: 10
// Num2: 8

scanf("formato", variabili);

// Es
int n;
scanf("%d", &n); // Se inserisco "10" --> n=10

Esercizi
1. Si scriva un programma che legga due numeri interi e stampi la loro somma.

// stdio -> standard i/o -> printf, scanf


#include <stdio.h>
int main() {
   int n1, n2;
   int somma;
   printf("Inserire numeri interi\n");
   scanf("%d %d\n", &n1, &n2);
   somma= n1+n2;
   printf("Somma %d\n");
   return 0;
}

2. Verificare se un numero intero inserito da tastiera è pari o dispari e lo comunichi all'esterno.

// Verificare se un numero intero inserito da tastiera è pari o dispari e lo


comunichi all'esterno.

#include <stdio.h>

int main(){
   int n1;
   printf("Inserire un numero");
   scanf("%d\n", &n1);
   if(n1%2 != 0){
       printf("Il numero è dispari");
  }
   else {
       printf("Il numero è pari");
  }
return 0;
}
3. Verificare se un numero intero inserito da tastiera è primo e lo comunichi all'esterno.

#include <stdio.h>

int main()
{
   int n, i;
   int isPrimo = 1; // Utile per capire se ho trovato un numero primo o no
                    // 1 --> true (il numero è primo)
                    // 0 --> false (il numero non è primo)
                    // all'inizio assumo che il numero sia primo
                    // all'interno del ciclo for cerco eventuali altri divisori
   printf("Inserire un numero \n");
   scanf("%d", &n);

   for (i=2; i<n; i++) {


       if (n%i == 0) {     // Resto della divisione nullo?
           isPrimo = 0;    // Allora il numero non può essere primo -> isPrimo=0
      }
  }
   // Stampo i risultati ottenuti
   if (isPrimo) // il numero è primo
       printf("Numero primo");
   else
       printf("Numero non primo");
   
return 0;
}

Potrebbero piacerti anche