Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti informatica c++, Appunti di Informatica

appunti programma completo informatica secondo anno liceo, algoritmi e c++

Tipologia: Appunti

2023/2024

In vendita dal 27/12/2024

sofiaaa_med
sofiaaa_med 🇮🇹

65 documenti

1 / 28

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
ALGORITMI E SOLUZIONE DEI PROBLEMI - Modello e implementazione
Modello del problema
Cos’è un modello?
Un modello è una forma di rappresentazione semplificata della realtà che tiene conto di
tutti gli elementi determinanti (e solo di essi) per la risoluzione di un problema.
Dal modello al programma
La formalizzazione è un processo che individua gli elementi della realtà osservata trattando
tali elementi come entità stratte che devono avere due caratteristiche fondamentali:
Devono essere registrabili;
Devono essere messe in relazione tra loro
IMPLEMENTAZIONE
La formalizzazione di un problema è essenziale per poter trasferire la soluzione di un
problema in una macchina che sia in grado di risolverlo in modo automatico (senza
l’intervento dell’uomo).
Progettazione e trasferimento della soluzione di un problema su un sistema di elaborazione.
Entità e proprietà
Per fornire una rappresentazione più formalizzata, nel modello vengono introdotte le proprietà
delle entità.
Queste proprietà assumono valori diversi per misurazioni diverse e quindi sono variabili.
Le proprietà si definiscono costanti quando non cambiano anche considerando problemi
diversi con variabili diverse.
I nomi che diamo alle variabili o alle costanti, per distinguerle all’interno del modello
considerato si chiamano, in modo generico, identificatori.
DATI E AZIONI
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Anteprima parziale del testo

Scarica appunti informatica c++ e più Appunti in PDF di Informatica solo su Docsity!

ALGORITMI E SOLUZIONE DEI PROBLEMI - Modello e implementazione Modello del problema Cos’è un modello? Un modello è una forma di rappresentazione semplificata della realtà che tiene conto di tutti gli elementi determinanti (e solo di essi) per la risoluzione di un problema. Dal modello al programma La formalizzazione è un processo che individua gli elementi della realtà osservata trattando tali elementi come entità stratte che devono avere due caratteristiche fondamentali:  Devono essere registrabili;  Devono essere messe in relazione tra loro IMPLEMENTAZIONE La formalizzazione di un problema è essenziale per poter trasferire la soluzione di un problema in una macchina che sia in grado di risolverlo in modo automatico (senza l’intervento dell’uomo). Progettazione e trasferimento della soluzione di un problema su un sistema di elaborazione. Entità e proprietà Per fornire una rappresentazione più formalizzata, nel modello vengono introdotte le proprietà delle entità. Queste proprietà assumono valori diversi per misurazioni diverse e quindi sono variabili. Le proprietà si definiscono costanti quando non cambiano anche considerando problemi diversi con variabili diverse. I nomi che diamo alle variabili o alle costanti , per distinguerle all’interno del modello considerato si chiamano, in modo generico, identificatori. DATI E AZIONI

I tipi di dato I dati in un problema possono essere di tipo diverso:  Numerici : età di una persona, importi da pagare, dimensioni di un oggetto,…  Alfabetici : nome di una persona, il titolo di un libro, il nome di un fiume,…  Alfanumerici : dati rappresentati da una combinazione di numeri e lettere, chiamati anche stringhe. Le azioni Le azioni possono essere riconducibili ad operazioni:  di tipo aritmetico quali i calcoli; di tipo logico , quali il confronto tra due valori o il confronto del valore di verità di un enunciato La metodologia di valoro Il processo di risoluzione di un problema può essere diviso in fasi ben distinte tra loro.  Prima fase: Si definisce il problema descrivendo i dati : quelli che abbiamo a disposizione e quelli che dobbiamo ricavare ;  Seconda fase: si definiscono le azioni da compiere e, in basa ai dati a disposizione, l’esatta sequenza di azioni da intraprendere per ottenere la soluzione del problema. Prima fase – Descrizione del problema Gli elementi che caratterizzano il problema sono:  I dati iniziali o dati in ingresso, o dati di input;  I risultati che si vogliono ottenere, detti dati in uscita o dati di output;  Le risorse a disposizione;  Le soluzioni adottate, ovvero il procedimento e il percorso che permettono di passare dai dati iniziali ai risultati attesi. L’individuazione di questi elementi costituisce l’analisi del problema. Seconda fase – Stesura dell’algoritmo La soluzione del problema così come è stata descritta nella prima fase, deve essere organizzata e sviluppata in una serie di operazioni da attuare secondo un ordine ben definito , che permette di giungere ai risultati attesi a partire dai dati iniziali. Scomporre il procedimento risolutivo in una sequenza di operazioni elementari da eseguire per ottenere i risultati attesi, costituisce la stesura dell’algoritmo risolutivo. Definizione di algoritmo L’ algoritmo è la descrizione di un insieme finito d’istruzioni , che devono essere eseguite per portare a termine un dato compito e per raggiungere un risultato definito in precedenza. Nella definizione di ALGORITMO è implicita la presenza di un esecutore , in altre parole di un oggetto, macchina, ente o persona alla quale affidare l’interpretazione e l’esecuzione delle istruzioni contenute nell’algoritmo. GLI ALGORITMI

COMPUTER E PROGRAMMI

Quando l’esecutore è un computer, l’algoritmo dovrà essere scritto secondo un linguaggio definito, con regole rigorose in modo da essere, ad esso, comprensibile. In questo caso l’algoritmo diventa un programma. UTENTE E PROGRAMMATORE COMPUTER E PROGRAMMI Se l’esecutore è il computer, occorre progettare algoritmi che siano eseguibili da una macchina; per comunicare con esso, occorre usare un linguaggio appropriato. Nella scrittura di un algoritmo dobbiamo quindi tenere presenti due fattori importanti: o Le abilità che possiamo attribuire a un computer ; o Le caratteristiche e le possibilità del linguaggio che intendiamo usare per scrivere gli algoritmi. LE ABILITÀ DI UN COMPUTER  Calcolare la somma, la differenza, il prodotto e il quoziente tra due numeri;  Svolgere operazioni di confronto;  Trasferire dati da una zona all’altra della memoria;  Acquisire dati dall’ambiente esterno;  Comunicare dati all’ambiente esterno. L’esecutore può essere una persona, una macchina o un insieme di persone e macchine

LA MEMORIA CENTRALE

RIASSUMENDO

La stesura di un algoritmo eseguibile da parte di un computer deve contenere:  I nomi dei dati e degli oggetti usati e la loro tipologia;  la successione dell’operazione da compiere sui dati per produrre i risultati. ACQUISIRE E COMUNICARE DATI La risoluzione di un problema, come abbiamo visto, comporta l’individuazione di tre elementi ben definiti e indispensabili per una corretta stesura dell’algoritmo risolutivo:  dati iniziali;soluzione adottata;risultati finali DATI DI INPUT E DATI DI OUTPUT Un esecutore deve essere in grado di leggere dall’esterno i dati in ingresso (o dati di input ) e deve essere in grado di scrivere verso l’esterno i dati di uscita ( o dati di output ) (nella pseudocodifica: immetti input, assegna quando bisogna fare un calcolo, scrivi output) VARIABILI DI LAVORO Ci possono essere poi altre variabili, che non sono né di input né di output, ma che sono comunque necessarie all’attività di elaborazione per ottenere risultare parziali, e che vengono chiamate variabili di lavoro , temporanee o di calcolo. RICORDA: SQRT= radice quadrata

I simboli di inizio e fine Da inizio parte una sola freccia che raggiunge la prima istruzione e non arriva alcuna freccia. Verso f ine arrivano una o più frecce, ma da esso non ne parte nessuno. Simbolo di inserimento o visualizzazione Simbolo di decisione In mancanza di indicazioni specifiche si assume che l’immissione dei dati avvenga da tastiera ( standard input ) e che i dati di output siano presenti sullo schermo ( standard output ) Simbolo di elaborazione

Il simbolo di decisione è usato per stabilire se una proposizione è vera o falsa e in corrispondenza delle frecce in uscita si trovano indicazioni del tipo sì/no, vero/falso, V/F. Viene così definito il valore di un’espressione di tipo logico , cioè di una variabile a due valore a uno dei quali corrisponde il significato di condizione verificata, vero , e all’altro quella di condizione non verificata, falso. Simbolo di commento LA PROGRAMMAZIONE STRUTTURATA Le strutture di controllo: sequenza e selezione Il lavoro di organizzazione di un algoritmo consiste nella stesura della sequenza di operazioni che devono essere eseguite per ottenere lo scopo prefissato. La stesura di un algoritmo è uno dei passi necessari all’interno di un lavoro più complesso che costituisce la realizzazione di un programma. La programmazione infatti è un’attività che può essere divisa in almeno quattro parti:  Definizione del problema  Organizzazione dell’algoritmo risolutivo  Stesura del programma, cioè traduzione dell’algoritmo in linguaggio di programmazione  Prove di esecuzione del programma Questo metodo di lavoro va sotto il nome di programmazione strutturata. Definizione: La programmazione strutturata è la progettazione, la realizzazione ed il collaudo di un programma costituito di parti che dipendono l’una dall’altra secondo un ben definito modello organizzativo. Nella programmazione strutturata qualsiasi algoritmo può essere scritto utilizzando solo tre struttura base:  SequenzaSelezione ( o struttura condizionale)Ripetizione ( o iterazione) Questi tre modelli si chiamano strutture di controllo , perché servono a controllare il percorso all’interno del procedimento risolutivo per ottenere i risultati desiderati. LE STRUTTURE DI CONTROLLO

Come utilizzare i connettivi logici nel costrutto selettivo (o alternativo) In informatica si usano spesso i principi della logica degli enunciati, detta anche algebra booleana dal nome del matematico inglese George Boole. Gli oggetti dell’algebra di Boole sono gli enunciati. DEFINIZIONE: si dice enunciato una proposizione della quale si può dire se è VERA o FALSA. La verità o la falsità di un enunciato sono detti valori di verità; Un enunciato può essere vero o falso, ma non entrambe le cose. Alcuni enunciati possono essere composti , vale a dire sono formati da sotto-enunciati collegati tra loro da connettivi logici. I connettivi fondamentali dell’informatica sono AND, OR e NOT. Il connettivo AND o congiunzione Due enunciati possono essere collegati dal connettivo “ e ” (in inglese ed informatica AND), in modo da formare un enunciato composto, detto congiunzione degli enunciati di partenza. In simboli: p AND q Denota la congiunzione degli enunciati p e q Il connettivo AND: tabella di verità P AND q è vera solo nel caso in cui sono veri entrambi i sotto-enunciati Il connettivo OR o disgiunzione Due enunciati possono essere collegati dal connettivo “ o ” (in inglese e in informatica OR), in modo da formare un enunciato composto, detto disgiunzione degli enunciati di partenza. In simboli: p AND q Denota la disgiunzione degli enunciati p e q Il connettivo OR: tabella di verità L’operatore NOT p OR q è FALSA solo nel caso in cui sono FALSI entrambi i sotto- enunciati, è VERA in tutti gli altri casi.

Dato un enunciato p , è possibile formare un altro enunciato NOT p e che è detto negazione di p. Nel linguaggio corrente la negazione di p si ottiene anteponendo a p “non è vero che…” oppure inserendo in p la parola “non”. L’operatore NOT: tabella di verità NOT p produce la negazione dell’enunciato, cioè il valore di verità opposto a quello di partenza. PROGRAMMAZIONE E LINGUAGGIO C++

