online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

Értékadas, kifejezések, standard input/output

számítógépes



felso sarok

egyéb tételek

jobb felso sarok
 
A programozasi technikak és jellemzőik
Szamítógép halózatok
Egy operaciós rendszer bemutatasa
A szamítastechnika ipari alkalmazasai
A Word eszközei I
Szelekciós utasítasok
Irodalom
Az ORACLE adatbaziskezelő eszköztara
Interaktív adatbaziskezelő rendszerek
Az adatbazisok kialakulasa
 
bal also sarok   jobb also sarok

Értékadás, kifejezések, standard input/output


Értékadás

Egy változónak értékadással adhatunk értéket. Az értékadásban szereplő kifejezés lehet érték, azonosító vagy függvényhívás. Az értékadás operátora a := jel, aminek a jelentése: legyen egyenlő. Az értékadó operátor bal oldalán egy változó áll, jobb oldalán pedig egy kifejezés. Nézzünk néhány példát:

x:=50;
Hki:=H0-dh;
b5:=Sqr(B[i])+x1;
DarabSuly:=mdb;
y:=Hatvany(a5,3);

Kifejezések

Az egyes adattípusokkal - azon kívül, hogy változókat deklarálunk és azoknak értéket adunk - aritmetikai, relációs és logikai mûveleteket is végezhetünk. Az ilyen mûveletek végrehajtására a Pascal nyelv különbözõ kifejezéseket használ, melyek operandusok és operátorok sorozatából állnak. Operátornak azt a mûveleti jelet nevezzük, mely össze-kapcsolja a kifejezésben szereplõ változókat, konstansokat és függvényhívásokat, tehát az operandusokat:

operandus1 operátor operandus2


Numerikus operátorok
A numerikus adattípusokon aritmetikai és relációs mûveleteket végezhetünk.
 


Aritmetikai mûveletek

Relációs mûveletek

Egész számok 
Valós számok

+, -, *, /, div, mod 
 +, -, *, /

<, <=, =, >=, >, <>

 
A kivonás jel (-) nem csak a kivonás mûveletét jelöli, hanem a negációt is (pl. -12). Az egész számokkal történõ osztás
eredménye természetesen valós típusú lesz.

Az egész számokkal végzett mûveletek sorában két speciális operátort is találunk. Ezek a div (egészosztás) és mod (maradékképzés) operátorok. Az egészosztás mûveletének elvégzése után az eredmény csak a törtszám egész részét
fogja tartalmazni. A maradékképzés során az eredmény az osztás maradéka lesz. Nézzünk erre is példát:

    10/3          
    10 div 3      
     0 mod 3      

Az egészosztás és maradékképzés mûveletére igaz a következõ azonosság:

a = b*(a div b)+(a mod b)

Láthatjuk, hogy nincs minden matematikai mûveletre megfelelõ operátor a Pascal nyelvben. Természetesen egy négyzetre emelést elvégezhetünk többszöri szorzással is, de ez a megoldás nem igazán elegáns. És akkor még nem szóltunk a gyök- vonás, az abszolút érték képzés vagy a szögfüggvények alkalmazásáról. A Pascal ezeknek a megoldására egy sor függvényt kínál:

Abs(x)      Az x abszolút értékét adja vissza.

Sqr(x)      Az x négyzetét adja vissza.
Sqrt(x)           Az x négyzetgyökét adja vissza.

Sin(x)     Az x szinuszát adja vissza.
Cos(x)     Az x koszinuszát adja vissza.

A numerikus adattípusokkal végzett relációs mûveletek eredménye egy logikai érték lesz.

        not k          A k szám ábrázolásában minden bit az ellenkezõjére változik.
          Pl. ha k=00000001, akkor not k=11111110.

        k and j      A mûvelet eredményében csak azok a bitek lesznek 1-es értékûek, amelyek mindkét számban 1-esek voltak.
         Pl. ha k=01001110 és j=11100111, akkor k and j =01000110.
 
        k or j         A mûvelet eredményében ott lesznek 1-es bitek, ahol legalább az egyik számban 1-es bit volt.
         Az elõzõ értékekkel: k or j =11101111.

        k xor j       A mûvelet eredményében ott lesznek 1-es bitek, ahol k-ban és j-ben különbözõ bitek voltak.
         Az elõzõ értékekkel: k xor j =10101001.
 
        k shl n        A k szám bitjeit n értékkel balra toljuk.
          Pl. Ha k=00011001, akkor k shl 2 =01100100.

        k shr n       A k szám bitjeit n értékkel jobbra toljuk.
          Pl. Ha k=00011001, akkor k shr 2 =00000110.

