Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- /**
- 7. A SIR.TXT szövegállomány első sora egy n (1≤n≤10000) természetes számot tárol és a második sora, egy hellyel elválasztva egymástól, egy növekvő sorozatot n természetes számokból,
- mindegyik számot legtöbb 9 számjegyből. Platónak nevezzük egy érték sorban, hasonló elemszámmal rendelkező szegmenseket, amelyek egymásmellett helyezkednek el. Egy plató hossza egyenlő az
- őt alkotó elemek hosszával.
- a) Írjatok egy C++ programot amely beolvassa az állomány adatait és, egy hatékony módszerrel a program futása és a memória használat függvényébe képernyőre vetíti, egy hellyel elválasztva
- egymástól, egy plató maximális hosszát, és azt az értéket amely a platót alkotja. Abban az esetben ha több plató ugyanazzal a hosszúsággal rendelkezik kivetítjük a legnagyobb értéket amely
- valamelyik platót alkotja. (6p.)
- Például: ha a SIR.TXT
- állomány tartalma :
- 10
- 11 211 211 211 328 400 400 1201 1201 1201
- akkor a program képernyőre vetít: 3 1201
- b) Írjátok le rövíden, saját szavaitokkal, az a pontban használt módszert kifejtve annak hatékonyságát. (4p.)
- */
- using namespace std;
- int main()
- {
- int elem=0,db=0,n,a[10000],max=0;
- ifstream f("sir.txt");
- f>>n;
- for(int i=1;i<=n;i++)
- {
- f>>a[i];
- if(a[i]==a[i-1]) db++;
- else if(db>max){ max=db;
- elem=a[i];}
- else if(db==max) if(a[i]>elem) elem=a[i];
- }
- cout<<max<<" "<<elem;
- return 0;
- }
- ///hatékony, mert ahogy tárol egyből elvégzi az adott műveletet, valamint egyetlen egy ciklust használ
- +++++++++++++++++++++++++++++++++
- #include <iostream>
- #include <fstream>
- /**
- 8. a) A BAC.TXT szöveges állomány első sorában egy n (0<n≤1000000) természetes szám található, a második sorában egy-egy szóközzel elválasztva, n darab nullától különböző,
- legfeljebb 7 számjegyű, természetes szám található, növekvő sorrendbe rendezve. Írjatok C++ programot, amely beolvassa az állományból az összes számot és egy, a memóriatakarékosság
- és a végrehajtás sebessége szempontjából hatékony algoritmust használva, a második sorból olvasott mindegyik számra meghatározza azt az ennél nagyobb vagy egyenlő, de ugyanakkor
- legkisebb olyan értéket, amely 2-nek hatványa. Egy x természetes szám 2-nek hatványa, ha létezik olyan k természetes szám, hogy x=2k. Az így meghatározott értékeket írja ki a
- képernyőre egy-egy szóközzel elválasztva.
- Például: ha az állomány az alábbi tartalommal rendelkezik:
- 5
- 3 5 8 9 12
- akkor, képernyőre kiíródik:
- 4 8 8 16 16 (6p.)
- b) Írjátok le a saját szavaitokkal tömören az a) pontban általatok használt algoritmust, és magyarázzátok meg, hogy miben rejlik a hatékonysága. (4p.)
- */
- using namespace std;
- int main()
- {
- int n, a[500],h=2;
- ifstream f("bac.txt");
- f>>n;
- for(int i=1;i<=n;i++)
- {
- f>>a[i];
- if(a[i]<h) cout<<h<<" ";
- else {while(h<a[i])
- h=h*2;
- cout<<h<<" ";}
- }
- return 0;
- }
- ///az algoritmus tárolás után ellenőrzi a műveletet, a h változó növelésével pedig csak szükség esetén foglalkozik
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement