Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:



Hasonló dokumentumok
Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

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!

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Szerző. Természetesen aktualizálandó adatok.

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Programozási alapismeretek 1. előadás

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Maximum kiválasztás tömbben

Bevezetés a programozásba I.

Bevezetés a programozásba I.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

1. Alapok. Programozás II

Bevezetés a programozásba. 6. Előadás: C++ bevezető

3. Osztályok II. Programozás II

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

Programozási alapismeretek 2009/2010

A feladat címe, rövid emlékeztetje

Géptermi zh-írás forgatókönyve

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Programozás I. gyakorlat

INFORMATIKA tétel 2019

Programozás Minta programterv a 1. házi feladathoz 1.

Informatika terméktervezőknek

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

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

117. AA Megoldó Alfréd AA 117.

Mintavételes szabályozás mikrovezérlő segítségével

DOKUMENTÁCIÓ KÉSZÍTETTE: Naszári László I. évf. levelező Informatika tanári szak 2003.

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

A C# programozási nyelv alapjai

Felhasználói dokumentáció

Programozás II. 2. Dr. Iványi Péter

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Teljesítményprognosztizáló program FELHASZNÁLÓI KÉZIKÖNYV

AWK programozás, minták, vezérlési szerkezetek

Algoritmizálás + kódolás C++ nyelven és Pascalban

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Pénzügyi algoritmusok

BME MOGI Gépészeti informatika 4.

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Szoftvertervezés és -fejlesztés I.

Programozási alapismeretek 3. előadás

Programozási tételek és C++

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Körkörös listák. fej. utolsó. utolsó. fej

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Programozás II gyakorlat. 8. Operátor túlterhelés

Alprogramok, paraméterátadás

Programozás II. 4. Dr. Iványi Péter

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Bevezetés a C++ programozásba

5. Gyakorlat. struct diak {

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

Kifejezések. Kozsik Tamás. December 11, 2016

INFORMATIKA tétel 2017

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

OOP: Java 8.Gy: Abstract osztályok, interfészek

Algoritmizálás és adatmodellezés tanítása 2. előadás

Tamás Ferenc: C++ (az emelt szintű érettségin) Előszó

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

10. gyakorlat Tömb, mint függvény argumentum

AWK programozás, minták, vezérlési szerkezetek

INFORMATIKA tétel 2018

A dokumentáció felépítése

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

1. Alapok. #!/bin/bash

Algoritmusok és adatszerkezetek II.

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Telepítési útmutató. 1.1 lépés : Telepítés típusa - ablak :

BASH script programozás II. Vezérlési szerkezetek

Java II. I A Java programozási nyelv alapelemei

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

C programozás. 1 óra Bevezetés

ClicXoft programtálca Leírás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Bevezetés a programozásba. 9. Előadás: Rekordok

Bevezetés a programozásba I.

Programozási nyelvek JAVA EA+GY 1. gyakolat

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Mérési jegyzőkönyv. az ötödik méréshez

Átírás:

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ó... 3 Feladat... 3 Környezet... 3 Használat... 3 A program indítása... 3 A program bemente... 3 Egy lehetséges párbeszéd... 4 A program eredménye... 4 Egy lehetséges kimenet... 4 Hibalehetőségek... 5 Fejlesztői dokumentáció... 6 Feladat... 6 Specifikáció... 6 Környezet... 6 Forráskód... 6 Megoldás... 7 Fontos típusok, változók... 7 Programfelépítés... 7 Algoritmus... 7 C++ kód... 8 Tesztelés... 8 Érvényes tesztesetek... 11 Érvénytelen tesztesetek... 12 Fejlesztési lehetőségek... 12 2

Felhasználói dokumentáció Feladat 20. Egy repülőgéppel Európából Amerikába repültünk. Az út során X kilométerenként mértük a felszín tengerszint feletti magasságát. Feltételezésünk szerint ez a magasság mindenhol 0. 0 magasságot ott mértünk, ahol tenger van, >0-t pedig ott, ahol szárazföld. Készíts programot, amely meghatározza, hogy a szigetek átlagmagassága növekszik-e! Környezet IBM PC, EXE fájl futtatására alkalmas operációs rendszer (pl. Windows XP, Windows Vista, Windows 7). Egeret nem igényel. Használat A program indítása A program 1beadando.b\bin\Release\1beadando.b.exe néven található a telepít anyagban. A Start menü Futtatás menüpontjában a fenti fájl kiválasztásával (beírásával) indítható. A program bemente A program először a magasságmérések számát kérdezi meg, majd egyesével bekéri a mért adatokat. Tenger feletti mérés esetén nullát kell beírni. 3

Egy lehetséges párbeszéd A program eredménye A program kiszámítja és kiírj, hogy a szigetek átlagmagassága növekszik-e.egy lehetséges kimenet 4

Hibalehetőségek A mérések száma nem lehet nulla, vagy annál kisebb, valamint nem lehet nagyobb az int típusú változó maximális értékénél (2.147.483.647). A mért értékek bekérésénél az esetleges negatív szám megadásakor a program figyelmeztet a rossz adatbevitelre és mindaddig kéri az aktuális mérés eredményét, amíg nem nullát, vagy pozitív számot adunk meg. 5

Fejlesztői dokumentáció Feladat 20. Egy repülőgéppel Európából Amerikába repültünk. Az út során X kilométerenként mértük a felszín tengerszint feletti magasságát. Feltételezésünk szerint ez a magasság mindenhol 0. 0 magasságot ott mértünk, ahol tenger van, >0-t pedig ott, ahol szárazföld. Készíts programot, amely meghatározza, hogy a szigetek átlagmagassága növekszik-e! Specifikáció Bemenet: msz : Egész [a mérések elemszáma] t : Tömb[1..msz:Egész] [a mérések értékeit tartalmazó tömb] Kimenet: novekvo : Logikai [a szigetek átlagmagassága növekszik-e] Előfeltétel: 1<msz<2147483647 Utófeltétel: t[i:i=1..msz:egész]>=0 Utófeltétel: ta[i:i=1..msz:valós]>=0 Definíció: sziget>1 & novekvo=true : A szigetek átlag magassága növekszik. sziget>1 & novekvo=false : A szigetek átlag magassága NEM növekszik. sziget<=1 : Nincs egynél több sziget! Környezet IBM PC, EXE fájl futtatására alkalmas operációs rendszer (pl. Windows XP, Windows Vista, Windows 7). Nem igényel egeret. C++ fordítóprogram (pl. gcc), Code::Blocks fejlesztői környezet. Forráskód A teljes fejlesztői anyag "1beadando" nevű könyvtárban található meg. \bin\debug\ 1beadando.exe - nyomkövethető állapotú, futtatható kód \obj\debug\main.o - nyomkövethető állapotú, félig lefordított(object-) kód \bin\release\1beadando.exe - végleges, futtatható kód \obj\release\ main.o - végleges, félig lefordított (object-) kód 6

\main.??? - C++ forrás fájl \ 1beadando.b.??? - code:blocks projekt fájl \ 1beadando.b.??? - code:blocks depend fájl \ 1beadando..b??? - code:blocks layout fájl Megoldás Fontos típusok, változók Változó msz: Egész i: Egész szmsz: Egész magas: Egész sziget: Egész atlag: Valós novekvo: logikai t: Tömb [msz] : Egész ta: Tömb [msz] : Valós Programfelépítés A program által használt modulok (és helye)5: main iostream - main.cpp - a C++ rendszer része. Algoritmus Igaz: szmsz!=0 Igaz: sziget+=1; ta[sziget]=magas/szmsz; szmsz=0; magas=0; be: msz i=1..msz be t[i] 1..msz Hamis: t[i] = 0 Hamis: szmsz+=1; magas+=t[i]; 7

t[i-1]!=0 Igaz: sziget+=1; atlag= (double) magas/szmsz; ta[sziget]=atlag; Hamis: i=2 sziget Igaz: novekvo && ta[i]<=ta[i-1] novekvo=false sziget>1 Igaz: Igaz: novekvo Hamis: novekvo=false Hamis: Hamis: C++ kód // Szerzo: Varga Péter // ETR azonosító: VAPQAAI.ELTE // Email cím: vp.05@hotmail.com // // Feladat: // 20. feladat // Egy repülõgéppel Európából Amerikába repültünk. Az út során X kilométerenként mértük a felszín tengerszint feletti magasságát. // Feltételezésünk szerint ez a magasság mindenhol =0. 0 magasságot ott mértünk, ahol tenger van, >0-t pedig ott, ahol szárazföld. // Készíts programot, amely meghatározza,hogy a szigetek átlagmagassága növekszik-e! // // Specifikáció: // Be: msz : Egész [a mérések elemszáma] // t : Tömb[1..msz:Egész] [a mérések értékeit tartalmazó tömb] // Ki: novekvo : Logikai [a szigetek átlagmagassága növekszik-e] // Ef: 1<msz<2147483647 // Uf: t[i:i=1..msz:egész]>=0 // Uf: ta[i:i=1..msz:valós]>=0 // Def: sziget>1 & novekvo=true : A szigetek atlag magassaga novekszik. // sziget>1 & novekvo=false : A szigetek atlag magassaga NEM novekszik. // sziget<=1 : Nincs egynel tobb sziget! 8

#include <iostream> using namespace std; int main() int i,msz,szmsz,magas,sziget; double atlag=0; bool novekvo=true; int* t; double* ta; cout <<"Add meg a meresek szamat!"<<endl; do cin>>msz; if (msz<1) cout <<"Rossz szamot adtal meg, probald ujra! A szamnak 0-tol nagyobbnak kell lennie."<<endl; while (msz<1); szmsz=0;magas=0;sziget=0; t= new int [msz]; ta= new double [msz]; for (i=0;i<msz;i++) cout<<"add meg az "<<i+1<<". pont meresi erteket meterben!"<<endl; do cin>>t[i]; 9

if (t[i]<0) cout<<"rossz szamot adtal meg, probald ujra! A szamnak 0-tol nagyobbnak kell lennie."<<endl; while (t[i]<0); if (t[i]==0) if(szmsz!=0) sziget+=1; atlag= (double) magas/szmsz; ta[sziget]=atlag; szmsz=0; magas=0; else szmsz+=1; magas+=t[i]; if(t[i-1]!=0) sziget+=1; atlag= (double) magas/szmsz; ta[sziget]=atlag; for (i=2;i<=sziget;i++) if ((novekvo) && (ta[i]<=ta[i-1])) 10

novekvo= false; break; if (sziget>1) if (novekvo) cout<<"a szigetek atlag magassaga novekszik."<<endl; else cout<<"a szigetek atlag magassaga NEM novekszik."<<endl; else cout <<"Nincs egynel tobb sziget!"<<endl; return 0; Tesztelés Érvényes tesztesetek Bemenet msz=5; t[i]=5;0;5;5;0; sziget>1 && novekvo msz=5; t[i]=5;0;0;6;0; sziget>1 && novekvo msz=5; t[i]=5;0;5;0;0; sziget>1 && novekvo=false msz=5; t[i]=5;0;5;1;0; sziget>1 && novekvo=false msz=5; t[i]=0;0;5;0;0 ;sziget<=1 msz=5; t[i]=0;0;0;0;0 ;sziget<=1 msz=-1 Kimenet A szigetek átlag magassága növekszik. A szigetek átlag magassága növekszik. A szigetek átlag magassága NEM növekszik. A szigetek átlag magassága NEM növekszik. Nincs egynél több sziget! Nincs egynél több sziget! Rossz számot adtál meg, próbáld újra! A számnak 0-tol nagyobbnak kell lennie. 11

Érvénytelen tesztesetek Bemenet msz=2147483647 Kimenet Érvénytelen működéshez vezet Fejlesztési lehetőségek A cin függvény módosítása, maximumnál nagyobb és a minimumnál kisebb érték megadása esetén hibaüzenet küldése. 12