A sorszámozott típusokra, így az egész számokra is értelmezettek az alábbi függvények:

        Succ(i)         A függvény eredménye az i egész számot követõ egész szám.
                   Pl. Ha i=3, akkor Succ(i)=4.

        Pred(i)         A függvény eredménye az i egész számot megelõzõ egész szám.
                  Pl. Ha i=3, akkor Pred(i)=2.

        Odd(i)           A függvény eredménye egy logikai érték.
                  Ha i egész szám páratlan, akkor igaz, különben hamis.

        Ord(i)           A függvény eredménye az i egész számhoz tartozó sorszám.
                  Pl. Ha i=1999, akkor Ord(i)=1999.

       Chr(i)            A függvény eredménye az i egész számhoz tartozó karakter.
                  Pl. Ha i=97, akkor Chr(i)='a'.
 
Szöveges operátorok
A szöveges adattípusokon végezhetõ mûveletek nagy részét függvények írják le. Mindössze a string típuson értelmezett
összekapcsolás (+) operátor létezik önállóan. Az + operátorral kettõ vagy több szöveges változót kapcsolhatunk össze.
Például:

program osszekot;

var s1,s2,szoveg: string;

begin
    s1:='Repül';
    s2:=' a nehéz kõ.';
    szoveg:=s1+s2+' (Arany János)';
end.

A szoveg változó tartalma a következõ lesz:

'Repül a nehéz kõ. (Arany János)'

Az összekapcsolt stringek együttes hossza nem lehet több 255 karakternél. A szöveges változókat érintõ függvények
használatával ennél többet is elérhetünk.
 
    Concat(s1,s2.)          Összekapcsolja s1,s2. stb. szöveges változókat.

    Copy(s,i,n)         Az s karakterlánc i-edik karakterétõl számítva n darab karaktert ad vissza.

    Delete(s,i,n)            Az s karakterlánc i-edik karakterétõl számítva n darab karaktert töröl.

    Insert(s1,s2,i)       Az s1 karakterláncot beszúrja s2-be, az s2 i-edik karakterétõl kezdve.

    Length(s)              Az s karakterlánc hosszát adja meg.

    Pos(s1,s2)           Az s1 karakterláncot keresi s2-ben, és annak kezdõ pozíciójával tér vissza.

    Str(x,s)                Az x egész típusú kifejezés értékét konvertálja az s stringbe.

    Val(s,x,i)           Az s karakterláncot konvertálja az x numerikus típusba. Ha s-ben nem konvertálható
                      karakter van, akkor az i értéke annak pozíciója lesz, különben i értéke nulla.

    UpCase(ch)           A ch kisbetû karaktert nagybetûvé alakítja.
 
A sorszámozott típusokra, így a karakter típusra is értelmezettek az alábbi függvények:

    Succ(ch)                A függvény eredménye az ch karaktert követõ karakter.
                      Pl. Ha ch='b', akkor Succ(ch)='c'.

    Pred(ch)                A függvény eredménye az ch karaktert megelõzõ karakter.
                      Pl. Ha ch='b', akkor Pred(ch)='a'.

    Ord(ch)           A függvény eredménye a ch karakterhez tartozó sorszám.
                      Pl. Ha ch='a', akkor Ord(ch)=97.

    Chr(i)             A függvény eredménye az i egész számhoz tartozó karakter.
                      Pl. Ha i=97, akkor Chr(i)='a'.
Logikai operátorok
A logikai operátorok (not, and, or, xor) logikai adattípusok (boolean) közötti mûveletek elvégzésére alkalmasak, a
mûvelet eredménye is logikai érték lesz.

        not A     Logikai negálás: az A változó tartalma, ha igaz volt hamisra változik, ha hamis, akkor igazra.

        A and B         Logikai szorzás (ÉS mûvelet): az eredmény akkor lesz igaz, ha mindkét változó tartalma igaz.
              Hamis az eredmény, ha bármelyik változó tartalma hamis.

        A or B           Logikai összeadás (VAGY mûvelet): az eredmény akkor lesz igaz, ha bármelyik változó tartalma igaz.
              Hamis az eredmény, ha mindkét változó tartalma hamis.

        A xor B         Logikai kizáró vagy: az eredmény akkor lesz igaz, ha a két változó tartalma különbözõ.
              Hamis az eredmény, ha a két változó tartalma megegyezik.

