A program valamilyen feladat, probléma megoldására készül, általános szerkezete: INPUT ALGORITMUS OTUPUT

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

Programozás alapjai (ANSI C)

A C# programozási nyelv alapjai

INFORMATIKAI ALAPISMERETEK

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

Programozás alapjai 1.Gy: Algoritmizálás P R O

INFORMATIKAI ALAPISMERETEK

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N

A C# PROGRAMOZÁSI NYELV

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK

Programzás I gyakorlat

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Felvételi tematika INFORMATIKA

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Készítette: Nagy Tibor István

Programozás I. gyakorlat

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

INFORMATIKAI ALAPISMERETEK

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

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

Bevezetés a programozásba I.

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

START. Billentyűzár ki. Üss be egy számot. Beütöttem az összes számot. Hívás. Várakozás. felveszik. Beszélek. Befejezem a beszélgetést.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Az algoritmusok alapelemei

I. Specifikáció készítés. II. Algoritmus készítés

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Szoftvertervezés és -fejlesztés I.

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

Objektumorientált Programozás I.

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Algoritmusok. Dr. Iványi Péter

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

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

AZ ALGORITMUS. az eredményt szolgáltatja

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozási tételek. Dr. Iványi Péter

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

hatására hátra lép x egységgel a toll

INFORMATIKA javítókulcs 2016

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

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

Programozási alapismeretek 3. előadás

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Java II. I A Java programozási nyelv alapelemei

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Programozási alapismeretek 1. előadás

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Webprogramozás szakkör

Egyszerű programozási tételek

1. gyakorlat

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

C programozás. 1 óra Bevezetés

INFORMATIKAI ALAPISMERETEK

Programozás alapjai 9.Gy: Struktúra 2.

Algoritmusok, adatszerkezetek, objektumok

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

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

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

Szoftvertervezés és -fejlesztés I.

3 A C programozási nyelv szintaktikai egységei

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Programozás 1. Dr. Iványi Péter

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

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

INFORMATIKAI ALAPISMERETEK

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

4. Programozási nyelvek osztályozása. Amatőr és professzionális

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

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK

Adatbázis és szoftverfejlesztés elmélet

BASH SCRIPT SHELL JEGYZETEK

Gyakorló feladatok az 1. nagy zárthelyire

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

C programozási nyelv

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

7. Strukturált típusok

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

Programozás I. gyakorlat

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

Pénzügyi algoritmusok

Objektumorientált Programozás II.

Objektumorientált Programozás III.

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Átírás:

ELMÉLET I. Algoritmizálás A program valamilyen feladat, probléma megoldására készül, általános szerkezete: Ismert adatok Ismert adatok Keresett (kezdetben ismeretlen) adatok Más szavakkal: INPUT ALGORITMUS OTUPUT adatbeolvasás feldolgozás eredmény megjelenítése Algoritmus: azon utasítások halmaza, mely egy feladat megoldására vezetnek. Az algoritmussal szemben támasztott követelmények: mindig végrehajtható lépésenként hajtható végre a lépések sorrendje meghatározott az egyes lépések elemi utasítások vagy elemi utasításokból álló eljárások véges sok lépésből áll a leírás Az algoritmus leíró eszközök: 1. mondatszerű leírás (pszeudokód) 2. ábrákkal 2.1. folyamatábra 2.2. struktogram stb. 3. programnyelven program Algoritmus vezérlő szerkezetek: 1. SZEKVENCIA (utasítások egymás utáni végrehajtása feltétel nélkül) 2. SZELEKCIÓ = ELÁGAZÁS (utasítások feltételtől függő végrehajtása) 2.1. egyágú 2.2. kétágú 2.3. többágú 3. ITERÁCIÓ=CIKLUS (utasítások ismételt végrehajtása) 3.1. számlálós 3.2. feltételes 3.2.1. elöltesztelő 3.2.2. hátultesztelő Strukturált program: olyan program, amely felépítésében csak az előbbi három vezérlőszerkezetet (szekvencia, szelekció, iteráció) használja. Programozás alaptétele: minden algoritmus megvalósítható strukturáltan. (Böhm-Jacopini - tétel)

Folyamatábra: A folyamatábra elemei: 1) A program kezdete és vége: Start Stop 2) Input, output: Ki/Be: 3) Utasítás: utasítás 4) Elágazás: i feltétel h 5) Számlálós ciklus: i=1 től n-ig

6) Feltételes ciklus elöltesztelő, bennmaradási feltétellel: feltétel h i utasítás 7) Feltételes ciklus hátultesztelő, kilépési feltétellel utasítás h feltétel i

