Megszámlálás, kiválasztás alapalgoritmusok

Slides:



Advertisements
Hasonló előadás
83. (1 pont) A felsorolt végeredmények, hatások közül karikázza be a mondatszerű leírással (szöveggel) megadott algoritmus eredményét jelölő betűt, ha.
Advertisements

Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Megszámlálás Elemi algoritmusok.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Ismétlés: Döntések a feltétel egy logikai kifejezés if feltétel then
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
Típusok, változók, konstansok
Kifejezések, operandusok, operátorok
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
LRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat.
Cells(sor száma, oszlop száma)
Programozási alapismeretek
Programozási alapismeretek 10. előadás
Turbo Pascal Változók.
Sztringek.
Egydimenziós tömbök. Deklarálás: var valtozónév:array[kezdőérték..végsőérték]of típus; type típusnév = array [kezdőérték..végsőérték] of típus; var valtozónév:
Gombkötő Attila Lineáris egyenlet.
Készítette: Pető László
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
Leszámoló rendezés Készítette: Várkonyi Tibor Zoltán VATNABI.ELTE
Utórendezéses edényrendezés RADIX „előre”. Definíció  Az általános utórendezéses edényrendezés speciálisan r alapú d jegyű számokra felírt változata.
Készítette: Szitár Anikó
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
További vektor, mátrix algoritmusok
Microsoft Excel Függvények VIII.
Logikai szita Pomothy Judit 9. B.
Logikai szita Baráth Kornél.
Alprogramok a Pascal nyelvben
Ciklusok: 3. Hátultesztelő ciklus
Félévi típus feladatok
Feladatok: Algoritmusok Pszeudokódban
TÖMBÖK Asszociatív adatszerkezetek Tömbök
Tömbök és programozási tételek
Programozási nyelvek, Pascal
Összetett adattípusok
Algoritmus gyakorlati feladatok
Algoritmus szerkezetek
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Csempe Programozás érettségi mintafeladat
A lineáris függvény NULLAHELYE GYAKORLÁS
Programozás I. Típus algoritmusok
és a Venn-Euler diagrammok
Táblázatkezelés KÉPLETEK.
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Algoritmusok. Az algoritmus meghatározott sorrendben elvégzendő műveletek előírása, mint azonos típusú (matematikai, logikai) feladatok megoldására alkalmas.
Operációs rendszerek gyakorlat 7. Gyakorlat Vakulya Gergely.
Összeállította: Sashalmi Tibor
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok: 1.Labor: Word alapok: dokumentum tagolása, tartalomjegyzék, ábrák számozása, hivatkozások 2.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
„RADIX előre „ Készítette : Giligor Dávid Neptun: HSYGGS.
Programtervezés, programozás I. 2.5 tömbök,stringek
Számítógépek felépítése 2. előadás egyszerű gépek, adatábrázolás
Számok világa.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Táblázatkezelés Képletek és függvények. Képletek A képletek olyan egyenletek, amelyek a munkalapon szereplő értékekkel számításokat hajtanak végre. A.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Programozási nyelvek Programozási alapismeretek
Nevezetes algoritmusok
Tömbök és programozási tételek
Eljaras linearis_kereses(adatok[],n)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
A struct, az union és az enum típus
Könyvtári függvények I. Input / output kezelés függvényei
43. Gombaszedés Kováts László.
Algoritmus készítés.
Előadás másolata:

Megszámlálás, kiválasztás alapalgoritmusok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./0. Megszámlálás, kiválasztás alapalgoritmusok Vektoron értelmezett 2. alapalgoritmus:        a megszámlálás algoritmusa Vektoron értelmezett 3. alapalgoritmus:         a kiválasztás algoritmusa Példa egyszerű logikai feltételnek eleget tevő elem kiválasztására Elemkiválasztás összetett logikai feltétel alapján

Vektoron értelmezett 2. alapalgoritmus: a megszámlálás algoritmusa Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./1. Vektoron értelmezett 2. alapalgoritmus:        a megszámlálás algoritmusa Megszámlálás Képernyőtörlés Kiíratás: ”Megszámlálás” ”A számok összes darabszáma=” n értékének bekérése *Beolvasás i=0,1,...,n-1 Kiíratás: ”Az ”,i+1, ”. szám=” vektor[ i ] értékének beolvasása 1 Feladat: meg kell számlálni, hogy egy sorozatban hány, megadott feltételnek eleget tevő elem van. Példa: Olvassunk be n darab pozitív egész számot egy vektorba, majd számláljuk meg, hogy hány kétjegyű és hány háromjegyű van közöttük ! Chapin diagram == struktogram

(10<=vektor[ i ] && vektor[ i ]<=99) Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./2. A megszámlálás algoritmusa . . *Megszámlálás: ketjegyu= 0; haromjegyu= 0; i=0,1,...,n-1 (10<=vektor[ i ] && vektor[ i ]<=99) 1 (100<=vektor[ i ] && vektor[ i ]<=999)      ketjegyu++; haromjegyu++; ; igen nem 2

A megszámlálás algoritmusa . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./3. A megszámlálás algoritmusa . . 2 *Eredmény kiíratása: Kiíratás: ketjegyu,” darab kétjegyü és”, haromjegyu, ” darab háromjegyü szám van” Várakozás Enter lenyomására A feladat struktogramja után lássuk a programját!

