• Non ci sono risultati.

C - Strutture di controllo

N/A
N/A
Protected

Academic year: 2021

Condividi "C - Strutture di controllo"

Copied!
5
0
0

Testo completo

(1)

70 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

C - Strutture di controllo

while (<condizione>) {

<istruzioni>;

} Cicli iterativi

<Istruzione/i> sarà eseguito tante volte fintantoché <condizione> risulta vera

N.B. < condizione> è un’espressione di tipo intero (in C non esiste il tipo logico) ed essa è verificata se ha un valore diverso da zero

a condizione iniziale while (<condizione>)

<istruzione>;

71 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include <stdio.h>

main () {

int Num;

printf( "immetti un numero \n”);

scanf(“%d” , &Num);

while (Num<=100) Num=Num+10;

printf ( ”Numero= %d \n”, Num);

}

Esempio Ciclo while

(2)

72 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

C - Strutture di controllo

do {

<istruzioni>;

}

while <condizione>;

Cicli iterativi

<Istruzione/i> sarà eseguito tante volte fintantoché <condizione> risulta vera

N.B. < condizione> è un’espressione di tipo intero (in C non esiste il tipo logico) ed essa è verificata se ha un valore diverso da zero

a condizione finale do

<istruzione>;

while <condizione>;

73 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include <stdio.h>

main () {

int Num;

printf( "immetti un numero \n”);

scanf(“%d” , &Num);

do

Num=Num+10;

while (Num <=100);

printf ( ”Numero= %d \n”, Num);

}

Esempio Ciclo do … while

(3)

74 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

C - Strutture di controllo

Ciclo ripetitivo (a conteggio)

for (<espressione1>; <condizione>; <espressione2>) <istruzione>;

for (<espressione1>; <condizione>; <espressione2>) {

<istruzioni>;

}

<espressione1>: è l’espressione usata per inizializzare la variabile di controllo del ciclo

<condizione>: è l’espressione logica per verificare la terminazione del ciclo

<espressione2>: è l’espressione usata per determinare il passo di incremento della variabile di controllo

Es:

for (i=1; i<100; i++) printf(“%d “, i);

75 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include <stdio.h>

main () {

int Num;

printf( "immetti un numero \n”);

scanf(“%d” , &Num);

for (i=1;i<=10;i++)

printf ( “%d \n”, Num*i);

}

Esempio Ciclo for

(4)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 76

Operatore di cast in C

C permette di forzare una variabile di un tipo a ‘comportarsi’ come una variabile di un altro tipo usando l'operatore di cast.

Il costrutto cast ha la seguente sintassi:

(<nome tipo da forzare>) <espressione>

Es. : int X=10; (float) X ==> 10.00 Es.

int numero_intero = 7;

float num_reale;

num_reale = (float) numero_intero/2;

fa ‘vedere’ la variabile numero_intero come se fosse di tipo float

num_reale = 3.5000 Senza il cast:

num_reale = 3.0000

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 77

Operatore di cast in C

Esempio:

#include<stdio.h>

main ( )

/* programma esempio CAST */

{ int numero_intero = 7;

float num_reale;

printf("numero con formato decimale = %d\n", numero_intero);

printf("\nnumero intero con formato float = %f\n\n", numero_intero);

printf("numero intero con cast float = %f\n", (float) numero_intero );

num_reale = numero_intero/2;

printf("\n Risultato divisione senza cast : numero reale = %f \n", num_reale);

num_reale = (float) numero_intero/2;

printf("\n Risultato divisione applicando il cast : numero reale = %f \n", num_reale);

system("Pause");

}

(5)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 78

Operatore di cast in C

il numero è un intero, ma formato è float … Stampato come float, riportati i decimali dopo la virgola

… divisione tra numeri interi, parte decimale troncata …

… il cast fa ‘vedere’ il numero come se fosse un float …

… come se fosse divisione tra float …

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 79

Operatore di cast in C

Alcune operazioni di cast di tipo sono fatte automaticamente, principalmente in relazione alle capacità dei numeri interi, ad esempio assegnando un valore float ad una variabile di tipo int (è automaticamente troncata la parte decimale)

E' opportuno eseguire esplicitamente operazioni di cast tutte le volte che si ha un dubbio sulla corrispondenza tra i tipi in operazioni di calcolo ed assegnazione.

E’ il caso delle divisioni: se abbiamo la divisione tra due numeri interi e vogliamo che il risultato sia un numero reale, allora deve essere eseguito il cast sui due numeri interi.

Esempio:

int dividendo= 13, divisore = 4;

float risultato;

risultato = (float) dividendo / (float) divisore;

… sarà: risultato = 3.25

… e NON risultato = 3.0 come risulterebbe dalla divisione intera:

risultato = dividendo / divisore;

Riferimenti

Documenti correlati

Manteniamo la regola che i numeri positivi iniziano con 0 e quelli negativi con 1 e proviamo ad usare il complemento a 1: ogni numero negativo si ottiene dal

Nel 12 d.C., alla morte di Ottaviano Augusto, gli succedette come imperatore. Quanti anni passarono tra i due eventi

Nelle attività introduttive abbiamo incontrato alcune situazioni nelle quali i numeri naturali non sono più sufficienti. Essi formano l’insieme dei numeri interi relativi

Le tre seguenti successioni di numeri interi sono state scritte seguendo un preciso procedimento

Sulla retta numerica l’addizione di un numero positivo si rappresenta con uno spostamento in senso positivo, cioè verso destra. L’addizione di un numero negativo si

caratteristica molto interessante: ogni sottrazione con numeri interi relativi può essere trasformata in un'addizione. Ogni sottrazione in Z può essere trasformata in un’addizione

Aggiungi una decina a tutti i numeri e scrivi nella casella sotto

PER ADDIZIONE ALGEBRICA ( O SOMMA ALGEBRICA) SI INTENDE L’OPERAZIONE CHE PRENDE IN CONSIDERAZIONE SIA LA SOMMA CHE LA DIFFERENZA. NB: OGNI NUMERO INTERO PUO’ ESSERE