Algoritmusok tervezése

Hasonló dokumentumok
Köszöntjük a Természet Világa 136. évfolyamának Kémia különszámát!

Algoritmusok tervezése

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

Java programozási nyelv

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

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

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

Programozás alapjai (ANSI C)

A C# programozási nyelv alapjai

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

Az algoritmusok alapelemei

Algoritmusok, adatszerkezetek, objektumok

AZ ALGORITMUS. az eredményt szolgáltatja

Webprogramozás szakkör

ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK

Algoritmizálás + kódolás C++ nyelven és Pascalban

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

KÖNYVTÁRRENDSZER. Igen

Bevezetés az informatikába

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

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

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

PASzSz. Dr. Kotsis Domokos

Bevezetés a programozásba I.

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

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

Szoftvertervezés és -fejlesztés I.

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

Objektumorientált Programozás III.

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

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

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Aritmetikai kifejezések lengyelformára hozása

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

6. A Pascal nyelv utasításai

Programozási alapismeretek 1. előadás

Felvételi tematika INFORMATIKA

AZ ALGORITMUSRÓL. (bevezetés a programozáshoz)

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Programozási segédlet

Java II. I A Java programozási nyelv alapelemei

1. Alapok. #!/bin/bash

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

Programozás I. gyakorlat

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

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

Internet programozása. 3. előadá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).

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

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

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

C programozás. 1 óra Bevezetés

Webprogramozás szakkör

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

INFORMATIKA javítókulcs 2016

A szerzõrõl... xi Bevezetés... xiii

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

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

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

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

Bevezetés a programozásba I.

A C# PROGRAMOZÁSI NYELV

Kezdő programozók hibái

Széchenyi István Szakképző Iskola

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

Algoritmusok. Dr. Iványi Péter

ABB Teach Pendant programozás segédlet

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

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.

Java II. I A Java programozási nyelv alapelemei

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

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

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

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

Vezérlési szerkezetek

Gyakorló feladatok 9.évf. halmaznak, írd fel az öt elemű részhalmazokat!. Add meg a következő halmazokat és ábrázold Venn-diagrammal:

Szkriptnyelvek. 1. UNIX shell

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

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

Nézzük tovább a lexikai egységeket!

MT Algoritmusok és V Algoritmusok és isual Basic programoz ás alapjai isual Basic programoz Algoritmus Muhammad Ibn Músza Al-Hvárizmi

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA. 9. Nyelvi előkészítő osztály

FELADATGYÜJTEMÉNY. 9.évfolyam...

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

Előadó: Dr. Oniga István DIGITÁLIS TECHNIKA 3

Programozható logikai vezérlő

Bevezetés a programozásba I.

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

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

6. fejezet: Ciklusok

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

INFORMATIKA tétel 2019

Témakörök. Structured Analysis (SA) Előnyök (SA) (SA/SD) Jackson Structured Programming (JSP) Szoftvertechnológia

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

5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés

Programozás I gyakorlat

Algoritmikus gondolkodás

Informatika terméktervezőknek

Átírás:

Hova fordulhatok segítségért? Az amatrcsillagászat egy szép tevékenység, de gyakran nagyon nehéz is lehet. Ilyenkor jöhet jól a többi amatrcsillagász segítsége. Az amatrök különböz egyesületeket, klubokat, szakköröket alapítanak, ahol szívesen segítenek a kezdknek. Magyarországon a Magyar Csillagászati Egyesület (MCSE) fogja össze az amatrcsillagászok nagy részét, de rajta kívül is még számos egyesület mködik szerte az országban. Az egyesületnek nagyon sok határon túli, így erdélyi, tagja is van. Az egyesületen belül a Hold-megfigyelési Szakcsoport foglalkozik a holdészlelésekkel. A http://hold.mcse.hu címen található honlapunkon számos cikk és letölthet anyag található, melyek kezdknek és haladóknak egyaránt segítséget nyújthatnak. Ezen kívül személyes segítséget lehet kérni a szakcsoportvezettl (Kocsis Antal, kocsian@vnet.hu) és a Meteor rovatvezetjétl (Jakabfi Tamás, jat@mcse.hu) is. Az egyesület rendszeresen kiadja a Meteor cím havilapját, melyben mindenki helyet kap, aki beküldi az észlelését. Jakabfi Tamás Algoritmusok tervezése I. rész Algoritmusok, programok leírására, tervezésére a következ grafikus vagy szöveges ábrázolási módokat szokás használni: folyamatábrák struktogramok (box diagram, Chapin chart, Nassi-Shneiderman chart, program struktúra diagram) pszeudokód Warnier-Orr diagram Jackson-diagram A cikk els részében az els három ábrázolási módot mutatjuk be. Folyamatábrák Az algoritmusok leírására használt folyamatábrák vagy más néven logikai sémák az algoritmusok lépéseit és ezek sorrendjét tartalmazzák, vagyis segítségükkel rálátásunk lesz a teljes folyamatra. Az egyes utasításokat, mveleteket blokkokkal szimbolizáljuk, a blokkok alakja a mvelet vagy utasítás típusára, tartalma a konkrét leírására vonatkozik. Az ellipszisbe írt START és STOP az algoritmus kezdetére és végére utal. Egy algoritmusnak (ha nem párhuzamos) csak egy START kezdete (belépési pontja) lehet, de több végpont is STOP elfogadható. 2005-2006/3 97

