Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Hasonló dokumentumok
7. gyakorlat Sorozatok, Fájlkezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

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

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

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.

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

Bevezetés a programozásba I.

Rekurzió. Dr. Iványi Péter

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

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

A félév során előkerülő témakörök

Optimalizációs stratégiák 1.

Felvételi tematika INFORMATIKA

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

BASH SCRIPT SHELL JEGYZETEK

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

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

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

Webprogramozás szakkör

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

1. Alapok. #!/bin/bash

3. ZH-ban a minimum pontszám 15

Algoritmusok, adatszerkezetek, objektumok

Rekurzív algoritmusok

Információs Technológia

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Példatár a bevezetés a Matlab programozásába tárgyhoz

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

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

2. Elméleti összefoglaló

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

BME MOGI Gépészeti informatika 5.

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

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

Matematikai programok

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Algoritmizálás, adatmodellezés tanítása 11. előadás. (Horváth Gyula előadása alapján)

2018, Diszkrét matematika

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Bevezető feldatok. Elágazás és összegzés tétele

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

egy szisztolikus példa

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Bevezetés a programozásba I.

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

Programozott soros szinkron adatátvitel

Megoldott programozási feladatok standard C-ben

Algoritmizálási feladatok

Általános algoritmustervezési módszerek

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Bevezetés a programozásba I.

Bevezetés a programozásba I.

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

Programozási segédlet

Karakter- és sztringkezelő függvények, matematikai függvények

Programozás I gyakorlat

Programozás alapjai 8.Gy: Program struktúra

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Hatékonyság 1. előadás

Bevezetés a programozásba

Gauss elimináció, LU felbontás

Grafikus folyamatmonitorizálás

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

BME MOGI Gépészeti informatika 1.

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Lineáris algebra (10A103)

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

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A C programozási nyelv I. Bevezetés

5. Rekurzió és iteráció (Rekurzív programok átírása nemrekurzívvá)

Keresési algoritmusok, optimalizáció

A C programozási nyelv I. Bevezetés

Verem Verem mutató 01

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Tartalomjegyzék Algoritmusok - pszeudókód

A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Bevezetés a programozásba I.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

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

Algoritmusok pszeudókód... 1

SCILAB programcsomag segítségével

Programozás I. 5. Előadás: Függvények

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

BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli

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

2015, Diszkrét matematika

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

LibreOffice Makró Basic

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Tartalomjegyzék Algoritmusok - pszeudókód

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Átírás:

Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott egyszerű matematikai műveletek elvégzése lenne. A függvények megvalósítása a main() függvény után következzen. A program az alábbi műveleteket ismerné (ahol E nemnegatív decimális egész, V pedig valós számokat jelöl: fact E : kiszámolja E faktoriálisát sqr V : kiszámolja V négyzetét cube V : kiszámolja V köbét add V1, V2 : kiszámolja a V1 + V2 összeget sub V1, V2 : kiszámolja a V1 - V2 különbséget mul V1, V2 : kiszámolja a V1 * V2 szorzatot per V1, V2 : kiszámolja a V1 / V2 hányadost div E1, E2 : kiszámolja az E1 / E2 egészosztás hányadosát mod E1, E2 : kiszámolja az E1 / E2 egészosztás maradékát exit : kilép a programból

Futásidő mérése Linux alatt A time parancs segítségével mérhető egy program futásideje /usr/bin/time program A -f %U kapcsolóval csak a felhasználó által ténylegesen felhasznált időt fogja kijelezni (ez kell nekünk) /usr/bin/time -f %U program A minél pontosabb mérés érdekében érdemes parancssorról adni neki az inputot echo 1000000000 /usr/bin/time -f %U program

Feladat - f0115 Írj programot, mely bekér egy n pozitív egész számot, és megadja az első n természetes szám összegét! Készíts kétféle algoritmust két külön függvényben, és mindkettővel számoltasd ki az eredményt: Az első egy mechanikus, ciklust használó algoritmus legyen. A másik matematikailag átgondolt, minél egyszerűbb algoritmus legyen. Hasonlítsd össze a két megoldás futásidejét! Ehhez használj long long int típusú értékeket (különben int használatával túlcsordulás nélkül még a hosszabb futásidejű algoritmus is túl gyorsan lefutna), és milliárdos (a mai processzorok GHz-es órajelével összevethető) nagyságrendű inputot.

Rekurzió Vannak olyan feladatok, melyek önmagukban elég bonyolultak, de ha jobban megvizsgáljuk, akkor a megoldásuk lebontható hasonló részfeladatokra Pl? Ezt C-ben a rekurzív függvényhívással valósíthatjuk meg Rekurzió: mikor a függvény önmagát hívja meg, csak más paraméterrel FONTOS! Legyen olyan esete a hívásnak, ami nem eredményez újabb hívást (tehát amikor elértünk a legegyszerűbb alakhoz)

Feladat - f0126 Számítsd ki n! értékét a 0! = 1, n! = n * (n-1)! képlet segítségével, nem rekurzív módon ciklussal és rekurzív módon is! Hasonlítsd össze a futási idejüket!

Véletlen szám generálás C-ben (pszeudo)véletlen számokat a rand() függvénnyel lehet Generál egy egész számot 0 és RAND_MAX között Az srand() függvénnyel be lehet állítani a seedet Pszeudorandom szám: azonos seed esetén ugyan azokat a számokat generálja Ha az időt adjuk meg seednek, akkor mindig új sorozatot kapunk srand(time(null)); A time() függvény a time.h headerben van

Feladat - f0165 Határozd meg egy NxM-es véletlen értékű elemekkel feltöltött egész mátrix transzponáltját. N és M bemenetként jönnek, mindkettő max. 128 lehet A kimenet csv formátumú, eredeti és a transzponált mátrix között egy üres sor van egy ; jellel

Önálló feladat - f0167 Határozd meg egy NxM-es véletlen értékű elemekkel feltöltött egész mátrix minden egyes sorának és oszlopának minimumát és maximumát is. N és M bemenetként jönnek, mindkettő max. 128 lehet A kimenet csv formátumú, táblázatos alakban kb. Így nézzen ki ;;"Min.";1;2;3 ;;"Max.";7;8;9 "Min.";"Max." 1;3;;1;2;3 4;6;;6;5;4 7;9;;7;8;9

Feladat - f0189 Írj egy programot, ami a bemeneti szöveget kiírja a kimenetre, de közben törli belőle a számjegy karaktereket, és a végén kiírja, hogy mennyi számjegyet törölt.

Feladat - f0200 Írj egy programot, ami kiszámolja, majd irányszöggel és nagysággal megadja a hasonlóképpen megadott fizikai erők sorozatának eredőjét a kétdimenziós térben. Az erők sorozatának végét egy 0 nagyságú erő jelzi.

Tennivalók Házik a pubban Két hét múlva a mai anyagból lesz a (nagyobb) mini ZH Ciklusokkal, tömbökkel kapcsolatos algoritmikus feladatok Kb. mint amiket most vettünk