Si chiama elaborazione il trattamento di DATI per ottenere nuove informazioni. L’ elaboratore è la persona o la macchina che esegue l’elaborazione. Ogni elaborazione prevede i dati d’ingresso (dati di input ) e produce i dati in uscite (dati di output ). CARATTERISTICHE GENERALI DEL LINGUAGGIO I LINGUAGGI INFORMATICI Per risolvere un problema occorre fornire al computer le istruzioni da eseguire e i dati su cui le istruzioni devono operare. La successione delle operazioni da compiere per raggiungere il risultato richiesto da un problema si chiama algoritmo. Per comunicare con un computer, le istruzioni dell'algoritmo devono essere convertite in un codice comprensibile alla macchina ( codifica ). Il risultato della traduzione delle istruzioni si chiama programma (o codice ). L'insieme dei programmi utilizzati nei computer si chiama software.

DALL’ALGORITMO AL PROGRAMMA

La programmazione è l’attività con la quale si crea nuovo software, cioè nuovi programmi e procedure eseguibili dal computer. La persona che è in grado di scrivere programmi si chiama programmatore.

Le basi Come per i linguaggi naturali, in un linguaggio di programmazione si devono rispettare:  Il lessico , cioè l’insieme delle parole riconosciute dal linguaggio;  Le regole della sintassi , cioè le modalità per scrivere le frasi in modo corretto. Oltre le parole che fanno parte del linguaggio, in un programma compaiono gli identificatori , cioè il nome che il programmatore assegna alle specifiche componenti, quali costanti, variabili e sottoprogrammi. Il linguaggio C++, come molti linguaggi di programmazione, ci consente di costruire con efficacia e precisione un programma ben strutturato. Esempio:Scrivere un programma che calcoli la somma tra due numeri.

**1. costruzione della tabella dei dati:

  1. pseudocodifica o flow-chart
  2. Codifica in linguaggio C++** La prima riga è un commento ed inizia con una coppia di barre // In questo caso contiene il nome con il quale il programma è stato salvato su disco: somma.cpp I commenti possono essere inseriti in

Il linguaggio C++ non possiede apposite istruzioni per la gestione dell’interazione con l’utente, ma si appoggia sulle funzioni delle librerie standard del linguaggio, dette librerie di Input/Output. Il commento può essere scritto su più righe racchiuso tra i caratteri: /* all’inizio della prima riga */ alla fine dell’ultima riga Il file iostream contiene la definizione delle risorse e la descrizione delle funzioni (prototipi) per le operazioni di I/O, utilizzabili poi in qualsiasi punto del programma, in particolare la definizione di:  cin per rappresentare il flusso dei dati acquisiti dalla tastiera  cout per il flusso dei dati visualizzati sul video il programma che contiene operazioni di Input o Output deve contenere all’inizio un’apposita dichiarazione (direttiva include ) per includere in esso la libreria di I/O: # include

Il programma inizia con la parola main

(), seguita da una parentesi graffa aperta

( { ), che indica ‘inizio delle istruzioni da

eseguire.

La sequenza termina con una parentesi

graffa chiusa ( } ).

Subito dopo la parola main c’è una

coppia di parentesi tonde, perché il

programma può essere considerato

una funzione che può ricevere degli

argomenti: essi se indicati vengono

indicati tra parentesi tonde.

Una funzione in generale, oltre a

ricevere gli argomenti necessari

all’elaborazione, restituisce un valore

come risultato dell’elaborazione,

proprio come accade per le funzioni

matematiche.

La funzione main restituisce al

sistema operativo un valore 0 (Falso)

o diverso da 0 (Vero) per indicare,

rispettivamente, l’assenza o la

presenza di uno stato di errore al

termine dell’esecuzione.

Questo spiega l’istruzione finale del

programma: return 0

La funzione main restituisce valore

0 (zero), cioè errore=Falso, come

dire “non si sono verificati errori”.

Quindi il valore restituito dalla

funzione main è un numero intero:

il tipo di dato restituito è indicato

prima della parola main con la

specificazione int , che significa

appunto numero intero.

La prima riga dopo main

specifica quali sono le variabili

utilizzate nel programma.

Da notare che hanno lo stesso

nome degli identificatori inseriti

nella tabella dei dati.

Nella prima riga inoltre viene

specificato di che tipo sono le

variabili. La parola chiave int

indica che si tratta di numeri

interi.

L’istruzione: somma=a+b;

specifica che il risultato del

calcolo a+b deve essere

assegnato alla variabile

somma