A sorszámozott típusokra, így a logikai adattípusra is értelmezettek az alábbi függvények:

    Succ(false)     A függvény eredménye true logikai érték..

    Pred(true)       A függvény eredménye false logikai érték.

    Ord(b)         A függvény eredménye a b logikai értékhez tartozó egész szám.
               Ord(false)=0 és Ord(true)=1.
 

Alapvető I/O műveletek
A Pascal programozásban meghatározott a szabványos input és output periféria. A szabványos kimeneti egység a képernyõ, míg a bemeneti egység a billentyûzet.
Írás a képernyõre:
Write(paraméterek);
Writeln(paraméterek);

Mindkét eljárás a kurzor aktuális pozíciójától kezdve ír a képernyõre. A két eljárás között annyi különbség van, hogy amíg a Write eljárás után a kurzor a kiírt paraméterek mögött marad, addig a Writeln eljárás után a következõ sor elsõ elejére ugrik. Az üres Writeln; eljárás minden kiírás nélkül a következõ sor elsõ elejére ugrik. A két eljárás végrehajtásának paraméterei lehetnek:

szöveg '' aposztrófok között,

változónevek,

konstansok,

aritmetikai kifejezések,

logikai kifejezések,

függvényhívások.

Writeln(34.75:8:3);          

A tizedesjegyek számát (3) a teljes mezõszélességbõl (8) vonja le a Pascal, így a tizedespont elõtt maximum négyjegyû szám szerepelhet. Ha a szükségesnél kisebb mezõszélességet adunk meg, akkor hibajelzés nélkül egy tizedessel írja ki az értéket.

 
Olvasás a billentyűzetről

A billentyûzetrõl két eljárással olvashatunk be adatokat egy változóba:

Read(paraméterek);
Readln(paraméterek);

Mindkét eljárás a kurzor aktuális pozíciójától kezdve olvas a billentyûzetrõl. A Read és Readln eljárások felfüggesztik a program futását és az ENTER billentyû leütéséig olvassák az adatokat. A paraméterek csak változók lehetnek, kivéve a logikai változókat. A két eljárás közti különbség ugyanaz, mint a képernyõre író eljárásoknál. A numerikus adatokat egy szóköz vagy az ENTER választja el egymástól.

Amíg nem ütünk ENTER-t az értékek megadásánál, addig nem hajtódik végre a program következõ parancssora. Persze
nem csak numerikus értékeket, hanem string vagy char típusú adatokat is beolvashatunk mindkét eljárással. Azonban egyetlen karakter beolvasására létezik egy külön függvény, mellyel egy char típusú változónak adhatunk értéket úgy, hogy a beolvasás során nem jelenik meg a képernyõn a leütött billentyûhöz tartozó karakter. A Readkey függvény a Crt unitban található.

Pozícionálás a képernyõn
A Pascal alapértelmezés szerint szöveges üzemmódban használja a képernyõt. A kiíratás és beolvasás során az eljárások az aktuális kurzorpozíciótól kezdve hajtódnak végre. Ha a kurzor nem a megfelelõ pozícióban áll a képernyõn, akkor nekünk kell a kívánt helyre irányítanunk a Crt unit következõ parancsával:

GotoXY(x,y);

A GotoXY parancs kiadása után a kurzor aktuális helyzete a képernyõ x-edik oszlopa és y-adik sora lesz. Tudni kell, hogy a képernyõ 80 oszlopból és 25 sorból áll:

A képernyõ bal felsõ sarkának koordinátái (1,1), a jobb alsó sarok koordinátái pedig (80,25). Ha a képernyõre írtak a
80. oszlop után folytatódnának, akkor a további karakterek a következõ sorba kerülnek. Ha a képernyõ utolsó sorából is ki- lépünk, akkor a képernyõ tartalma felfelé gördül és megjelenik egy üres sor a kép alján. A képernyõre ablakot definiálhatunk a Crt unit egy utasításával:

Window(x1,y1,x2,y2);

Az elsõ két paraméter (x1,y1) az ablak bal felsõ sarkának abszolút koordinátái, a hátsó két paraméter (x2,y2) az ablak jobb alsó sarkának abszolút koordinátái. Innentõl az ablak területét használhatjuk csak mindaddig, amíg a maximális képméretet vissza nem állítjuk. Az ablak bal felsõ sarkának koordinátája (1,1) lesz.

TextColor(szín);     
TextBackground(szín);        

A Pascal a színek megadására konstansokat használ. A paraméter megadásánál a meg-nevezést, vagy a kódszámot is használhatjuk. A színekbõl a szöveg kiírására 0-15-ig, a háttér festésére viszont csak 0-7-ig használhatjuk a konstansokat.


Találat: 1576


Felhasználási feltételek