1 lengoaiaren elementuak

49
Javi Portillo & Tomi Etxeandia 2008 Lengoaiaren elementuak Informatikaren Oinarriak 2007/2008 ikasturtea

Upload: jportillo

Post on 12-Nov-2014

59 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 1  Lengoaiaren elementuak

Javi Portillo & Tomi Etxeandia 2008

Lengoaiaren elementuak

Informatikaren Oinarriak 2007/2008 ikasturtea

Page 2: 1  Lengoaiaren elementuak

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

Page 3: 1  Lengoaiaren elementuak

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...

Page 4: 1  Lengoaiaren elementuak

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.

Page 5: 1  Lengoaiaren elementuak

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

Page 6: 1  Lengoaiaren elementuak

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

+ - * / := = < > <> <= >= ( ) [ ] (. .) { } (* *) ; , . ‘ .. # $ ^ @

Page 7: 1  Lengoaiaren elementuak

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.

Page 8: 1  Lengoaiaren elementuak

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)

Page 9: 1  Lengoaiaren elementuak

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*)

Page 10: 1  Lengoaiaren elementuak

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

Page 11: 1  Lengoaiaren elementuak

11

Javi Portillo & Tomi Etxeandia 2008

Programaren egitura

Programa batek 3 atal izan behar ditu:

Goiburukoa

Deklarazioak edo erazagupenak

Programa nagusia edo bloke exekutagarria

Page 12: 1  Lengoaiaren elementuak

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

Page 13: 1  Lengoaiaren elementuak

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;

Page 14: 1  Lengoaiaren elementuak

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)

Page 15: 1  Lengoaiaren elementuak

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:

Page 16: 1  Lengoaiaren elementuak

16

Javi Portillo & Tomi Etxeandia 2008

Programaren egitura:Adibideak

Page 17: 1  Lengoaiaren elementuak

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

Page 18: 1  Lengoaiaren elementuak

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?

Page 19: 1  Lengoaiaren elementuak

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

Page 20: 1  Lengoaiaren elementuak

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:

Page 21: 1  Lengoaiaren elementuak

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

Page 22: 1  Lengoaiaren elementuak

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!!

Page 23: 1  Lengoaiaren elementuak

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

Page 24: 1  Lengoaiaren elementuak

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)

Page 25: 1  Lengoaiaren elementuak

25

Javi Portillo & Tomi Etxeandia 2008

DatuakKonstanteak

Page 26: 1  Lengoaiaren elementuak

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

Å

Page 27: 1  Lengoaiaren elementuak

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.

Page 28: 1  Lengoaiaren elementuak

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 :

Page 29: 1  Lengoaiaren elementuak

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

Page 30: 1  Lengoaiaren elementuak

30

Javi Portillo & Tomi Etxeandia 2008

REAL DATU-MOTA (erralak) Datu-mota hau aurredefinitua

dago, ez da aipatu behar datu-moten deklarazioan

Page 31: 1  Lengoaiaren elementuak

31

Javi Portillo & Tomi Etxeandia 2008

BOOLEAN DATU-MOTA (boolearrak) Datu-mota hau aurredefinitua dago, ez

da aipatu behar datu-moten deklarazioan

Page 32: 1  Lengoaiaren elementuak

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

Page 33: 1  Lengoaiaren elementuak

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

Page 34: 1  Lengoaiaren elementuak

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.

Page 35: 1  Lengoaiaren elementuak

35

Javi Portillo & Tomi Etxeandia 2008

Datuen irteera eta sarreraTeklatutik irakurtzeko

Page 36: 1  Lengoaiaren elementuak

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

Page 37: 1  Lengoaiaren elementuak

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

Page 38: 1  Lengoaiaren elementuak

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

Page 39: 1  Lengoaiaren elementuak

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

Page 40: 1  Lengoaiaren elementuak

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

Page 41: 1  Lengoaiaren elementuak

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

Page 42: 1  Lengoaiaren elementuak

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)

Page 43: 1  Lengoaiaren elementuak

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?

Page 44: 1  Lengoaiaren elementuak

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

Page 45: 1  Lengoaiaren elementuak

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

Page 46: 1  Lengoaiaren elementuak

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’

Page 47: 1  Lengoaiaren elementuak

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))

Page 48: 1  Lengoaiaren elementuak

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

Page 49: 1  Lengoaiaren elementuak

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