Anteprima
Vedrai una selezione di 5 pagine su 16
Fare un programma in C++ Pag. 1 Fare un programma in C++ Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fare un programma in C++ Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fare un programma in C++ Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fare un programma in C++ Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

ATTENZIONE!

A = B ASSEGNAZIONE

Si assegna ad A il valore di B: nel valore di A viene copiato il valore di B.

A = = B OPERATORE RELAZIONALE DI CONFRONTO

Non si modifica né A né B: si confrontano i due valori.

risultato dell’espressione relazionale logica è:

Il - vero se A e B sono uguali

- falso se A e B sono diversi

Operazioni applicabili al tipo carattere

Sul tipo carattere è definito un ordinamento.

Operatori relazionali

Uguale A = = B

Diverso A ! = B

Maggiore A > B

Minore A < B

Maggiore o uguale A > = B

Minore o uguale A < = B

Operazioni applicabili al tipo booleano

La congiunzione AND &&

La disgiunzione OR ||

La negazione NOT !

Operatori di incremento e di decremento (operatori unari, con un solo operando)

i = i + 1 i + + Notazione postfissa

i = i + 1 + + i Notazione prefissa

i = i - 1 i - - Notazione postfissa

i = i 1 - - i Notazione prefissa

Operatori di assegnazione composta

A = A <op> B diventa A <op> = B

Programmazione strutturata

Istruzione di selezione IF THEN

Permette di decidere quale azione eseguire tra varie alternative.

Viene valutata una condizione espressa da un’espressione logica.

dell’insieme booleano:

Il risultato della valutazione è un valore

- se è vero, si entra nel costrutto (THEN)

- se è falso, non vengono eseguite le istruzioni del blocco

Istruzione di selezione IF THEN ELSE

Fornisce un’azione alternativa se la condizione dell’if non è vera.

valutata una condizione espressa da un’espressione logica.

Viene

Il risultato della valutazione è un valore dell’insieme booleano:

- se è vero, si eseguono determinate istruzioni (THEN)

- se è falso, vengono eseguite altre istruzioni (ELSE)

Nesting degli IF THEN ELSE

La parte THEN e la parte ELSE possono a loro volta contenere delle istruzioni di selezione.

Struttura di selezione a più vie SWITCH CASE

Consente di implementare una selezione a più vie.

Il costrutto valuta la condizione intera passata a SWITCH.

Poi, rimanda lo svolgimento del programma al

blocco in cui il parametro di CASE ha lo stesso

valore di quello dell’istruzione SWITCH.

Se il blocco termina con break; allora il programma

esce dallo SWITCH, altrimenti vengono eseguiti anche

i blocchi seguenti fino ad un break o fino alla fine.

Il break forza l’uscita dal costrutto: consente di

interrompere il flusso di esecuzione all’interno

del costrutto per far tornare il flusso di esecuzione

al livello superiore.

Se nessun blocco corrisponde ad un valore uguale

a quello dell’istruzione dello SWITCH,

viene eseguito il blocco in default.

Ciclo a conteggio FOR

Il ciclo FOR opera con una iterazione della sequenza che continua per un numero di volte predeterminato.

inizializzazione c è il contatore che deve essere inizializzato

(deve essere specificato il numero di cicli che deve essere fatto):

si conta dal valore iniziale vi al valore finale vf.

condizione Il FOR è un ciclo a condizione iniziale.

Si controlla di non avere già eseguito il numero di iterazioni

richieste (si controlla che il contatore non sia già maggiore del

valore finale; se lo è, si esce dal costrutto altrimenti la sequenza

viene ripetuta). Quindi, la sequenza del blocco viene eseguita

solo se il valore del contatore è minore del valore finale.

variazioni dopo aver eseguito la sequenza, il contatore viene

modificato (viene incrementato o decrementato) e, a seconda

della condizione, se rispettata, la sequenza viene ripetuta.

Ciclo a condizione iniziale WHILE

Il ciclo WHILE esegue un blocco di istruzioni fin quando la condizione risulta vera.

Inizialmente, viene valutata la condizione R:

- se risulta falsa, la sequenza S non viene eseguita

- se risulta vera, la sequenza S viene eseguita

Al termine dell’esecuzione del blocco, si rivaluta la condizione.

Non si sa a priori quante iterazioni verranno fatte.

Ciclo a condizione finale DO WHILE Il ciclo DO WHILE esegue un blocco di istruzioni

almeno una volta per poi valutare la condizione.

Viene prima eseguita la sequenza.

Sicuramente la sequenza viene eseguita almeno una volta.

Dopo aver eseguito la sequenza, si controlla la condizione:

- se risulta falsa, la sequenza S non viene eseguita

- se risulta vera, la sequenza S viene nuovamente eseguita

Fare un programma con tipi strutturati

Array

Operazioni

Dichiarazione di array

<tipo> nome_array [dimensione] per VETTORE

<tipo> nome_array [dimensione][dimensione] per MATRICE

Ci sono tante coppie di parentesi quadre quante sono le dimensioni.

Inizializzazione di array

<tipo> nome_array [dimensione] = {…, …} = {…, …}

<tipo> nome_array [dimensione][dimensione]

(gli elementi della matrice si inseriscono riga dopo riga)

Per le operazioni sugli elementi degli array si utilizzano gli indici.

Si hanno tanti indici quante sono le dimensioni dell’array (i per i vettori, i e j per le matrici).

Gli indici indicano la posizione dell’elemento nell’array perché la funzione d’accesso è per posizione.

Gli operatori di flusso di ingresso e di uscita possono essere utilizzati solo sui singoli elementi.

Ingresso

cin >> vettore[i]

cin >> matrice[i][j]

Uscita

cout << vettore[i]

cout << matrice[i][j]

Scansione di array Vettore

Matrice

Stringhe

La stringa è una sequenza di caratteri dotata di tappo (termina con il carattere speciale \0).

#include <…>

Usare le librerie attraverso il comando e using namespace std;

- cstring (libreria che fornisce le funzioni per lavorare sulle stringhe)

In libreria si hanno a disposizione gli operatori di ingresso e di uscita del tipo strutturato della stringa.

L’operatore di flusso può lavorare sulla stringa ma ha due limiti fondamentali:

- considera il blank (spazio) come fine della stringa

- non può controllare se la dimensione della stringa immessa supera il limite massimo consentito

Quindi si utilizza la funzione di libreria cin.getline (stringa, dimensione massima) che:

- consente di inserire una stringa contenente il blank (spazio)

consente di controllare l’ingresso limitandolo al numero massimo di caratteri possibile

- se vengono introdotti più caratteri di quelli possibili, la stringa viene interrotta

Operazioni

- strcmp (stringa, stringa): confronta due stringhe

viene fatto il confronto in maniera lessicografica

- strcpy (stringa che si vuole modificare, stringa che viene copiata): copia due stringhe

la stringa di sinistra contiene la copia (destinazione), la stringa di destra viene copiata (origine)

questa funzione non controlla se la stringa riesce a contenere la copia

- strlen (stringa): restituisce la lunghezza della stringa escluso il terminatore

tra parentesi si inserisce la stringa di cui si vuole conoscere la dimensione

- strcat (stringa concatenata, stringa che viene unita): concatena due stringhe

tra parentesi vengono inserite le due stringhe che devono essere concatenate

la stringa concatenata viene copiata nella stringa di sinistra

questa funzione non controlla se la stringa riesce a contenere la stringa concatenata

cin.ignore() dice di ignorare il contenuto del bus di tastiera in cui sono stati memorizzati gli invii che sono

stati dati quando è stato inserito il numero intero

Record

I record sono implementati mediante il costrutto STRUCT.

Gli elementi del record si chiamano campi; ogni campo deve essere univocamente identificato con un nome.

La funzione d’accesso è per nome e richiede due operandi:

- a sinistra del punto, deve esserci il nome del record di cui si vuole richiamare il campo

- a destra del punto, deve esserci il nome del campo a cui si vuole accedere

Sottoprogrammi

Per gestire un problema complesso, bisogna ridurne la complessità dividendolo in problemi.

Bisogna prima capire quali problemi dipendono da altri per risolverli nel giusto ordine.

1

Dichiarazione della funzione: prototipo nel file di libreria (file.h)

- il tipo del valore ritornato

- nome della funzione

- il numero e il tipo dei parametri formali (i nomi non sono necessari)

parametri è per indirizzo (si lavora nell’area di memoria del chiamante)

Si mette & se lo scambio dei

Si può usare const che trasforma una variabile in una costante in modo che non venga modificata

2

Implementazione della funzione nel sottoprogramma (file.cpp)

- INTESTAZIONE (INTERFACCIA)

Tipo del risultato (funzioni) o void se non c’è risultato (procedure)

-

- Nome della funzione

- Lista parametri formali (informazioni generali) o void se non ci sono parametri

- BLOCCO

- Delimitato da parentesi graffe {}

- Dichiarazione di variabili e istruzioni che devono essere eseguite

- return (<espressione>) solo se la funzione ritorna un risultato (non serve nel caso di void)

3

I sottoprogrammi sono sezioni di codice che vengono eseguiti dopo essere stati chiamati.

Il sottoprogramma può essere chiamato sia dal programma principale sia da un altro sottoprogramma.

Istruzione di chiamata al sottoprogramma

#include “…”

Usare le file.h attraverso il comando e using namespace std;

Chiamare il sottoprogramma

il sottoprogramma con un’istruzione semplice.

Si chiama

Una chiamata di funzione è costituita dal nome della funzione e dalla lista dei parametri effettivi

(informazioni specifiche al programma che si sta eseguendo separate da virgola).

File

FILE DI TIPO TESTO

1

Definizione di variabili #include <…>

Usare le librerie attraverso il comando e using namespace std;

- fstream (libreria che fornisce le funzioni per lavorare sui file)

ifstream in_file per file in lettura (input file)

ofstream out_file per file in scrittura (output file)

2

Apertura dei file del file”)

variabilefile.open (“nome apre di default un file testo in lettura o in scrittura

La funzione open invocata su uno stream di tipo:

- ifstream, fallisce se il file specificato non esiste

- ofstream

- crea il file specificato se il file non esiste

- cancella il contenuto del file se è già esistente open(“nomefile”, ios::app)

Per evitare che il contenuto di un file venga cancellato, si usa

Questa istruzione consente di scrivere appendendo il nuovo contenuto a quello già esistente

3

Un file può essere letto o scritto come uno stream tramite gli operatori << e >>

Lettura

in_file>>x;

Scrittura

out_file<<x;

4

Chiusura dei file

file.close ()

5

Controllo fine file

!file.eof()

Schemi algoritmici

Acquisizione di una lista

Scansione di una lista

Dettagli
Publisher
A.A. 2021-2022
16 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher azzmou di informazioni apprese con la frequenza delle lezioni di Fondamenti 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à degli studi di Napoli Federico II o del prof Vittorini Valeria.