II. Programozási nyelvek Kódolás: a feladatot megoldó algoritmus megírása valamely programozási nyelven Gépi kód (tárgykód = object code): (valamely típusú) processzor számára közvetlenül értelmezhető, bináris utasítássorozat. Assembly: a gépi kódhoz legközelebb álló programozási nyelv, amelyben minden gépi kódú utasításnak egy kis angol neve van, az ún. mnemonikon. Forráskód (source code): valamely programozási nyelven (nem gépi kódban) megírt állomány. Alacsony szintű programozási nyelv: a gépi kód és az assembly. Magas szintű programozási nyelvek: az emberi nyelvhez (általában az angol nyelvhez) közel álló, gépfüggetlen programozási nyelvek. (Első példánya a FORTRAN, melyet az IBM dolgozott ki és 1957-ben jelent meg.) Példák: BASIC, Turbo Pascal, C, Java, C# A C# nyelv: 2001-ben jelent meg, tiszta objektumorientált nyelv. A Microsoft fejlesztette a.net keretrendszer részeként, alapja a C++ és a Java nyelvek. (A nyelv fejlesztését Anders Hejlsberg vezette, aki a Turbo Pascal tervezője volt.) Fordító (compiler): olyan segédprogram, amely a program forrásszövegéből egy gépi kódú, futtatható programot (pl. EXE) állít elő, vagyis a programot lefordítja a gép nyelvére. Értelmező (interpreter): olyan segédprogram, amely a program forrásszövegét sorról sorra értelmezi, ellenőrzi, és (ha tudja) végrehajtja Szintaktikai hiba: alaki hiba, a program nem felel meg az adott nyelv szabályainak. Pl. elírás, elfelejtettünk egy zárójelet... Az ilyen hibákat viszonylag könnyű megtalálni, maga a fordító program jelzi a hibák létét, gyakran a mibenlétét is, és csak szintaktikailag hibátlan forráskódból állítja elő a gépi kódot. Szemantikai hiba: tartalmi, logikai hiba, amit leggyakrabban már az algoritmus tervezésekor vétünk el. A program lefordítható, futtatható, de nem jól működik. Az ilyen hibák bárhol megbújhatnak a programban, felderítésüket az ún. debuggolás (lépésenkénti nyomkövetés) segíti. Integrált fejlesztő eszközök: olyan programfejlesztő környezetek, amelyek megkönnyítik a programozásnál megszokott szerkesztés-fordítás-hibakeresés munkaciklust: a szövegszerkesztő (editor), fordító (compiler), és hibakereső (debugger) egy helyen találhatók és jól együttműködnek. III. Nyelvi elemek: Változó: olyan azonosító, amely az információ ideiglenes tárolására szolgál. A program végrehajtásakor az adatokat változókban tároljuk. A változókban tárolt adatok a program futása során változhatnak, módosulhatnak. Változó nevek: a változóknak egyedi névvel kell rendelkezniük az érvényességi körükön belül. C# változó nevek szabályai: max 32 karakter hosszú az 1. karakter betű vagy alulvonás a 2. karaktertől számok, betűk és alulvonás szerepelhet kis és nagybetűket megkülönbözteti Változó deklaráció: a változó használata előtt rögzíteni kell a nevét és általában a típusát is meg kell adni.

Típusok: a típus határozza meg, hogy egy változó milyen értékeket vehet fel, mekkora helyet foglalhat el a memóriában, és milyen műveletek végezhetők vele. Inicializálás: kezdeti érték hozzárendelése egy változóhoz. A változó deklarálás formája C#-ban: típus változónév; több azonos típusú változó deklarálása: típus változónév1, változónév2, ; deklarálás inicializálással: típus változónév=érték; több azonos típusú változó deklarálása inicializálással: típus változónév1=érték1, változónév2=érték2, ; Elemi típusok a C#-ban: 1. KARAKTER TÍPUSOK 1.1 char 1.2 string 2. EGÉSZ TÍPUSOK 3. LEBEGŐPONTOS TÍPUSOK 4. LOGIKAI TÍPUS bool 2.1 előjeles 2.1.1 sbyte 2.1.2 short 2.1.3 int 2.1.4 long 2.2 előjel nélküli 2.2.1 byte 2.2.2 ushort 2.2.3 uint 2.2.4 ulong 3.1 float 3.2 double 3.3 decimal

