LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.

Slides:



Advertisements
Presentazioni simili
Sottoprogrammi: funzioni e procedure
Advertisements

Esercizio Usate il ciclo repeat until (controllo post condizionale) per simulare il prodotto N x M con M somme di N. Esempio: 5 x 3 equivale a fare 5 +5.
Informatica 22/03/2012.
Scomposizione funzionale
Procedure e funzioni A. Ferrari.
3TC – Aprile 07 RIPASSOArray Procedure e Funzioni.
PROGRAMMARE IN PASCAL (le basi)
Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
I File di testo in Pascal
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Lez. 5 (10/11 - PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Lez. 5 (11/12- PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Linguaggi di programmazione
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Introduzione al linguaggio C
Fondamenti di Informatica
Fondamenti di Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Ricorsione e Debug.
Primo esercizio Scrivere un programma che legge da input
Eliana minicozzi linguaggi L1 Lezione3.
eliana minicozzi linguaggi1a.a lezione2
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Algoritmi su Tipi Semplici
Istruzioni Decisionali
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Relatori: Emanuele e Denis Tornei Informatici. Introduzione In queste prime lezioni abbiamo affrontato linformatica procedendo a soluzioni di problemi,
CAPITOLO 7.
La Programmazione Ricorsiva
Le funzioni.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
ELEMENTI DI PROGRAMMAZIONE
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Si vuole che lesecutore coniughi non solo il presente indicativo ma anche limperfetto e il passato remoto Acquisisci tempo presente imperfetto passato.
Lo sviluppo del software e i linguaggi di programmazione
Un esempio: Calcolo della potenza n-esima di un numero reale
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
Lo sviluppo top down Le funzioni
La comunicazione uomo … macchina
Problema: come dividere due numeri
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
Algoritmo Ordinamento di 3 Numeri
Programma di Informatica Classi Prime
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Allievi Elettrici - AA Le funzioni ricorsive in C
Sottoprogrammi e funzioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
Relazione sulle strutture dati Svolta da: Buccella Simone Strutture di dati Aree di memoria Puntatore numericibooleani alfabetici Statici dinamici Puntatori.
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
Lo stato  I domini della semantica restano invariati: Ide, Val (Int  { ,  }) Loc (locazioni di memoria), FunctDecl. ma definiamo 2 funzioni: Loc :
Procedure - Funzioni. Procedure e funzioni Parti di programma a cui è associato un nome e che può essere attivata mediante una chiamata. Le funzioni a.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
Ciclo for nei linguaggi di programmazione. Nei linguaggi di programmazione, il ciclo for è una struttura di controllo iterativa che determina l'esecuzione.
Strutture di controllo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2016.
Transcript della presentazione:

LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282

In terza … Dal problema allalgoritmo (UD2 p.53) Dallalgoritmo al programma (UD5 p.153) Programmazione strutturata (UD 7 p.214) (utilizzo delle tre strutture fondamentali: SEQUENZIALE ALTERNATIVA CICLICA)

Ora …PENSARE IN GRANDE Lo sviluppo TOP-DOWN (UD 8 p. 282) Listruzione (il comando) può avere gradi di astrazione diversi può cioè essere più o meno dettagliato (es. manda un razzo sulla luna o milioni di micro-istruzioni) TOP DOWN: raffinamenti successivi fino ad arrivare a sottoproblemi di minore complessità Ogni sottoalgoritmo conserverà tutte le caratteristiche degli algoritmi Il PGM che ne risulta coordinerà i vari pezzi (sottoprogrammi o subroutines) grazie ad una parte principale (Main Program)

Vantaggi del top-down Maggior controllo del programma Manutenzione del SW facilitata Riutilizzo del SW

Implementazione del top-down in Pascal Procedure Function NB Procedure e Funzioni possono essere scritte dal programmatore, ma ne esistono di già disponibili (built-in)

Le procedure Dichiarazione PROGRAM … VAR …. PROCEDURE nomeproc; BEGIN END; Richiamo (nel Main) BEGIN nomeproc; END.

Risorse globali e locali Globali (dichiarate allinizio) Locali (dichiarate allinterno della procedura, non visibili ad altre procedure né al Main) NB. Si può quindi dichiarare una variabile con lo stesso nome in procedure diverse: la MC verrà infatti prima allocata dinamicamente e poi rilasciata (p. 294)

Esercizio Battaglia navale (10*10 con tre navi da uno) Main: Inizio Inizializza_matrice_con_0; Visualizza; Genera_tre_navi; Visualizza REPEAT gioca UNTIL affondate=3; Fine

Procedure con parametri (p.294) Le Procedure servono a costruire programmi ben organizzati … … Ma servono anche a riutilizzare lo stesso SW in momenti diversi del programma … ….magari con DATI DIVERSI … …. passati come PARAMETRI…

Procedure con parametri - 1 Supponiamo di dover scrivere un programma che debba confrontare le aree di due triangoli (di cui siano note le rispettive basi e altezze) Applicando un processo di astrazione, notiamo che il problema da risolvere è lo stesso: calcolare larea di un triangolo di cui siano noti base e altezza

Procedure con parametri - 2 Si può allora pensare di costruire una Black Box alla quale passare base e altezza per ottenere larea Area:=(Base*Altezza)/2 Base Altezza Area

Procedure con parametri - 3 Se agissi con variabili globali …: Procedure Calcola_Area; Begin Area:=(Base * Altezza) / 2 End … avrei un problema al momento del richiamo, perché dovrei fare il calcolo la prima volta con b1 e h1 (base e altezza del primo triangolo) e la seconda volta con b2 e h2 (base e altezza del secondo)

Procedure con parametri - 4 Rendo allora parametrica la procedura: Procedure Calcola_Area(base,altezza,area:REAL); Begin Area:=(Base * Altezza) / 2 End … elencando, tra parentesi, i nomi dei parametri e il loro tipo (INTEGER, REAL …) Questi si chiamano PARAMETRI FORMALI

Procedure con parametri - 5 Al momento del richiamo (nel main), attribuisco i valori effettivi da passare alla procedura (PARAMETRI ATTUALI): Begin … Calcola_Area(b1,h1,area1) End.

Procedure con parametri - 6 La lista dei parametri formali (nellintestazione della procedura) e quella dei parametri attuali (nella chiamata della procedura) devono rispettare una coerenza: 1. Di Numero (tanti formali quanti attuali) 2. Di Tipo (se un parametro formale è real, il corrispondente attuale devessere real) 3. Di Ordine (il passaggio è posizionale: il primo attuale manda il proprio valore nel primo formale e così via)

Procedure con parametri - 7 Resta però ancora un aspetto importante: In certi casi mi interessa che il valore originale del parametro attuale che viene passato NON venga modificato, in altri sì. In effetti esistono due tipi di passaggi: 1. Per valore (non viene modificato) 2. Per indirizzo (viene modificato)

Procedure con parametri – 8 Passaggio per valore Nel caso del passaggio per valore, viene creata una COPIA del parametro attuale, che NON viene modificato. In effetti il parametro formale si comporta come se fosse una variabile locale

Procedure con parametri – 9 Passaggio per indirizzo (per variabile) Nel caso del passaggio per indirizzo (o per VARIABILE) i parametri attuali e formali fanno riferimento alla stessa cella di memoria, di cui in realtà viene passato lindirizzo. Le modifiche effettuate quindi dalla procedura richiamata agiscono direttamente sul parametro attuale ch è stato passato alla procedura. Questo metodo si utilizza quando il programmatore VUOLE che i cambiamenti di valore influenzino le variabili utilizzate nel programma principale (main)

I due triangoli Tornando al nostro problema, è quindi opportuno passare come parametri: Base e altezza PER VALORE (non è opportuno che vengano modificati) Area PER INDIRIZZO (mi serve che venga modificato il contenuto della variabile)

SINTASSI Procedure Calcola_Area(Base, Altezza:REAL; VAR Area:REAL); Begin Area:=(Base * Altezza) / 2 End; Base e altezza PER VALORE (li elenco e scrivo il tipo) Area PER INDIRIZZO (Faccio precedere alla variabile Area la parola VAR)

RISULTATO FINALE- procedura program parametri; var b1,h1,b2,h2:real; area1,area2:real; procedure calcola_area(base,altezza:real; VAR area:REAL); begin area:=(base*altezza)/2; end;

RISULTATO FINALE Main – primo richiamo begin writeln('Inserisci la base del primo triangolo'); readln(b1); writeln('inserisci l''altezza del primo triangolo'); readln(h1); calcola_area( b1,h1,area1); writeln('L''area del primo triangolo e'' ',area1:0:2);

RISULTATO FINALE Main – secondo richiamo writeln('Inserisci la base del secondo triangolo'); readln(b2); writeln('inserisci l''altezza del secondo triangolo'); readln(h2); calcola_area( b2,h2,area2); writeln('L''area del secondo triangolo e'' ',area2:0:2);

RISULTATO FINALE Main – confronto tra le due aree IF area1>area2 THEN Writeln('E'' maggiore l'' area del primo') ELSE IF area1<area2 then Writeln('E'' maggiore l'' area del secondo') else writeln('Le due aree sono uguali'); readln; end.

Esercizi Definire una procedura che abbia come parametro un numero intero e che lo presenti in output con una sottolineatura di 5 asterischi Definire una procedura che abbia come parametro un numero intero positivo e che scriva una stringa di asterischi pari al numero dato se il numero è <=10, impossibile in caso contrario