Responsive image Boda Szilárd weblapja

Laborfeladatok

1. Olvassuk be az összes számot egy "input.txt" fileból, határozzuk meg, hogy az illető számok pallindrómok-e, s írjuk ki egy "output.txt" fileba a számot,
s hogy pallindróm, vagy nem pallindróm. Minden szám külön sorban található az input fileban.
Megoldás:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{

    //szukseges valtozok deklaralasa
    int v[100],m[100],i=0,n,k,a;
    //input file deklaralasa - az ifstream azt jelenti, hogy csak olvasni tudunk belole
    ifstream file("input.txt");
    //ha sikerult megnyitni a filet
    if(file.is_open())
    {
        //olvassuk be soronkent a line valtozoba
        while(file >> v[i])
        {
            //noveljuk az i erteket - ez fogja szamolni, hogy hany erteket olvastunk be
            i++;
        }
        //input file bezarasa
        file.close();
    }
    else
    {
        cout<<"nem tudtam megnyitni";
    }
    //lementjuk a beolvasott valtozok szamat,
    n=i;
    for (i=0; i<n; i++)
    {
        a=v[i];
        m[i]=0;
        //a szamot lebontjuk szamjegyekre s mentjuk az m[i] ben
        while (a>0)
        {
            k=a%10;
            m[i]=m[i]*10+k;
            a=a/10;
        }
    }

    //output file deklaralasa - az ofstream akkor is letrehozza a filet, ha az addig nem letezett
    ofstream ofile;
    ofile.open("output.txt");
    for (i=0; i<n; i++)
    {
        //ha a ket szam a tombokben egyezik, akkor palindromot fog kiirni az output file ba, ha nem, akkor azt, hogy nem palindrom
        if (v[i]==m[i])
        {
            ofile << m[i] << " palindrom " << endl;
        }
        else
        {
            ofile << m[i] << " nem palindrom" << endl;
        }
    }
    //output file bezarasa
    ofile.close();
    return 0;
}


Pluszfeladat

1. A bac.txt állomány egy sorozatot tartalmaz legtöbb 106 különböző természetes számmal a [0,109] intervallumból. A számok egy-egy szóközzel vannak elválasztva.
Határozza meg a két legnagyobb páros elemet a sorozatból, amelyek előtt csak három páratlan elem található. A meghatározott elemeket írassa ki a képernyőre szigorúan növekvő sorrendben, egy-egy szóközzel elválasztva, abban az esetben, ha a sorozatban nem létezik két ilyen elem, a képernyőre a Nu exista üzenetet írassa ki. A kért értékek meghatározására használjon hatékony algoritmust úgy a felhasznált memória, mint a futási idő szempontjából.
Példa: ha az állomány a következő számokat tartalmazza


bac.txt
  • 4 3 5 312 27 30 14 212 11 15 17 400



Képernyő
  • 30 212

(4 előtt 0 páratlan szám található, 312 előtt 2 páratlan szám található, 30, 14 és 212 előtt 3 páratlan szám található, a 400 előtt 6 páratlan szám található; a 30, 14 és 212 számok közül a 30 és a 212 a legnagyobbak). a) Írja le saját szavaival a használt algoritmust és indokolja annak hatékonyságát. (4p.) b) Írja meg az előbb leírt algoritmusnak megfelelő C/C++ programot.

Forrás: 2016 Pótérettségi III/4

Házi feladat:
1. Adott egy "input.txt" file, amelyben egymástól space el elválasztva természetes számok vannak. (maximum 106 szám a [0,106] intervallumból.
Olvassuk be a számokat, majd írjuk ki a prímeket egy prim.txt, a pallindrómokat egy pallindrom.out s a tökéleteseket egy tokeletes.dat fileba.


input.txt
  • 6 8 10 12 14 16 13 22 24 88 56 28



prim.txt
  • 13

pallindrom.out
  • 6 8 22 88



tokeletes.dat
  • 6 28

Beküldési határidő
2019 szeptember 25, 23:59, az ezután küldött házik 4 esek lesznek, ha tökéletesek, 1 ha nem.
A házi elnevezése: H01_Pelda_Bela.cpp, Pelda Bela helyett az aktuális vezeték és keresztnévvel.
Ne legyenek benne ékezetek, üres helyek, vagy egyéb írásjelek, stb.!
Azoknál a háziknál, amelyek kísértetiesen hasonlítanak (másolás. ugyanonnan inspirálódtak, stb,)
mindkettőnek 1 es jár.
Így kell átnevezni