Užduotis:
20. Parašyti programą su objektais, kurių metodai:
- 1. Duomenų faile ieško užsiduoto žodžio ir išveda eilutę, kurioje rastas tas žodis.
- 2. Kopijuoja duomenų failą, išmesdamas tarpus tarp žodžių.
- 3. Apskaičiuojamas programos vykdymo laikas (panagrinėti time.h )
- 4. Visi rezultatai išvedami į ekraną ir rezultatų failą.
O toliau programos kodas:
Programą sudaro, dvi dalys: pagrindine.cpp ir klase.h
pagrindine.cpp:
-
#include <iostream .h>
-
#include <fstream .h>
-
#include <string .h>
-
#include <time .h>
-
#include "klase.h"
-
-
-
-
main() {
-
-
kl t; //klases x sukurimas
-
-
//laiko parametru aprasymas
-
time_t start, finish;
-
double visas_laikas;
-
time( &start ); // issaugos pradzios laikas
-
-
//laikinai reikalingi kintamieji
-
int l=0;
-
int i=0;
-
int k=0;
-
int j=0;
-
int c=0;
-
-
-
//kintamieji prilyginami nuliui
-
t.countzodziu=0;
-
t.counteiluciu=0;
-
t.z1=0;
-
t.n1=0;
-
t.c();
-
-
//ivedimo,isvedimo srautai
-
ofstream R("Rezul.txt",ios::out);
-
ofstream R2("Rezul.txt",ios::app);
-
ifstream T("Duom.txt",ios::in);
-
ifstream N("Duom.txt",ios::in);
-
ifstream X("Duom.txt",ios::in);
-
-
//pradinis tekstas
-
cout< <"PRADINIS TEKSTAS:"<<endl<<endl;
-
R<<"PRADINIS TEKSTAS:"<<endl<<endl;
-
-
while(!T.eof())
-
{
-
T.getline(t.A,256);
-
cout<<t.A<<endl;
-
R<<t.A<<endl;
-
}
-
-
-
//ieskomo zodzio ivedimas
-
cout<<endl<<"Iveskite norima zodi:"<<endl;
-
cin>>t.B;
-
-
//skaiciuojama, kelintas yra ieskomas zodis
-
while(!N.eof() && strcmp(t.B,t.C))
-
{
-
N>>t.C;
-
k++;
-
if (!strcmp(t.B,t.C)) l++;
-
}
-
-
//i E masyva irasomas visas tekstas po 1 simboli ir ismetami tarpai
-
while(!X.eof())
-
{
-
t.E[j]=X.get();
-
t.tarpas(j);
-
j++;
-
}
-
-
//patikrinimas, ar yra ieskomas zodis
-
if (l==0) cout< <endl<<"Tokio zodzio nera"<<endl;
-
else {
-
-
//jei yra,tai atliekama pagr. programa
-
while (i<j && c<(k-1))
-
{
-
if (t.enter(i)) c=t.doenter(c);
-
else
-
{
-
if (t.space(i)) c++;
-
}
-
i++;
-
}
-
-
//rezultatu isvedimas i ekrana ir i faila
-
cout<<endl<<"Zodis "<< t.B <<" yra "<< t.n1+1 <<" eiluteje"<<endl<<endl;
-
R<<endl<<"Zodis "<< t.B <<" yra "<< t.n1+1 <<" eiluteje"<<endl<<endl;
-
cout<<"TEKSTAS BE TARPU:"<<endl<<endl;
-
R<<"TEKSTAS BE TARPU:"<<endl<<endl;
-
-
t.isvedimas();
-
}
-
-
//skaicioujamas laikas,kuris praejo,dirbant su programa
-
time( &finish );
-
visas_laikas = difftime( finish, start );
-
//rezultatas isvedamas i ekrana ir i faila
-
cout<<endl<<"Programa dirbo "<<visas_laikas<<" sekundes (-iu)"<<endl;
-
R2<<endl<<"Programa dirbo "<<visas_laikas<<" sekundes (-iu)"<<endl;
-
-
-
//srautai uzdaromi
-
R2.close();
-
R.close();
-
T.close();
-
N.close();
-
X.close();
-
return 0;
-
}
klase.h
-
//klases aprasymas
-
class kl
-
{
-
//klases kintamuju aprasymas
-
public :
-
char *A;
-
char *B;
-
char *C;
-
char *E;
-
int countzodziu;
-
int counteiluciu;
-
int z1;
-
int n1;
-
void c()
-
{count = 0;}
-
private: //privatus kintamasis ir masyvas
-
int count;
-
char *NEW;
-
//klases funkciju aprasymas
-
public:
-
kl ();
-
bool enter (int i); // ar simbolis reiskia nauja eilute
-
bool space (int i); // ar tai tarpo simbolis
-
int doenter (int c); // priskaiciuoja eilute, kol bus surastas mum reikalingas zodis
-
void tarpas(int i); // perkelia teksta is vieno masyvo i kita, ismesdama tarpus
-
void isvedimas();
-
};
-
-
-
//klases funkciju detalizacija
-
-
kl::kl ()
-
{
-
A = new char[256];
-
B = new char[256];
-
C = new char[256];
-
E = new char[1024];
-
NEW = new char[1024];
-
}
-
-
void kl::tarpas(int i)
-
{
-
if (E[i]!=32)
-
{
-
NEW[count]=E[i];
-
count++;}
-
}
-
-
void kl::isvedimas()
-
{
-
int i;
-
ofstream OUT("Rezul.txt",ios::app);
-
for(i=0;i<count;i++)
-
{
-
cout<<NEW[i];
-
OUT<<NEW[i];
-
}
-
cout<<endl<<endl;
-
OUT<<endl;
-
OUT.close();
-
}
-
-
-
bool kl::enter (int i)
-
{
-
if (E[i]==10) return 1;
-
else return 0;
-
}
-
-
bool kl::space (int i)
-
{
-
if (E[i]==32) return 1;
-
else return 0;
-
}
-
-
-
int kl::doenter (int c)
-
{
-
n1++;
-
c++;
-
return c;
-
}
Ir failas duom.txt:
Duomenu faile iesko uzsiduoto zodzio ir isveda eilute, kurioje rastas tas zodis.
Kopijuoja duomenu faila, ismesdamas tarpus tarp zodziu.
Apskaiciuojamas programos vykdymo laikas (panagrineti time.h )
Visi rezultatai isvedami i ekrana ir rezultatu faila.
Darbo pabaigoje sukuriamas rezul.txt
20. Parasyti programa su objektais, kuriu metodai:
Duomenu faile iesko uzsiduoto zodzio ir isveda eilute, kurioje rastas tas zodis.
Kopijuoja duomenu faila, ismesdamas tarpus tarp zodziu.
Apskaiciuojamas programos vykdymo laikas (panagrineti time.h )
Visi rezultatai isvedami i ekrana ir rezultatu faila.
Zodis laikas yra 4 eiluteje
TEKSTAS BE TARPU:
20.Parasytiprogramasuobjektais,kuriumetodai:
Duomenufaileieskouzsiduotozodzioirisvedaeilute,kuriojerastastaszodis.
Kopijuojaduomenufaila,ismesdamastarpustarpzodziu.
Apskaiciuojamasprogramosvykdymolaikas(panagrinetitime.h)
Visirezultataiisvedamiiekranairrezultatufaila.
Programa dirbo 9 sekundes (-iu)
O seube ;O
:P o kazkam is to atsiskaityt reikia :P
Na bet tu bent supranti kas čia parašyta, o man tai čia panašiai kaip vokiečių ;D
kaip mano destytojas sakytu: “Susikime cikliuka”..
susukime*
elementari uzduotis, bet ciklu tai daugoka :D manau dabar visai kitaip isspresciau sita uzduoti
Gal kas turit 16 uzduoties koda labai reikia! :)
na, cia jau labai senai buvo :D nemanau, kad dar kas issaugojo ;) megink pagal sita rasyti ;)