#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
char *filename;
void Kiir(char *fn) // kiír függvény
{
int n;
int negyzetszam;
ofstream ki;
do
{
cout << " Kerem adja meg n parameter erteket! (n>0) " << endl;
cin >> n;
}
while (n < 1);
ki.open(fn, ios::binary);
if (!ki)
{
cerr << "Hiba a file letrehozasa kozben"<< endl;
return;
}
for (int i=1; i<n+1; i++)
{
negyzetszam = i*i;
ki.write((char*)&negyzetszam, sizeof(negyzetszam));
}
ki.close();
};
int Olvas(char * fn) // olvas függvény
{
ifstream be;
int negyzetszam;
int db=0;
be.open (fn, ios::binary);
if (!be)
{
cerr << "Hiba a file megnyitasa kozben" << endl;
return 1;
}
cout << "A negyzetszamok: " <<endl;
while (!be.eof())
{
be.read((char*)&negyzetszam, sizeof(negyzetszam));
if (!be.eof())
{
db++;
cout << setw(5) <<negyzetszam << endl;
}
}
cout << endl;
be.close();
return db;
}
int Paros(char*fn) // páros függvény
{
ifstream be;
int negyzetszam;
int db=0;
be.open(fn, ios::binary);
if (!be)
{
cerr << "Hiba a file megnyitasa kozben" <<endl;
return 1;
}
cout << "Ezek kozul parosok:" << endl;
while (!be.eof())
{
be.read(( char*)&negyzetszam, sizeof(negyzetszam));
if (!be.eof())
{
if (negyzetszam%2 == 0)
{
db++;
cout << negyzetszam << endl ;
}
}
}
cout << endl << "Osszesen a parosok darabszama: " << db << " db" << endl;
be.close();
return db;
}
double Atlag (char* fn) // átlag függvény
{
ifstream be;
int negyzetszam;
double osszeg=0;
int db=0;
be.open(fn, ios::binary);
if (!be)
{
cerr << "Hiba a file megnyitasa kozben" << endl;
return 1;
}
while (!be.eof())
{
be.read((char*)&negyzetszam, sizeof(negyzetszam));
if (!be.eof())
{
osszeg = osszeg + negyzetszam;
db++;
}
}
return double(osszeg*100)/db;
be.close();
}
int Ketjegyu(char*fn) // kétjegyü függvény
{
ifstream be;
int negyzetszam;
int db=0;
be.open(fn, ios::binary);
if (!be)
{
cerr << "Hiba a file megnyitasa kozben" <<endl;
return 1;
}
cout << "Ezek kozul ketjegyu: " << endl;
while (!be.eof())
{
be.read(( char*)&negyzetszam, sizeof(negyzetszam));
if (!be.eof())
{
if (negyzetszam<100 && negyzetszam>9)
{
db++;
cout << negyzetszam << endl;
}
}
}
cout << endl << "Osszesen a ketjegyu darabszama: " << db << " db" << endl;
be.close();
return db;
}
int main(int argc, char *argv[]) // Fő rész
{
if(argc>1)
{
filename = argv[1];
cout << "A program a billentyuzetrol megadott elso n darab negyzetszamot irja ki." << endl;
cout << "A(z) " << filename << " nevu binaris allomanyba. " << endl;
Kiir(filename);
Olvas(filename);
Paros(filename);
cout << "A szamok atlaga: " << double(Atlag(filename)/100) << endl << endl << endl;
Ketjegyu(filename);
}
else
{
cout << "A program futtatasahoz adjon meg parameterkent egy filenevet. " << endl << endl;
}
system("Pause");
return 0;
}
programozás zh
2011.05.20. 20:53A bejegyzés trackback címe:
https://bastille-oregerry.blog.hu/api/trackback/id/tr982920049
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Nincsenek hozzászólások.