Book pascal

Materie:Altro
Categoria:Informatica
Download:218
Data:14.05.2007
Numero di pagine:22
Formato di file:.doc (Microsoft Word)
Download   Anteprima
book-pascal_1.zip (Dimensione: 89.34 Kb)
readme.txt     59 Bytes
trucheck.it_book-pascal.doc     494 Kb


Testo

Book di informatica
Sommario
Capitolo1
-Introduzione al Pascal pag.4
-Struttura pag.7
-Esempio di un programma Pascal pag.9
-Funzioni predefinite pag.9
-Come procedere? pag.10
-Messaggi di errore pag.11
Capitolo2
-Istruzione if-then-else pag.13
Programmi
1Pari o dispari pag.15/16
2Angolo acuto,ottuso o retto pag.17/18
3Radice pag.19/20
4Triangolo equilatero pag.21/22
5Area e perimetro di un rombo se le diagonali introdotte sono positive pag.23/24
6Area e perimetro di un rettangolo se i lati introdotti sono positivi pag.25/26
7Espressione con campo di esistenza pag.27/28
8Euroconvertitore pag.29
9Dollaroeuro pag.30
10Equazioni di 1° grado pag.31/32
11Equazioni di 2° grado pag.33/34
12Sistemi di equazioni di 1° grado a 1 incognita pag.35/36
13Sconto pag.37/38
Capitolo3
-Istruzione case-of pag.39
Programmi
1Rettangolo pag.40
2Somma, differenza, prodotto, quoziente pag.42
3N°diagonali/somma angoli interni di: triangolo, quadrato, pentagono, esagono pag.43
4Spazio, velocità, tempo pag.44
5Orario scolastico pag.45
6Elenco pag.46/47
7Altezza relativa all’ipotenusa pag.48/49
8Definizioni geometriche pag.50/51
9Teoremi: Pitagora e Euclide pag.52
10Criteri di congruenza e di similitudine dei triangoli pag.53
-Differenze di programmi pag.54
Programmi
-Dollaroeuro pag.55/56
-Euroconvertitore pag.57/58
-Triangolo equilatero pag.59/60
-Capacità termica pag.61/62
Capitolo4
-Consigli per programmi pag.63
Programmi
-Lati di un triangolo pag.64
-Due numeri da prodotto e somma pag.65/66
-Cateto pag.67/68
-Applicazioni interdisciplinari pag.69
-Latino pag.69
Programmi
-Declinazioni pag.70/71
-Consecutio temporum pag.72/73

Elenco dei programmi per istruzione
Istruzione if then else
1Pari o dispari pag.15/16
2Angolo acuto,ottuso o retto pag.17/18
3Radice pag.19/20
4Triangolo equilatero pag.21/22
5Area e perimetro di un rombo se le diagonali introdotte sono positive pag.23/24
6Area e perimetro di un rettangolo se i lati introdotti sono positivi pag.25/26
7Espressione con campo di esistenza pag.27/28
8Euroconvertitore pag.29
9Dollaroeuro pag.30
10Equazioni di 1° grado pag.31/32
11Equazioni di 2° grado pag.33/34
12Sistemi di equazioni di 1° grado a 1 incognita pag.35/36
13Sconto pag.37/38
14Capacità termica pag.61
15Lati di un triangolo pag.64
16Due numeri da prodotto e somma pag.65/66
17Cateto pag.67/68
Istruzione case of
1Rettangolo pag.40
2Somma, differenza, prodotto, quoziente pag.42
3N°diagonali/somma angoli interni di: triangolo, quadrato, pentagono, esagono pag.43
4Spazio, velocità, tempo pag.44
5Orario scolastico pag.45
6Elenco pag.46/47
7Altezza relativa all’ipotenusa pag.48/49
8Definizioni geometriche pag.50/51
9Teoremi: Pitagora e Euclide pag.52
10Criteri di congruenza e di similitudine dei triangoli pag.53
11Capacità termica pag.61/62
12Cateto pag.67/68
13Declinazioni pag.70/71
14Consecutio temporum pag.72/73

