CAPITOLO 2.

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
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.
CAPITOLO 3.
Linguaggi algoritmici
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
PROGRAMMARE IN PASCAL (le basi)
I File di testo in Pascal
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Dall’Algoritmo al Programma
numero rette n numero parti piano f(n) f(n -1)n -1 f(n -1) + nn numero parti piano f(n) numero rette n.
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
File.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Programmazione Mod A - Cap 2 - prof. Burattini
Introduzione agli stream e alle classi
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
nome: sequenza di caratteri usata per denotare un oggetto
Esercitazioni sui File Nicola Fanizzi - DIB Corso (B) di Programmazione CdL in Informatica – I livello A.A. 2003/2004.
Organizzazione del corso
Algoritmi su Tipi Semplici
Istruzioni Decisionali
Dichiarazioni e tipi predefiniti nel linguaggio C
CAPITOLO 7.
FILE TESTO OUTPUT INPUT + DATI PROGRAMMA OUTPUT INPUT PROGRAMMA CARICAMENTO DATI FILE DATI.
In Pascal è possibile avere oltre ai file testo, cioè file di char, anche file di interi, stringhe, records. Unica condizione è quella che se un file.
CAPITOLO 5.
CAPITOLO 6.
Il Linguaggio C.
Programmazione in Java
Dall’algoritmo al programma.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lo sviluppo del software e i linguaggi di programmazione
matematico greco del III° secolo a.c.,
La comunicazione uomo … macchina
Problema: come dividere due numeri
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
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.
RISOLUZIONE DI EQUAZIONI
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lezione 3 Struttura lessicale del linguaggio
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
PROVA INTERCORSO MOD.B a.a RICORSIONE ESERCIZI A1.1-A1.6.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Transcript della presentazione:

CAPITOLO 2

NO BREVE STORIA DELL’ALGORITMO Da dove proviene il termine algoritmo? Logaritmo ? Un anagramma. Dal Medio Evo : maniera di fare l’arimetica usando i numerali arabi. Algorismo ? Algiros + arithmos ? Dal greco: Complesso + numero NO

Abu Ja’Far Mohammed Ibn Mûsa Al-Khovârizm (825 d.C.) ALGEBRA Padre di Ja’Far Mohammed Figlio di Moses Nativo di Kovarism (odierna Khiva (Russia)) Autore del famoso “Kitab Al Jabr W’Al-Muqabala” Regole di accorpamento e riduzione

. REGOLE SINTATTICHE Programma Testa del programma Header BLOCCO ………………………………... BEGIN …………………... END. PROGRAM identificatore ( ; ) , IpotTrianRett (input, output, ...);

