Responsive image Boda Szilárd weblapja

Laborfeladat
1. Számítsuk ki és írjuk ki két szám legnagyobb közös osztóját, legkisebb közös többszörösét, szorzatát és összegét. A két számot egy "input.txt" fileból olvassuk be, ahol a két szám az első két sorban van


2. Adott egy "in.txt" file, amelynek első sorában egy N természetes szám van, s a következő N sorában más természetes számok.
Olvassuk be az N számot, majd hozzunk létre egy 1D tömböt a következő soron lévő elemekkel.
Keressük meg a tömb maximum és minimum elemét, majd alkossunk a kettőből egy számot, s írjuk ki egy "out.txt" fileba.




input.txt
  • N=6
  • 12
  • 42
  • 364
  • 42
  • 7
  • 18



output.txt

  • 3647

3. Hozzunk létre egy 1D tömböt, amely "n" hosszúságú, majd használva a rand függvényt, 1 és 1000 között adjunk értéket miden elemének.
Keressük meg a 3 legnagyobb elemet, majd ezek átlagát írjuk ki egy "eredmeny.txt" fileba.

Tömb
  • 2
  • 23
  • 364
  • 42
  • 71
  • 18
eredmeny.txt
  • 159



4. Oldjuk meg a 2 es feladatot tömbrendezés nélkül.


Pluszfeladatok:

1. Egy számsor elemét a sor helyi csúcsának nevezzük,




A bac.txt állomány egy, legalább kettő és legtöbb 106 természetes számból álló számsort tartalmaz. A számok a [0,103] intervallumból vannak, és egy-egy szóközzel vannak elválasztva. A képernyőre írassa ki egy-egy szóközzel elválasztva, az állományban megadott sor minden helyi csúcsát. Tervezzen a futási idő és a memóriahasználat szempontjából hatékony algoritmust.

bac.txt
  • 7 4 9 10 10 10 8 10 10 8 30
Képernyőre kiírt értékek
  • 7 9 10 10 10 30

Forrás: Érettségi 2019 III/3


2. A bac.txt állomány legkevesebb két és legtöbb 106 természetes számot tartalmaz a [0,103] intervallumból, a számok szóközzel vannak elválasztva egymástól. A sorozatnak legalább egy páros és legalább egy páratlan eleme van. Írassuk ki a képernyőre a sorozat tagjait, szóközzel elválasztva, úgy hogy a páratlan tagok a páros tagok előtt jelenjenek meg, és úgy a páratlan tagokból álló, mint a páros tagokból álló részsorozat elemei, növekvő sorrendben jelenjenek meg, ahogy a példa mutatja. Tervezzen a végrehajtási idő szempontjából hatékony algoritmust.

bac.txt
  • 12 2 3 1 2 5
Képernyőre kiírt értékek
  • 1 3 5 2 2 12

Forrás: Pótérettségi 2019 III/3


Megoldás az 1es feladathoz:


#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    //szukseges valtozok deklaralasa
    int a,b,x,y,lkkt;
    string sor;
    //a file deklaralasa, ahonnan a szamokat beolvassuk
    fstream inputfile("input.txt");
    //ha sikerult kinyitni a filet
    if(inputfile.is_open()){
        //olvasd ki az elso szamot
        inputfile >> a;
        //olvasd ki a masodik szamot
        inputfile >> b;
    }
    //mivel az lnko szamitasanal egymasbol kell kivonjuk a szamokat, ezert szukseg lesz cserevaltozokra
    x=a;
    y=b;
    //lnko algoritmus, a nagyobbol addig vonjuk ki a kisebbet, amig egyenloek nem lesznek
    while(x!=y){
        if(x>y){
           
x=x-y;
        } else {
    
y=y-x;
}
    }
//eredmenyek kiiratasa
    cout<<"A legnagyobb kozos oszto:"<<x<<endl;
    lkkt=(a*b)/x;
    cout<<"A legkisebb kozos tobszoros:"<<lkkt<<endl;
    p=a+b;
    cout<<"A ket szam osszege:"<<p<<endl;
    d=a*b;
    cout<<"A ket szam szorzata:"<<d;
   return 0;
}

Megoldott feladat:

1. Olvassunk be 2 számot s illesszük a második számot az első végére.

Bemenet
  • 121
  • 35
Kimenet
  • 12135


#include <iostream>

using namespace std;

int main()
{
    //szukseges valtozok deklaralasa
    int a,b, hatvany, temp, ujszam = 0;
    cout << "a=";     cin >> a;     cout << "b=";     cin >> b;     //megszamoljuk, hogy hany szamjegye van a masodik szamnak, de elotte lementjuk     temp = b;     while( temp > 0) {         //megszamoljuk, hogy 10 melyik hatvanyaval kell szorozni az elso szamot, hogy a masodikat egyszeruen hozzaadjuk         hatvany *= 10;         temp /= 10;     }     ujszam = a*hatvany + b;     cout >> ujszam;
   return 0;
}