Algoritmusok 2
kiválogatás
Adott feltétel szerint kiválogatjuk egy adott lista elemeit és átrakjuk őket egy üres listába
Válogassuk ki a 4-nél nagyobb számokat!
1szamok = [ 3, 8, 2, 4, 7, 5, 1, 6]
2ujlista = []
3
4for szam in szamok:
5 if szam>4:
6 ujlista.append(szam)
7
8print('Eredeti lista:', szamok)
9print('kiválogatott lista:', ujlista)
10print('Nem megfelelő számok:', nemjo)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6 int szamok[] = {3, 8, 2, 4, 7, 5, 1, 6}; // fix tömb
7 vector<int> ujlista;
8
9 for (int szam : szamok) {
10 if (szam>4) {
11 ujlista.push_back(szam);
12 }
13 }
14
15 cout << "Eredeti lista: ";
16 for (int szam : szamok)
17 cout << szam << " ";
18 cout << endl;
19
20 cout << "Kiválogatott lista:: ";
21 for (int szam : ujlista)
22 cout << szam << " ";
23 cout << endl;
24
25 return 0;
26}
szétválogatás
Adott feltétel szerint kiválogatjuk egy adott lista elemeit és átrakjuk őket egy üres listába, a maradékot pedig átmásoljuk egy harmadik listába.
Válogassuk ki a 4-nél nagyobb számokat!
1szamok = [ 3, 8, 2, 4, 7, 5, 1, 6]
2ujlista = []
3nemjo = []
4
5for szam in szamok:
6 if szam>4:
7 ujlista.append(szam)
8 else:
9 nemjo.append(szam)
10
11print('Eredeti lista:', szamok)
12print('kiválogatott lista:', ujlista)
13print('Nem megfelelő számok:', nemjo)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6 int szamok[] = {3, 8, 2, 4, 7, 5, 1, 6}; // fix tömb
7 vector<int> ujlista;
8 vector<int> nemjo;
9
10 for (int szam : szamok) {
11 if (szam>4) {
12 ujlista.push_back(szam);
13 }
14 else {
15 nemjo.push_back(szam);
16 }
17 }
18
19 cout << "Eredeti lista: ";
20 for (int szam : szamok)
21 cout << szam << " ";
22 cout << endl;
23
24 cout << "Kiválogatott lista:: ";
25 for (int szam : ujlista)
26 cout << szam << " ";
27 cout << endl;
28
29 cout << "Nem megfelelő számok:: ";
30 for (int szam : nemjo)
31 cout << szam << " ";
32 cout << endl;
33
34 return 0;
35}
Halmazok uniója
Adott két halmaz és mindkét halmaz minden elemét áttesszük egy harmadikba
Első lépésként az A halmaz minden elemét betesszük az unio-ba, majd a B halmaznak csak azokat az elemeit tesszük be, amelyek még nincsenek az unio-ban.
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3
4UNIO = A[:] # ezzel készítünk másolatot
5
6for elem in B:
7 if elem not in UNIO:
8 UNIO.append(elem)
9
10print('Az A lista elemei:', A)
11print('A B lista elemei:', B)
12print('Az unio lista elemei:', UNIO)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6 int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7 int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8 vector<int> UNIO;
9
10 for (int elem : A) {
11 UNIO.push_back(elem);
12 }
13
14 for (int elem : B) {
15 bool bennevan= false;
16 for (int u : UNIO) {
17 if (elem == u) {
18 bennevan=true;
19 break;
20 }
21 }
22 if (bennevan==false){
23 UNIO.push_back(elem);
24 }
25 }
26
27
28 cout << "Az A lista elemei: ";
29 for (int elem : A)
30 cout << elem << " ";
31 cout << endl;
32
33 cout << "A B lista elemei: ";
34 for (int elem : B)
35 cout << elem << " ";
36 cout << endl;
37
38 cout << "Az unio lista elemei: ";
39 for (int elem : UNIO)
40 cout << elem << " ";
41 cout << endl;
42
43 return 0;
44}
Halmazok metszete
Adott két halmaz és a mindkét halmazban szereplő (közös) elemeket áttesszük egy harmadikba
Ciklussal végigmegyünk az egyik halmaz elemein és a metszet-be tesszük azokat az elemeket, amelyek a másik halmazban is szerepelnek.
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3METSZET = []
4
5for elem in A:
6 if elem in B:
7 METSZET.append(elem)
8
9print('Az A lista elemei:', A)
10print('A B lista elemei:', B)
11print('A metszet lista elemei:', METSZET)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6 int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7 int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8 vector<int> METSZET;
9
10 for (int elem : A) {
11 for (int b : A) {
12 if (elem == b) {
13 METSZET.push_back(elem);
14 break;
15 }
16 }
17 }
18
19 cout << "Az A lista elemei: ";
20 for (int elem : A)
21 cout << elem << " ";
22 cout << endl;
23
24 cout << "A B lista elemei: ";
25 for (int elem : B)
26 cout << elem << " ";
27 cout << endl;
28
29 cout << "A metszet lista elemei: ";
30 for (int elem : METSZET)
31 cout << elem << " ";
32 cout << endl;
33
34 return 0;
35}
Halmazok különbsége
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3KULONBSEG = []
4
5for elem in A:
6 if elem not in B:
7 KULONBSEG.append(elem)
8
9print('Az A lista elemei:', A)
10print('A B lista elemei:', B)
11print('A kulonbseg lista elemei:', KULONBSEG)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6 int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7 int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8 vector<int> KULONBSEG;
9
10 for (int elem : A) {
11 bool bennevan= false;
12 for (int b : B) {
13 if (elem == b) {
14 bennevan=true;
15 break;
16 }
17 if (bennevan==false){
18 UNIO.push_back(elem);
19 }
20 }
21 }
22
23
24 cout << "Az A lista elemei: ";
25 for (int elem : A)
26 cout << elem << " ";
27 cout << endl;
28
29 cout << "A B lista elemei: ";
30 for (int elem : B)
31 cout << elem << " ";
32 cout << endl;
33
34 cout << "A kulonbseg lista elemei: ";
35 for (int elem : KULONBSEG)
36 cout << elem << " ";
37 cout << endl;
38
39 return 0;
40}