Capitolo 1: Introduzione al Pascal

IL CALCOLATORE
L’introduzione delle macchine a vapore e dei motori a scoppio fu l’elemento caratterizzante la prima e la seconda rivoluzione industriale;avvenne quindi che la macchina sostituì l’uomo in molti lavori manuali.
Il calcolatore elettronico, introdotto negli anni ’50, ha caratterizzato invece la terza rivoluzione industriale;in particolare è una macchina che esegue in modo automatico alcune funzioni di lavoro intellettuale.Tuttavia il calcolatore non è capace di pensare in modo autonomo, bensì è solo un esecutore di istruzioni dettate dall’uomo, infatti dietro ad ogni calcolatore c’è sempre il lavoro di colui che ne ha progettato la struttura e il funzionamento. La sequenza precisa delle operazioni da compiere su un compilatore si chiama programma;quest’ultimo per essere compreso dal computer deve essere scritto in linguaggio macchina. Il Pascal è per l’appunto uno tra i linguaggi più conosciuti che prende il nome dal matematico francese Blaise Pascal che fu il primo ad ideare una macchina calcolatrice, la Pascalina.
Questo linguaggio fu elaborato verso la fine degli anni ’60 da Niklaus Wirth, un docente dell’Università di Zurigo e negli anni ’80 e ’90 divenne di vasto uso non solo nell’ambito scientifico di ricerca, ma anche in quello scolastico e universitario diventando uno strumento per lo sviluppo professionale. Da allora fino ad oggi sono state proposte varie versioni e quella da noi usata è il Turbo Pascal.
REALIZZAZIONE DI UN PROGRAMMA PASCAL
Per realizzare un programma non basta organizzare bene i dati, ma bisogna analizzare a fondo il problema per identificare un algoritmo risolutivo, ossia la successione ordinata e finita di tutte le operazioni da compiere per raggiungere il risultato stabilito di un problema.
Riassumendo:
Dati iniziali istruzioni di lettura in Pascal

1.ANALISI DEL PROBLEMA Istruzioni risolutive sequenziali, di scelta o condizionali
iterative o cicliche
Dati finali da comunicare istruzioni di scrittura
all’utente
2.ALGORITMO RISOLUTIVO è una sequenza finita di istruzioni, ognuna di lunghezza finita,
che produce un risultato finale
diagramma linguaggio
a blocchi naturale

Gli algoritmi possono essere costituiti da tre differenti strutture:
A. Struttura algoritmo con una serie di istruzioni disposte una dopo l’altra
sequenziale (sequenziali) che l’elaboratore risolve in sequenza non saltandone
nessuna.Le istruzioni presenti sono:
a.istruzione di scrittura (write, writeln)

