Sei sulla pagina 1di 2

LO SVILUPPO DI PROGRAMMI STRUTTURATI IN C (Capitolo 3)

Prima di risolvere un qualsiasi problema, è essenziale avere una piena comprensione di quest’ultimo e un
approccio pianificato con cura che mira a risolverlo. La risoluzione di un problema comporta una procedura
che lo risolva in termini di:
1) Azioni da eseguire.
2) Ordine in cui queste azioni devono essere eseguite.

Questa procedura è definita algoritmo.

Pseudocodice
Uno pseudocodice è un linguaggio artificiale e informale che aiuta i programmatori a sviluppare algoritmi.
Gli pseudocodici non possono essere eseguiti dal computer. Essi semplicemente aiutano il programmatore a
riflettere sul programma. Esso è formato esclusivamente da caratteri per cui i programmatori potranno
confortevolmente utilizzare un editor di testo. Se preparato con cura potrà facilmente essere convertito in un
programma in C.

LE STRUTTURE DI CONTROLLO

Normalmente le istruzioni sono eseguite nell’ordine in cui sono scritte (esecuzione sequenziale); tuttavia
vari metodi consentono al programmatore di specificare quale sia l’istruzione da eseguire non tenendo conto
dell’ordine in cui questa è stata scritta (trasferimento del controllo).

Il lavoro di Böhm e Jacopini ha dimostrato che tutti i programmi possono essere scritti in termini di tre sole
strutture di controllo: la struttura di sequenza, la struttura di selezione, e la struttura di iterazione.

Struttura di sequenza
La struttura di sequenza è implicita in C. Sempre che non gli si ordini diversamente, il computer esegue
automaticamente le istruzioni del C, una dopo l’altra, nell’ordine in cui sono state scritte.

Struttura di selezione

C offre 3 tipi di strutture di selezione, in comandi:

1. if (condizione) { nel caso in cui una data condizione sia vera la eseguirà,
... istruzione altrimenti la ignorerà (controllo singolo).
}

2. if (condizione) { nel caso in cui una data condizione sia vera verrà eseguita
... istruzione 1 l’istruzione 1 altrimenti verrà eseguita l’istruzione 2
}else{ (controllo doppio).
... istruzione 2
}

3. switch (expression) {
case item1: ← caso
statement1; ← istruzione da eseguire
break; ← chiusura ricerca del caso
case item2:
statement2;
break;
.
.
.
case item n: sceglierà ed eseguirà una tra tante differenti azioni,
statement n; in base al valore assunto da una data espressione
break; (controllo multiplo).
case default:
statement;
break;
}

Operatori logici:
È possibile tramite operatori logici, implementare il numero di condizioni necessarie:

AND “&&” OR “| |” NOT “!”

Operatori relazionali:

> Maggiore
>= Maggiore uguale
< Minore
<= Minore uguale
== Uguale
!= Diverso

Operatori di assegnamento:

Assunti int a, int b, int c, int d, int e.

+= a+=7 a=a+7
–= b–=4 b=b–4
*= c*=5 c=c*5
/= d/=3 d=d/3
%= e%=9 e = e % 9 (mi da il resto di e / 9)

Struttura controllo flusso-selezione


if ci consente di regolare il flusso di codice in base al verificarsi di alcune condizioni rispetto ad altre.

if (condizione);
… ← esegui
}else{
… ← esegui se condizione non è verificata
}