Osnovi na programiranje 3
![]() |
![]() |
![]() |
Title of test:![]() Osnovi na programiranje 3 Description: Pokazuvaci, Strukturi,Datoteki i Listi |




New Comment |
---|
NO RECORDS |
Proben e-test. Pred Vas se naogja uste eden e-test od temite Pokazuvaci, Strukturi,Datoteki i Listi. Koristete po potreba list i penkalo. Najgolem del od prasanjata sodrzat algoritmi. Srekno. Napraveno od Darko Martinovik. Koi od slednite inicijalizacii e/se validna/dni za slednata struktura: struct identifikacija { char ime[20]; char prezime[20]; }; struct chovek { char matbr[14]; identifikacija podatoci; int plata; };. chovek c={ "12345" , "Darko" , "Martinovik" , 15000 } ;. chovek c={ "12345" , "Darko" , "Martinovik" } ;. chovek c={ "12345" , { "Darko" , "Martinovik" } , 15000 } ;. chovek c={ "12345" , { "Darko" } , 15000 } ;. chovek c={ { "12345" , "Darko" } , "Martinovik" , 15000 } ;. chovek c={ "12345" , "Darko" , "Martinovik" , "15000" } ;. chovek c={ 12345 , "Darko" , "Martinovik" , 15000 } ;. Koi od slednive iskazi se tocni koga ke se napise sledniot kod vo C++ int p=30; int *pok=&p,*pok2; pok2 = new int;. Promenlivite pok i pok2 se pokazuvaci. Novata dinamicka promenliva, sto ja sozdava pok2 se skladira vo stack memorijata. Novata dinamicka promenliva, sto ja sozdava pok2 se skladira vo heap memorijata. Pokazuvacite pok i pok2 se promenlivi koi sodrzat adresi na memoriski lokacii od heap memorijata. Pokazuvacite pok i pok2 se promenlivi koi sodrzat adresi na memoriski lokacii od stack memorijata. Do promenlivata p mozeme da pristapime preku pokazuvacot pok. Koi od slednite kodovi vo C++ nemaat sintaksicki greski (ako se tocni stiklirate go kvadratceto pred kodot). long p=3; long *pok; pok=&p;. float p=3.1; double *pok; pok=&p;. char p[10]; char *pok; pok=&p;. int p[10]; int *pok; pok=&p;. int p=3; void *pok; pok=&p;. int p=3,*pok=&p; int* *pok2=&pok;. double p=3.1; float *pok; pok=&p;. Sto ke se ispecati ako se napise sledniot kod: int a=3; int *pok=&a; int **pok2=&pok; a=a+*pok+**pok2; cout<<a;. 3. 6. 9. nema da ispecati nisto bidejki kodot ima greski. Sto ke se ispecati ako se napise sledniot kod: char a[ ]="PMF"; char *p; p=&a[0]; ++(++*p); *p++; ++*p ++; *p=*p-4; cout<<a;. PMF. QNF. Ke javi sintaksicka greska. RNF. RNB. Sto ke pecati slednata programa: void f(int *p) { *p=3; } void main() { int a=5; int *p=&a; f(p); cout<<a; }. 5. 3. Sto pravi sledniot kod: int *p[100];. se kreira niza od 100 pokazuvaci. se kreira niza od sto elementi, i pokazuvacot pokazuva na prviot element. se kreira niza od sto elementi i kon sekoj element se kreira nov pokazuvac. Koi od slednite navedeni kodovi mozat da se dodadat na naznacenoto mesto za da programata nema greski: struct identifikacija { char ime[20]; }; structchovek { identifikacija podatoci; } c1; chovek *pok=&c1; cout<<"Vnesi go imeto na covekot: "; <<tuka treba da se dodade kod>>. cin>>(*pok).ime;. cin>>(*pok).podatoci.ime;. cin>> pok -> podatoci.ime;. cin>> pok.podatoci -> ime;. cin>>(*pok.podatoci).ime;. cin>> (pok -> podatoci).ime;. Koj od slednive kodovi e/se tocen/tocni: ofstream dat; dat.open("in.txt"); dat<<"D";. ofstream dat; int a; dat.open("in.txt"); dat>>a;. ofstream dat; dat.seekp(1); dat<<"D";. ofstream dat; dat.seekg(1); dat<<"D";. Ako vo datotekata in.txt e napisano slednoto 1 11 2 23 34 10 Sto ke ispecati sledniot kod ifstream dat; dat.open("in.txt"); int a,i; char b; for (i=0;i<3;i++) { dat>>a; dat>>b; dat.seekg(i,ios::cur); cout<<a<<" "<<b<<" "; }. 1 11 2 23 34 10. 1 1 1 2 23 3. 1 11 11 23 34 10. 1 1 11 2 23 34. Sto ke ispecati sledniot kod ako datotekata "in.txt" e: 1 2 3 4 5 6 7 8 9 10 ifstream dat; int a,b,c,z=0; dat.open("in.txt"); while (!dat.eof()) { dat>>a; dat.seekg(2,ios::cur); dat>>b; dat.seekg(-1,ios::end); dat>>c; z=z+a+b+c; } cout<<z;. 4. 14. 55. ke javi greska pri izvrsuvanje. Sto e tocno za listite?. Adresata na prviot jazol e zacuvana vo drug pokazuvac (anker). Sekoja dvostrano povrzana lista treba da ima barem eden pokazuvac. Kaj ednostrano povrzana lista e dozvoleno dvizenje niz listata vo dvata pravci. Za da dojdeme do petiot jazol od dinamickata lista go pisuvame imeto na ankerot i vo sredni zagradi pisuvame [4]. Sto raboti slednava funkcija vo C++: (n e broj na jazli) void f(jazol *prv,int n) { jazol *pom,*pom2; pom=prv; int i,j; for (i=0;i<n-1;i++) { pom2=pom; for (j=i+1;j<n;j++) { pom2=pom2->pok; if (pom2->vrednost<pom->vrednost) { int temp; temp=pom->vrednost; pom->vrednost=pom2->vrednost; pom2->vrednost=temp; } } pom=pom->pok; } }. dodava uste eden jazol vo listata. ja sortira listata. naogja koj jazol e najmal i go stava na prvo mesto. naogja koj jazol e najmal i go stava na posledno mesto. dodava n-jazli vo listata. Dadena ni e ednostrano povrzatana lista. Koi iskazi se tocni dokolku ja smenime vrednosta na ankerot vo NULL: Mozeme da se dvizime niz listata. Listata e izbrisana od memorijata. Listata postoi vo memorijata no ne mozeme da pristapime do nea. Ne mozeme da dojdeme do prviot jazol, no mozeme do vtoriot i site ostanati jazli. Jazlite vo listata ke bidat nepromeneti. Koi od slednite iskazi se tocni za apstraktni tipovi na podatoci: Tie se prethodno napraveni tipovi i niv mozeme da gi koristime. Site algoritmi mozat da se resat so koristenje na bilo koj apstrakten tip. Strategijata na rabota na stekot e FIFO (First-In, First Out). Strategijata na rabota na redot e FIFO (First-In, First Out). Sto ke ispecati programata, ako se napise sledniot kod: char a[]="efghi"; char *p=&a[0]; for (int i=0;i<4;i++) { *p-=i; *p++; } cout<<a;. nisto, bidejki ima greska. ke ispecati nekoi nepotrebni znaci. eeeei. defgh. efghi. Sto ke ispecati programata ako se napise kodot: int a=1; int *p=&a; int **p2=&p; **p2=**p2+*p+ ++*p; cout<<a;. nisto, bidejki ima greska. 1. 6. 4. 3. Sto ke ispecati sledniot kod struct covek { int vozrast; } covek a; a.vozrast=10; a.vozrast=a.vozrast*2; cout<<a.vozrast;. nisto, bidejki kodot ima greska. 10. 20. 12. Sto pravi sledniot kod: (pokazuvacot prv e ankerot na listata, jazol e strukturata) void DodadiNaKraj (jazol *&prv) { jazol *tekoven; tekoven = new jazol; cin>>tekoven->podatok; tekoven->sleden=prv; prv=tekoven; tekoven=new jazol; delete tekoven; }. Dodava jazol na pocetokot na listata. Dodava jazol na krajot na listata. Brise jazol na pocetokot na listata. Brise jazol na krajot na listata. Koi od slednive iskazi se tocni za sledniot kod: ifstream dat; dat.open("Datoteka");. Logickoto ime na datotekata e Datoteka. Fizickoto ime na datotekata e dat. Datotekata dat e vlezna datoteka, vo koja mozeme da zapisuvame. Logickoto i fizickoto ime na datotekata se isti. Od datotekata dat, dokolku postoi, mozeme da vcituvame podatoci. Dali sledniot kod e tocen: ifstream dat("Error.txt"); ofstream dat2("Error.txt");. Da. Ne. Sto e tocno za izleznite datoteki: Ako datotekata postoi, togas se kreira nova datoteka so istoto ime. Ako datotekata postoi, starata sodrzina ne se brise od datotekata. Ako datotekata postoi, novata sodrzina od programata se dodava na starata sodrzina vo datotekata. Ne smee da postoi datoteka so isto ime. Ako datotekata postoi, za dodavanje na krajot na datotekata se koristi ios::app;. Ova e mozebi najteskoto prasanje i nosi najmnogu poeni. Dokolku e tocen kodot stikliraj go kvadratceto: char a[]="PMF"; char *p=a;. char a[]="PMF"; char *p=&a;. char a; char *p; p=&a[0];. int a; int *p; *p=&a;. Sto ke se ispecati ako se napise sledniot kod: int b=13,a=5; void funkcija(int *pok) { *pok=3; pok=&b; } void main() { int *pok=&a; funkcija(pok); cout<<*pok; }. 3. 5. 13. nisto, bidejki kodot ima greska. Go resi testot. Go resi testot.Sepak ova bese samo eden proben test. Ne se razocaruvaj od rezultatite bidejki prasanjata bea dosta teski. Klikni Continue za da go vidis rezultatot od testiranjeto. Napraveno od Darko Martinovik. |