b.istruzione di lettura (read, readln)
c.istruzione di assegnazione (s:=a+b)
B. Struttura prevede una scelta fra due o più alternative secondo il verificarsi o
alternativa meno di una certa condizione;utilizza if…then…else oppure case…of
Si possono avere quelli con:
a.selezione a una via
b.selezione binaria
C. Struttura iterativa prevede la ripetizione di un gruppo di azioni;
ricorre all’utilizzo di repeat…until, for…to…do, while…do…
Esempio di un algoritmo risolutivo a struttura sequenziale
Scrivi un programma che calcoli l’area di un triangolo rettangolo date la base e l’altezza.
Dati in ingresso: base b altezza h
Procedimento risolutivo: Calcolo dell’area
Area = base* altezza/2
a:=b*h/2
Dati finali da comunicare all’utente: Area a
Esempio di un algoritmo risolutivo a struttura alternativa
Scrivi un programma che calcola la radice quadrata di un numero introdotto da tastiera se positivo, altrimenti scrive “La radice quadrata non esiste”.
Dati in ingresso: numero n
radice r
Procedimento risolutivo: se il numero è maggiore di zero allora calcola la radice quadrata
r =
r:=sqrt (n)
altrimenti scrive “La radice quadrata non esiste”
Dati finali da comunicare all’utente: r
Esempio di un algoritmo risolutivo a struttura ciclica
Scrivi un programma che calcola e visualizza sul video il quadrato dei primi dieci numeri naturali.
Dati in ingresso: numero n
quadrato q
Procedimento risolutivo: mentre il numero è minore uguale a 10 calcola il quadrato
quadrato = numero * numero
Dati finali da comunicare all’utente: quadrato
3.TRADUZIONE IN PASCAL
Ogni programma Pascal è costituito da tre sezioni:
1. Riga di intestazione: inizia con la parola chiave program seguita dal nome del programma
2. Parte dichiarativa: inizia con la parole chiave var seguita nella riga successiva dall’elenco delle variabili specificandone il tipo (real, integer ,etc.) oppure con la parola chiave const seguita dal valore costante;in definitiva si dichiarano le variabili e le costanti
Le variabili possono essere di vario tipo:
• intero, che comprende alcuni sottotipi le cui caratteristiche sono le seguenti:
sottotipi
intervallo
operazioni possibili
simbolo
integer
-32768…+32767
addizione
+
shortint
-128…+127
sottrazione
-
longint
-2147483648… +2147483648
moltiplicazione
*
byte
0…255
divisione intera
DIV
word
0… 65535
resto della divisione
MOD
L’operatore DIV calcola il quoto intero fra il dividendo e il divisore, mentre l’operatore MOD calcola il resto della divisione, ad esempio:
15 DIV 2 = 7
15 MOD 2 =1
11 MOD 3 = 2
11 DIV 3 = 3
• real, che comprende alcuni sottotipi le cui caratteristiche sono le seguenti:
sottotipo
intervallo
real
2,9*10 alla meno 39…1,7*10 alla 38
single
1,5*10 alla meno 45…3,4*10 alla 38
double
5,0*10 alla meno 324…1,7*10 alla 308
extended
3,4*10 alla meno 4932…1,1*10 alla 4932
comp
-2 alla 63…2alla 63-1
• stringa, che necessita della seguente sintassi
nome : string [n];
e sta ad indicare che la variabile indicata da nome può assumere come valore un
qualunque stringa di n caratteri.
• carattere, che necessita della seguente sintassi
nome : char;
e sta a rappresentare una variabile di scelta
3. Parte esecutiva: inizia con la parola chiave begin e termina con la parola chiave end
Seguita dal punto;fra questi due termini sono elencate le istruzioni dell’algoritmo.
Le istruzioni possono essere:
di lettura, è un’abbreviazione del comando read line ed ha la seguente sintassi
read (variabile);
oppure se si desidera andare a capo
readln (variabile);
essa determina l’attesa di un dato che viene introdotto da tastiera ed il dato ha
il nome indicato fra parentesi.
di scrittura, è un’abbreviazione del comando write line ed ha diverse formulazioni
a)writeln (variabile)
scrive il contenuto della variabile indicata fra parentesi
b)writeln ( ‘messaggio’ );
scrive la stringa di caratteri racchiusa fra una coppia di apici e si usa quando
si vuole visualizzare un messaggio sullo schermo
c)writeln;
scrive una riga vuota
d)writeln ( ‘messaggio’,variabile );
si concatenano stringhe e contenuti di variabili separandoli con una virgola
di assegnazione, utilizza la scrittura
a:=b+c;
ovvero il valore calcolato nell’espressione b+c viene attribuito alla
variabile a
Tutte le righe del programma terminano con un punto e virgola, tranne la riga in cui compare begin e quella che precede la riga con end.
Esempio di un programma Pascal:
Scrivere un programma Pascal che calcoli l’area di un triangolo rettangolo date la base e l’altezza.
Program area;
Riga di intestazione: ricordiamo che se il nome del programma consta di due parole, allora queste devono essere separate solo da un tratto in basso
var
a,b,h:real;
begin
writeln(‘ Introduci il valore della base ’);
readln (b);
writeln(‘ Introduci il valore dell’altezza ’);
readln(h);
a:=b*h/2;
writeln(‘Il valore dell’’area è’,a);
readln;
end.