FELADATOK Algoritmuskészítés Programkészítés lépései, szekvencia, szelekció, iteráció fogalma Algoritmus leíró eszközök: folyamatábra, mondatszerű leírás, programnyelv 1. Mit csinál az algoritmus? Változók n,x,db1,db2:egész Algoritmus Beolvas(n) db1:=0 db2:=0 Ciklus i:=1-től n-ig Beolvas(x) Ha (x maradék 2)=0 akkor db1:=db1+x különben db2:=db2+x Elágazás vége Kiír(db1) Kiír(db2) Algoritmus vége 2. Készítsd el az előző algoritmus folyamatábráját! 3. Az iskolai könyvtárban két héten keresztül feljegyezték hány tanuló látogatta a könyvtárat. Írj algoritmust, amely beolvassa minden nap a látogatók számát, majd kiírja hány olyan nap volt, amikor 200-nál több látogatója volt a könyvtárnak 4. Írd le az alábbi algoritmust folyamatábrával! Be: a, b Ha a=0 vagy b=0 akkor Ki: "Rossz adatok" Különben Kerület=2*(a+b) Ki: Kerület Elágazás vége

5. Mit csinál az algoritmus? Fogalmazd meg pár mondatban és írd meg szöveges algoritmussal!

6. Mit csinál az algoritmus? Írd meg szöveges algoritmussal! Mit írna ki a következő bemenetre: Db=8 és a 8 szám: 4, 9, -3, 5, -7, -10, 11, 3

C# program felépítése, program részei, egyszerű utasítások, elágazások, ciklusok, véletlen szám generálás 7. Kódold C#-ban az alábbi algoritmust! Változók: n: egész i: egész d: egész s:egész Program eleje: Be(n) d=0 s=0 i=1 Ciklus amíg i<=n Ha n osztható i-vel akkor d=d+1 s=s+i Ki(i) Ki(szóköz) Elágazás vége i=i+1 Ki(d) Ki(új_sor) Ki(s) Program vége 8. Kódold C#-ban az alábbi algoritmust! Változók: V:logikai i:egész j:egész Program eleje V := igaz Ciklus i:=1-től 8-ig 1-esével Ha i páratlan szám akkor V:= igaz különben V:= hamis elágazás vége Ciklus j:=1-től 8 ig 1 esével Ha V akkor KI( A ) különben KI( B ) elágazás vége V := NEM(V) KI(új_sor) Program vége

9. Kódold C#-ban az alábbi algoritmust! Konstans n=10 Változók A[n] : egész elemű vektor B[n]: egész elemű vektor i,j,k: egész Program eleje: Ciklus i=0-tól n 1-ig A[i]=véletlenszám(1..100) B[i]=véletlenszám(1..100) Ki(A[i]) Ki(szóköz) Ki(B[i]) Ki(új_sor) j=0 k=0 Ciklus amíg j<n és A[j] + B[k] 100 Ciklus amíg k<n és A[j] + B[k] 100 k=k+1 Ha k=n akkor j=j+1 k=0 Elágazás vége Ha j<n akkor Ki(A[j]) Ki("+") Ki(B[k]) Ki("=") Ki(A[j]+B[k]) Különben Ki("-") Elágazás vége Program vége 10. Készíts programot, amely bekér egy számot, majd kiírja a képernyőre, hogy a szám pozitív, negatív, vagy nulla! 11. Készíts programot, amely beolvassa egy háromszög három oldalát, majd a) Kiírja a háromszög kerületét! b) Kiírja, hogy ez a három szám meghatároz-e háromszöget! (Egy háromszög bármely két oldalának összege nagyobb, mint a harmadik oldal. Pl.: a: 2, b: 3 és c: 10 nem lehet háromszög.) 12. Készítsen programot, amely billentyűzetről beolvassa az (euro) aktuális árfolyamát, vagyis hogy egy (euro) hány forintot ér, majd szintén billentyűzetről beolvassa az átváltandó (euro) összeget, és kiírja, hogy az hány forintot ér! Az adatokat billentyűzetről olvassa, és a képernyőre írja ki 13. Készíts programot, amely szemlélteti a hatos lottósorsolást. Kisorsol egymás után hat véletlen számot 1 és 45 között!