PROGRAM IpotTrianRett(input, output); {calcolo ipotenusa del triangolo rettangolo} {moltiplicata per un fattore di scala} CONST Scala=3; VAR Lato1, {primo lato del triangolo} Lato2, {secondo lato del triangolo} Ipotenusa: real; {ipotenusa } BEGIN writeln('Il fattore di scala e''= ', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo = ', Ipotenusa:7:3); readln END.

Gli identificatori standard vengono messi tutti in minuscolo. NomeDelProgramma(input, output, File1, ….) È previsto l’uso di una periferica di input periferica di output È previsto l’uso di un file denominato File1 N.B. Gli identificatori non possono cominciare con un numero (33ident) né contenere caratteri diversi da lettere o numeri (a_prov)

. BLOCCO Definizione costanti Definizione variabili BEGIN Istruzioni CONST Scala=3; Definizione variabili VAR Lato1, Lato2: real; Ipotenusa: real; BEGIN Istruzioni . END writeln('Il fattore di scala e'’=', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo = ’, Ipotenusa:7:3); readln END.

ALCUNE NOTE E OSSERVAZIONI Le parentesi  …...  si usano per delimitare i commenti writeln(…, …, .) dopo la scritta va a capo write(…, …, .) dopo la scritta non va a capo N.B. Terminare una sequenza di write sempre con un writeln Ogni dialetto Pascal ha una dimensione del campo dei numeri di default quindi se non dichiarata usa quella. N.B. Nel Turbo Pascal questa dimensione vale 1. Quindi write( 3, 2, 5) sarà mostrato come 325. Le stringhe vanno messe tra apici ‘…stringaaa…’ Se nella stringa è necessario mettere un apice allora se ne scrivono due ‘io l’’avevo detto’

OPERATORI NUMERICI + addiziona numeri interi e reali - sottrae numeri interi e reali * moltiplica / divide numeri reali DIV divide i numeri interi MOD resto della divisione tra interi

La divisione di due numeri può essere eseguita da NUMERI INTERI E REALI La divisione di due numeri può essere eseguita da DIV se i numeri da dividere sono interi e il risultato è posto in una variabile intera / se i numeri da dividere sono interi o reali e il risultato è posto in una variabile reale I numeri reali possono essere rappresentati dalle notazioni FIXED POINT es. 75.351 (almeno una cifra prima del .) FLOITING POINT es. 75351E-3

intero= N1 DIV R2= non ammesso intero= N1 / N2= non ammesso N1, N2, intero :integer; R1, R2, reale:real; N1=3 N2= 12 R1= 3.00 R2= 12.00 intero= N1 DIV N2= 0 intero= N1 DIV R2= non ammesso intero= N1 / N2= non ammesso intero= N1 / R2= non ammesso reale= N1 DIV N2= 0.00 reale= N1 DIV R2= non ammesso reale= N1 / N2= 0.25 reale= N1 / R2= 0.25 reale= R1 / N2= 0.25 reale= R1 / R2= 0.25 (corso\lezioni Mod A\esercizi\cap2\Division)

SCRITTURA INTERI E REALI ALCUNI ESEMPI write(3+100:2) |103| write(3+100:1) |103| write(3+100:10) |…….103| write(3.1456:2) | 3.1E+00| write(3.1456:1) | 3.1E+00| write(3.1456:10) | 3.146E+00| write(0.0000009876:9) | 9.88E-07| write(3.1456:2:4) |3.1456| write(3.1456:1:3) |3.146| write(3.1456:10:2) | 3.15| write(-0.0000009876:9:3) | -0.000| write(-0.0000009876:9:13) |-0.00000098760| (Formati)

Un parametro che non varia durante l’esecuzione del programma COSTANTI Un parametro che non varia durante l’esecuzione del programma CONST identificatori ; costante = CONST Scala=3; Spazio=‘ ‘; VelocitaLuce=3E+08; PiGreco=3.145

Un parametro che può variare durante l’esecuzione del programma VARIABILI Un parametro che può variare durante l’esecuzione del programma VAR identificatori ; type : , VAR Lato1, Lato2 : real; Numero : integer; Stringa : char;

PROGRAM IpotTrianRett(input, output); {calcolo ipotenusa del triangolo rettangolo} {moltiplicata per un fattore di scala} CONST Scala=3; VAR Lato1, {primo lato del triangolo} Lato2, {secondo lato del triangolo} Ipotenusa: real; {ipotenusa } BEGIN writeln('Il fattore di scala e''= ', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo = ', Ipotenusa:7:3); readln END.

ALLOCAZIONE IN MEMORIA CONST Scala=3; VAR Lato1 : real; Lettera : char; Numero: integer; {ipotenusa } BEGIN Scala 3 Lato1 ??E?? Lettera ????? END Numero ?

) ( , INTRODUZIONE DATI read variabile readln ATTENZIONE !!! Introdurre i dati così come definiti dalla variabile

readln(Int1, Lato1, Int2) VAR Lato1: real; Int1, Int2 : integer; ESEMPI LETTURA DATI readln(Int1, Lato1, Int2) 73 98.56 54 <eoln> Int1=73 Lato1=98.56 Int2=54 Int1=73 Lato1 =98.56 Int2=54 73 98.56 <eoln> 54 <eoln> 73 98.56 54 Ciao <eoln> Int1=73 Lato1 =98.56 Int2=54 73.1 98.56 54 <eoln> Error T73 98.56 54 <eoln> Error

Assegnare un valore ad una variabile a seguito di una ISTRUZIONI DI ASSEGNAZIONE variabile ; espressione := Assegnare un valore ad una variabile a seguito di una elaborazione. Es. Int1:=7 DIV 3; Int2:=Int1*2;

VAR Int1: integer; Real1: real; Caratt1: char; Error Int1:=73 Lato1:=98.56 Caratt1:=‘A’ Int1:=73/2 Lato1:=98+Caratt1 Caratt1:=‘A’+2 Error Error Int1:=73 DIV 4 Lato1:=98.56 DIV 3 Caratt1:=‘7’ Error Error Int1:=73.01 Lato1:=98A Caratt1:=‘Ciao’ Error Error

Maxint = 32767 (Limiti)

PROGRAM Test(input,output); CONST A=130; B=1000; VAR Esercizio Dire quale è l’output del seguente programma: PROGRAM Test(input,output); CONST A=130; B=1000; VAR Somma, Prod, Potenza : integer; BEGIN Somma:=A+B; Prod:=(A+B)*Somma; writeln('Valori letti: ', A:7, 'e ', B:7); writeln; writeln('Somma = ', Somma:7); writeln('Prodotto = ', Prod:7); readln END. (test)

Esercizio Assegnate le seguenti variabili A, B, C intere X, Y, Z reali M, N, O caratteri eseguire le seguenti operazioni A diviso B M + N O + A X diviso C Y diviso Z trovare il resto della divisione di A per C trovare il resto della divisione di B per Y Mostrare i risultati delle operazioni o segnalare quelle eventualmente errate.

Un programma che opera senza interagire con l’utente. MODO BATCH Un programma che opera senza interagire con l’utente. Esempio un programma che legge i dati da un file e li scrive su un altro. A questo scopo è necessario utilizzare delle variabili per riferirsi ai nomi dei file adoperati. Esempio Sia Dat il nome del file da cui leggere i dati di input Sia Risultat il nome del file su cui scrivere i dati di output VAR Dati, Risultati : text; Int1: integer; Real1: real; Caratt1: char; Per leggere da un file bisogna aprirlo in lettura reset(Dati) Per scrivere su un file bisogna aprirlo in scrittura rewrite(Risultati)

{legge dal file Dati due numeri reali Re1 e Re2 e scrive la loro somma Somma e il loro prodotto Prod in un file Risultat} PROGRAM ProvaFiles(input,output,Dat,Risult); VAR Dat, Risult: text; Re1, Re2, Somma, Prod: real; BEGIN assign(Dat,'C:\TP\ESEMPI\MODA\DATI.TXT'); assign(Risult,'C:\TP\ESEMPI\MODA\RISULTAT.TXT'); reset(Dat); rewrite(Risult); readln(Dat, Re1, Re2); Somma:=Re1+Re2; Prod:=Re1*Re2; writeln('Valori letti: ', Re1:7:5, 'e ', Re2:7:5); writeln; writeln('Somma= ', Somma:7:5); writeln('Prodotto= ', Prod:7:5); writeln(Risult, 'Valori letti: ', Re1:7:5, ' e ', Re2:7:5); writeln(Risult, ' Somma e Prodotto ', Somma:7:5, ' e ', Prod:7:5); close(Risult); readln END. {esempio di lettura e scrittura di files} (ProvaFile)