Parte dichiarativa: dichiarazione delle variabili con la specificazione del tipo, in questo caso real
Parte esecutiva:

writeln sta per scrivi
readln sta per leggi
assegnazione, ovvero assegna
ad il valore di b*h/2
Con una sola istruzione di scrittura si sono concatenate stringhe e contenuti di variabili separandoli con una virgola;ricordiamo che se una parola all’interno della stringa di writeln, necessita di apostrofo, questo deve essere costituito da due apici per non confondersi con gli apici a fine ed inizio stringa
prima di end ogni programma deve essere seguito da readln; che provoca un ciclo di attesa.
Succ(x) calcola il successivo di x
Pred(x) calcola il precedente di x
Sqr(x) calcola il quadrato di x
Sqrt(x) calcola la radice quadrata di x
Abs(x) calcola il valore assoluto di x
Cos(x) coseno di x
Sin(x) seno di x
Tg(x) tangente di x
Div divisione intera
Mod resto della divisione dati di tipo intero
Se l’ambiente di lavoro è Windows, accedere al Pascal cliccando sull’icona del desktop oppure cliccare su Start, selezionare Programmi e cercare Pascal o Turbo Pascal.
Se non appare subito la finestra di lavoro attiva, sulla riga più in alto (riga di menu), cliccare su file e new.
Una volta scritto il programma, cliccare sulla riga di menu su compile e nuovamente su compile;se il programma è scritto correttamente, apparirà una finestra.In tal caso bisognerà cliccare sempre sulla riga di menu su Run e di nuovo su Run;il programma inizierà a girare.
Se invece si è commesso qualche errore sul programma, apparirà un messaggio di errore;in questa circostanza è possibile aiutarsi cliccando su Help e su Error messages.
Se vogliamo memorizzare il programma in un file su disco rigido, dobbiamo:
-cliccare su File
-cliccare sul comando Save
-dare un nome al file
Se vogliamo salvare il programma sul floppy, dobbiamo eseguire i seguenti punti:
-cliccare sul menu file
-cliccare su change directory
-scegliere l’unità disco A
-confermare con il tasto invio
-cliccare sul comando Save as
-dare un nome al file
Se vogliamo riportare per scritto un programma Pascal salvato su floppy, possiamo procedere nel seguente modo:
-entrare sul documento Word sul quale ci interessa riportare il programma
-sulla barra degli strumenti clicchiamo sul pulsante “Apri” (contrassegnato da una cartellina gialla)
-selezioniamo “apri da floppy”
-clicchiamo sul programma
a questo punto possiamo:
1.salvare o stampare direttamente da questa posizione
2.selezionare tutto, copiare e incollare sul documento Word precedentemente aperto
Nel linguaggio Pascal si possono riscontrare due tipi di messaggi di errore:
1.errori del compilatore
2.errori di esecuzione
• Messaggi di errore del compilatore (compiler error messages)
Quando si verifica un errore nell’ambito della compilazione, il Pascal posiziona il cursore nell’esatto punto in cui si riscontra l’errore e nella parte alta dello schermo viene visualizzata la seguente riga:
Error :

codice dell’errore breve spiegazione
di compilazione sul tipo di errore
Esempi di errori di compilazione:
Error3: Unknown identifier (identificatore sconosciuto)
Una variabile non è stata dichiarata
Error91: “:=” expected (manca “:=”)
L’istruzione di assegnazione è caratterizzata dal simbolo := e in questo tipo di errore manca tale simbolo
Error113: Error in statement (Errore d’istruzione)
Si tratta di un errore di sintassi, ad esempio davanti ad Else non si deve mettere il punto e virgola.
Error26: Type mismatch (Mancata corrispondenza tra i tipi)
Consiste in una incompatibilità di valore, ad esempio si tenta di assegnare un valore real ad una variabile di tipo integer
Error89: “)” expected (Manca la parentesi tonda chiusa)
• Messaggi di errore in esecuzione (run-time error messageg)
Se il programma genere un errore durante l’esecuzione, questo viene interrotto ed appare il messaggio:
Run-time error at

numero dell’errore indirizzo in cui
in esecuzione si è verificato
Esempio di errore in esecuzione
Error200: Division by zero (Divisione per zero)
L’utente ha tentato di effettuare una divisione per zero

Capitolo2: Istruzione if then else
Spesso per risolvere un problema bisogna effettuare delle scelte fra due o più alternative possibili.
In questa circostanza il procedimento risolutivo non può essere determinato da una semplice sequenza di azioni da compiere nell’ordine in cui sono scritte, bensì bisogna prevedere una diramazione nel flusso delle operazioni.
L’esecutore dovrà quindi fare una scelta in conseguenza del verificarsi o meno di una condizione. Per effettuare e permettere la risoluzione di problemi che richiedono questi procedimenti, il Pascal offre l’istruzione if…then…else.
Tale istruzione consente l’esecuzione condizionale di un’altra istruzione, oppure la scelta fra l’esecuzione di due possibili istruzioni.

Queste due forme sintattiche sono:
nel primo caso selezione ad una via
se (espressione) allora fai (istruzione)
ovvero tradotto in Pascal
if (espressione) then (istruzione)
nel secondo caso selezione binaria
se (espressione) allora fai (istruzione1) altrimenti fai (istruzione2)
ossia tradotto in Pascal
if (espressione) then (istruzione1) else (istruzione2)
In entrambe le forme l’espressione deve produrre un valore che deve essere o “vero” o “falso”.
Nella selezione ad una via se il valore dell’espressione risulta vero sarà eseguita l’espressione dopo il then, se risulta falso l’istruzione verrà saltata.
Nella selezione binaria se il valore dell’espressione è vera sarà eseguita l’espressione dopo il then, altrimenti quella dopo l’else. Ricordiamo che il punto e virgola deve essere messo solo alla fine di tutto il blocco dell’istruzione condizionale.

Le istruzioni la cui esecuzione è controllata da un’istruzione if possono richiedere altre istruzioni if, formando istruzioni condizionali sempre più complesse. In questo caso le istruzioni si dicono annidate. Dopo la parola chiave then e dopo la parola chiave else, invece di una sola istruzione può esserci un blocco di istruzioni;in questo caso il blocco delle istruzioni deve essere racchiuso dalla parole chiave begin e dalla parola chiave end.

Scrivere un programma che, introdotto un numero da tastiera, comunichi se questo sia pari o dispari.
Dati in ingresso:
a numero
Procedimento risolutivo:
Un numero è pari quando, diviso per due, il suo resto è zero
quindi utilizziamo l’istruzione if then else
accompagnata dalla funzione MOD
1.Se
a Mod 2=0
allora il numero è pari
altrimenti è dispari

Dati finali da comunicare all’utente:
Pari
oppure
Dispari
program pari_dispari;
var
a:integer;
begin
writeln('Questo programma indica se un numero è pari o dispari');
writeln('Inserisci un numero');
readln(a);
if a mod 2=0 then writeln('Il numero è pari') else writeln ('Il numero è dispari');
readln;
end.
Diagramma di flusso
Scrivere un programma che, inserita la misura di un angolo, comunichi se questo sia acuto, ottuso o retto.
Dati in ingresso:
a misura dell’angolo
Procedimento risolutivo:
Se a=90 l’angolo è retto
altrimenti se l’angolo è minore di 90
è acuto

altrimenti è ottuso

