Smalltalk 2. Készítette: Szabó Éva

Hasonló dokumentumok
Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Programozási Nyelvek Gyakorlati jegyzet

Apple Swift kurzus 3. gyakorlat

7. Strukturált típusok

Informatika terméktervezőknek

Python tanfolyam Python bevezető I. rész

Occam 1. Készítette: Szabó Éva

Vezérlési szerkezetek

1. Jelölje meg az összes igaz állítást a következők közül!

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Programozás alapjai. 5. előadás

.Net adatstruktúrák. Készítette: Major Péter

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

2018, Funkcionális programozás

Komputeralgebra Rendszerek

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Webprogramozás szakkör

C# gyorstalpaló. Készítette: Major Péter

Programozási nyelvek II.: JAVA, 4. gyakorlat

Kalapácsvetés 2016 szöveges

117. AA Megoldó Alfréd AA 117.

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Szkriptnyelvek. 1. UNIX shell

Operációs Rendszerek II. labor. 2. alkalom

Vezérlési szerkezetek. Szelekció Ciklusok

BASH script programozás II. Vezérlési szerkezetek

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Hálózatok építése és üzemeltetése

Programozási nyelvek Java

INFORMATIKA javítókulcs 2016

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Imperatív programozás

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

AWK programozás, minták, vezérlési szerkezetek

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Generikus Típusok, Kollekciók

Programozási segédlet

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

A C# programozási nyelv alapjai

C programozási nyelv Pointerek, tömbök, pointer aritmetika

S z á m í t ó g é p e s a l a p i s m e r e t e k

A C# PROGRAMOZÁSI NYELV

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

INFORMATIKAI ALAPISMERETEK

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Programozási nyelvek Python

Bevezetés a programozásba 2

2018, Funkcionális programozás

MAGAS SZINTŐ PROGRAMOZÁSI NYELVEK 2

Visual Basic elméleti leti alapok 2.

Python bevezető foglalkozás Python bevezető foglalkozás

Listák, szótárak, fájlok Listák, szótárak, fájlok

JAVA PROGRAMOZÁS 3.ELŐADÁS

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Programozási nyelvek II.: JAVA, 4. gyakorlat

A JavaScript főbb tulajdonságai

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

3. Osztályok II. Programozás II

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok


Dr. Schuster György február / 32

Számítógépes Hálózatok. 1. Gyakorlat

11. fejezet: Tömbök gyakorlati használata példákkal

Szövegek C++ -ban, a string osztály

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Haladó DBMS ismeretek 1

Adatbázis használata PHP-ből

AWK programozás, minták, vezérlési szerkezetek

Programozási nyelvek Java

Bevezetés a programozásba I.

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Mintavételes szabályozás mikrovezérlő segítségével

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

LEGO robotok. XII. rész

Algoritmizálás és adatmodellezés tanítása 3. előadás

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Programozási Nyelvek: C++

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Felvételi tematika INFORMATIKA

Powershell 2. gyakorlat

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Programozási nyelvek Java

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Maximum kiválasztás tömbben

Átírás:

Smalltalk 2. Készítette: Szabó Éva

Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x := [művelet.] x value. Paraméteres blokk x := [ :a :b :c (a+b+c) printnl ] Kiértékelés: x value:2 value:3 value:4 9-et fog kiírni

feltételes (if) Példák: x x := 3. x > 0 Vezérlési szerkezetek 1. iftrue: ['x pozitív' printnl] iffalse: ['x negatív' printnl]! kezdőfeltételes ismétléses (while) Példák: x x := 2. [x < 20] whiletrue: [x printnl. x := x + 2]!

Vezérlési szerkezetek 2. egyszerű számlálásos ismétléses (loop) Példák: 3 timesrepeat: ['Hello' printnl]! hagyományos számlálásos ismétléses (for) Példák: 1 to: 5 by: 3 do: [:x x printnl]! csökkenő számlálásos: 5 to: 1 by: -1 do: [:i i printnl]!

Objektumok összehasonlítása x = y "igaz, ha x és y egyenlő, tehát a tartalmuk azonos" x ~= y "igaz, ha x és y nem egyenlő, tehát a tartalmuk különbözik" x == y "igaz, ha x és y azonos, tehát ugyanaz az objektum" x ~~ y "igaz, ha x és y különböző, tehát nem ugyanaz az objektum" x isnil ugyanaz, mintha azt írnánk, hogy x == nil. x notnil x ~~ y

Példa: Smalltalk at: #x put: 'aaaa'! Smalltalk at: #y put: 'aaaa'! (x=y) printnl! true, mert az x és y változók értéke egyenlő. (x==y) printnl! "false", mert az x és y különböző objektumok.

Feladatok: 1. Írassuk ki 1-től N-ig az egész számokat! 2. Adjuk össze az első N egész számot! 3. Másoljuk át egy fájl tartalmát egy másikba úgy, hogy valamennyi karaktert nagybetűsítünk közben!

