Sejtautomaták. Szőke Kálmán Benjamin - SZKRADT.ELTE május 17.
|
|
- Vince Tóth
- 8 évvel ezelőtt
- Látták:
Átírás
1 Sejtautomaták Szőke Kálmán Benjamin - SZKRADT.ELTE május Bevezetés A legismertebb sejtautomaták egyike a John Conway által kifejlesztett életjáték. Ennek a sejtmozaik háttere olyan, mint a négyzetrácsos füzetlap: ebben a szerkezetben minden sejtnek nyolc sejtszomszédja van. Az egyes sejtek kétféle állapotban lehetnek: élő vagy halott állapotban. Az idő, ahogy minden egyszerűbb sejtautomatában, diszkrét időegységekben telik, és a sejtek működése a következő: Egy olyan sejt helyére, amely halott, de három élő sejtszomszédja van, élő sejt születik. Egy olyan sejt, amely élő volt, és két vagy három szomszédja is élő volt, életben marad. Az összes többi, másmilyen környezetű sejt halott lesz a következő lépésben. Az Életjáték sok érdekes szerkezet mozgását, gyarapodását, vagy elmúlását és sajátos alakzatok tartós fönnmaradását tudja szimulálni. A szimulációs képességének erőssége abban rejlik, hogy maga a játék Turing-teljes, vagyis bármit, amit ki lehet algoritmikusan számolni, az kiszámolható vele. Gardner írta róla, hogy:,,a játék, amit Conway alkotott azonnal híres lett, de közben egy teljesen új matematikai kutatási terület felé is megnyitotta az utat, a sejtautomaták felé. Conway egyik sejtése az volt, hogy a növekedésnek van egy felső korlátja, és 50 dolláros jutalmat ajánlott annak aki igazolni, vagy cáfolni tudja az állítását 1970 előtt. A sejtés megcáfolására az egyik út az, ha az ember felfedez egy mintát, egy úgynevezetett pisztolyt, amely tőle elfelé mozgó alakzatokat lő ki, úgynevezett siklókat. A másik módszerhez egy puffer vonatot kell megalkotni, amely, ahogy halad előre, hátrahagyja a füstjét. A díjat Bill Gosper által vezetett csapat nyerte el a massachusetts-i 1
2 egyetemről ugyanezen év novemberében. Mára már Gosper glider gun-ként ismert az általuk kifejlesztett minta. 1. ábra. Gosper glider gun 2. Algoritmus A feladatok elvégzéséhez C++ nyelven írt programot készítettem, ami kimenetként számozott.dat fájlokat készít a diszkrét időegységekben kialakúlt sejtmozaikról. Formailag ezek a kimeneti fájlok mátrixoknak felelnek meg, 0 vagy 1-es értékekkel. Az animáció elkészítéséhez Matlab-ot használtam, amivel az elkészített mátrixokat animált.gif-be mentettem ki Conway féle Élet-játék #include <fstream> #include <algorithm> #include <iostream> #include <cmath> #include <string> #include <sstream> using namespace std; int main(int argc, char **argv) string matrix_file; unsigned int N = atoi(argv[2]); //matrx szélesség unsigned int M = atoi(argv[1]); //matrix magasság matrix_file = argv[3]; int n; cout<< "Add meg n erteket: "; cin >> n; ifstream Mat_file(matrix_file.c_str()); 2
3 int **matrix = new int*[m]; matrix[i] = new int[n]; int **temp_matrix = new int*[m]; temp_matrix[i] = new int[n]; Mat_file >> matrix[m][n]; temp_matrix[m][n]=matrix[m][n]; Mat_file.close(); unsigned int suma; //szomszéd szám for ( unsigned int i=0; i<10 ; i++) ostringstream file; file << i << ".dat"; ofstream result(file.str().c_str()); for ( unsigned int k=1; k<(m-1); k++) for ( unsigned int j=1; j<(n-1); j++) suma=(matrix[k-1][j-1]+matrix[k-1][j]+matrix[k-1][j-1]+matrix[k+1][j-1]+ +matrix[k+1][j]+matrix[k+1][j-1]+matrix[k][j-1]+matrix[k][j+1]); if(suma==(n+1) && matrix[k][j]==0) temp_matrix[k][j]=1; if(suma==(n+1) suma==n && matrix[k][j]==1) temp_matrix[k][j]=matrix[k][j]; if(suma>(n+1) suma<n) temp_matrix[k][j]=0; result << temp_matrix[m][n] << "\t"; matrix[m][n]=temp_matrix[m][n]; result << endl; delete[] matrix[i]; delete[] matrix; delete[] temp_matrix[i]; 3
4 delete[] temp_matrix; return 0; 2.2. Élet-játék (nyílt peremfeltétel) #include <fstream> #include <algorithm> #include <iostream> #include <cmath> #include <string> #include <sstream> using namespace std; int main(int argc, char **argv) string matrix_file; unsigned int N = atoi(argv[2]); //matrx szélesség unsigned int M = atoi(argv[1]); //matrix magasság matrix_file = argv[3]; int n; cout<< "Add meg n erteket: "; cin >> n; ifstream Mat_file(matrix_file.c_str()); int **matrix = new int*[m]; matrix[i] = new int[n]; int **temp_matrix = new int*[m]; temp_matrix[i] = new int[n]; Mat_file >> matrix[m][n]; temp_matrix[m][n]=matrix[m][n]; Mat_file.close(); unsigned int suma; //szomszéd szám for ( unsigned int i=0; i<10 ; i++) ostringstream file; file << i << ".dat"; ofstream result(file.str().c_str()); for ( unsigned int k=0; k<m; k++) for ( unsigned int j=0; j<n; j++) if (k==1 && j==1) 4
5 suma=matrix[k+1][j]+matrix[k+1][j+1]+matrix[k][j+1]; else if (k==m && j==n) suma=matrix[k-1][j]+matrix[k-1][j-1]+matrix[k][j-1]; else if (k==1 && j==n) suma=matrix[k+1][j]+matrix[k+1][j-1]+matrix[k][j-1]; else if (k==m && j==1) suma=matrix[k-1][j]+matrix[k][j+1]+matrix[k-1][j+1]; else if (k==1) suma=matrix[k+1][j+1]+matrix[k+1][j-1]+matrix[k][j-1]+matrix[k][j+1]; else if (k==m) suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k][j-1]+matrix[k][j+1]; else if (j==1) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k-1][j+1]+matrix[k+1][j+1]; else if (j==n) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k+1][j-1]+matrix[k-1][j-1]; else suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k+1][j+1]+matrix[k+1][j-1]+ +matrix[k][j-1]+matrix[k][j+1]; if(suma==(n+1) && matrix[k][j]==0) temp_matrix[k][j]=1; if(suma==(n+1) suma==n && matrix[k][j]==1) temp_matrix[k][j]=matrix[k][j]; if(suma>(n+1) suma<n) temp_matrix[k][j]=0; result << temp_matrix[m][n] << "\t"; matrix[m][n]=temp_matrix[m][n]; result << endl; delete[] matrix[i]; delete[] matrix; 5
6 delete[] temp_matrix[i]; delete[] temp_matrix; return 0; 2.3. Élet-játék (élő peremfeltétel) #include <fstream> #include <algorithm> #include <iostream> #include <cmath> #include <string> #include <sstream> using namespace std; int main(int argc, char **argv) string matrix_file; unsigned int N = atoi(argv[2]); //matrx szélesség unsigned int M = atoi(argv[1]); //matrix magasság matrix_file = argv[3]; int n; cout<< "Add meg n erteket: "; cin >> n; ifstream Mat_file(matrix_file.c_str()); int **matrix = new int*[m]; matrix[i] = new int[n]; int **temp_matrix = new int*[m]; temp_matrix[i] = new int[n]; Mat_file >> matrix[m][n]; temp_matrix[m][n]=matrix[m][n]; Mat_file.close(); unsigned int suma; //szomszéd szám for ( unsigned int i=0; i<10 ; i++) ostringstream file; file << i << ".dat"; ofstream result(file.str().c_str()); for ( unsigned int k=0; k<m; k++) for ( unsigned int j=0; j<n; j++) 6
7 if (k==1 && j==1) suma=matrix[k+1][j]+matrix[k+1][j+1]+matrix[k][j+1]+5; else if (k==m && j==n) suma=matrix[k-1][j]+matrix[k-1][j-1]+matrix[k][j-1]+5; else if (k==1 && j==n) suma=matrix[k+1][j]+matrix[k+1][j-1]+matrix[k][j-1]+5; else if (k==m && j==1) suma=matrix[k-1][j]+matrix[k][j+1]+matrix[k-1][j+1]+5; else if (k==1) suma=matrix[k+1][j+1]+matrix[k+1][j-1]+matrix[k][j-1]+matrix[k][j+1]+3; else if (k==m) suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k][j-1]+matrix[k][j+1]+3; else if (j==1) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k-1][j+1]+matrix[k+1][j+1]+3; else if (j==n) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k+1][j-1]+matrix[k-1][j-1]+3; else suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k+1][j+1]+matrix[k+1][j-1]+ +matrix[k][j-1]+matrix[k][j+1]; if(suma==(n+1) && matrix[k][j]==0) temp_matrix[k][j]=1; if(suma==(n+1) suma==n && matrix[k][j]==1) temp_matrix[k][j]=matrix[k][j]; if(suma>(n+1) suma<n) temp_matrix[k][j]=0; result << temp_matrix[m][n] << "\t"; matrix[m][n]=temp_matrix[m][n]; result << endl; delete[] matrix[i]; 7
8 delete[] matrix; delete[] temp_matrix[i]; delete[] temp_matrix; return 0; 2.4. Élet-játék (periódikus peremfeltétel) #include <fstream> #include <algorithm> #include <iostream> #include <cmath> #include <string> #include <sstream> using namespace std; int main(int argc, char **argv) string matrix_file; unsigned int N = atoi(argv[2]); //matrx szélesség unsigned int M = atoi(argv[1]); //matrix magasság matrix_file = argv[3]; int n; cout<< "Add meg n erteket: "; cin >> n; ifstream Mat_file(matrix_file.c_str()); int **matrix = new int*[m]; matrix[i] = new int[n]; int **temp_matrix = new int*[m]; temp_matrix[i] = new int[n]; Mat_file >> matrix[m][n]; temp_matrix[m][n]=matrix[m][n]; Mat_file.close(); unsigned int suma; //szomszéd szám for ( unsigned int i=0; i<10 ; i++) ostringstream file; file << i << ".dat"; ofstream result(file.str().c_str()); for ( unsigned int k=0; k<m; k++) 8
9 for ( unsigned int j=0; j<n; j++) if (k==1 && j==1) suma=matrix[k+1][j]+matrix[k+1][j+1]+matrix[k][j+1]+5; else if (k==m && j==n) suma=matrix[k-1][j]+matrix[k-1][j-1]+matrix[k][j-1]+5; else if (k==1 && j==n) suma=matrix[k+1][j]+matrix[k+1][j-1]+matrix[k][j-1]+5; else if (k==m && j==1) suma=matrix[k-1][j]+matrix[k][j+1]+matrix[k-1][j+1]+5; else if (k==1) suma=matrix[k+1][j+1]+matrix[k+1][j-1]+matrix[k][j-1]+matrix[k][j+1]+3; else if (k==m) suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k][j-1]+matrix[k][j+1]+3; else if (j==1) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k-1][j+1]+matrix[k+1][j+1]+3; else if (j==n) suma=matrix[k-1][j]+matrix[k+1][j]+matrix[k+1][j-1]+matrix[k-1][j-1]+3; else suma=matrix[k-1][j+1]+matrix[k-1][j-1]+matrix[k+1][j+1]+matrix[k+1][j-1]+ +matrix[k][j-1]+matrix[k][j+1]; if(suma==(n+1) && matrix[k][j]==0) temp_matrix[k][j]=1; if(suma==(n+1) suma==n && matrix[k][j]==1) temp_matrix[k][j]=matrix[k][j]; if(suma>(n+1) suma<n) temp_matrix[k][j]=0; result << temp_matrix[m][n] << "\t"; matrix[m][n]=temp_matrix[m][n]; result << endl; 9
10 delete[] matrix[i]; delete[] matrix; delete[] temp_matrix[i]; delete[] temp_matrix; return 0; D homokdomb (Matlab) function [n_t]=sand(n,i) n_t=zeros(i,1); %In=randi(7,N); In=zeros(N); [m n]=size(in); figure; colormap(gray); imagesc(in); f = getframe; [im,map] = rgb2ind(f.cdata,256, nodither ); pause(5) for kor=1:i %m_rand=randi(n,1); %n_rand=randi(n,1); %In(m_rand,n_rand)=In(m_rand,n_rand)+1; In(m/2,n/2)=In(m/2,n/2)+1; for k=2:m-1 for j=2:n-1 if In(k,j)>=4 In(k+1,j)=In(k+1,j)+1; In(k-1,j)=In(k-1,j)+1; In(k,j+1)=In(k,j+1)+1; In(k,j-1)=In(k,j-1)+1; In(k,j)=In(k,j)-4; n_t(kor)=n_t(kor)+4; end end end In(1,:)=0; In(:,1)=0; In(n,:)=0; In(:,n)=0; imagesc(in) f = getframe; im(:,:,1,kor) = rgb2ind(f.cdata,map, nodither ); pause(0.01) end imwrite(im,map, animation.gif, DelayTime,0.01, LoopCount,inf) end 10
11 3. Eredmények Az eredményeket az alábbi felsorolásokban írt.gif fájlokban animáltam. A képeken a fehéren látott részek értéke 1, a feketék pedig 0-ák Feladat - Conway féle Élet-játék 1fe_negyzet_n2.gif Az első feladatban kezdő sejtmozaiknak az alábbi elrendezést használtam. 2. ábra. Négyzet és átló Feladat - Módosított szabályok 2fe_negyzet_n1.gif 2fe_n3.gif 2fe_n4.gif 2fe_n5.gif 2fe_n6.gif 2fe_n7.gif 2fe_n8.gif 11
12 Kezdő sejtmozaiknak az alábbi elrendezéseket használtam. 3. ábra. Négyzet, és random háttér 4. ábra. Négyzet réssel, és random háttér 12
13 Feladat - Peremfeltételek 3fe_negyzet_elo.gif 3fe_negyzet_nyilt.gif 3fe_negyzet_nyilt_n3.gif 3fe_negyzet_peri.gif Kezdő sejtmozaiknak az első feladatban már bemutatott elrendezést használtam Feladat - 2D homokdomb sand_2d_center.gif sand_2d_rand.gif 5. ábra. Fejlődés középre ejtett homokszemekkel 13
14 6. ábra. Fejlődés véletlen helyre ejtett homokszemekkel N (n t ) y(x) = a x n N (nt) y(x) = a x n a = n = R = n t 7. ábra. Power-law függvény illesztés 14
15 Tartalomjegyzék 1. Bevezetés 1 2. Algoritmus Conway féle Élet-játék Élet-játék (nyílt peremfeltétel) Élet-játék (élő peremfeltétel) Élet-játék (periódikus peremfeltétel) D homokdomb (Matlab) Eredmények Feladat - Conway féle Élet-játék Feladat - Módosított szabályok Feladat - Peremfeltételek Feladat - 2D homokdomb Hivatkozások [1] Jegyzet csabai/szamszim/lecture7/ 15
Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.
Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
Programozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
Programozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
Conway életjátéka (Conway' s Game of Life)
Conway életjátéka (Conway' s Game of Life) készítette : Udvari Balázs, 2008 Bevezetés John Conway (szül. 1937, Liverpool) a XX. század jelentős matematikusa; jelenleg a princetoni egyetem professzora.
Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely
1.feladat (max02a) Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely maximális elemét. A tömb hosszát a fájl els ı eleme tartalmazza.a fájl nevét a szabványos bemeneten kérjük
1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,
2. Alapfeltevések és a logisztikus egyenlet
Populáció dinamika Szőke Kálmán Benjamin - SZKRADT.ELTE 22. május 2.. Bevezetés A populációdinamika az élőlények egyedszámának és népességviszonyainak térbeli és időbeli változásának menetét adja meg.
Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
Programozási alapismeretek 2009/2010
Szlávi-Zsakó: Programozási alapismeretek 7. előadás 1 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 2 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 3 Ennek a játék a betűkkel -szerű absztrakciónak
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command
Maximum kiválasztás tömbben
ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while
Bevezetés a programozásba. 11. Előadás: Esettanulmány
Bevezetés a programozásba 11. Előadás: Esettanulmány ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double
Bevezetés a programozásba. 6. Előadás: C++ bevezető
Bevezetés a programozásba 6. Előadás: C++ bevezető ISMÉTLÉS PLanG features Utasítások Értékadás, KI:, BE: Programkonstrukciók Elágazás Ciklus Típusok Egész, valós, logikai, szöveg, karakter, fájl Típuskonstrukciók
Körkörös listák. fej. utolsó. utolsó. fej
Körkörös listák fej utolsó fej utolsó Példa. Kiszámolós játék. Körben áll n gyermek. k-asával kiszámoljuk őket. Minden k-adik kilép a körből. Az nyer, aki utolsónak marad. #include using namespace
Programozás C++ -ban 2007/1
Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
INFORMATIKA tétel 2019
INFORMATIKA tétel 2019 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a / operátor osztási hányadost
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek
117. AA Megoldó Alfréd AA 117.
Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Géptermi zh-írás forgatókönyve
Géptermi zh-írás forgatókönyve 1. A feladat és a tesztelés körülményeinek a megértése A feladat több részbıl áll. A megoldó program kötött szerkezető fájlból kapja az adatokat, ezért azt komolyan kell
Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1
C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos
INFORMATIKA tétel 2018
INFORMATIKA tétel 2018 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a minden i = n,1,-1 végezd
main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main
main int main(int argc, char* argv[]) { return 0; main main int int main int return 0; main (int argc, char* argv[]) main #include #include int main(int argc, char* argv[]) { double
Bevezetés a programozásba. 9. Előadás: Rekordok
Bevezetés a programozásba 9. Előadás: Rekordok ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double terulet(double
Bevezetés a programozásba I.
Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk
Programozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, az Algoritmusok és adatszerkezetek c. tárgyban
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:
C++ függelék. Tartalom
Jelen dokumentumra a Creative Commons Nevezd meg! Ne add el! Ne változtasd meg! 3.0 Unported licenc feltételei érvényesek: a művet a felhasználó másolhatja, többszörözheti, továbbadhatja, amennyiben feltünteti
Programozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat
C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/12 Input-output
0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása
KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................
Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!
Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!
Bevezetés a C++ programozásba
Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek
Inga. Szőke Kálmán Benjamin SZKRADT.ELTE május 18. A jegyzőkönyv célja a matematikai és fizikai inga szimulációja volt.
Inga Szőke Kálmán Benjamin SZKRADT.ELTE 2012. május 18. 1. Bevezetés A jegyzőkönyv célja a matematikai és fizikai inga szimulációja volt. A program forráskódját a labor honlapjáról lehetett elérni, és
Programozás C++ -ban
8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 8. gyakorlat C++: szövegfolyamok, intelligens tömbök 2011.11.08. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Objektum elvű alkalmazások fejlesztése. Öröklődés. Készítette: Sike Sándor Gregorics Tibor
Objektum elvű alkalmazások fejlesztése Öröklődés Készítette: Sike Sándor Gregorics Tibor Készítsünk programot, amellyel testek térfogatát számolhatjuk ki, illetve megadhatjuk azt is, hogy az egyes testfajtákból
INFORMATIKA tétel 2017
INFORMATIKA tétel 2017 ELMÉLETI TÉTEL: Sorold fel a rekurzív függvények/eljárások jellemzőit! Szemléltesd a fogalmakat egy konkrét példán! [1 pont] GYAKORLATI TÉTEL: 1. Legyen az alábbi pszeudokód programrészlet
Szövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
Programozás C és C++ -ban
Programozás C és C++ -ban 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók
STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító
Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:
Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...
Bevezetés a programozásba I.
Bevezetés a programozásba I. 9. gyakorlat Intelligens tömbök, mátrixok, függvények Surányi Márton PPKE-ITK 2010.11.09. C++-ban van lehetőség (statikus) tömbök használatára ezeknek a méretét fordítási időben
Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök. Adatfolyamok Hibalehetőségek
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 8. gyakorlat C++: szövegfolyamok, intelligens tömbök 2011.11.08. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
Programozás alapjai 1. (BMEVIEEA100)
Programozás alapjai 1. (BMEVIEEA100) Gyakorlat anyaga az 6. oktatási héten (4-5. gyakorlat) A 7. oktatási hét péntekje előbbre csúszik a 6. hét szombatjára, ezért a 7. heti anyagot a szokottnál előbb kapjátok
Minimum feladat: Teljes feladat: Minimum feladat: Teljes feladat: Minimum feladat:
Megjegyzések: Ez a dokumentum a 2017-es tavaszi fiznum2 gyakorlat házi feladatait, és annak általam beadott megoldásait tartalmazza. Összesen 150 pontot kaptam rájuk, a vizsgázáshoz 120-ra volt szükség.
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető
Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu
Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt
BME Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt Visual Studio, SystemC, SDL Tóth Gergely Endre 2013.03.18. 1 Bevezetés Ebben a dokumentumban leírom, hogy hogyan lehet
Programozás II gyakorlat. 8. Operátor túlterhelés
Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,
Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó
Szerző Név: Lővei Péter ETR-azonosító: LOPSAAI.ELTE Drótposta-cím: petyalovei@gmail.com Kurzuskód: IP-08PAEG/25 Gyakorlatvezető neve: Daiki Tennó Feladatsorszám: 11 1 Tartalom Szerző... 1 Tartalom... 2
128. AA Megoldó Alfréd AA 128.
Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
Bevezetés a programozásba I.
Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb
500. AA Megoldó Alfréd AA 500.
Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1
Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Dinamikus tagváltozó az osztályban class RVektor { i n t n ; R a c i o n a l i s p ; p u b l i c : RVektor ( i n t n=10 ) :
Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE 2015-16 1 Olvasás/írás (ANSI C) ille tyűzetről/képer yőre (scanf/printf) scanf: olvasás a standard inputról (stdin) A sta dard i put i pli ite a ille
Országzászlók (2015. május 27., Sz14)
Országzászlók (2015. május 27., Sz14) Írjon programot, amely a standard bemenetről állományvégjelig soronként egy-egy ország zászlójára vonatkozó adatokat olvas be! Az egyes zászlóknál azt tartjuk nyilván,
500. CC Megoldó Alfréd CC 500.
Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Programozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
Egységes és objektumközpontú adatbázis-kezelés (2. rész)
Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer
Bevezetés a programozásba 2
Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i
Programozási alapismeretek 1. előadás
Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A
Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE
Programozás C nyelven. ELŐADÁS Sapientia EMTE 201-16 1 while vs. for int szam, s; cin >> szam; s = 0; while ( szam > 0 ){ s += szam%10; szam /= 10; cout szam;
Programozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT
Az informatika érettségi harmadik tételsora tartalmaz egy feladatot, melyet hatékonyan kell megoldani. A program megírása mellett követelmény a megoldásban használt módszer rövid leírása, kitérve a módszer
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak
Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.
Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek
Programozás II. 6.Öröklés Dr. Iványi Péter
Programozás II. 6.Öröklés Dr. Iványi Péter 1 Öröklés Programozók lusta emberek, nem szeretnék valamit kétszer leírni Miért veszélyes? Nem hatékony Újra kell tárolni a kódot, újra le kell fordítani Karbantartás
Programozás C és C++ -ban
Programozás C és C++ -ban 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
Feladat: Nagy számok típusa: Típusérték-halmaz: Típusműveletek: Értékadás operátor: Bitshift << operátor: Összeadás operátor:
Feladat: 3. Valósítsa meg a nagyon nagy számok típusát! Ábrázoljuk a számokat számjegyeik sorozatával, amelyet egy dinamikus helyfoglalású tömbben helyezzünk el, és implementáljuk a hatékony összeadás
Objektum elvű alkalmazások fejlesztése 3. beadandó
Objektum elvű alkalmazások fejlesztése 3. beadandó Berezvai Dániel http://elte.3ice.hu/ 9. Feladat 3ICE: I was assigned the 9th task: Az alábbi feladat megoldásához több olyan osztályt kell használni,amelyek
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -
Példa sejtautomatákra. Homokdomb modellek.
Példa sejtautomatákra. Homokdomb modellek. Automaták egyszerű eszközök tulajdonságok: véges számú állapota van átmenet egyik állapotból a másikba érzékeli a környezetet esetleg megváltoztatja a környezetet
EAF I C++ nyelvi elemek felsorolása 1. Alapvet típusok
EAF I C++ nyelvi elemek felsorolása 1 Alapvet típusok int egész ill természetes számok (83, -1320) m veletek: + - * / % ==!= < >= megjegyzés: az osztás eredménye egész float valós számok (-1320.345)
Programozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
C++ programok fordítása
C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33
Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE 2015-16 1 POINTEREK ismétlés double x = 3.14, *px = &x; unsigned char *p, *p1, *p2; p1 = (unsigned char*)px; p2 = p1 + sizeof(double); for ( p = p2-1 ;
Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia
Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok 11. előadás Antal Margit 2009 slide 1 Témakörök Sablonok Függvénysablon Osztálysablon Sablon metaprogramozás Adatfolyamok Operátorok és manipulátorok
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az
Szekvenciális inputfájl felsorolása
Szekvenciális inputfájl felsorolása Szekvenciális inputfájl felsorolása Egy x:infile(e) szekvenciális inputfájl (amely szerkezetileg egy sorozat) elemeit az st,e,x:read művelet (e:e, st:status={abnorm,
PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
500. DD Megoldó Alfréd DD 500.
Programozás alapjai 2. (inf.) zárthelyi 2009.05.21. gyakorlat: / Érdemjegy: QBX734 () IB319/32. Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
Programozási Nyelvek (C++) Gyakorlat
Programozási Nyelvek (C++) Gyakorlat Gyak 01. Török Márk tmark@caesar.elte.hu D-2.620 1 Tartalom Hello Világ! Fordítás, futtatás, debuggolás Interpretált vs bájtkód Névtér printf vs cout Fejállományok
Bevezetés a programozásba I.
Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
Programozás I. 5. Előadás: Függvények
Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény