Estratto del documento

Operatore &: fornisce l'indirizzo di memoria della variabile

Scanf: questa funzione legge dallo Standard input stdin e mette l'input negli indirizzi

delle variabili specificate nella lista di argomenti.

La funzione scanf richiede di specificare l'indirizzo di ogni variabile, oppure un

puntatore ad essa.

int iyz;

scanf("%d", &iyz);

E' anche possibile associare solamente il nome di un array o di una stringa a scanf,

poiché questo corrisponde all'indirizzo di partenza dell'array/stringa:

char string[80];

scanf("%s", string);

La funzione scanf leggerà i caratteri fino a che non incontra uno spazio, un newline o

un indicatore di fine file. Quindi non si può usare scanf per leggere una stringa

contenente spazi. non deve contenere messaggi!

scanf("inserire un int: %d", &x)

Inserire spazi o altri caratteri nella stringa di formato di scanf() è possibile, ma ha il

significato di richiedere che tali caratteri siano obbligatoriamente presenti in input: se

mancano allora scanf() dà errore.

Questa caratteristica può essere sfruttata per leggere dati formattati in modo

particolare, come ad esempio una data (gg/mm/aa)

scanf("%d/%d/%d", &gg, &mm, &aa);

In tal modo, scanf() filtra automaticamente i dati, eliminando le barre e “catturando”

gli interi che interessano.

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{ int i;

int n = 0;

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

{ scanf ("%d",&n);

if(n == 0)

break;

printf ("%d\n", n+n);

}

system ("PAUSE");

return 0;

}

La funzione printf in C

L'output è essenziale per visualizzare i risultati. La funzione printf, serve per

visualizzare sullo

standard output una stringa costruita in base ad un formato specificato. La funzione

printf rappresenta lo strumento principale per mostrare informazioni all'utente.

Funzione standard, parte della libreria stdio.h del linguaggio C

Visualizzazione output, mostra testo e dati sullo schermo

Sintassi semplice: printf("formato", arg1, arg2, ...);

La stringa di formato

Specificatori di formato: iniziano con % e rappresentano i tipi di dati

Testo normale: caratteri visualizzati esattamente come scritti

Stringa delimitata: racchiusa tra virgolette doppie

Esempi Pratici

Tipi diversi

printf("Intero: %d, Float: %.2f", 42, 3.14159);

Output: Intero: 42, Float: 3.14

Larghezza e precisione

printf("Pi: %8.3f", 3.14159);

Output: Pi: 3.142

Formattazione testo

printf("Riga 1\nRiga 2\tTabulazione");

La funzione printf è essenziale per l'output in C. Offre grande flessibilità nella

formattazione.

Applicazioni: usata per interfacce utente testuali, debugging, log di sistema e molto

altro.

La funzione printf, serve per visualizzare sullo standard output una stringa costruita in

base ad un formato specificato.

int printf(const char *format, ...)

La funzione è definita come segue:

int printf(char *format, arg list ...)

e stampa sullo Standard output stdout la lista di argomenti conformemente alla

stringa di formato specificata. La stringa di formato può avere due tipi di oggetti:

- Caratteri ordinari che vengono copiati in output

- Specifiche di formato contraddistinte da "%

Il formato

Il formato stabilisce:

- Come interpretare la sequenza dei caratteri immessi con il dispositivo di input

(tastiera)

- Con quale sequenza di caratteri rappresentare in output (sul video o sulla stampante)

i valori da stampare.

Esempio di printf

Ad esempio: a = 17.23478; printf("%-2.3f", a);

L'output a video sarà: 17.235

Stringhe

Una stringa è una collezione di caratteri delimitata da virgolette

"ciao " "Hello\n "

In C le stringhe sono semplici sequenze di caratteri di cui l’ultimo, sempre presente in

modo implicito, è '\0’

"ciao" = {'c', 'i', 'a', 'o', '\0'}

Una stringa è un array (vettore) di caratteri che termina con ‘\0’

Il nome di una stringa è un pointer al primo carattere e il valore di una stringa è

rappresentato come l’indirizzo del primo carattere della stringa.

char *cognome = "Giovannini"; crea una variabile di tipo puntatore cognome che farà

riferimento alla stringa ‘Giovannini’ in una area della memoria

In alternativa la stringa può essere definita nel modo seguente:

char cognome[ ] = "Giovannini";

0 1 2 3 4 5 6 7 8 9 10

G i o v a n n i n i \0

Viene creato un vettore di nome cognome di 11 posizioni che contiene la stringa

Giovannini

Nell’ultima posizione c’è il carattere ‘\0’ di fine stringa.

Gli operatori

Nel linguaggio C, gli operatori sono simboli che indicano al compilatore di eseguire

operazioni specifiche su uno o più operandi. Sono fondamentali per la manipolazione

dei dati e il controllo del flusso del programma.

Tipi di operatori

- Operatori aritmetici

- Operatori di assegnazione

- Operatori di incremento e decremento

- Operatori relazionali

- Operatori logici

- Operatori Bit a Bit

- Operatori di puntatore

- Operatori speciali

Un operatore si dice unario quando ha questa sintassi

<operando><operatore>

Si dice binario quando presenta questa sintassi

<operando1><operatore><operando2>

Si dice ternario quando ha questa sintassi

<operando1><simbolo><operando2><simbolo><operando3>

L’operatore di assegnamento

