Advertisement
GerexD

18hatekony 2,3,4

Mar 14th, 2020
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. /**
  4. 2. a) A date.in állomány legtöbb két számjegyből álló, legtöbb 1000 természetes számot tárol (amelyek közt van legalább egy páros és egy páratlan szám), egy-egy szóközzel elválasztva egymástól.
  5. Írjatok egy C++ programot amely beolvassa a számokat a date.in állományból és a date.out állományba írja, a különböző beolvasott értékeket, egy hellyel elválasztva egymástól a következő
  6. szabályt betartva: az első sorba legyenek beírva a páratlan számok növekvő sorrendbe, majd a második sorba a páros számok csökkenő sorrendbe. Válasszatok egy hatékony módszert a futási
  7. idő függvényében.
  8. Exemplu: Ha a date.in állomány első sorában tárolt számok:
  9. 75 12 3 3 18 75 1 3
  10. akkor a date.out állomány tartalma:
  11. 1 3 75
  12. 18 12 (6p.)
  13. b) Írjátok le röviden, saját szavaitokkal a megoldásra használt módszert, kifejtve, hogy miben áll a hatékonysága (3 – 4 sorban). (4p.)
  14. */
  15. using namespace std;
  16.  
  17. int main()
  18. {
  19. ifstream f("date.in");
  20. ofstream g("date.out");
  21. int a[99]={0},n;
  22. while(f>>n)
  23. {
  24. a[n]=1;
  25. }
  26. for(int i=1;i<=99;i++)
  27. {
  28. if(i%2==1 && a[i]==1) g<<i<<" ";
  29. }
  30. g<<endl;
  31. for(int i=98;i>=0;i--)
  32. {
  33. if(i%2==0 && a[i]==1) g<<i<<" ";
  34. }
  35. return 0;
  36. }
  37. /// hatékony, mert előfordulási tömbbel dolgozik és nem használ semmiféle rendezést
  38. ++++++++++++++++++++++++
  39. #include <iostream>
  40. #include <fstream>
  41. /**
  42.  
  43. 3. A date.in szövegállomány első sora legtöbb 1000 természetes számot tárol, egy hellyel elválasztva egymástól, mindegyikük maximum 9 számjegyből.
  44. a) Írjatok egy C++ programot amely beolvassa a számokat a date.txt állományból, meghatározza és képernyőre vetíti a leghosszabb csökkenő sorrendbe alakult szekvens hosszát,
  45. amelyet az állományból beolvasott egymásutáni értékek alkotnak. Válasszatok egy hatékony megoldási módszert a futási idő függvényében.
  46. Például: Ha a date.in állomány tartalma:
  47. 5 2 19 4 3 6 3 2 1 0 8
  48. (6p.)
  49. A képernyőre vetíti:
  50. 5
  51. b) Írjátok le röviden, saját szavaitokkal, a megoldásra használt módszert, kifejtve, hogy miben áll a hatékonysága (3 – 4 sorban). ( 4p.)
  52. */
  53. using namespace std;
  54. int main()
  55. {
  56. ifstream f("date.in");
  57. int db=0,max=0,e,n;
  58. f>>e;
  59. while(f>>n)
  60. {
  61. if(n<e)
  62. {
  63. db++;
  64. e=n;
  65. }
  66. else
  67. {
  68. if(db>max)
  69. {
  70. max=db;
  71. db=0;
  72. }
  73. e=n;
  74. }
  75.  
  76. }
  77. cout<<max;
  78. return 0;
  79. }
  80. ++++++++++++++++++++++++++++++++
  81. #include <iostream>
  82. #include <fstream>
  83. using namespace std;
  84. /**
  85. 4. Egy természetes számokból álló sorozat egy elemét „csúcspontnak” nevezzük, ha két szomszédja van, a sorozat közvetlenül előtte és közvetlenül utána levő eleme, és az illető
  86. elem értéke szigorúan nagyobb a szomszédainak értékeinél.
  87. a) A date.in szöveges állomány egy legalább kettő és legfeljebb 10000 elemű, legfeljebb 6 számjegyű természetes számokból álló sorozatot tartalmaz, amelynek elemei egy-egy szóközzel
  88. vannak elválasztva. Írjatok C++ programot, amely beolvassa az összes számot az állományból és kiírja a képernyőre a beolvasott sorozat „csúcspontjainak” számát. A programban egy, a
  89. memória felhasználás szempontjából hatékony, algoritmust használjatok. (6p.)
  90. Például: ha a date.in szöveges állomány tartalma a következő:
  91. 51 20 100 43 43 618 5000 31 2020 114 116 4
  92. akkor kiíródik a 4 (a négy aláhúzott szám a sorozat „csúcspontjai”).
  93. b) Írjátok le tömören a saját szavaitokkal az általatok használt megoldási módszert, és indokoljátok meg a módszer hatékonyságát (3-4 sorban). (4p.)
  94. */
  95. int main()
  96. {
  97. ifstream f("date.in");
  98. int a[10000],m=1,db=0,n,e=0;
  99. while(f>>n)
  100. {
  101. a[m]=n;
  102. m++;
  103. }
  104. for(int i=2;i<=m-1;i++)
  105. {
  106. if(a[i]>a[i-1] && a[i]>a[i+1]) db++;
  107. }
  108. cout<<db;
  109. return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement