• Non ci sono risultati.

Fondamenti di InformaticaLaurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio

N/A
N/A
Protected

Academic year: 2023

Condividi "Fondamenti di InformaticaLaurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio"

Copied!
6
0
0

Testo completo

(1)

Fondamenti di Informatica

Laurea in

Ingegneria Civile e Ingegneria per l’ambiente e il territorio

Linguaggio C: Le basi

Stefano Cagnoni e Luca Mussi

Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma

Il Calcolatore 2

Memoria Centrale

Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni durante il funzionamento del calcolatore.

Insieme di celle di dimensione 1 byte, ciascuna delle quali è individuata da un indirizzo, costituito da un numero rappresentato da tanti bit quanti ne contiene il Registro Indirizzi all‟interno della CPU.

Poiché è possibile indirizzare direttamente ogni singola cella, una memoria di questo tipo si chiama Random Access Memory (RAM), cioè, alla lettera, memoria ad accesso casuale.

Il Calcolatore 3

Memoria Centrale

Indirizzamento

E‟ l‟attività con cui l‟elaboratore seleziona una particolare cella di memoria

per farlo l‟elaboratore inserisce l‟indirizzo della cella desiderata (da cui deve leggere o su cui deve scrivere) nel registro indirizzi della CPU

Ad es., se il Registro Indirizzi è lungo 32 bit posso indirizzare 2

32

celle diverse.

2

32

celle = 4 Gcelle -> 4 Gbyte

FI - Algoritmi e Programmazione 4

Variabile

E‟ un‟astrazione della cella di memoria

Formalmente, è un simbolo associato ad un indirizzo fisico (posizione all‟interno della memoria della cella o delle celle associate al simbolo, che conterranno la rappresentazione di un certo valore)

Nell‟esempio, il simbolo x rappresenta il contenuto della cella di memoria avente l‟indirizzo 1328, che ad esso ha associato il compilatore e che l‟utente ignora.

Se stampo x sul video mi comparirà il valore 4, cioè il contenuto della cella avente indirizzo 1328.

Simbolo

Simbolo indirizzoindirizzo contenutocontenuto x 1328

x 1328 44

(2)

FI - Algoritmi e Programmazione 5

Variabile

L‟indirizzo fisico di una variabile è fisso e immutabile all‟interno del programma; può cambiare il suo contenuto, cioè il valore della variabile

esempio: x=4;

...

...

1328 4

FI - Algoritmi e Programmazione 6

Definizione di variabile

E‟ la frase che introduce una nuova variabile

identificata da un simbolo

atta a denotare valori di un ben preciso tipo, che va specificato nella definizione

FI - Algoritmi e Programmazione 7

Esempi

Definizione di una variabile

<tipo><identificatore>

int x; /* deve denotare un valore intero*/

float y; /* deve denotare un valore reale*/

char ch; /* deve denotare un valore carattere*/

FI - Algoritmi e Programmazione 8

Inizializzazione di variabili

E‟ possibile specificare il valore iniziale di una variabile quando la si dichiara

<tipo><identificatore> = <espr> ; int x = 32;

double speed = 124.6;

double time = 71.6;

double km = speed*time;

/* inizializzazione mediante una espressione*/

(3)

FI - Algoritmi e Programmazione 9

Caratteristiche delle variabili

Campo d’azione (scope): è la parte di programma (unità di codifica) entro cui la variabile è nota e può essere usata

Tipo: specifica la classe di valori che la variabile può assumere (e quindi gli operatori applicabili)

Tempo di vita: l‟intervallo di tempo in cui rimane valida l‟associazione simbolo/cella di memoria

Valore: è rappresentato (secondo la codifica adottata per il tipo cui la variabile appartiene) nell‟area di memoria associata alla variabile.

FI - Algoritmi e Programmazione 10

Esempio

Data una temperatura c espressa in gradi Celsius, calcolare il corrispondente valore f espresso in Fahrenheit

Approccio:

si parte dal problema e dalle proprietà nel dominio dei dati per descrivere poi la soluzione in modo astratto

Specifica della soluzione:

relazione tra grandezze esistenti nello specifico dominio applicativo

C * 9/5 = F - 32

FI - Algoritmi e Programmazione 11

Esempio: algoritmo di risoluzione

Data la temperatura in Celsius C

calcolare la temperatura in Fahreneit F sfruttando la relazione

F = 32 + C *9/5

Solo a questo punto (una volta

definito l‟algoritmo) si effettua la codifica

Start

Stop Leggi C

Stampa 32 + C *9/5

FI - Algoritmi e Programmazione 12

Un possibile programma in C