L’operatore di assegnamento si indica con il simbolo = (segno di uguale)

<Evalue>=<Vvalue>

dove Evalue rappresenta in generale un identificatore di variabile, mentre Vvalue

rappresenta un’espressione qualunque. Dunque Vvalue viene assegnata a Evalue.

Prima occorre valutare la parte destra Vvalue e poi assegnarla alla parte sinistra

Evalue.

A sinistra dell’operatore deve sempre esserci una variabile, a destra può esserci

- una costante

- una variabile

- un’espressione

Il tipo di dato della variabile a sinistra dell’operatore deve essere identico (o almeno

compatibile) con quanto indicato a destra, il compilatore controlla la compatibilità tra i

tipi. Inoltre, la conversione del tipo è indolore

se il tipo di dato a destra è inferiore al tipo della variabile a destra dell’operatore

Pertanto, se la conversione non avviene non è esclusa la perdita di informazione. Ad

esempio la conversione di un valore float in un valore int comporta la perdita della

parte frazionaria

Si segue dunque la seguente gerarchia char < int < float

L'assegnamento produce sempre un valore, pertanto può essere incluso all'interno di

espressioni più complesse a condizione di una perdita della leggibilità del codice

sorgente.

Più frequentemente è utilizzato per effettuare delle assegnazioni multiple.

Esempio di assegnazione multipla:

i = k = n = 0; /* ad i, k, n viene assegnato il valore 0 */

Operatori aritmetici binari

+ (somma): addiziona due operandi e concatena due stringhe

– (differenza): sottrae il secondo operando dal primo

/ (divisione): divide il primo operando per il secondo

* (moltiplicazione): moltiplica i due operandi

% (resto – operatore modulo): restituisce il resto della divisione tra due operandi

Se dichiariamo due variabili come intere ed eseguiamo operazioni di divisione su di

esse, il risultato sarà un intero 9/2=4 (non 4.5)

Per ottenere un valore float come risultante, il numeratore o il denominatore, o

entrambi, devono essere i valori float

9.0 / 2 = 4.5

9 / 2.0 = 4.5

9.0 / 2.0 = 4.5

9 / 2 = 4

Operatori aritmetici unari

Gli operatori aritmetici unari si applicano ad un solo operando modificandone il valore

Posti dopo l’operando, quindi come postfissi i++; //equivale a scrivere i=i+1; i--;

//equivale a scrivere i=i-1;

Posti prima dell’operando, quindi come prefissi ++i; --i;

Operatori di Confronto o Relazionali

- > (simbolo maggiore)

- >= (simbolo maggiore o uguale)

- < (simbolo minore)

- <= (simbolo minore o uguale)

- == (simbolo uguale)

- != (simbolo diverso)

Operatori di Confronto o Relazionali

(a>b): restituisce true se la condizione a maggiore di b è verificata, false altrimenti

(a>=b): restituisce true se la condizione a maggiore o uguale a b è verificata, false

altrimenti

(a<b): restituisce true se la condizione a minore di b è verificata, false altrimenti

(a<=b): restituisce true se la condizione a minore o uguale a b è verificata, false

altrimenti

(a==b): restituisce true se la condizione a uguale a b è verificata, false altrimenti

(a!=b): restituisce true se la condizione a diverso da b è verificata, false altrimenti

Operatore ternario

Sintassi:

condizione ? Espressione_1 : espressione_2;

Può essere utilizzato anziché utilizzare le istruzioni if-else.

Innanzitutto, verificherà se una determinata condizione è vera o meno e quindi le

espressioni verranno valutate di conseguenza. Se la condizione è vera, allora viene

valutato espressione_1 altrimenti, viene valutato espressione_2

Operatori logici

Gli operatori logici permettono di svolgere le espressioni nel calcolo booleano. Ad

esempio, consentono al programma di eseguire un'istruzione o un'altra, a seconda che

si verifichi una particolare circostanza.

Nel linguaggio C gli operatori logici sono l'AND o prodotto logico ( && ), l'OR o

addizione logica ( || ) e la negazione ( ! ).

Operatore logico negazione NOT

La relazione di negazione NOT ( ) è un connettivo logico, attraverso il quale, a partire

da una proposizione A si forma una nuova proposizione chiamata negazione di A che è

vera quando A è falsa, ed è falsa quando A è vera. La relazione è così definita:

Operatore logico disgiunzione OR

Prendiamo due variabili proposizionali, A e B, e l'operatore logico OR, ottenendo la

congiunzione logica "A OR B", se sia A che B sono vere, allora la disgiunzione è vera;

se sono entrambe false è falsa; se A è falsa e B è vera, o viceversa, allora è vera. La

relazione è così definita:

Operatore logico congiunzione AND

Prendiamo due variabili proposizionali, A e B, e l'operatore logico AND, ottenendo la

congiunzione logica "A e B". In parole povere, se sia A che B sono vere, allora la

congiunzione B è vera; ogni diversa assegnazione di valori di verità rende B falsa. La

Anteprima
Vedrai una selezione di 17 pagine su 76
Linguaggio C Pag. 1 Linguaggio C Pag. 2
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 6
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 11
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 16
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 21
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 26
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 31
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 36
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 41
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 46
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 51
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 56
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 61
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 66
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 71
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Linguaggio C Pag. 76
1 su 76
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Leonardobarelli di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Politecnica delle Marche - Ancona o del prof Innocenzi Luigi.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community