Az algoritmus számára szükséges bemeneti adatokat fordított trapézba, a megjelentetett eredményt pedig trapézba írjuk. Az utasításokat egyszeres, az alprogramokat (eljárások, függvények) duplázott szél téglalap jelképezi. Az elágazást rombusz szimbolizálja, melybl két úton (IGAZ vagy HAMIS ág) lehet tovább haladni. IGAZ HAMIS A navigálási irányt, a folyamat idbeli lezajlását nyilakkal jelöljük, ezek kapcsolják össze az egyes blokkokat. A folyamatábra bármely pontjához megjegyzés is fzhet. Megjegyzés A ciklusokat általában lebontjuk, és az elvégzend mveleteket külön ábrázoljuk (kezdeti értékadás, ciklusfeltétel, ciklusmag, növelés). Ha a folyamatábra nem fér ki egy lapra vagy bizonyos részeket külön ki szeretnénk emelni, megszakíthatjuk az adott szálat 1 egy körbe írt számmal, majd ugyanazzal a számmal folytathatjuk 1 egy másik lapon. Folyamatábrák segítségével könnyen át tudjuk tekinteni az algoritmust, de nagy programok esetén ezek akár több oldalasok is lehetnek, és a hibák kijavítása is nehéz vállalkozás. Az alábbi példában két természetes szám legnagyobb közös osztójának meghatározását mutatjuk be mindhárom megadási módon. A használt algoritmus egyszer: beolvasunk két természetes számot (a, b a nem lehet zéró) ameddig b > 0 (ismétlés, ciklus) kiszámoljuk a-nak a b-vel való osztási maradékát (mod) a felveszi a b értékét b felveszi a maradék értékét kiírjuk a-t, az eredményt (legnagyobb közös osztó) 98 2005-2006/3

START a, b Két természetes szám, a 0. IGEN b > 0 NEM r := a mod b a STOP A legnagyobb közös osztó: a. Struktogramok A strukturált programozás nem engedi meg a feltétel nélküli ugró utasítást (GOTO), amely a folyamatábrák segítségével egyszeren ábrázolható. A strukturált algoritmusok leírására, tervezésére a struktogramokat használjuk, amelyekben az egymásután helyezett téglalapok biztosítják, hogy csak a megengedett struktúrákat használhassuk. Az algoritmust egy téglalapba írjuk, az utasítások kisebb téglalapokba, a ciklusok egymásra helyezett téglalapokba kerülnek, míg az elágazásokat átlós és függleges felezéssel ábrázoljuk. Utasítás: Elágazás: IGEN NEM UTAS 1 UTAS 2 A többágú elágazás (case, switch): 2005-2006/3 99

El- és utótesztels ciklusok: BE: a, b b > 0 Az elbbi példa (két természetes szám legnagyobb közös osztója) struktogrammal ábrázolva így néz ki: r := a mod b KI: a Pszeudokód A pszeudokód vagy a mondatszer' leírás az elemi struktúrákat, blokkokat egyszer utasítások formájában adja meg. Nagyon hasonlít a természetes nyelvhez, de számos programozási nyelvhez is (pl. Pascal, Ada), így könnyen átírható programmá. Egyszersége miatt sokkal nagyobb programok leírására is alkalmas. A pszeudokód hátránya az, hogy nem annyira áttekinthet (olyan, mintha programot olvasnánk), valamint grafikai elemek hiányában közvetlenül nem utal az utasítások, mveletek sorrendjére. A pszeudokód elemei, utasításai: Adatok bevitele: adat Eredmény: adat Értékadás: := Elágazás: feltétel utasítás utasítás () Ciklus: ciklusváltozó := kezd,érték, végérték utasítás () Eltesztels ciklus: feltétel utasítás () Utótesztels ciklus: utasítás feltétel Eljárás: név(paraméterek) utasítás () Függvény: név(paraméterek) utasítás ( ) Más elemek: használhatók a logikai és aritmetikai mveletek, relációk stb. (pl. és, vagy, nem, +, -,*, /, mod, =, >, < stb.) A legnagyobb közös osztót így számíthatjuk ki: adott a, b amíg b > 0 végezd el 100 2005-2006/3

r := a mod b (amíg) vége eredmény a Pascal nyelvre pedig egyszeren így írható át: var a, b, r: word; begin readln(a); readln(b); while b > 0 do begin r := a mod b; ; ; end; writeln(a); end. Kovács Lehel tudod-e? Áramlások, örvények és egyéb érdekes jelenségek IX. rész Tengeráramlatok (tengeráramlások) A Föld felületének 2/3-át víz borítja, ennek nagy részét a tengerek képezik. A felületes szemlélnek úgy tnik, hogy a szelek és az árapály okozta hullámmozgáson kívül ez a hatalmas, mintegy 14.10 14 tonna tömeg vízmennyiség a felszín alatt a mélyebb rétegekben egy csendes nyugodt állóvíz. Valójában a világtenger mind függleges mind vízszintes irányban áramlásoktól tarkított állandó mozgásban lév,,él víztömeg, amely évmilliárdokkal ezeltt az élet kialakulásának volt a bölcshelye, és napjainkban is a földi élet alapvet meghatározója. A 73. ábra jól szemlélteti a világtengerek fontosabb áramlatait. Áramlásnak tekintjük a tenger vizének tartós (állandósult) egyirányú, mélységében és szélességében nagy kiterjedés, haladó mozgását. 2005-2006/3 101