main() {

float c; /* Celsius */

//legge il valore di c scanf(“%f”, &c);

printf ( “Temperatura (F): %f \n”, 32 + c * 9/5);

//stampa il valore convertito }

NB l‟impaginazione (indentazione) serve solo per rendere più leggibile il programma: in C le istruzioni sono separate da “;”

(4)

Strutture di controllo

If, while, for, do while

Il linguaggio C 14

No

Se la condizione C è vera, esegui O1, altrimenti esegui O2 C

O1

Selezione if

O2

Strutture di controllo

Il linguaggio C 15

Strutture di controllo

Selezione if

if (condizione) istruzioni [else istruzioni]

Se la condizione è vera esegue il primo blocco di istruzioni, altrimenti esegue il secondo (se specificato)

istruzioni  istruzione | „{„ istruzione {istruzione} ‟}‟

Calcolo valore assoluto if (x  0)

y = x;

else y = -x;

printf(“Val. Ass. %d\n”, y);

operatori di confronto maggiore  maggiore o uguale 

minore  minore o uguale 

uguale 

diverso 

falso  0 vero  non 0

operatori logici NOT  AND &&

OR | |

Il linguaggio C 16

Esempio

/*Dati due numeri in ingresso, individua il maggiore*/

#include <stdio.h>

int main(){

int num1,num2;

printf("Immetti i due numeri:");

scanf("%d %d",&num1,&num2);

if (num1==num2)

printf("I due numeri sono uguali");

else

if(num1>num2) printf("Il primo è maggiore”);

else printf("Il secondo è maggiore");

return 0;

}

Esercizio: Disegnare il diagramma di flusso di questo problema

(5)

Il linguaggio C 17

Strutture di Controllo

Ciclo While Ciclo do while Ciclo for

No

No

Ripete una stessa operazione O finché la condizione C resta vera

C

O

O C

Esegue una operazione O una volta, poi la ripete finché la condizione C resta vera

A livello logico, come ciclo while, ma separa più nettamente le istruzioni sui dati da quelle di controllo

C No

O Istr. Iniz.

Istr. ciclica

Cicli

Il linguaggio C 18

Strutture di controllo

Ciclo while

while (condizione) {istruzioni}

Esegue il blocco di istruzioni che segue, finché la condizione è vera (può anche non eseguirlo mai)

C No

O

Il linguaggio C 19

Strutture di controllo

Calcolo della somma dei primi 100 numeri naturali

#include stdio.h

int main(){

int i=1;

int somma  0;

while(i100) {

somma  sommai;

i=i+1;

}

printf (“La somma vale: %d\n”, somma);

return 0;

}

Il linguaggio C 20

Strutture di controllo

Ciclo do while

do istruzioni

while (condizione)

Esegue (sempre almeno una volta) le istruzioni comprese nel blocco che segue e le ripete finché la condizione è vera

No

O C

(6)

Il linguaggio C 21

Strutture di controllo

calcolo della somma dei primi 100 numeri naturali

#include stdio.h

int main(){

int i=1;

int somma  0;

do {

somma  sommai;

i=i+1;

} while (i<=100)

printf (“La somma vale: %d\n”, somma);

return 0;}

Il linguaggio C 22

Strutture di controllo

Ciclo for

for(istr.iniziale; condizione; istr. ciclica) {istruzioni}

Dopo avere eseguito l‟istruzione iniziale, ripete l‟esecuzione del blocco di istruzioni che segue finché la condizione resta vera (se è falsa la prima volta, può anche non eseguirlo mai), concludendo ogni ciclo con l‟esecuzione dell‟istruzione ciclica.

for ( i1; i100; ii1 ) printf( “%d ”, i );

C No

O

Istr. Iniz.

Istr. ciclica

Il linguaggio C 23

Strutture di controllo

Calcolo della somma dei primi 100 numeri naturali

#include stdio.h

int main(){

int i, somma  0;

for ( i1; i100; ii1)

somma  sommai; /*se c’e’ una sola

istruzione si possono tralasciare le graffe

*/

printf (“La somma vale: %d\n”, somma);

return 0;

}

Il linguaggio C 24

Esercizi

Scrivere un programma che prenda in ingresso un intero N e calcoli il doppio della somma dei primi N numeri, a partire dal corrispondente diagramma di flusso

Scrivere un programma, a partire dal corrispondente diagramma di flusso, che chieda in ingresso un numero finché non si inserisce un numero dispari.

Quando questo avviene, il programma deve uscire scrivendo quanto è stata lunga la sequenza dei numeri pari che lo hanno preceduto.

Riferimenti

Documenti correlati

q  enti, autorità, agenzie e servizi pubblici di monitoraggio, controllo e protezione dell’ambiente e del territorio e di valutazione della compatibilità ambientale di piani ed

VISTO il “Regolamento di Ateneo recante norme per la disciplina dello stato giuridico, diritti e doveri dei professori e dei ricercatori di ruolo” emanato con Decreto

Il corso fornisce gli elementi indispensabili alla progettazione delle opere di Ingegneria idrauli- ca nel settore degli acquedotti, delle fognature e del trattamento delle acque

- borse di studio a qualsiasi titolo conferite, ad eccezione di quelle concesse da istituzioni nazionali o straniere, utili ad integrare, con soggiorni all’estero, l’attività

• Mirino: un modello con questa caratteristica sottrae -1 sulla Tabella Danni Fanteria quando spara con un fucile, inoltre, nel Tiro per Colpire, lancia sempre 1d6 in più.. Non

Il Presidente sottopone all’attenzione del Consiglio le richieste di approvazione degli esami sostenuti nel programma Erasmus dagli studenti Domenico Maruccio e

De Tommasi, sull’insegnamento “Analisi matematica II”, propone al Consiglio che lo stesso venga affidato ai due idonei essendo suddiviso in (A-K) e (L-Z).

Politecnico di Bari Dipartimento di Ingegneria Civile, Ambientale, del Territorio, Edile e di Chimica.. Politecnico di Bari Dipartimento di Ingegneria Civile, Ambientale,