Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Funzioni


Funzioni con e senza Valore di ritorno

Le funzioni in C sono blocchi di codice autonomi che possono essere richiamati da altre parti del programma.
Possono essere utilizzate per organizzare il codice in unità più piccole e modulari.


Definizione di Funzioni



#include <stdio.h>

// Dichiarazione della funzione
int somma(int a, int b);

int main() {
    int risultato;

    // Chiamata alla funzione
    risultato = somma(5, 3);

    // Stampa il risultato
    printf("La somma è: %d\n", risultato);

    return 0;
}

// Definizione della funzione
int somma(int a, int b) {
    return a + b;
}


In questo esempio, la funzione `somma` riceve due argomenti interi `a` e `b` e restituisce la loro somma.


Funzioni con Valori di Ritorno



#include <stdio.h>

// Dichiarazione della funzione
int quadrato(int numero);

int main() {
    int risultato;

    // Chiamata alla funzione e assegnazione del risultato
    risultato = quadrato(4);

    // Stampa il risultato
    printf("Il quadrato è: %d\n", risultato);

    return 0;
}

// Definizione della funzione
int quadrato(int numero) {
    return numero * numero;
}

In questo esempio, la funzione `quadrato` riceve un argomento intero `numero` e restituisce il quadrato di quel numero.


Funzioni senza Valori di Ritorno


#include <stdio.h>

// Dichiarazione della funzione
void saluta() {
    printf("Ciao, mondo!\n");
}

int main() {
    // Chiamata alla funzione
    saluta();

    return 0;
}

In questo esempio, la funzione `saluta` non restituisce alcun valore (`void`), ma esegue comunque un'azione, che è la stampa di un saluto.


Funzioni con Parametri di Puntatore


#include <stdio.h>

// Dichiarazione della funzione
void raddoppia(int* numero);

int main() {
    int valore = 5;

    // Chiamata alla funzione con un puntatore
    raddoppia(&valore);

    // Stampa il valore raddoppiato
    printf("Il valore raddoppiato è: %d\n", valore);

    return 0;
}

// Definizione della funzione
void raddoppia(int* numero) {
    *numero *= 2;
}

In questo esempio, la funzione `raddoppia` riceve un puntatore a un intero e raddoppia il valore a cui punta.

Le funzioni in C possono anche restituire tipi di dati complessi, accettare un numero variabile di argomenti e altro ancora.
La loro struttura è flessibile e consente una modularità efficace nel codice.