14. Készíts programot, amely bekéri, milyen hónap van, majd kiírja, hogy ez a hónap milyen évszakba tartozik! 15. Írj programot az összeadás és a kivonás gyakoroltatására. A program billentyűzetről olvassa be, hogy hány feladatot kell megoldani. Egy feladat a következőkből áll: a program generáljon két véletlen számot egy és száz között, olvassa be billentyűzetről a két szám összegét és különbségét. Ellenőrizni kell, hogy valóban ez e két szám összege és különbsége. Minden feladat végén írja ki a képernyőre, hogy jók vagy rosszak az eredmények. 16. Írj programot, ami bekéri egy gyerekcsoport életkorát, majd meghatározza, hogy a gyereknek milyen iskolába kell járni! A program billentyűzetről olvassa be, hogy hány fős a csoport, azután olvassa be a gyerekek életkorát, majd írja ki a megfelelő iskolát! Csoportok: 3 6: óvoda 7 14: általános iskola 15 18: középiskola Hány év a csoport átlaga? Szövegkezelés 17. Írj programot, ami bekéri a felhasználó vezetéknevét és keresztnevét, majd ezeket egy változóban tárolja és kiírja a képernyőre. 18. Programunk kérje be egy ember lakhelyének irányítószámát, a várost, a közterület nevét, a közterület jellegét, a házszámot és végül írja ki egy sorban a következő formátumban: Pl.: 1042 Budapest Tanoda tér 2. 19. Olvassunk be két vezeték- és két keresztnevet, és írassuk ki az ezekből képezhető neveket! 20. Írj programot, amely megszámolja, hogy egy képernyőről beolvasott szövegben hány kérdő vagy felkiáltó mondat van. 21. Írj programot, amely beolvas egy szöveget, majd a szöveg minden "a" betűjét *-ra cseréli! Tömbök, Programozási tételek Tömbök létrehozása, feltöltése, kiírása, műveletek, konstans tömbök Programozási tételek: Összegzés, Megszámlálás, Minimum kiválasztás, Maximum kiválasztás, Eldöntés tétele 22. Egy héten keresztül minden nap délben megmértük a hőmérsékletet az udvaron. Készítsen programot, amely a mért értékeket beolvassa és tárolja a hom tömbben! A hom tömbben tárolt értékek alapján határozza meg, és írassa ki a képernyőre a heti Hőingadozás mértékét! (A hőingadozás a mért legnagyobb és legkisebb érték különbsége.) 23. Egy tömbben tároljuk egy szerverre való bejelentkezéseket. Készítsen programot, amelyben beolvassuk 14 nap bejelentkezéseinek számát. Mennyi bejelentkezés volt összesen? 24. Felmérést végeznek egy könyves boltba, hogy melyik könyvek fogynak a legjobban. Vedd fel konstans tömbbe a 10 legkelendőbb könyv címét, majd egy másik tömbbe olvasd be, hogy mennyit adtak el eddig belőle. a) Negatív számot ne lehessen felvenni! b) Add meg az eladott példányszámok összegét, maximumát és minimumát! c) Írd ki a képernyőre annak a könyvnek a címét, amiből a legtöbbet adták el!

25. Egy osztályba csupa különböző nevű ember jár. Készítsen programot, amely konstans tömbben tárolja a matematika szakkörre jelentkezők nevét, egy másik tömbbe beolvassa a félévi matematika jegyeiket! Hány ötös tanuló van közöttük? 26. Egy diákcsoportot megkérdeztek, hogy eddig hány könyvet olvastak. Készíts programot, mely beolvassa hány diákot kérdeztek meg, majd diákonként a könyvek számát. Figyelj arra, hogy negatív számot ne lehessen felvenni. a) Add meg hány olyan diák volt, aki háromnál kevesebb könyvet olvasott! b) Add meg a legnagyobb könyvszámot! 27. Egy moziban minden nap eltárolják, hogy aznap mennyi jegyet adtak el. Készíts programot, mely beolvassa hány napot tárolnak, majd naponként az eladott jegyek számát. Figyelj arra, hogy negatív számot ne lehessen felvenni. a) Add meg mennyi a bevételük az adott időszakban, ha egy jegy 1500 Ft-ba kerül! b) Add meg a napi legkisebb jegyszámot! 28. Egy biztosítási ügynök mindennap feljegyzi, hogy hány biztosítást kötött. Készíts programot, mely beolvassa hány napot jegyez fel, majd naponként a megkötött biztosítások számát. Figyelj arra, hogy negatív számot ne lehessen felvenni. a) Add meg, hogy összesen és átlagosan hány biztosítást kötött! b) Add meg a napi legkevesebb és legtöbb biztosítás számot! 29. Egy madármegfigyelő állomáson a vonuló gólyákat tanulmányozzák. Tíz napon keresztül rögzítik az állomás fölött elvonuló gólyák számát. Negatív számot ne lehessen felvenni. a) Add meg összesen hány gólyát jegyeztek fel. b) Add meg átlagosan hány gólyát jegyeztek fel! c) Melyik nap vonult át a legtöbb gólya, és mennyi? d) Hány olyan nap volt, amikor egy gólyát sem láttak? e) Volt-e olyan nap, amikor száznál több gólyát láttak? 30. Egy diákcsoportot megkérdeznek, hogy átlagosan naponta hány órát interneteznek. A nev tömbben tárolják a diák nevét, az ido tömbben az óraszámot. Az ido tömbbe negatív számot ne lehessen felvenni. a) Add meg átlagosan hány órát interneteznek! b) Add meg a legmagasabb óraszámot! c) Kik azok akik a legtöbbet interneteznek? Add meg a nevüket! d) Hány diák internetezik két óránál többet? e) Van-e olyan diák, aki egy órát sem internetezik? Budapest, 2013. június 28.