1. Írassuk ki 1-től N-ig az egész számokat! (st_1.st) n n := 10. 1 to: n do: [:i i printnl]! vagy: i:=1. [:a a timesrepeat: [i printnl. i := i+1.] ] value: 10.

2. Adjuk össze az első N egész számot! (st_2.st és st_2_alt.st) n szum n := 10. szum :=0. 1 to: n do: [:i szum := szum + i ]. szum printnl! Vagy: n szum n:= 10. szum:= (n+1)*(n/2). szum printnl!

3. Másoljuk át egy fájl tartalmát egy másikba úgy, hogy valamennyi karaktert nagybetűsítünk közben! (st_8.st) input := FileStream open: 'file.txt' mode: FileStream read. output := FileStream open: 'file2.txt' mode: FileStream write. input do: [ :char output nextput: (char asuppercase). ]. input close. output close. Ahhoz, hogy működjön, először hozzatok létre egy file.txt fájlt!

Kollekciók Tömb - Array Halmaz - Set Táska - Bag Szótár - Dictionary

Tömb (Array) 1-től indexeljük őket Tömbliterál: #(1 $B 'string') Tömbliterálnál nincs különbség print és display között. Új tömb létrehozása: tömb := Array new: 10. at: index - indexedik elem elérése at: index put: obj berakjuk obj objektumot a tömb indexedik helyére. size - a tömb méretét adja vissza

példa Smalltalk at: #x put: 0! x := Array new: 20! "20 elemu vektor" x at: 1 put: 99! "megadott helyre adat beirasa" (x at: 1) printnl! " adott elem kiiratasa" "x at: 21 hiba, a vektorunk csak 20 elemu..." ((x at: 1) + 1) printnl! x at: 2 put: 10! (x at:1) + (x at:2) printnl! x printnl! "(99 10 nil... nil)"

Halmaz (Set) Ismétlés nélküli, rendezetlen. Új halmaz: Set new. 1 elemhozzáadása: add: Egy kollekció összes elemének hozzáadása: add All: kollekció 2 halmaz uniója: halmaz1 + halmaz2 pl.: x:= Set new. 1 to: 100 do [ :i x add: i ]. x printnl.

Bag Ismétléses, rendezetlen. Bag new. add: obj withoccurrences: 3. 3-szor adja hozzá pl.: Smalltalk at: #x put: 'aaaa'. x := Bag new. x add: 'aaaa' withoccurrences: 3. x printnl!

Szótár(Dictionary) Asszociatív tömb, Java-ban: Map. Smalltalk at: #x put: 0! x := Dictionary new. x at: 'One' put: 1. x at: 'Two' put: 2. x at: 1 put: 'One'. x at: 2 put: 'Two'. x printnl. (x at: 1) printnl. (x at: 'Two') printnl.

Műveletek kollekciókkal Collect: minden elemre végrehajtja a műveletet ( #(1 3 5) collect: [:x x + 2] ) printnl! Select: válogatás, pl.: páratlan számokat (odd) ( #(1 2 3 4 5) select: [:x x odd] ) printnl! Do: okosabb for-ciklus ~C#-ban a foreach sum sum := 0. #(1 2 3) do: [:x sum := sum + x]. sum printnl.

Feladatok: 1. Határozzuk meg egy számokból álló tömb minimális elemét! 2. Írassuk ki egy számokból álló tömb páratlan értékű elemeit! 3. Fordítsuk meg egy tömb tartalmát! 4. Sorfolytonosan írassuk ki egy kétdimenziós tömb elemeit!

1. Határozzuk meg egy számokból álló tömb minimális elemét! (st_3.st és st_3_alt.st) a a := #(10 2 3 4 5 3 5 3 4). min min := 100000. 1 to: a size do: [ :m min > (a at: m) iftrue: [min := (a at: m).]]. 'MIN' print. min printnl. min min := 1000. vagy: #(10 2 3 4 5 3 5 3 4) do: [:x x < min iftrue: [min:=x]]. min printnl.

2. Írassuk ki egy számokból álló tömb páratlan értékű elemeit! (st_4.st) (#(1 2 3 4 5 6 7 8 9 10) select: [:x x odd]) printnl.

3. Fordítsuk meg egy tömb tartalmát! (st_5.st és st_5_alt.st) a:=#(1 2 3 4 5 6 7 8 9 10). a reverse printnl. a c a:=#(1 2 3 4 5 6 7 8 9 10). c:=a shallowcopy. for 1 to: (c size/2-1) do: [:i ]. b:= (c at:i). vagy: c at:i put: (c at: (c size-i+1)). c at: (c size-i+1) put:b. c printnl.

4. Sorfolytonosan írassuk ki egy kétdimenziós tömb elemeit! (st_6.st) tomb tomb:=#(#(56 6) #(4 5 5 7) #(3 5 7)). tomb do: [:x x do: [:i i print. Transcript show: ' '.]. ].