• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Informatica di base
 

Informatica di base

on

  • 450 views

Informatica di base e c

Informatica di base e c

Statistics

Views

Total Views
450
Views on SlideShare
449
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

http://www.allacortedifederico.it 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Informatica di base Informatica di base Presentation Transcript

    • Informatica di baseFrancesco ZoinoITIS A. Volta - Napoli
    • Algoritmo• L’insieme dei passi che devono essere svolti perandare da una situazione iniziale ad una finale.2
    • Dal linguaggio naturale allinguaggio macchinaLa comunicazione uomo-macchina avviene attraversoformalismi che assumono la forma di un linguaggio3Linguaggio Naturale:Vantaggi: ricchezza espressivaSvantaggi: ambiguità, ridondanzaLinguaggio Macchina:Vantaggi: legato alla struttura fisica delcalcolatore, potenza, velocitàSvantaggi: lunghezza dei programmi,difficoltà di scrittura, difficoltà di messa apunto dei programmi
    • Come collegarli4Programma:Formulazione di unalgoritmo nei terminidi un linguaggio diprogrammazioneLinguaggio di Programmazione:Linguaggio intermedio fra illinguaggio macchina e il linguaggionaturaleDescrive gli algoritmi con unaricchezza espressiva comparabilecon quella dei linguaggi naturali,ma non è ambiguoDescrive gli algoritmi in modorigoroso
    • Traduttori5• Il linguaggio macchina è l’unico linguaggiocompreso dalla CPU• Qualsiasi altro linguaggio di programmazioneha bisogno di un traduttore (non è possibileprogettare un traduttore per i linguagginaturali, per via dell’ambiguità)• I linguaggi di programmazione sonocomprensibili sia dalla macchina (attraversoun traduttore) che dall’uomo.
    • Linguaggio ad alto livello6• E’ svincolato dall’architettura della macchina,nel senso che il programmatore non devenecessariamente conoscere le caratteristichespecifiche della CPU.• E’ più comprensibile al programmatore inquanto più vicino al linguaggio naturale.• Per CPU diverse (ad es. Intel invece cheIBM), è necessario predisporre compilatoridiversi.• Uno stesso Programma sorgente può essereeseguito su macchine (CPU) diverse, creandoil Programma oggetto con il compilatoreopportuno.• Consente la scelta di un Linguaggio in basead applicazioni specifiche.
    • C++ tipi di dati7In C++ esistono cinque tipi di dati primari:Le variabili di tipo char sono impiegate per contenere valori in cui sonosufficienti 8 bit come le lettere del codice ASCII A, B, C.Le variabili di tipo int possono contenere numeri che non richiedonoparte frazionaria.Le variabili di tipo float e di tipo double sono impiegate nel caso in cuisiano necessari numeri con parte frazionaria (cifre dopo la virgola) onumeri molto grandi. La differenza fra questi due ultimi tipi è unicamentenella massima e nella minima quantità che possono rappresentare.Il tipo void è stato introdotto per aumentare le possibilità di controllo suitipi.Esiste anche un altro tipo di dato: il bool (booleano) che può assumerevalore 1 o 0 (vero o falso) occupa soltanto 1 bit e viene spesso associatoa variabili o condizioni logiche.
    • C++ dichiarazione divariabili8La sintassi generica per dichiarare una variabile è:tipo listaVariabili;dove "tipo" deve essere uno dei tipi di dati validi del linguaggio C++mentre "listaVariabili" consiste in uno o più identificatori di variabiliseparati da una virgola.int i, j, x;char ch, lettera;float bilancio, profitto, perdita;
    • C++ inizializzazione divariabili9È possibile assegnare un valore ad una variabile nel momento stessodella dichiarazionetipo nomeVariabile = valoreVariabile;int i=2;char ch=‘A’;
    • C++ dove dichiarare levariabili10Esistono tre punti in cui le variabili possono essere dichiarate.La prima possibilità è di dichiarare le variabili allesterno di tutte lefunzioni, compresa la funzione main(). In tal caso le variabili sono detteglobali e sono utilizzabili da qualsiasi parte del programma.Una seconda possibilità è di dichiarare le variabili allinterno dellefunzioni: tali variabili sono dette locali e possono essere usate soloallinterno della funzione che le ha dichiarate.Infine le dichiarazioni delle variabili possono consistere nelladichiarazione dei parametri formali delle funzioni; un parametroformale è dunque (implicitamente) una variabile locale alla funzione dicui costituisce la segnatura.
    • C++ costanti11Le costanti sono dei valori che non possono essere alterati durantelesecuzione del programma.la sintassi tipica è:const tipo nomeCostante = valoreCostante;const int i=2;const char ch=‘A’;
    • C++ espressioni econversione dei dati12Le espressioni sono costruite a partire da operatori, costanti e variabili,seguendo le regole generali dellalgebra.È possibile forzare unespressione a essere di un tipo specifico usando ilcostrutto di cast che si usa nella forma:(tipo) espressione;In cui (tipo) è uno dei tipi di dati del C.Ad esempio se x è una variabile intera e si vuole che il risultatodellespressione x/2 sia considerato di tipo float per mantenere lacomponente frazionaria si deve scrivere:(float) x/2;
    • C++ operatori13Per operatore si intende un simbolo che indica delle manipolazionilogiche e matematiche sui dati.Gli operatori appartengono a tre classiOperatori aritmeticiOperatori relazionaliOperatori logici
    • C++ operatori aritmetici14main(){int x=10,y=3;cout<<x/y; //visualizza 3 (quoto)cout<<x%y; //visualizza 1 (resto)}operatore azione- sottrazione+ addizione* moltiplicazione/ divisione% resto della divisione tra interi-- decremento unitario++ incremento unitario-= decremento finito+= incremento finito
    • C++ incremento edecremento15x++ equivale a x=x+1x-- equivale a x=x-1x+=5 equivale a x=x+5x-=5 equivale a x=x-5
    • C++ operatori relazionalie logici16operatore azione> maggiore>= maggiore o uguale< minore<= minore o uguale== uguale!= diversooperatore azione&& AND|| OR! NOT
    • C++ costrutto if17È la struttura di alternativa per laselezione.È denominato costrutto if ed ha laseguente sintassi:if(condizione){ istruzioni-a;}else{ istruzioni-b; }Se la condizione assume valore logicovero sarà eseguito il blocco di istruzioni-a (o il blocco di istruzioni corrispondentiallif); nel caso la condizione assumevalore logico falso, se è presente il ramoelse verrà eseguito il blocco diistruzioni corrispondente (istruzioni-b).Si deve osservare che lesecuzione diuna delle due parti esclude laltra.
    • C++ costrutto if – else if18È una struttura costituita da unaserie di if- else if a scala.Ha la seguente sintassi:if (condizione-a){ istruzioni-a;}else if (condizione-b){ istruzioni-b;}else if (condizione-c){ istruzioni-c;}…else { istruzioni-n;}Se non è presente lelse finale,qualora non si sia verificata nessunadelle condizioni, non viene intrapresanessuna azione.
    • C++ espressionecondizionale19Nelle espressioni condizionali non si è vincolati ad usare espressionioperatori relazionali e logici, è richiesto soltanto che la valutazionedell’espressione condizionale porti soltanto ad un valore uguale a zero(falso) o diverso da zero (vero).main(){int a=3, b=2;if(b) cout<<a/b;else cout<<”impossibile”;}
    • C++ ciclo for20Il ciclo for è un costrutto presente intutti i linguaggi di programmazioneprocedurale. La sua forma generaleè la seguente:for(inizializzazione; condizione;incremento){istruzioni;}Linizializzazione è, nella sua forma più semplice un istruzione diassegnamento con la quale il compilatore posiziona il valoreiniziale della variabile di controllo del ciclo.La condizione è una espressione relazionale usata per valutare lavariabile di controllo al fine di determinare il momento di uscita dalciclo; lesecuzione prosegue fintanto che la condizione è vera,mentre quando diviene falsa lesecuzione del programma continuadallistruzione successiva al for.Lincremento definisce il modo in cui la variabile di controllocambia il suo valore ad ogni ripetizione del ciclo.
    • C++ ciclo for - esempi21int i;for(i=1;i<=10;i++) cout<<i;int x;for(int i=0;i<10;i++) {cout<<"inserisci un numero:";cin>>x;}char ch;for(int i=0;i<10;i++) {cout<<"inserisci una lettera:";cin>>ch;if(ch==Z) break;}
    • C++ ciclo while22Un ciclo con ripetizioneprecondizionale prevede il controlloiniziale della condizione; esso sirappresenta con listruzione while :while(condizione){istruzioni;}Il ciclo viene ripetuto fin tanto che rimane vera la condizione.Quando la condizione diventa falsa, lesecuzione del programmaprosegue dalla prima istruzione successiva al ciclo.
    • C++ ciclo while - esempi23int x=9;while(x<20){x++;cout<<" "<<x;}int x=50;while(x<20){x++;cout<<" "<<x;}
    • C++ ciclo do - while24Un ciclo con ripetizionepostcondizionale prevede il controllofinale della condizione; esso sirappresenta con listruzione while :do {istruzioni;}while(condizione);Il ciclo viene ripetuto fin tanto che rimane vera la condizione.Quando la condizione diventa falsa, lesecuzione del programmaprosegue dalla prima istruzione successiva al ciclo.
    • C++ ciclo do - whileesempio25int main(){float a, b;char uscita = y;do{cout << "ax + b = 0" << endl << "Inserisci a" << endl;cin >> a;cout << "Inserisci b" << endl;cin >> b;cout << a << "x + " << b << " = 0" << endl << "x = " <<(-b)/a << endl << "Vuoi risolvere unaltra equazione(y/n)?" << endl;cin >> uscita; }while (uscita == y || uscita == Y);cout << "Arrivederci!";return 0; }
    • C++ switch26Il valore di una variabile viene confrontato conuna lista di costanti che possono essere di tipointero o char, quando si verifica luguaglianzasi esegue il blocco di istruzioni corrispondenti.switch(variabile){case: costante1:istruzioni-1;break;case: costante2:istruzioni-2; break;..case: costante-n:istruzioni-n; break;default:istruzioni;}1) I test eseguiti nello switch possono verificare solo uguaglianze,a differenza di quelli eseguiti nellif-else-if che possonoverificare condizioni di qualsiasi tipo.2) Non possono esserci due case con lo stesso valore di costantenello stesso switch. Possono invece avere lo stesso valore duecase collocati in due switch diversi.
    • C++ switch esempio27char ch;cout<<"1.prelievon";cout<<"2.lista movimentin";cout<<"3.saldon";cin>>ch;switch(ch){case 1:prelievo();break;case 2:lista();break;case 3:saldo();break;default:cout<<"nessuna opzione selezionata";}//end switch ;
    • C++ array (vettore)28Il vettore è un insieme di elementi omogenei tra loro. Con una variabilepossiamo indicare solo un dato, con il vettore possiamo indicare tanti datidello stesso tipo con un solo nome collettivo di variabile: lidentificatore delvettore. Gli elementi si distinguono uno dallaltro attraverso lindice che vieneassegnato nel vettore, e che viene posto accanto allidentificatore delvettore.Un vettore, in generale, è una sequenza finita di elementiomogenei fra loro (tutti dello stesso tipo) e contigui(giacenti in memoria uno accanto allaltro). Di solito unvettore viene rappresentato come una successione di celle.
    • C++ array (vettore)29#define ARRAY_UNO_MAX 10#define ARRAY_DUE_MAX 20int array_uno[ARRAY_UNO_MAX];char array_due[ARRAY_DUE_MAX];tipo nomeVettore [dimensione];int a [10];
    • C++ array - esempi30int a[10];int i;for(i=0; i < 14; i++){cout << a[i] << endl;}#define AMAX 10int a[AMAX];int i;for (i=0; i < AMAX; i++){cout << a[i] << endl;}
    • C++ esercizi31Scrivere un programma che, inseriti due numeri da tastiera, ne stampi ilmaggiore.Se i due numeri sono uguali se ne stamperà la somma.
    • C++ esercizi32Scrivere un programma che, inseriti due numeri da tastiera, ne stampi ilmaggiore.Se i due numeri sono uguali se ne stamperà la somma.
    • C++ esercizi33Scrivere un programma che, dato il prezzo netto di un prodotto, lo scontidel 35% se tale prezzo è maggiore di 100 € e aggiunga l’IVA del 20%,mostrando a video il risultato.
    • C++ esercizi34Scrivere un programma che, dato il prezzo netto di un prodotto, lo scontidel 35% se tale prezzo è maggiore di 100 € e aggiunga l’IVA del 20%,mostrando a video il risultato.
    • C++ esercizi35Scrivere un programma che, inseriti due numeri interi, esegua:A) La loro somma se uno dei due è pariB) Il loro prodotto se entrambi sono pariC) Il loro quoziente se nessuno dei due è pari
    • C++ esercizi36Scrivere un programma che, inseriti due numeri interi, esegua:A) La loro somma se uno dei due è pariB) Il loro prodotto se entrambi sono pariC) Il loro quoziente se nessuno dei due è pari
    • C++ esercizi37Scrivere un programma che legge 10 numeri interi inseriti da tastiera e lisomma dopo averli letti tutti e 10 o dopo che è stato inserito il numero 0.
    • C++ esercizi38#include <iostream> //Dichiarazione della libreria "iostream«using namespace std;int main(){ //Inizio della funzione principaleint num, somma=0; //Dichiarazione delle variabilifor (int x=1; x<11; x++){ //Inizio del ciclo for che legge i 10 numeri da tastieracout<<"Inserire il "<<x<<"° numero: ";cin>>num; //Legge il numero da tastieraif (num==0){ //se il numero è 0...x=10; //...esce dal programma facendo diventare la condizione (x<10) falsa}else{ //altrimenti aggiunge il numero alla sommasomma+=num;}}cout<<"La somma dei numeri inseriti è: "<<somma<<"n";system("pause");return 0;}Scrivere un programma che legge 10 numeri interi inseriti da tastiera e lisomma dopo averli letti tutti e 10 o dopo che è stato inserito il numero 0.
    • C++ esercizi39Scrivere un programma che legge 10 numeri interi da tastiera ecomunica quanti numeri pari sono stati inseriti.
    • C++ esercizi40#include <iostream> //Dichiarazione della libreria "iostream«using namespace std;int main(){ //Inizio della funzione principaleint num=0, pari=0; //Dichiarazione delle variabilifor (int x=1; x<10; x++){ //Inizio del ciclo for che legge i 10 numeri da tastieracout<<"Inserire il "<<x<<"° numero: ";cin>>num; //Legge il numero da tastieraif (num%2==0) pari++; //se il numero è pari incrementa la variabile pari}cout<<«Sono stati inseriti "<<pari<<" numeri parin";system("pause");return 0;}Scrivere un programma che legge 10 numeri interi da tastiera ecomunica quanti numeri pari sono stati inseriti.
    • C++ esercizi41Scrivere un programma che, a scelta dellutente, calcoli la somma di 10numeri (fermandosi nel caso che venga inserito il numero 0) oppure ilrisultato dellelevamento di un numero intero per un esponente inseritoda tastiera.ANALISI:Il programma inizierà con la presentazione del menu di scelta principale. Dopo averletto la scelta effettuata dallutente, con una struttura di selezione multipla (switch) ilprogramma effettuerà il problema scelto.VARIABILI UTILIZZATE:int scelta: contiene la scelta effettuata dallutente relativa al problema che vuolesvolgerechar uscita: variabile utilizzata per il controllo delluscita dal programma (se è y ilprogramma termina, se è n il programma continua).int num: contiene il numero da sommare di volta in volta (programma somma) oppurela base della potenza (programma potenza).int esp: contiene lesponente della potenza (programma potenza)int ris: contiene il risultato della somma (programma somma) o dellelevamento apotenza (programma potenza)int x: variabile contatore per i cicli for
    • C++ esercizi42Scrivere un programma che calcoli la media dei voti relativi ad uncompito in classe di una classe di n alunni, con n inserito da tastiera.ANALISI:Innanzitutto il programma leggerà il numero di alunni che compongono la classe.Dopodiché con un ciclo for verrà richiesto il voto dellalunno per un numero di volte paria n, e man mano verrà sommato alla variabile somma. Infine verrà calcolata ecomunicata la media.VARIABILI UTILIZZATE:float somma: contiene la somma dei votifloat media: contiene la media dei votifloat voto: contiene il voto inseritoint alunni: contiene il numero di alunni che compongono la classechar continua: variabile che controlla la ripetizione del programma
    • C++ esercizi43Scrivere un programma che, comunicata la propria data di nascita,indichi il segno zodiacale al quale si appartiene.ANALISI:Il programma inizierà a leggere il mese e il giorno di nascita. Dopodiché vengono fattidei controlli per stabilire se i parametri inseriti sono accettabili (viene controllato se ilmese inserito è un numero tra l1 e il 12 e se il giorno rientra nel mese). Dopodiché conuna selezione multipla viene controllato il mese inserito e allinterno di ogni case vienecontrollato il giorno con delle selezioni semplici if. Quindi viene comunicato il segnozodiacale corrispondente.VARIABILI UTILIZZATE:int mese: contiene il mese di nascitaint giorno: contiene il giorno di nascitaint maxgiorni: contiene il numero massimo di giorni a seconda del mese inserito
    • C++ esercizi44Scrivere un programma che, inseriti i coefficienti a, b, c delle equazioni didue rette, dice se le due rette sono parallele, perpendicolari, incidenti ocoincidenti.ANALISI:Il programma leggerà i coefficienti a, b, c delle due rette, dopodiché controllerà lediverse opzioni: Se le due rette hanno i coefficienti b entrambi uguali a 0:Se c1/a1 = c2/a2 allora le due rette sono coincidentiSe c1/a1 è diverso da c2/a2 allora le due rette sono paralleleSe il coefficiente b della prima retta è uguale a 0 e quello della seconda retta no:Se a2/b2 = 0 le rette sono perpendicolarise a2/b2 non è uguale a 0 allora le rette sono incidentiSe il coefficiente b della prima retta è diverso da 0 e quello della seconda è uguale a 0:Se a1/b1 = 0 le rette sono perpendicolariSe a1/b1 non è uguale a 0 allora le due rette sono incidentiSe i coefficienti b delle due rette sono entrambi diversi da 0, calcola m (-a/b) e q (c/a) e:se le rette hanno m e q uguali allora sono coincidentise le rette hanno m uguale ma q diverso allora sono parallelese il coefficiente m di una retta è lopposto e il reciproco di quello dellaltra le rettesono perpendicolarise i coefficienti m non sono né uguali né uno lopposto e il reciproco dellaltro,allora le rette sono incidenti
    • C++ esercizi45Scrivere un programma che, inseriti i coefficienti a, b, c delle equazioni didue rette, dice se le due rette sono parallele, perpendicolari, incidenti ocoincidenti.VARIABILI UTILIZZATE:double a1: coefficiente a dellequazione della prima rettadouble b1: coefficiente b dellequazione della prima rettadouble c1: coefficiente c dellequazione della prima rettadouble a2: coefficiente a dellequazione della seconda rettadouble b2: coefficiente b dellequazione della seconda rettadouble c2: coefficiente c dellequazione della seconda rettadouble m1: coefficiente m dellequazione della prima rettadouble m2: coefficiente m dellequazione della seconda rettadouble q1: coefficiente q dellequazione della prima rettadouble q2: coefficiente q dellequazione della seconda retta
    • C++ esercizi46Scrivere un programma che calcoli la somma di due array inseriti datastieraVARIABILI UTILIZZATE:int n: dimensione dellarrayint A1[MAX]: primo array da addizionareint A2[MAX]: secondo array da addizionareint Asomma[MAX]: array contenente la somma dei due precedentiCOSTANTI UTILIZZATE:MAX: dimensione massima degli arrayANALISI:Innanzitutto il programma leggerà la dimensione dei due array, quindi con un ciclo forcaricherà gli elementi da tastiera e li sommerà, mettendo il risultato in un terzo array.
    • C++ esercizi47Scrivere un programma che riceve in input 20 numeri interi e li stampa inordine crescente.VARIABILI UTILIZZATE:int V[20]: contiene i 20 numeri da ordinareint box: variabile ausiliaria di supporto per lo scambio degli elementiANALISI:Con un ciclo for il programma richiederà i 20 numeri e li inserirà in un array. Dopodichécon due cicli for annidati ogni elemento verrà confrontato con tutti gli altri. Se il numeropreso in considerazione dal primo ciclo è minore di quello preso dal secondo, glielementi verranno scambiati tra loro utilizzando una variabile ausiliaria di supporto. Altermine dei due cicli larray conterrà gli elementi ordinati in ordine crescente e saràpronto per essere visualizzato sul monitor utilizzando un altro ciclo for.