Informatika2-2014/Gyakorlat09
A MathWikiből
(Változatok közti eltérés)
(egy szerkesztő 4 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | + | === Előadás === | |
+ | https://docs.google.com/presentation/d/1TiC4mp_oNR2o3q5L0lV9nO-Q1YizBtmsYDRB2HByd3w/edit#slide=id.g27017fa94_050 | ||
=== C fordítás konzolban === | === C fordítás konzolban === | ||
29. sor: | 30. sor: | ||
gcc -W -Wall -o hello hello.c | gcc -W -Wall -o hello hello.c | ||
</code> | </code> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
148. sor: | 141. sor: | ||
* Bejött egy új típus, a float, õ a lebegõpontos szám, mondhatjuk, hogy a tizedestört. A printf és scanf-ben használandó mintája a "%f". | * Bejött egy új típus, a float, õ a lebegõpontos szám, mondhatjuk, hogy a tizedestört. A printf és scanf-ben használandó mintája a "%f". | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Feladatok === | === Feladatok === | ||
159. sor: | 147. sor: | ||
* Írd ki az első 10 számot és paritásukat. | * Írd ki az első 10 számot és paritásukat. | ||
* Írd ki az első 12 szám faktoriálisát. | * Írd ki az első 12 szám faktoriálisát. | ||
+ | ==== Üzemanyag ==== | ||
+ | * A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel. | ||
+ | * A program írja ki az alábbi információkat: | ||
+ | ** A felhasznált üzemanyag mennyisége literben | ||
+ | ***1 gallon = 3.7854 l | ||
+ | ** Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve. | ||
+ | *** Mindenképpen egész hordók vásárlására van szükség. | ||
+ | *** 1 hordó olajból 19.5 gallon üzemanyag készíthető. | ||
+ | ** A megfelelő CO2 terhelés kg-ban | ||
+ | *** 1 gallon üzemanyag esetén ez ~ 9 kg CO2 | ||
+ | ** A hordókban vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF. | ||
+ | ==== Legnagyobb közös osztó ==== | ||
+ | * Határozd meg két szám legnagyobb közös osztóját | ||
+ | ==== Fizika ==== | ||
+ | * A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s). | ||
+ | ** Például 10% esetén a bemenet 0.1 és ekkor az űrhajó sebessége 30 000 000 m/s | ||
+ | ** Az űrhajó tömegét, feltéve, hogy nyugalmi tömege 70,000 kg. | ||
+ | ** Azon eltelt időket, melyeket az űrhajósok érzékelnének, ha a következő objektumokra utaznának a Földről: | ||
+ | *** Alpha Centauri: 4.3 fényév | ||
+ | *** Androméda Galaxis 2 000 000 fényév | ||
+ | ** Segítség: | ||
+ | *** http://hu.wikipedia.org/wiki/Id%C5%91dilat%C3%A1ci%C3%B3 | ||
+ | *** http://hu.wikipedia.org/wiki/Relativisztikus_t%C3%B6meg |
A lap jelenlegi, 2014. április 16., 14:08-kori változata
Tartalomjegyzék |
Előadás
C fordítás konzolban
Első fordítás gcc-vel
Nyiss egy szövegszerkesztőt, és másold be egy új fájlba a "hello.c" kódját:
#include <stdio.h> int main() { int x = 2; printf("hello world! %d\n", x); return 0; }
Nyiss egy konzolt és menj abba a könyvtárba (cd paranccsal) ahová elmentetted a "hello.c"-t.
Fordítsd le, készíts "hello" nevű futtatható fájlt:
gcc -o hello hello.c
Futtasd le a kapott programot!
Második fordítás gcc-vel
Mostantól használjuk a gcc warning-kapcsolóit, hogy lássuk a kisebb hibákat, figyelmeztetéseket is!
gcc -W -Wall -o hello hello.c
CodeBlocks használata
Használat
- A feladatokhoz hozzatok létre mindig egy új üres file-t (File / New / Empty file), ezt mindenképpen .c kiterjesztéssel mentsétek el pl: feladat1.c.
- Fordítani a Build / Build-el tudtok, vagy a megfelelõ ikonnal, a lefordított programot a Build / Run -al indíthatjátok, vagy egyszerûbben F9-el fordíthattok majd utána azonnal indíthatjátok is a programot.
CodeLite használata
Beállítások
- Indítsd el a CodeLite fejlesztői környezetet!
- Állítsd át az indentálást (tabulálást/beljebbezést) a Settings -> Global Editor Preferences menüpont alatt a General -> Indentaiton résznél hogy ne használjon tab karaktereket
- Hozz létre egy új Workspace-et és benne egy új projektet (mindenképp külön könyvtárban: Create the project under a separate directory legyen bepipálva), segítség itt az oldal vége felé
Használat
- Minden feladat megoldását új projektbe kell tenni, hogy a main() függvények ne ütközzenek (egy projekten belül nem lehet több belőle).
- A narancssárga az aktív projekt a workspace-en belül. Ha menüből kiválasztod a fordítást (Build -> Build project vagy F7 billentyű) akkor ez mindig az aktív projektet fogja lefordítani, ha épp másik file van megnyitva a szerkesztődben, akkor is! Ugyanígy a futtatásnál is (menüből Build -> Run vagy Ctrl-F7) az aktív projekt main() függvénye fog lefutni!
Ciklusok
For ciklus
- A for ciklus nem a sage-ben megszokottak szerint mûködik, hisz itt nincsenek listáink amiket bejárhatnánk.
- Ehelyett a for a while ciklushoz nagyon hasonlóan mûködik, a szintaxis:
for(inicializálás; feltétel; inkrementálás){ utasítások }
- Az inicializálás részben adhatjuk meg azokat az utasításokat amiket csak egyszer a ciklus kezdetekor szeretnénk végrehajtani, ha úgy gondolunk rá mint egy szummára, akkor ez lehet az i = 0 például.
- A ciklus akkor áll le, amikor a feltétele hamis lesz, tehát amíg igaz, addig fut.
- Az inkrementálás lépés a ciklus belsejében levõ utasíások (a ciklus magja) után hajtódik végre. Itt tipikusan növelünk egy ciklusváltozót, de akármi mást is lehetne csinálni.
- Példa egy for ciklusra, ami kiírja a számokat 0-tól 9-ig:
int i; for (i=0; i<10; i++) { printf("A ciklusváltozo erteke: %d\n", i); }
- Az i++ egyenértékû az i = i + 1 vagy az i += 1 utasítással.
- Példa egy sokkal kevésbé hagyományos for ciklusra:
int i = 1; int j = 1; for (; i + j != j * 2; i = j + 1) { j = i * 2; }
- Ez a példa azt is mutatja, hogy a ciklus fejének különbözõ részei egymástól függetlenül elhagyhatók, valamint hogy létezik végtelen ciklus.
While ciklusok
- A while ciklus a már sage-ben megszokottak szerint mûködik, addig fut, amíg igaz a fejében található feltétel.
- Talán annyi plusz van, hogy bevezetjük a hátul tesztelõs ciklust, a do while ciklust. Ez a nevébõl is kikövetkeztethetõen utólag tesztel, tehát a magja legalább egyszer lefut.
- A szintaxis:
while(feltétel){ utasítások }
do{ utasítások } while(feltétel);
- Példa egy bonyolultabb while ciklusra, a feladatokban lesz egy hozzá nagyon hasonló:
- A felhasználótól egy ciklusban egész számokat kér be addig, amíg 0 értéket nem kap. Ekkor pedig kiírja a képernyőre a kapott nemnulla számok átlagát.
#include<stdio.h> int main(void) { int i = 0; float sum = 0; int szam = 0; do{ scanf("%d", &szam); sum += szam; i++; } while(szam != 0); i--; printf("%f", sum / i); return 0; }
- Bejött egy új típus, a float, õ a lebegõpontos szám, mondhatjuk, hogy a tizedestört. A printf és scanf-ben használandó mintája a "%f".
Feladatok
- Írd ki az első 100 számot és azok négyzetét
- Írd ki az első k Fibonacci számot (most C-ben:))
- Írd ki az első 10 számot és paritásukat.
- Írd ki az első 12 szám faktoriálisát.
Üzemanyag
- A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel.
- A program írja ki az alábbi információkat:
- A felhasznált üzemanyag mennyisége literben
- 1 gallon = 3.7854 l
- Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve.
- Mindenképpen egész hordók vásárlására van szükség.
- 1 hordó olajból 19.5 gallon üzemanyag készíthető.
- A megfelelő CO2 terhelés kg-ban
- 1 gallon üzemanyag esetén ez ~ 9 kg CO2
- A hordókban vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF.
- A felhasznált üzemanyag mennyisége literben
Legnagyobb közös osztó
- Határozd meg két szám legnagyobb közös osztóját
Fizika
- A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s).
- Például 10% esetén a bemenet 0.1 és ekkor az űrhajó sebessége 30 000 000 m/s
- Az űrhajó tömegét, feltéve, hogy nyugalmi tömege 70,000 kg.
- Azon eltelt időket, melyeket az űrhajósok érzékelnének, ha a következő objektumokra utaznának a Földről:
- Alpha Centauri: 4.3 fényév
- Androméda Galaxis 2 000 000 fényév
- Segítség: