Felmérő az adattípusoktól kezdődő részből (sorozatok generálásáig, ezt is beleértve) 2026. ápr. 17-én, pénteken.
Tétel
Hivatalból 2 pont jár, a munkaidő 40 perc.
A változat
1.
Írjunk programot, ami a bemenetről beolvasott A és B természetes számok esetén kiírja a ezek átlagát (1p), illetve az (A,B) koordinátájú pont origótól mért távolságát (1p).
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << (double) (a+b) / 2 << endl;
cout << sqrt(a*a + b*b) << endl;
return 0;
}
|
2.
Hány byte memóriát foglal összesen egy darab int és két darab long long típusú változó? (1p) Mi annak a konstansnak a neve, ami a legnagyobb int-ben tárolható értéket adja meg? (1p)
Megoldás:
1 x 4 B + 2 x 8 B = 20 B memória
a konstans INT_MAX
3.
Adott n, majd egy n darab természetes számból álló sorozat (0.5p a beolvasás). Határozzuk meg a legnagyobb elemét (0.5p), a kétjegyű elemeinek darabszámát (1p) és azt, hogy milyen hosszú az a leghosszabb egymás melletti elemekből álló része, ami csak páratlan számokat tartalmaz (1p)!
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
int legnagyobb = INT_MIN;
int hany_ketjegyu = 0;
int max_hossz = 0;
int akt_hossz = 0;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam > legnagyobb) {
legnagyobb = szam;
}
if (szam >= 10 && szam <= 99) {
hany_ketjegyu++;
}
if (szam % 2 == 0) {
if (akt_hossz > max_hossz)
max_hossz = akt_hossz;
akt_hossz = 0;
}
else { // páratlan
akt_hossz++;
}
}
// aktualizálunk a végén is
if (akt_hossz > max_hossz)
max_hossz = akt_hossz;
cout << "legnagyobb elem: " << legnagyobb << endl;
cout << "ketjegyuek darabszama: " << hany_ketjegyu << endl;
cout << "legnagyobb hossz: " << max_hossz << endl;
return 0;
}
|
4.
Az f(1) = 1, f(2) = 3, illetve f(n) = 2*f(n-2) + f(n-1) képletekkel megadott sorozat első hét tagja 1, 3, 5, 11, 21, 43, 85. A felhasználótól olvassunk be egy n pozitív egész számot, majd írjuk ki a sorozat első n darab tagja közül azokat, amik oszthatók 3-mal (1p).
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a = 1;
int b = 3;
for (int i = 1; i <= n; i++) {
if (a % 3 == 0)
cout << a << endl;
int uj = 2*a + b;
a = b;
b = uj;
}
return 0;
}
|
B változat
1.
Hány byte memóriát foglal összesen két darab int és egy darab long long típusú változó? (1p) Mi annak a konstansnak a neve, ami a legkisebb int-ben tárolható értéket adja meg? (1p)
Megoldás:
2 x 4 B + 1 x 8 B = 16 B memória
a konstans INT_MIN
2.
Írjunk programot, ami a bemenetről beolvasott A és B természetes számok esetén kiírja a ezek átlagát (1p), illetve az (A,A) és (B,B) koordinátájú pontok egymástól mért távolságát (1p).
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << (double) (a+b) / 2 << endl;
int dx = b - a;
int dy = b - a;
cout << sqrt(dx*dx + dy*dy) << endl;
return 0;
}
|
3.
Az f(1) = 1, f(2) = 3, illetve f(n) = f(n-1) + 2*f(n-2) képletekkel megadott sorozat első hat tagja 1, 3, 5, 11, 21, 43. A felhasználótól olvassunk be egy n pozitív egész számot, majd írjuk ki a sorozat első n darab tagja közül azokat, amik oszthatók 5-tel (1p).
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a = 1;
int b = 3;
for (int i = 1; i <= n; i++) {
if (a % 5 == 0)
cout << a << endl;
int uj = b + 2*a;
a = b;
b = uj;
}
return 0;
}
|
4.
Adott n, majd egy n darab természetes számból álló sorozat (0.5p a beolvasás). Határozzuk meg a legkisebb elemét (0.5p), a háromjegyű elemeinek darabszámát (1p) és azt, hogy milyen hosszú az a leghosszabb egymás melletti elemekből álló része, ami csak páros számokat tartalmaz (1p)!
Megoldás:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
int legkisebb = INT_MAX;
int hany_haromjegyu = 0;
int max_hossz = 0;
int akt_hossz = 0;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam < legkisebb) {
legkisebb = szam;
}
if (szam >= 100 && szam <= 999) {
hany_haromjegyu++;
}
if (szam % 2 == 0) {
akt_hossz++;
}
else { // páratlan
if (akt_hossz > max_hossz)
max_hossz = akt_hossz;
akt_hossz = 0;
}
}
// aktualizálunk a végén is
if (akt_hossz > max_hossz)
max_hossz = akt_hossz;
cout << "legkisebb elem: " << legkisebb << endl;
cout << "haromjegyuek darabszama: " << hany_haromjegyu << endl;
cout << "legnagyobb hossz: " << max_hossz << endl;
return 0;
}
|