1 Lengoaiaren elementuak
Transcript of 1 Lengoaiaren elementuak
Javi Portillo & Tomi Etxeandia 2008
Lengoaiaren elementuak
Informatikaren Oinarriak 2007/2008 ikasturtea
2
Javi Portillo & Tomi Etxeandia 2008
Atalak SARRERA FUNTSEZKO ELEMENTUAK PROGRAMAREN EGITURA DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
6. ESLEIPENAK7. ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
3
Javi Portillo & Tomi Etxeandia 2008
Sarrera ZKH adibidearen pausuak (eta emaitzak): algoritmoa adierazi
(fluxu-diagrama), kodea idatzi (iturburu kodea), konpilazioa (fitxategi exekutagarria), exekuzioa (ZKH). Ikus kodea
Pascal goi-mailako programazio lengoaia Pascaleko fitxategien luzapenak:
Iturburu-kodea .PAS (ad. arik_1.pas) Segurtasun-kopia .BAK (arik_1.bak) Helburuko programa .TPU edo .TPL (arik_1.tpu; arik_1.tpl) Programa exekutagarria .EXE (arik_1.exe)
ZKH programan agertzen diren elementu gehienak gai honetan zehar deskribatuko ditugu: esanahia, erabilera, sintaxia,...
Konpilatzaileak ziurtatzen du sintaxia ondo erabiltzen dugula exekutagarria sortu aurretik baina programak bere helburua betetzea beste kontu bat da...
4
Javi Portillo & Tomi Etxeandia 2008
SarreraZKH kalkulatzeko programa
Zatitzaile Komunetako Handienaren kalkulua:Izan bitez ZBK_1 eta ZBK_2 bi zenbaki oso eta positiboak
ZBK_1 eta ZBK_2 berdinak badira 4. puntura joan Bietatik handienari txikiena kentzen zaio 1go puntura itzuli Zatitzaile Komunetako Handiena ZBK_1en balioa da ( ZBK_1 = ZBK_2)
PROGRAM ZKH ;VAR ZBK_1, ZBK_2 : Integer ;BEGIN Write (‘Bi zenbaki positibo idatzi: ') ; ReadLn (ZBK_1, ZBK_2) ; WHILE ZBK_1 <> ZBK_2 DO IF ZBK_1 > ZBK_2 THEN ZBK_1 := ZBK_1 - ZBK_2 ELSE ZBK_2 := ZBK_2 - ZBK_1 ; WriteLn (‘Zatitzaile Komunetako Handiena = ', ZBK_1)END.
5
Javi Portillo & Tomi Etxeandia 2008
Atalak SARRERA FUNTSEZKO ELEMENTUAK PROGRAMAREN EGITURA DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
6. ESLEIPENAK7. ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
6
Javi Portillo & Tomi Etxeandia 2008
Funtsezko elementuak Ikurrak:
Hitz erreserbatuak: Hauen esanahia aldez aurretik definiturik dago eta ezin da aldatu Sailkapen bat:
Eragiketak: OR, NOT, AND, DIV,.. Definizioak eta deklarazioak: PROGRAM, TYPE, VAR, ARRAY, … Kontrol-egiturak: BEGIN, END, IF, THEN, ELSE, …
Lerroak (sententziak): Bere luzera, gehienez, 127 karakterekoa da Lerro barneko elementuen mugatzaileak:
ƀ (zuriunea) ↲ (orga itzulera) iruzkinak
+ - * / := = < > <> <= >= ( ) [ ] (. .) { } (* *) ; , . ‘ .. # $ ^ @
7
Javi Portillo & Tomi Etxeandia 2008
Funtsezko elementuak
PROGRAM ZKH ;VAR ZBK_1, ZBK_2 : Integer ;BEGIN Write (‘Bi zenbaki positibo idatzi: ') ; ReadLn (ZBK_1, ZBK_2) ; (* Datu irakurketa *) WHILE ZBK_1 <> ZBK_2 DO IF ZBK_1 > ZBK_2 THEN ZBK_1 := ZBK_1 - ZBK_2 ELSE ZBK_2 := ZBK_2 - ZBK_1 ; WriteLn (‘Zatitzaile Komunetako Handiena = ', ZBK_1)END.
8
Javi Portillo & Tomi Etxeandia 2008
Funtsezko elementuak Identifikadore estandarrak. Esanahia aurredefinitua dute.
Sailkapen bat: Konstanteak: MAXINT, PI, MAXLONGINT, TRUE, … Datu-motak: Integer, Real, Boolean, Byte, Char, … Prozedurak: ReadLn, WriteLn, New, Assign, Delete, … Funtzioak: Cos, Abs, Eof, Length, … Unitateak: Crt, …
Programatzaileak definituriko identifikadoreak: Programatzaileak ematen die esanahia Erabili aurretik definitu behar dira Erabiltzen dira aldagaiak, konstanteak, datu-motak, azpiprogramak,
… izendatzeko Ezin dira hitz erreserbatuak izan Programa zehatz baterako bakarrik balio dute Turbo Pascal-ek ez ditu bereizten maiuskulak eta minuskulak Gehienez 127 karaktere , baina:
Lehenengo karakterea: a … z, A … Z, _ (baina ez ñ ezta Ñ ere) Hurrengoak: a … z, A … Z, _ , 0 … 9 (baina ez ñ ezta Ñ ere)
9
Javi Portillo & Tomi Etxeandia 2008
Funtsezko elementuak
realZBK_real
1_b_hasiera
2ZenbakiaiKontagailu_1
iZBK HandiaiZBK_Handi
añourtea
TxartoOndoIdentifikadoreen adibideak:
Iruzkinak: Programaren garbitasunerako Programatzaileari zuzenduta,
konpilatzaileak ez ditu prozesatzen
Hobe lerroaren amaieran edo aparteko beste lerro batean
Mugatzaileak: (*…*), {…} Adibideak:
{2. mailako ekuazioa ebatzi}rErroa := sqrt (b*b – 4*a*c) ;rX1 := (-b + rErroa) / (2*a);rX2 := (-b - rErroa) / (2*a) ;
rBEZ = 0.16 ; {BEZ-aren balioa}…rBalioa := rBalioa * (1 + rBEZ);
(* BEZ-a gehitu*)
10
Javi Portillo & Tomi Etxeandia 2008
Atalak SARRERA FUNTSEZKO ELEMENTUAK PROGRAMAREN EGITURA DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
6. ESLEIPENAK7. ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
11
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura
Programa batek 3 atal izan behar ditu:
Goiburukoa
Deklarazioak edo erazagupenak
Programa nagusia edo bloke exekutagarria
12
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura: Goiburukoa
Goiburukoak bakarrik programaren izena adierazten du Fitxategiaren izena eta programarena ezberdinak izan daitezke Diagrama sintaktikoa:
Adibidez: PROGRAM KarratuZehatzak ; PROGRAM ZirkuluarenAzalera ;
PROGRAM identifikadorea
(
,
)
;
S / I ko
fitxategiaren
identifikadorea
13
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura: Deklarazioak edo erazagupenak
Programan zehar erabiliko ditugun elementuak aurretik deklaratu egin behar dira
Unitateen deklarazioen atala: Konpilaketa banatua programa exekutagarria sor
daiteke helburuko programa batzuetatik (unitateak izenekoak) abiatuta. Horretarako unitate horien identifikadoreak hemen aipatu behar dira
Beste unitaterik erabili ezean atal hau ez da beharrezkoa Agertzekotan, behin batean bakarrik eta PROGRAM ostean Diagrama sintaktikoa:
Adibidez: USES Crt;
14
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura: Deklarazioak edo erazagupenak
Konstanteen deklarazioa Izendun konstanteak deklaratzen dira atal honetan
Datu-moten deklarazioa Programatzaileak definituriko datu-motak
Aldagaien deklarazioa Programaren exekuzioaren zehar balio desberdinak har ditzaketen
identifikadoreak aldagaiak dira (datu aldakorrak) Aldagai batek beti datu-mota konkretu bat oinarritzat hartu behar du,
horrela mugatzen dira aldagaiak har ditzakeen balioak eta berarekin egin daitezkeen eragiketak
Azpiprogramen deklarazioak Azpiprogramak zeregin bereziak egiten dituzten errutinak dira Azpiprogramaren egitura programarena bezalakoa da (baina USES
klausula barik) Bi motakoak izan daitezke:
prozedurak (PROCEDURE) funtzioak (FUNCTION)
15
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura: Programa nagusia edo bloke exekutagarria
Sententzia multzo bat da eta sarrera-datuetatik abiatuta eragiketak egiten dira emaitzak lortzeko
Sententzia bakoitzaren amaieran ‘;’ jarri behar da (END. aurretik ez da beharrezkoa baina onartzen da)
Diagrama sintaktikoa:
16
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura:Adibideak
17
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura:Adibideak
PROGRAM FSortu ;
USES Crt ;CONST KATE_LUZ = 30 ;TYPE
tsKate= String [KATE_LUZ] ;trgInfo= RECORD
sIzena: tsKate ; iAintzin: Integer ; sSaila: tsKate ; END ; tfrgFitx= FILE OF trgInfo ;VAR sIzena: tsKate;
PROCEDURE RegIrakurri (VAR rgReg: trgInfo)PROCEDURE FitxSortu (sIzen: tsKate) ;
{__________Programa Nagusia________}BEGIN Write ('Eman Fitxategiaren izena: ') ; Readln (sIzena) ; FitxSortu (sIzena) ;END.
GOIBURUKOA
DEKLARAZIOAK
AZPIPROGRAMAK
PROGRAMA
NAGUSIA
18
Javi Portillo & Tomi Etxeandia 2008
Programaren egitura:Adibideak
PROGRAM ZKH ;VAR ZBK_1, ZBK_2 : Integer ;BEGIN Write (‘Bi zenbaki positibo idatzi: ') ; ReadLn (ZBK_1, ZBK_2) ; WHILE ZBK_1 <> ZBK_2 DO IF ZBK_1 > ZBK_2 THEN ZBK_1 := ZBK_1 - ZBK_2 ELSE ZBK_2 := ZBK_2 - ZBK_1 ; WriteLn (‘Zatitzaile Komunetako Handiena = ', ZBK_1)END.
Atalak?; zenbat sententzia?; aldagaien balioak?
19
Javi Portillo & Tomi Etxeandia 2008
Atalak SARRERA FUNTSEZKO ELEMENTUAK PROGRAMAREN EGITURA DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
6. ESLEIPENAK7. ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
20
Javi Portillo & Tomi Etxeandia 2008
Datuak
Ordenagailuak erabilitako edozein informazioa da. Programa exekutatzen den bitartean datuak memoria nagusian biltegiratzeko lekua behar da.
Datuak izan daitezke: KONSTANTEAK, balioa ezin daiteke aldatu programaren
exekuzioan, ezta exekuzio ezberdinetan ALDAGAIAK, balioa alda daiteke programaren exekuzioan
edo exekuzio ezberdinetan. Programan erabiltzen den edozein datu (bai
konstanteak bai aldagaiak) datu-mota bati lotuta egon behar da, hau da, zein datu-motan oinarritzen den zehaztuko da. Hurrengo diapositiban zerrendatzen dira TPko datu-motak:
21
Javi Portillo & Tomi Etxeandia 2008
DatuakMota Bakuna Mota ordinala Mota aurredefinitua Mota osoa Integer1 Byte ShortInt LongInt Word Char
Boolean
Programatzaileak Azpieremua definituriko mota Enumeratua Mota erreala Real
Single
Double
Extended
Comp
Mota egitaratua Set mota String mota
ARRAY mota
Erregistro mota
Fitxategi mota Fitxategi bitarra
Text
Erakusle mota
1 Beltzean dauden datu-motak System unitatean definituta daude. Unitate hau automatikoki estekatzen da eta ez da behar USES deklarazioan islatu behar.
DATU-MOTA batek zehazten du:
• Tamaina (bit kopurua)
• Datuen izaera
22
Javi Portillo & Tomi Etxeandia 2008
DatuakKonstanteak
Konstante baten balioa ezin da aldatu programaren exekuzioan. Hiru aukera daude sententzietan erabiltzeko: literalak, izendunak, aurredefinituak
Konstante literalak, (beste elementuaren edo balioaren sinbolo ez dena): osoak, errealak, karaktereak eta karaktere-kateak: Literal osoak, sistema hamartarrean (+ eta -) edo
hamaseitarrean (bakarrik +) erabil daitezke. Hamaseitarrean dagoela adierazteko $ jartzen da zenbakiaren aurrean (ikus. gehigarria) Adibidez: 15, -241, $15 ( 21), $8000 (32768)
Literal errealak, koma finkoan ala koma higikorrean izan daitezke Adibidez: 12.23, -345.12, 1.34E-3, -2E+16,… Puntua erabiltzen da parte osoa eta parte hamartarra bereizteko Zenbaki barruan ezin da bat ere agertuƀ 24.0 erreala da eta ez osoa!!
23
Javi Portillo & Tomi Etxeandia 2008
(gehigarria, ikus 8. gaiaren 5. diapositiba) Zenbakikuntzaren oinarrizko teorema
an an-1 an-2 … a3 a2 a1 a0 . a -1 a -2 a-3 … a-p zenbakia b oinarrian
adierazita badago orduan bere balorea hau da:
an·bn+an-1·b
n-1+…+a2·b2+a1·b
1+a0·b0+a-1·b
-1+…+a-p-1·b-p-1+ap·b
p
non 0 ≤ ai < b den, hau da, {a0 .. an-1} ikurrak erabiltzen dira
Zenbakikuntza-sistema adierazteko b zenbakia (oinarria) azpindizetan
jartzen da.
• 850.2110 = 8·102 + 5·10 + 2·10-1 + 1·10-2
• 52.267 = 5·7 + 2 + 2·7-1 + 6·7-2
• 10010.012 = 24 + 2 + 2-2
24
Javi Portillo & Tomi Etxeandia 2008
DatuakKonstanteak
Literal karakterea, komatxoen artean edo zenbaki batez (# edo ^ aurretik idatzita) adierazten dira. Karakterea bera idazteko, komatxoak (‘A’, ‘2’). Salsalbuespenak:
↲(orga itzulera) ezin da erabili karaktere moduan Komatxo bera karaktere moduan erabiltzeko, bi aldiz jarri behar (‘’’’)
Traola (#) erabiliz ASCII kodea adierazten da. Adibideak: #65 ‘A’; #$42 ’B’; #13 orga itzulera)
Lehendabiziko 32 ASCII karaktereak kontrol-karaktereak dira. Euren idazkera ^az hasten da eta gero letra bat (ñ, Ñ izan ezik) edo @, [, \, ],^, _ . Adibidez: ^J hurrengo lerrora, ^M orga itzulera
Literal karaktere-katea, karaktere multzo bat adierazteko Adibidez, ‘hemen katea dago’ edo ‘hemen ’ ’katea’ ’ dago’ edo ‘256’ ƀ ƀ ƀ ƀ
(ez da zenbakia)
25
Javi Portillo & Tomi Etxeandia 2008
DatuakKonstanteak
26
Javi Portillo & Tomi Etxeandia 2008
0 1 2 3 4 5 6 7 8 9 A B C D E F b3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Kode
Ikurra b1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
b0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
b7 b6 b5 b4
0 0 0 0 0 0
1
☺ 2
☻ 3
♥ 4
♦ 5
♣ 6
♠ 7
• 8
◘ 9
◦ 10
◙ 11
♂ 12
♀ 13
♪ 14
♫ 15
☼ 1 0 0 0 1 16
► 17
◄ 18
↕ 19
‼ 20
¶ 21
§ 22
▬ 23
↨ 24
↑ 25
↓ 26
→ 27
← 28
∟ 29
↔ 30
▲ 31
▼ 2 0 0 1 0 32
33
! 34
" 35
# 36
$ 37
% 38
& 39
' 40
( 41
) 42
* 43
+ 44
, 45
- 46
. 47
/ 3 0 0 1 1 48
0 49
1 50
2 51
3 52
4 53
5 54
6 55
7 56
8 57
9 58
: 59
; 60
< 61
= 62
> 63
? 4 0 1 0 0 64
@ 65
A 66
B 67
C 68
D 69
E 70
F 71
G 72
H 73
I 74
J 75
K 76
L 77
M 78
N 79
O 5 0 1 0 1 80
P 81
Q 82
R 83
S 84
T 85
U 86
V 87
W 88
X 89
Y 90
Z 91
[ 92
\ 93
] 94
^ 95
_ 6 0 1 1 0 96
` 97
a 98
b 99
c 100
d 101
e 102
f 103
g 104
h 105
i 106
j 107
k 108
l 109
m 110
n 111
o 7 0 1 1 1 112
p 113
q 114
r 115
s 116
t 117
u 118
v 119
w 120
x 121
y 122
z 123
{ 124
| 125
} 126
~ 127
⌂ 8 1 0 0 0 128
Ç 129
ü 130
é 131
â 132
ä 133
à 134
å 135
ç 136
ê 137
ë 138
è 139
ï 140
î 141
ì 142
Ä 143
Å
27
Javi Portillo & Tomi Etxeandia 2008
DatuakKonstanteak
Konstante izendunak, identifikadore baten bidez deklaratu behar dira konstanteen deklarazioak biltzen dituen atalean (CONST). Konpilatzaileak programa osoan identifikadorearen ordez balioa jarriko du. Programa garbiago eta ulergarriagoak Mantentze lanak errazagoakAdibidez:
CONSTrBEZ = 0.16 ;rERRADIOA = 2.56345786E-24 ;
Konstante aurredefinituak:
MAXINT 215 – 1 MAXLONGINT 231 – 1
PI Egia esan funtzioa da eta 15 zifra hamartarreko doitasuna dauka
TRUE FALSE
Datu-mota boolearreko bi aukerak
NIL Datu-mota erakusleetan ez dela inora
zuzentzen adierazteko.
28
Javi Portillo & Tomi Etxeandia 2008
DatuakAldagaiak
Programaren exekuzioan zehar balio aldakorra izan dezaketen datuak dira. Aldaketa era desberdinetan gerta daiteke: Teklatuaren bidez Fitxategi batetik hartutako balioarekin Eragiketen ondorioz
Eragiketa batetik lortutako emaitza beti aldagai batean biltegiratuko dugu
Aldagaiak beti datu-mota zehatz batekin lotuta egon behar du. Honela: Aldagaiaren balioa biltegiratzeko behar den adina memoria erreserbatzen
da Aldagaiak har dezakeen balioen heina mugatzen da Aldagaiarekin egin daitezkeen eragiketa multzoa adierazten da
VAR iKontagailua : Integer ; boAurkitua, boEgia : Boolean ; rSalneurria : Real :
29
Javi Portillo & Tomi Etxeandia 2008
INTEGER DATU-MOTA (osoak) Datu-mota hau aurredefinitua
dago, ez da aipatu behar datu-moten deklarazioan
Tarteak:
Integer: -215 .. 215-1
Word: 0.. 216-1
ShortInt: -27 .. 27-1
Byte: 0.. 28-1
LongInt: -231 .. 231-1
30
Javi Portillo & Tomi Etxeandia 2008
REAL DATU-MOTA (erralak) Datu-mota hau aurredefinitua
dago, ez da aipatu behar datu-moten deklarazioan
31
Javi Portillo & Tomi Etxeandia 2008
BOOLEAN DATU-MOTA (boolearrak) Datu-mota hau aurredefinitua dago, ez
da aipatu behar datu-moten deklarazioan
32
Javi Portillo & Tomi Etxeandia 2008
DatuakAldagaiak
Ariketa: bila itzazu akatsakVAR iZenbat = Integer ;VAR rAldea : Real, iKopurua = Integer ;VAR cNúmero : Char ;
rLetra : Real ;VAR iA, iB, iC, iD, : Integer ;
rZ : Real ;VAR EGUNAK = 15 ;CONST iN = 12 ;CONST 1 = ‘A’ , Z = 15 ;CONST ERDIA = .5 ; Helburuko programan aldagaien identifikadoreak memoria
nagusiko helbide bihurtzen dira. Ez dira automatikoki hasieratzen, esleitu arte zarama dute
Estilo liburua begiratu
33
Javi Portillo & Tomi Etxeandia 2008
Atalak
1. SARRERA2. FUNTSEZKO ELEMENTUAK3. PROGRAMAREN EGITURA4. DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
6. ESLEIPENAK7. ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
34
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraTeklatutik irakurtzeko
Read eta ReadLn prozedurak datuak teklatutik irakurtzeko erabiltzen dira. Hona heltzen denean, programa gelditu egiten da teklatuan (orga itzulera) sakatu arte↲ .
Beraz, zero, bat ala datu gehiago irakur daitezke bakoitzean. Deklaratutako aldagaiaren datu-motak eta sartutakoarenak
bateragarriak izan behar dute. Erabiltzaileak, programatzaileak espero zuen baino datu
gehiago sartuz gero bi prozedura hauen portaera ezberdina da: Read prozedurak soberakinak teklatuaren bufferrean uzten
ditu eta hurrengo Read sententzian esleitzen dira. ReadLn prozedura erabiliz gero, soberakinak galdu egiten
dira. Read edo ReadLn exekutatu aurretik erabiltzaileari datuak sartu
behar dituela jakinarazi behar diogu Write-ren edo WriteLn-en bidez.
35
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraTeklatutik irakurtzeko
36
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraPantailan idazteko
Haien arteko desberdintasuna: Write, adierazpenaren balioa pantailan idatzi ondoren
kurtsorea azken karakterearen ostean gelditzen da. WriteLn, adierazpenaren balioaren azken karakterea
pantailan idatzi ondoren automatikoki exekutatzen du eta ↲hurrengo lerroaren hasieran kokatzen da kurtsorea.
Adibidez: iAltuera 20 eta iZabalera 41 badira orduan:
Balioak = 20 41Balioak = 20 eta 41WriteLn (‘Balioak = ’, iAltuera,’ eta ’, iZabalera) ;
Write (‘Balioak = ’, iAltuera,’ ’, iZabalera) ;
Balioak = 2041WriteLn (‘Balioak = ’, iAltuera, iZabalera) ;
Zabalera = 41WriteLn (‘Zabalera = ’, iZabalera) ;
Altuera = 20WriteLn (‘Altuera = ’, iAltuera) ;
PantailaratutakoaSententziak
37
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraFormatuak
Datuak pantailaratzean formatua eman ahal diegu, hau da, datu bera era desberdinetan adieraz daiteke. Formatuak emateko sintaxia honako hau da:
Datua : formatua Formatua desberdina da datu-motaren arabera: karaktere-
katea, osoa ala erreala Karaktereen edo karaktere-kateen formatua. Hauetan
adierazten den formatua gutxienezko zabalera daWriteLn (Karaktere_Katea : Zabalera)
HitzaWriteLn (‘Hitza’ : 3) ;
ƀƀƀƀƀƀƀƀƀƀƀƀHitzaWriteLn (‘Hitza’ : 17) ;
HitzaWriteLn (‘Hitza’) ;
PantailaratutakoaSententziak
38
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraFormatuak
Zenbaki osoen formatua. Hauetan ere adierazten den formatua gutxienezko zabalera da.
WriteLn (Zenbaki_Osoa : Zabalera) Demagun iZenbakia 2478 balorea duela
2478WriteLn (iZenbakia : 3) ;
ƀƀƀƀƀƀƀƀ2478WriteLn (iZenbakia : 12);
2478WriteLn (iZenbakia) ;
PantailaratutakoaSententziak
39
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraFormatuak
Guztira 17 karaktere
21110111
BerretzaileaZeinuaE edo e
letraParte
hamartarraPuntua
.Parte osoaƀ edo zeinua
BerretzaileaMantisa
Zenbaki errealen formatua. Hiru aukera ditugu: WriteLn (Adierazpen_erreala) ; honetan, koma higikorreko
formatuan adierazten da 17 digiturekin, honelako eran:
WriteLn (Adierazpen_erreala : Zabalera) ; honetan, koma higikorreko formatuan adierazten da, zabalera gutxienezko zabalera delarik. Zabalera honek parte hamartarraren digitu-kopurua mugatzen du minimoa bat izanik. Demagun rZenbakia 247673.77654 dela, orduan:
ƀ2.5E+05 gutxienez 8 digituWriteLn (rZenbakia : 3) ;
ƀƀƀƀƀ2.4767377654E+05WriteLn (rZenbakia : 21) ;
ƀ2.4767377654E+05WriteLn (rZenbakia) ;
PantailaratutakoaSententziak
40
Javi Portillo & Tomi Etxeandia 2008
Datuen irteera eta sarreraFormatuak
WriteLn (Adierazpen_erreala : Zabalera : Doitasuna); honetan, koma finkoko formatuan adierazten da, zabalerak, digitu-kopuruak eta doitasunak parte hamartarraren luzera mugatzen dutelarik. Demagun rZenbakia 247673.77654 dela, orduan:
247674WriteLn (rZenbakia : 2 : 0) ;
247673.776540000WriteLn (rZenbakia : 2 : 9) ;
ƀƀƀƀƀƀƀƀƀƀƀƀ247674WriteLn (rZenbakia : 18 : 0) ;
ƀƀ247673.776540000WriteLn (rZenbakia : 18 : 9) ;
ƀƀƀƀƀƀƀƀ247673.777WriteLn (rZenbakia : 18 : 3) ;
PantailaratutakoaSententziak
41
Javi Portillo & Tomi Etxeandia 2008
Atalak
1. SARRERA2. FUNTSEZKO ELEMENTUAK3. PROGRAMAREN EGITURA4. DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
ESLEIPENAK ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
42
Javi Portillo & Tomi Etxeandia 2008
Esleipenak
Sententziarik sinpleena da Honen bidez eragiketaren emaitza aldagai batean gordetzen da Aldagaiak aurretik zeukan balorea galdu egiten du Adierazpena zera izango da: konstante, aldagai, funtzio edo beste adierazpen
batzuk osatutako eragiketen segida bat. Adierazpena ebaluatzen denean datu-mota konkretu baten balioa hartuko du. (ikus. adibideak)
Beraz, lehendabizi, eragiketen segida burutzen da eta gero emaitza gordetzen da aldagaian (memorian erreserbatutako lekuan)
Kontuz!! Bateragarritasuna. Aldagaiaren datu-motak eta adierazpenaren
emaitzarenak berdinak edo bateragarriak izan behar dute. Adibideak: Aldagai erreala (Real DMkoa) := balio osoa (Integer, Word, ShortInt, Byte edo
LongInt DMkoa) Aldagai karaktere-katea (String DM):= balio karakterea (Char DM)
Bereiztu := eta = := esleipena (bloke exekutagarrian bakarrik) = konstanteen deklarazioan (rBEZ = 0.16) edo alderaketa bloke
exekutagarrian (IF A = B THEN)
43
Javi Portillo & Tomi Etxeandia 2008
Esleipenak
PROGRAM ZKH ;VAR ZBK_1, ZBK_2 : Integer ;BEGIN Write (‘Bi zenbaki positibo idatzi: ') ; ReadLn (ZBK_1, ZBK_2) ; WHILE ZBK_1 <> ZBK_2 DO IF ZBK_1 > ZBK_2 THEN ZBK_1 := ZBK_1 - ZBK_2 ELSE ZBK_2 := ZBK_2 - ZBK_1 ; WriteLn (‘Zatitzaile Komunetako Handiena = ', ZBK_1)END.
Esleipenak? Formatuak?
44
Javi Portillo & Tomi Etxeandia 2008
Atalak
1. SARRERA2. FUNTSEZKO ELEMENTUAK3. PROGRAMAREN EGITURA4. DATUAK
Konstanteak Aldagaiak
5. DATUEN IRTEERA ETA SARRERA Teklatutik irakurtzeko erak: Read eta ReadLn Pantailan idazteko erak: Write eta WriteLn Formatuak
ESLEIPENAK ADIERAZPEN ARITMETIKOAK
Oinarrizko adierazpen aritmetikoak Eragileen lehentasuna Funtzio aritmetiko estandarrak
45
Javi Portillo & Tomi Etxeandia 2008
Adierazpen aritmetikoakOinarrizko adierazpen aritmetikoak Eragigaiak Integer edo Real datu-motakoak:
IntegerIntegerModulua edo hondarra
2MOD
IntegerIntegerZatiketa osoa2DIV
RealInteger edo
RealZatiketa erreala
2/
Real, eragigairen bat Real bada
Integer edo Real
Biderketa2*
Real, eragigairen bat Real bada
Integer edo Real
Kenketa2-
EragigaiarenaInteger edo
RealZeinu
aldaketa1-
Real, eragigairen bat Real bada
Integer edo Real
Batuketa2+
Emaitzaren datu-mota
Eragigaien datu-mota
Deskribapena
Eragigai-kopurua
Eragilea
46
Javi Portillo & Tomi Etxeandia 2008
Adierazpen aritmetikoakOinarrizko adierazpen aritmetikoak
Kalkulatu laukizuzenaren azalera. Sarrerak: oinarria eta altuera. Irteeraren formatua XXXX.XX
Eskatu bi zenbaki eta kalkulatu: Lauki baten azalera aldearen neurria lehenengo zenbakia izanik. Eman
azalera era honetan: ‘Karratuaren azalera XXX.XX metro kuadrokoa da’ Zirkuluaren azalera erradioa bigarren zenbakia izanik. Eman azalera era
honetan: ’zirkuluaren azalera XXXX.XXXXX metro kuadrokoa da’
Kalkula ezazu jaurtigai baten batezbesteko abiadura, sarrerak egindako distantzia kilometrotan eta erabilitako denbora minututan direlarik. Irteera abiadura m/s tan eta formatu honekin:‘jaurtigaiaren abiadura XXXX.XXXX m/s koa da.’
Kalkulatu denbora-tarte batean dagoen ordu, minutu eta segundo kopurua. Sarrera segundo kopurua izango da eta irteerak formatu hau izango du:‘XXXXX segundo XXXX ordu, XX minutu eta XX segundo dira’
47
Javi Portillo & Tomi Etxeandia 2008
Adierazpen aritmetikoakEragileen lehentasuna
() Lehenengo parentesien artekoa eragiten da. Parentesiak habiatuak egonez gero barrutik kanpora.
- (zeinu aldaketa) *, /, DIV, MOD +, - (batuketa eta kenketa) Lehentasun berdina izanez gero ezkerretik eskumara
eragiten daAdibideak (rZbk 2.2 eta iBalore 3 izanik…):
rEmaitza := (rZbk – 1 / 2 * iBalore) – 7 MOD iBalore – 1 DIV iBalore rEmaitza := – iBalore * rZbk / 2 + (4 * iBalore - (rZbk + 5 DIV 2 - 7.5))
48
Javi Portillo & Tomi Etxeandia 2008
Adierazpen aritmetikoakFuntzio aritmetiko estandarrak
Funtzioa Deskribapena Eragigaiaren datu-mota Emaitzaren datu-mota
Abs (x) x-ren balio absotutua Integer Real
Integer Real
Sqr (x) x2 Integer Real
Integer Real
Sqrt (x) x I / R baina x 0≥ Real eta 0≥
Int (x) x-ren parte osoa Real Real
Frac (x) x-ren parte hamartarra Real Real
Round (x) x-ren alde osoa biribildua
Real LongInt
Trunc (x) x-ren alde osoa trunkatua
Real LongInt
Sin (x) x-ren sinua (x radianetan)
Integer edo Real Real
Cos (x) x-ren kosinua (x radianetan)
Integer edo Real Real
ArcTan (x) x-ren arku tangentea Integer edo Real
Real radianetan eta
(-2
π,2
π ) tartekoa
Exp (x) ex Integer edo Real Real
Ln (x) x-ren logaritmo nepertarra
Integer edo Real baina > 0 Real
Oharra: ax Exp (x * Ln (a)) eta loga x
)(
)(
aLn
xLn
49
Javi Portillo & Tomi Etxeandia 2008
Adierazpen aritmetikoakFuntzio aritmetiko estandarrak
Eskatu datuak erabiltzaileari, kalkulatu eta pantailara itzazu hurrengo formulen emaitzak:
Ariketa: Idatz itzazu honako formula hauek:
v
vf
fF+
=1
'
−−=
21
11)·1(
rrny
a
acbbx
2
42 −−−= 22 Rd
MGV
+−=
GM
rT
3
2π=
−=
22
2 11
2 εmd
LE 22
5
1 ωMREc = m
Bqf
·2
·
π=
1
8 4
−= −
KT
hf
e
hfE πλ
2
2
0
1c
v
mm
−=
Oharra: ax Exp (x * Ln (a)) eta loga x )(
)(
aLn
xLn