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ó! 4 Feladat! 4 Környezet! 4 Forráskód! 4 Megoldás! 4 Programfelépítés! 5 C++ kód! 5 Tesztelés! 6
Általános Információ Név: Andresik Zoárd Manó ETR azonosító: ANZTAAI.ELTE E-mail: zmandresik@gmail.com Kurzuskód: IP-08PAEG/24 Kurzuscím: Programozási alapismeretek Gyakorlatvezető: Daiki Tennó Feladat: 6. 2
Felhasználói dokumentáció Feladat A meteorológiai intézet az ország N településére adott M napos időjárás előrejelzést, az adott településen az adott napra várt legmagasabb hőmérsékletet. Készíts programot, amely megadja azokat a településeket, ahol minden várható hőmérséklet A fok alatti! Környezet Code Blocks, C++ környezetben, GNU GCC compiler, Windows alatt n.b. A fejlesztés Mac OS X környezetben zajlott, így exe fájlt nem tudok szolgáltatni Használat A megfelelő környezetben compile után keletkezett fájlt indítva (exe, Unix Executable). Bemenet A konzol ablakon belül a program létrehoz egy tömböt a felhasználótól szerzett adatokkal (városok és napok száma), majd rögzíti az egyes város egyes napjaihoz tartozó adatokat (maximum hőmérséklet). Végül a program megkérdezi, hogy mi legyen az az érték, amire ellenőrzi a hőmérsékleteket a feladat szövegét értelmezve. Példa Hány város van? 2 Hány napot mérünk? 2 1. város 1. napjának maximum időjárása? 12 1. város 2. napjának maximum időjárása? 13 2. város 1. napjának maximum időjárása? 18 2. város 2. napjának maximum időjárása? 19 Hány fok alatt keresünk városokat? 20 A program eredménye A program visszaadja, hogy melyik városok minden napjára igaz, hogy a maximum érték alatt voltak a hőmérsékletek. Példa 1. varosra igaz, hogy minden napja 20 alatt van. 2. varosra igaz, hogy minden napja 20 alatt van. Hibalehetőségek A program nem tudja értelmezni, ha szöveget adunk meg bármelyik kérdésre, ilyenkor hibaüzenettel kilép. Példa Hány város van? három Segmentation fault: 11 3
Fejlesztői dokumentáció Feladat A meteorológiai intézet az ország N településére adott M napos időjárás előrejelzést, az adott településen az adott napra várt legmagasabb hőmérsékletet. Készíts programot, amely megadja azokat a településeket, ahol minden várható hőmérséklet A fok alatti! Specifikáció Bemenet: N: Egész (városok száma) M: Egész (napok száma) varos[n][m]: Float (a hőmérsékleteket tartalmazó tömb) A: Egész (a maximum hőmérséklet) fokalatt: bool (a feltétel állapotát rögzíti) Kimenet: String, A egész Előfeltétel: Nincs Utófeltétel: varos[n][m] < A Környezet Bármilyen operációs rendszer, ami rendelkezik C++ fordítóprogrammal (pl. gcc). A lefordított fájl kiterjesztése operációs rendszer függő. Forráskód A teljes fejlesztői anyag az ANZTAAI_6 könyvtárban található meg, könyvtárstruktúra: beadando.cbp beadando.depend bin Debug beadando main.cpp obj Debug main.o beadando.cbp projektfájl beadando.depend függőségi fájl bin/debug/beadando unix executable main.cpp C++ forrás obj/debug/main.o object kód Megoldás Változó N: Egész 4
M: Egész varos[n][m]: Float A: Egész fokalatt: bool Programfelépítés Az alábbi struktogrammban csak a feladat lényegi részét elemzem, az adatfelvételt nem. fokalatt = IGAZ i=0; i<n; i++ j=0; j<m; j++ HA varos[i][j] < A fokalatt = IGAZ fokalatt = IGAZ fokalatt = HAMIS HA fokalatt = IGAZ ki: i. városra igaz fokalatt = IGAZ C++ kód // // main.cpp // Beadandó // // Created by Andresik Zoárd on 11/24/11. // ANZTAAI.ELTE // Programozási Alapismeretek #include <iostream> using namespace std; int main () // Adatfelvétel int N; int M; cout << "Hány város van? "; cin >> N; cout << "Hány napot mérünk? "; cin >> M; float varos[n][m]; int i; int j; for (i=0; i<n; i++) for (j=0; j<m; j++) cout << i+1 << ". város " << j+1 << ". napjának maximum időjárása? "; cin >> varos[i][j]; 5
/* Feladat Minden ahol minden várható hőmérséklet A fok alatti! */ int A; bool fokalatt=true; cout << "Hány fok alatt keresünk városokat?"; cin >> A; for (i=0; i<n; i++) for (j=0; j<m; j++) if (varos[i][j] < A && fokalatt == true) fokalatt = true; else fokalatt = false; if (fokalatt == true) cout << i+1 << ". varosra igaz, hogy minden napja " << A << " alatt van." << endl; fokalatt = true; return 0; Tesztelés Többszöri tesztelés különböző adatokkal. 6