A megszámlálás algoritmusa . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./4. A megszámlálás algoritmusa . . #include <conio.h> #include <stdio.h> unsigned int vektor [100]; void main(void) { unsigned int i, n, ketjegyu, haromjegyu ; clrscr(); puts(" Megszámlálás\n"); printf("A számok összes darabszáma= "); scanf("%u", &n); /* Beolvasás: */ for (i = 0; i < n ; i ++) printf("A %u. szám = ", i +1); scanf("%u", &vektor [ i ]); /* vagy scanf("%u",vektor+i); */ }

A megszámlálás algoritmusa . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./5. A megszámlálás algoritmusa . . /* Megszámlálás: */ for (ketjegyu = 0, haromjegyu = 0, i = 0; i < n; i ++) if (10<=vektor [ i ] && vektor [ i ]<=99) ketjegyu++; else if (100<=vektor [ i ] && vektor [ i ]<=999) haromjegyu++; /* Eredmény kiíratása: */ printf("\n%u darab kétjegyű és %u darab háromjegyű \ szám van.\n", ketjegyu, haromjegyu); getch(); } 5, 7, 11 , 23 , 30 , 5 , 9 , 133 , 22 , 13 , 21 , 127 , 4 , 2 , 0 , 91 , 1 , 11 , 7 , 168 ketjegyu == 8; haromjegyu == 3

Vektoron értelmezett 3. alapalgoritmus: a kiválasztás algoritmusa Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./6. Vektoron értelmezett 3. alapalgoritmus:         a kiválasztás algoritmusa Kiválasztás n értékének bekérése i= 0,1,...,n-1 minertek= vektor[ 0 ]; index= 0; i= 1,2,...,n-1 vektor[ i ]<minertek igen nem minertek= vektor[ i ]; index= i; index és minertek kiíratása vektor[ i ] értékének bekérése ; Feladat: egy n elemű sorozatban megadott tulajdonsággal bíró elem sorszámának (indexének) meghatá- rozása. Példa egyszerű logikai feltételnek eleget tevő elem kiválasztására: a minimális elem kiválasztása.

A minimális elem kiválasztás programja Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./7. A minimális elem kiválasztás programja #include <conio.h> #include <stdio.h> float vektor [100]; void main(void) { unsigned int n, i, index ; float minertek ; clrscr(); puts(" Kiválasztás\n"); printf("Elemek száma= "); scanf("%u", &n); /* Beolvasás a vektorba: */ for (i = 0; i < n; i++) printf("Vektor[%u]= ", i +1); scanf("%f", &vektor [ i ]); /* vagy scanf(%f",vektor+ i ); */ }

A minimális elem kiválasztás programja . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./8. A minimális elem kiválasztás programja . . /* A minimális elem meghatározása: */ for (minertek = vektor [0], index =0, i =1; i < n; i++) if (vektor[ i ]<minertek) { minertek = vektor [ i ]; index= i ; } /* Az eredmény kiíratása: */ printf("\nIndex= %u, minimális érték =%10.3f", index, minertek); getch(); }

Elemkiválasztás összetett logikai feltétel alapján Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./9. Elemkiválasztás összetett logikai feltétel alapján Kezdoszam és darab bekérése Primtényezők_száma i = 0,1,...,darab-1 szamsorozat[ i ]= kezdoszam + i ; legtobb = 0; osztok_szama= 0; oszto=2; hanyados =szamsorozat[ i ]; hanyados % oszto == 0 hanyados = hanyados / oszto; osztok_szama++; oszto++; hanyados != 1 osztok_szama > legtobb igen legtobb = osztok_szama; index = i; index, szamsorozat[ index ], és legtobb kiíratása nem ; Példa: Adott egy egyesé- vel növekvő számsorozat a kezdőszámmal és az elemek számával. Meghatározandó annak a számnak a sorszáma, amely a legtöbb prímtényezőre bontható fel.

Elemkiválasztás összetett logikai feltétel alapján . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./10. Elemkiválasztás összetett logikai feltétel alapján . . A primtényezők számát megadó program: #include <conio.h> #include <stdio.h> unsigned int szamsorozat [100]; void main(void) { unsigned int kezdoszam, darab, oszto, i, index, osztok_szama, legtobb, hanyados; clrscr(); puts("Legtöbb prímtényező \n"); printf("Kezdő szám="); scanf("%u",&kezdoszam); printf("\nSzámok darabszáma="); scanf("%u", &darab); for (i = 0; i < darab; i++) szamsorozat [ i ]= kezdoszam+i ; legtobb= 0;  kezdoszam= 11; darab= 2; szamsorozat { 11, 12 }

Elemkiválasztás összetett logikai feltétel alapján . . Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 18./11. Elemkiválasztás összetett logikai feltétel alapján . . for (i = 0; i < darab; i++) { osztok_szama = 0; oszto = 2; hanyados = szamsorozat [ i ]; do { while (hanyados % oszto == 0) { hanyados /= oszto; /* egészosztás! */ osztok_szama++; } oszto++; } while (hanyados != 1); if (osztok_szama>legtobb) {legtobb= osztok_szama; index= i ; printf("\nIndex= %u, a szám= %u, tényezők száma= %u\n", index, szamsorozat[index], legtobb); getch();