Programozás és modellezés C-ben

Slides:



Advertisements
Hasonló előadás
Készítette: Csíki Gyula
Advertisements

A felhasználói interfész A felhasználói interfész az a felület, amellyel a szoftver az ember felé „fordul”; amellyel a felhasználó nap mint nap találkozik.
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Online szabadságtervező, jóváhagyó, nyilvántartó rendszer.
Bevezetés a C# nyelvbe Az alapok összefoglalása Farkas Csaba.
 Alap tudnivalók Alap tudnivalók  Az If és a While folyamatábrák Az If és a While folyamatábrák  Probléma Probléma  A while ciklus (általános alak,
Forrás: Reiter István C_Sharp programozás lépésről lépésre (frissített tartalommal )
Programozás alapjai 1. gyakorlat Hirling Dominik.
Nem csak szövegszerkeszt ő virtuózoknak Az Open Office.org 2.0 béta verzió Bándliné Utasi Mária Writer.
„A helyi innovációk keletkezése, terjedése és rendszerformáló hatása az oktatási ágazatban” (K ) Az „Innova” kutatás „A helyi innovációk keletkezése,
Göncziné Kapros Katalin humáninformatika.ektf.hu
Hogyan partícionáljuk meghajtónkat?
ERASMUS+ DISSZEMINÁCIÓS PLATFORM
Fájlkezelés.
Munkalapok védelme az Excelben
Számítógépes szimuláció
Becslés gyakorlat november 3.
Script nyelvek előadás
Elemi adattípusok.
A Scala programozási nyelv
Microsoft Excel BAHAMAS tanfolyam
Program utasítássorozat
Scilab programozás alapjai
videós team Team vezetője: Tariné Péter Judit Tagok:
A C++ programozási nyelv
Sz&p prof.
LabVIEW bevezetéstől a feszültség-áram karakterisztikáig Vida Andrea
CSOPORT - A minőségellenőrök egy megfelelő csoportja
Rendszerező összefoglalás
C# SZINTAKTIKÁJA Az egyes utasítások végén pontosvessző áll
Lexikális elemző: lex (flex)
PHP-SQL adatbáziskezelő parancsai
Adatbázis-kezelés (PL/SQL)
Számítógépes Hálózatok
2. Bevezetés A programozásba
ADAT ÉS TECHNOLÓGIA ORIENTÁLT MARKETING TEVÉKENYSÉG, VÉGE A MEGÉRZÉSEK ÉS AZ ÉRZELMI ALAPÚ DÖNTÉSHOZATALNAK.
VB ADATTÍPUSOK.
Adatbevitel, értékadás, típuskonverzió
Script nyelvek előadás
A számítógép operációs rendszere
Kvantitatív módszerek
Adatszerkezetek.
Közigazgatási alapvizsga a Probono rendszerben
Fazekas Ágnes – Halász Gábor-Horváth László
Rendszerfejlesztés gyakorlat
Számítógépes Hálózatok
Kódolj és építkezz! Szabó Imre
„Mindegy, hogy képességeid mekkorák, fő, hogy a tőled telhető legjobbat formáld belőlük és általuk.” (Weöres Sándor)
Kóbor Ervin, 10. hét Programozási alapismeretek
Széchenyi István Egyetem
ONAP ↓ HELYI ÓVODAI PROGRAM ÜTEMTERV TERVEZET
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
A távoli asztal, valamint az Endnote használata a távoli asztalon
A Lineáris Keresés Buktatói
A számítógép története
Pál Miklós 20 év 10 percben Pál Miklós
Frappáns novella a szeretetrŐl...
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
További rendező és kereső algoritmusok
A számítógép operációs rendszere
Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van
Matematika II. 5. előadás Geodézia szakmérnöki szak 2015/2016. tanév
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Bevezetés Tematika Számonkérés Irodalom
Algoritmusok.
Java alkalmazások 1. Előadás.
OpenBoard Kezelő Tananyag közzététele a KRÉTA rendszerben.
Előadás másolata:

Programozás és modellezés C-ben Zachar István 2017 ELTE Növényrendszertani, Ökológiai és Elméleti Biológiai Tanszék

Miről lesz szó? programozás modellezés kevés algoritmus C Wolfram Mathematica RaspberryPi

Tematika Kis lépésekkel az alapoktól… …menet közben jön meg az étvágy! 14 óra számonkérés menet közben nincs! jegyszerzés: év végére elkészíteni és demonstrálni egy működő programot választható feladatok egyéni ötlet is lehet saját kutatás! …menet közben jön meg az étvágy!

Ökológiai és evolúciós modellek Hogy változik a préda-predátor populáció az időben? Hogy tekeredik fel egy molekula 3D-ben? Hogy alakul egy mintázat térben (és időben)? Hogyan terjed egy vírus egy populációban? Melyik kompetítor baktérium győzi le a másikat? Melyik stratégia a nyerő és evolúciósan stabil?

Hogy néz ki a modellezés folyamata? --------- kérdések ötlet egyszerűsítések eredmények <==> program ------- eszközök lehetőségek besajtolás kompromisszumok futtatás ábrázolás , futtatás, futtatás… válasz!

Mi kell a kurzushoz? programozási előismeret NEM minimális angol tudás minimális matematikai ismeretek (átlag, logaritmus, stb.) ábrázolási lehetőségek (Excel, R, stb.) minimális, de fejleszthető algoritmikus gondolkodás

C programnyelv 1969 - … Dennis Ritchie @ Bell labs széleskörű programnyelv egyszerű programok --> operációs rendszerek alacsony szintű

C programnyelv tulajdonságai általános felhasználású szöveges, „human-readable” gépi kódba hatékonyan képező strukturált: nincs „spagetti” kód, nincs goto imperatív, deklaratív, strukturált, blokk-strukturált erősen tipizált (szigorú adattípusok) fordított („compiled”) 0-offszet kisbetű-nagybetű érzékeny (“case sensitive”) szóköz-érzéketlen („whitespace insensitive”) utódok: C++, C#, Objective-C, D, Java, JavaScript, Perl, Pythoon, PHP

Mire jó és mire nem a C? Mire nem jó: Mire jó szimbolikus számítások egyenletek manipulálása szövegek manipulálása rajzolás, ábrázolás, grafika játék fejlesztés eredmények interpretálása objektum-orientált kód Mire jó egyszerű algoritmusok iteratív műveletek vektor-, mátrix- és tenzorműveletek

Lépjünk be a Mátrixba! felhasználónév: Neptun kód nagybetűkkel jelszó: pclab

Első program! "Hello World!" Printeljük ki a standard kimenetre a következő karakterláncot: "Hello World!" miben írjuk? hogyan fordítjuk? hogyan futtatjuk? karakterlánc? = string, karaktersorozat printelés?? = kiírás standard kimenet??? = a képernyő (lehetne fájl is, egy másik képernyő, a nyomtató, stb.)

Hello world program #include <stdio.h> int main () { printf("Hello world!"); return(0); } lásd letölthető példafájl: hello.c

Miből áll egy utasítás? printf("Hello world!"); általánosan: parancs(argumentum); vagy: parancs(arg1, arg2, …); parancs(arg1, arg2, …) { utasítás1; utasítás2; … }

Fordítás, futtatás Fordítás = kompilálás = compiling Build gomb a Geany-ben (F9 billentyű) lehetséges fordítási hibák (amiket a fordító észlel; compile-time errors): hiányzó pontosvessző (;) nem deklarált változó változó rossz típusú kiíratása (pl. %d ha a változó lebegőpontos) Futtatás = execution, run Execute a Geany-ben (F5 billentyű) lehetséges futtatási hibák (amiket futás közben jönnek elő; runtime errors): nullával osztás

A C lexikonja ANSI C: ISO standardizált 1990 óta auto for struct break goto switch case if typedef char inline union const int unsigned continue long void default register volatile do restrict while double return   else short enum signed extern sizeof float static ANSI C: ISO standardizált 1990 óta összes lefoglalt alapszó: 32 + 5 (C99) +7 (C11) parancsok amiket használni fogunk adattípusok amiket használni fogunk egyéb nem fogjuk használni őket

Adattípusok int = Egész adattípus, csak egész szám tárolható benne #include <stdio.h> int main () { int x, y; x = 1; y = 4; printf("x = %d y = %d \n", x, y); return(0); } további példákért lásd letölthető fájl: adatipusok.c

Adattípusok int 32 biten ábrázolható előjeles egész szám {-2 147 483 648, …, -2, -1, 0, 1, 2, …, 2 147 483 647} (-(231), …, 0, …, 231-1) float előjeles lebegőpontos valós szám abszolút értékben ábrázolható: (0, ~1038) vagy (0, ~2128) double előjeles lebegőpontos valós szám abszolút értékben ábrázolható: (0, ~10296) vagy (0, ~2984) char karakter típus 8 biten, 255 különféle ASCII karaktert ábrázolhat pl. 'a', 'A', '1', '.', '\n', '\t', stb. void amikor azt jelezzük, hogy NINCS adat, és így típus sem kell

Értékadás folyamata int x = 1, y = 3; x = x + y; x = 1 + 3; x = 4; x értéke a memoriában 4 lesz. értékek behelyettesítése művelet elvégzése hozzárendelés

Operátorok int main () { int x = 0, y = 3; x = x + 1; x++; x += y; printf("x = %d\n", x); return(0); } további példák a letölthető fájlban: operatorok.c

Operátorok aritmetika: +, -, / (osztás) * (szorzás), % (maradékos osztás) értékadás: =, +=, -=, *=, /=, %= inkrementálás, dekrementálás: ++, -- összehasonlítás: ==, >, <, >=, <= logikai műveletek: && (és), || (vagy), ! (nem)

Fordítás parancssorból nem fogjuk használni, de ha valakit érdekel: gcc fordító: GNU Compiler Collection (régebben: GNU C Compiler) telepített gcc verziószáma: gcc --version fordítás gcc-vel (általános): gcc -o binary source [kapcsolók] fordítás gcc-vel (példa): gcc -o hello.exe hello.c -Wall

GNU? UNIX? Linux? OSX? Windows? https://commons.wikimedia.org/wiki/File:Unix_history-simple.png

C programozás otthon Fordító, GNU C: Windows: MinGW (Minimalist GNU fro Windows): http://www.mingw.org/ Linux: alapból van gcc Mac OSX: ? Fejlesztői környezet (Integrated Development Environment, IDE): Geany (Linux, Windows, OSX, …) CodeBlocks DevC++ (using MinGW) Szövegszerkesztő: Notepad++ és NppExec plugin (Linux, Windows, OSX, …) EZT ajánlom!

Referenciák The GNU C Reference Manual: https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html C reference: http://en.cppreference.com/w/c C library: http://www.cplusplus.com/reference/clibrary/ [C] tag @ : http://stackoverflow.com/questions/tagged/c C math.h függvények: https://en.wikipedia.org/wiki/C_mathematical_functions