Dati finali da comunicare all’utente:
Retto
Acuto
Ottuso
program angoli;
var
a:real;
begin
writeln('Questo programma comunica in base all''ampiezza di un angolo');
writeln('se questo è acuto,ottuso o retto');
writeln('Introduci il valore dell''angolo');
readln(a);
if a=90 then writeln('L''angolo è retto') else
begin
if a>90 then writeln('L''angolo è ottuso')
else writeln('L''angolo è acuto');
end;
readln;
end.
Diagramma di flusso
Scrivere un programma che calcoli la radice quadrata di un numero se questo è positivo.
Dati in ingresso:
a numero introdotto da tastiera
Procedimento risolutivo:
Se a>0 allora
(radice quadrata) b=
altrimenti la radice non esiste

Dati finali da comunicare all’utente:
b
La radice non esiste
program radice;
var
a,b:real;
begin
writeln('Questo programma calcola la radice quadrata');
writeln('di un numero positivo');
writeln('Inserisci un numero');
readln(a);
if a>0 then
begin
b:=sqrt(a);
writeln('La radice quadrata del numero è', b:5:2); questa scrittura sta a significare che
end si vuole il valore della radice di 5
else cifre complessive di cui 2 decimali
writeln('La radice quadrata del numero non esiste')
readln;
end.
Diagramma di flusso
Scrivere un programma che, introdotta da tastiera la misura del lato di un triangolo equilatero, ne calcoli a scelta dell’utente o il perimetro o l’area.
Dati in ingresso:
misura del lato (l) di un triangolo equilatero
Procedimento risolutivo:
la richiesta è quella di calcolare a scelta dell’utente o il perimetro o l’area del triangolo equilatero in questione, quindi utilizziamo l’istruzione if then else con la variabile char
1.Se scelgo di calcolare il perimetro, allora
perimetro=3*lato
2.Se scelgo di calcolare l’area, allora
prima devo trovare il valore dell’altezza
altezza =
area=lato*altezza/2
Dati finali da comunicare all’utente:
Perimetro o Area
Program triangolo_equilatero;
var
l,p,h,a:real;
b:char;
begin
writeln('Questo programma calcola o il perimetro o l''area');
writeln('di un triangolo equilatero');
writeln('in base alle necessità dell''utente’);
writeln('Introduci il valore del lato');
readln(l);
writeln('Scegli di calcolare il perimetro?s/n');
readln(b);
if b='s' then
begin
p:=3*a;
writeln('Il valore del perimetro è',p);
end
else begin
h:=sqrt((sqr(l))-(sqr(l/2)));
a:=l*h/2;
writeln('Il valore dell''area è',a);
end;
readln;
end.
Diagramma di flusso
Scrivere un programma che, introdotte le misure delle due diagonali di un rombo, se sono entrambe positive, calcola il valore dell’ area e del perimetro del rombo, altrimenti scrive ”Il rombo non esiste”
Dati in ingresso:
a diagonale maggiore
b diagonale minore
Procedimento risolutivo:
la richiesta è che se entrambe le diagonali sono positive allora calcolo l’area e il perimetro del rombo altrimenti il rombo non esiste, quindi utilizzo l’istruzione if then else.
1.Nel caso in cui ho entrambi le diagonale positive
a>0 e b>0
calcolo il perimetro, quindi
prima devo trovare il valore del lato e moltiplicare il lato per quattro per calcolare il perimetro
perimetro = 4*
ed infine calcolo l’area
area = a*b/2
2.Nel caso in cui entrambi le diagonali sono negative o una negativa e l’altra positiva
scrivo “Il rombo non esiste”
Dati finali da comunicare all’utente:
Area e perimetro
oppure
“Il rombo non esiste”
program diagonale;
var
a,b,c,d:real;
begin
writeln('Questo programma calcola il perimetro e l''area');
writeln('di un rombo se le diagonali sono positive');
writeln('Inserisci il valore della diagonale maggiore');
readln(a);
writeln('Inserisci il valore della diagonale minore');
readln(b);
if(a>0)and(b>0)then
begin
c:=4*(sqrt((sqr(a/2))+(sqr(b/2))));
d:=a*b/2;
writeln('La misura del perimetro è ',c);
writeln('La misura dell''area è ',d);
end
else writeln('Il rombo non esiste');
readln;
end.
Diagramma di flusso
Scrivere un programma che, introdotte le misure dei lati di un rettangolo, ne calcoli l’area e il perimetro se queste sono positive.
Dati in ingresso:
s primo lato
t secondo alto
Procedimento risolutivo:
la richiesta è che se entrambe le misure dei lati sono positive allora calcolo l’area e il perimetro del rettangolo altrimenti il rettangolo non esiste;devo utilizzare l’istruzione if then else.
1.Se ho entrambi i lati positivi
s>0 e t>0
calcolo l’area:
area = base*altezza
calcolo il perimetro:
perimetro = 2*(s+t)
calcolo la diagonale:
d =
2.Se entrambi lati sono negativi o una negativo e l’altro positivo
scrivo “Il rettangolo non esiste”
Dati finali da comunicare all’utente:
Area, perimetro e diagonale
oppure
“Il rettangolo non esiste”
program rettangolo;
var
s,t,a,p,d:real;
begin
writeln('Questo programma calcola il perimetro,l'area');
writeln('e la diagonale di un rettangolo se le sue dimensioni');
writeln('sono positive');
writeln('Inserisci un numero');
readln(s);
writeln('Inserisci un altro numero');
readln(t);
if (s>0) and (t>0) then
begin
a:=s*t;
p:=2*(s+t);
d:=sqrt(s*s+t*t);
writeln('L''area misura', a:4:1);
writeln('Il perimetro misura', p:4:1);
writeln('La diagonale misura', d:4:1);
end
else writeln('Il rettangolo non esiste');
readln;
end.
Diagramma di flusso
Scrivere un programma che calcola il valore dell’espressione x/(x-1)(x+2) se il valore di x appartiene all’insieme di definizione altrimenti comunica ”L’espressione non esiste”.
Dati in ingresso:
x incognita x
Procedimento risolutivo:
la richiesta è che se il valore di x è accettabile secondo le condizioni di esistenza, allora calcolo il valore dell’espressione altrimenti scrivo che l’espressione non esiste;utilizzo l’istruzione if then else per porre la condizione dei valori di appartenenza all’insieme di definizione dell’incognita.

Valori non accettabili della seguente espressione frazionaria:
x=1 questi valori rendono il denominatore nullo e di conseguenza l’espressione non
x=-2 esiste

1.Se ho scartato questi due valori, quindi se
x1 e x-2

calcolo il valore dell’espressione, quindi
soluzione =

2.Nel caso in cui il valore di x è “1” o “-2”
scrivo che l’espressione non esiste
Dati finali da comunicare all’utente:
Soluzione
oppure
“L’espressione non esiste”
program espressione2;
var
x,s:real;
a:char;
begin
writeln('Questo programma calcola il valore dell''espressione');
writeln('x/((x-1)*(x+2))');
writeln('quando il valore di x appartiene all''insieme di definizione');
writeln('Inserisci il valore di x');
readln(x);
if (x1) and (x-2) then
begin
s:=x/((x-1)*(x+2));
writeln('La soluzione dell''espressione è',s);
end
else
writeln('L''espressione non esiste');
readln;
end.
Diagramma di flusso
Scrivere un programma che, a scelta dell’utente, converta somme di euro in lire e viceversa.*
*per la spiegazione del procedimento consultare anche pag.57/58
program operazione_2002;
const
c=1936.27;
var
l,e,s:real;
risposta:char;
begin
writeln('Questo programma converte somme di lire in euro');
writeln('e viceversa,in base alle necessità dell''utente');
writeln('Inserisci la somma di denaro');
readln(s);
writeln('La somma è in lire? s/n');
readln(risposta);
if risposta='s' then
begin
e:=s/c;
writeln('La somma in euro vale ', e:10:2, ' euro');
end
else begin
l:=s*c;
writeln('La somma in lire vale ', l:20:2, ' lire');
end;
readln;
end.
Diagramma di flusso
Scrivere un programma che converta somme da euro in dollari e viceversa.
*per la spiegazione del procedimento consultare anche pag.55/56
program dollaroeuro;
const
e=0.91;
var
d,s:real;
a:char;
begin
writeln('Questo programma converte somme di dollari in euro');
writeln('e viceversa,in base alle necessità dell''utente');
writeln('Introduci il valore della somma');
writeln('Introduci un valore');
readln(d);
writeln('Il valore introdotto è in dollari?s/n');
readln(a);
if a='s' then
begin
s:=d*e;
writeln('La somma in euro vale ',s);
end
else begin
s:=d/e;
writeln('La somma in dollari vale ',s);
end;
readln;
end.
Diagramma di flusso
Scrivere un programma che risolva equazioni di primo grado poste in forma canonica.
Dati in ingresso:
a coefficiente dell’incognita
b termine noto
Procedimento risolutivo:
1.Se
a0
l’equazione è determinata e il valore dell’incognita è
x=b/a
2.altrimenti se contemporaneamente
b=0
l’equazione è indeterminata
3.altrimenti se
b0 e a=0
è impossibile
Dati finali da comunicare all’utente:
Equazione determinata e valore di x
oppure
Equazione indeterminata
oppure
Equazione impossibile
Program Equaz_1grado;
crt è una unit la cui istruzione non è sempre disponibile e deve essere
var richiamata dal programma se se ne vuole far uso; per renderla attiva
a,x,b:real; occorre richiamare la unit con la parola riservata uses seguita dal
begin nome della stessa unit dopo la riga di intestazione. Fra le istruzioni
più frequenti abbiamo clrscr che ripulisce il video dal suo contenuto
in modo che l’output sia meglio individuabile.

writeln('Questo programma risolve equazioni di 1^ grado');
writeln('nella forma normale ax=b');
writeln('Inserisci il valore della a');
readln(a);
writeln('Inserisci il valore della b');
readln(b);
if a0 then
begin
x:=b/a;
writeln('L''equazione è determinata e il valore della x è ',x);
end
else begin
if b=0 then
writeln('L''equazione è indeterminata')
else writeln('L''espressione è impossibile');
end;
readln;
end.
Diagramma di flusso
Scrivere un programma che risolva equazioni di secondo grado poste in forma canonica.
Dati in ingresso:
a coefficiente dell’incognita di secondo grado
b coefficiente dell’incognita di prima grado
c termine noto
Procedimento risolutivo:
Innanzitutto “a” deve essere diverso da zero
a0
Calcolo il discriminante
discriminante = d-4ac
1.Se il discriminante è negativo
l’equazione è impossibile
x=b/a
2.Se il discriminante è uguale a zero
l’equazione ha due radici coincidenti
x=

3.altrimenti
l’equazione ha due radici reali e distinte
x1=
x2=
Dati finali da comunicare all’utente:
Equazione impossibile
Equazione determinata x1x2, x1 e x2
Program Equazioni;
uses crt;
var a,b,c,x,x1,x2,d:real;
begin
clrscr;
writeln('Questo programma risolve equazioni di 2^ grado');
writeln('poste in forma canonica');
writeln('Inserisci il valore della variabile a');
readln(a);
writeln('Inserisci il valore della variabile b');
readln(b);
writeln('Inserisci il valore della variabile c');
readln(c);
d:=(b*b)-(4*a*c);
if a0 then
begin
if d=200 then
begin
d:=c-(c/100*15);
writeln('Il prezzo scontato è ',d:1:2);
end
else begin
if c

Esempio



  


  1. Blaze

    Never would have thunk I would find this so indsiepnabsle.

  2. Irene

    So that's the case? Quite a revealiton that is.