Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
endurance Forumaš(ica)
Pridružen/a: 14. 01. 2009. (19:29:18) Postovi: (3)16
|
Postano: 22:15 ned, 18. 1. 2009 Naslov: problem sa funkcijom |
|
|
Opet imam bjesni zadatak za riješit:
Napišite program koji sa tastature učitava jedno polje od 10 cijelih brojeva iz segmenta [1, 100 000].
Nadalje, sa tastature učitavajte brojeve koje treba pronaći u polju te ispisujte je li traženi broj pronađen i
ako je, indeks na kojem se taj broj na alazi.
Traženje broja u polju implementirajte funkcijom sa sljedećim potpisom:
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
Funkcija vraća true ako je pronašla element TrazeniElement u polju Polje i u tom slučaju upisuje indeks iz polja na kojem je pronađen elemeent u Indeks.
U slučaju da TrazeniElement ne postoji u polju, funkcija vraća false
i u varijablu Indeks se niššta ne zapisuje.
U funkciji pretpostavite da je polje sortirano, te implementirajte binarno pretraživanje (to znači da je potrebno polje prije pretraživanja sortirati).
Za sad sam napravio ovo i ne znam kako ubacit indeks i složit funkciju, u biti teoretski znam ali nikak da dobijem da mi radi :evil:
#include <iostream>
using namespace std;
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
int main() {
//unos polja
int Polje[10];
cout << "Unesi broj (manji od 1 i veci od 100 000 nece biti unesen):" << endl;
for (int i = 0; i <=9; i++) {
do {
cout << "Unesi broj:" << endl;
cin >> Polje[i];
}
while((Polje[i] < 1) || (Polje[i] > 100000));
}
//sortiranje:
int i;
int j;
int pomocni;
for (i=0; i < BrojElemenata; i++) {
for (j=i+1; j< BrojElemenata; j++) {
if (Polje[j]<Polje[i]) {
pomocni = Polje[i];
Polje[i] = Polje[j];
Polje[j] = pomocni;
}
}
}
NadiElement();
return 0;
}
bool NadiElement(){
}
Nadam se da će mi netko znati pomoći :cry:
Opet imam bjesni zadatak za riješit:
Napišite program koji sa tastature učitava jedno polje od 10 cijelih brojeva iz segmenta [1, 100 000].
Nadalje, sa tastature učitavajte brojeve koje treba pronaći u polju te ispisujte je li traženi broj pronađen i
ako je, indeks na kojem se taj broj na alazi.
Traženje broja u polju implementirajte funkcijom sa sljedećim potpisom:
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
Funkcija vraća true ako je pronašla element TrazeniElement u polju Polje i u tom slučaju upisuje indeks iz polja na kojem je pronađen elemeent u Indeks.
U slučaju da TrazeniElement ne postoji u polju, funkcija vraća false
i u varijablu Indeks se niššta ne zapisuje.
U funkciji pretpostavite da je polje sortirano, te implementirajte binarno pretraživanje (to znači da je potrebno polje prije pretraživanja sortirati).
Za sad sam napravio ovo i ne znam kako ubacit indeks i složit funkciju, u biti teoretski znam ali nikak da dobijem da mi radi
#include <iostream>
using namespace std;
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
int main() {
//unos polja
int Polje[10];
cout << "Unesi broj (manji od 1 i veci od 100 000 nece biti unesen):" << endl;
for (int i = 0; i ⇐9; i++) {
do {
cout << "Unesi broj:" << endl;
cin >> Polje[i];
}
while((Polje[i] < 1) || (Polje[i] > 100000));
}
//sortiranje:
int i;
int j;
int pomocni;
for (i=0; i < BrojElemenata; i++) {
for (j=i+1; j< BrojElemenata; j++) {
if (Polje[j]<Polje[i]) {
pomocni = Polje[i];
Polje[i] = Polje[j];
Polje[j] = pomocni;
}
}
}
NadiElement();
return 0;
}
bool NadiElement(){
}
Nadam se da će mi netko znati pomoći
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 23:55 ned, 18. 1. 2009 Naslov: Re: problem sa funkcijom |
|
|
[quote="endurance"]Opet imam bjesni zadatak za riješit:[/quote]
Nije bijesan :D
Kao prvo, dobro bi bilo kod stavljat u code prozorčiće (ja ću ih sad stavit)
Popravit ću ti učitavanje i sortiranje
[code:1]
#include <iostream>
using namespace std;
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
int main() {
//unos polja
int Polje[10];
int x;
cout << "Unos brojeva, oni manji od 1 i veci od 100000 nece biti uneseni"<<endl;
for (int i = 0; i <=9; i++) {
int ucitan=0;
while( !ucitan)
{
cout << "Unesi broj:" << endl;
cin >> x;
if (x>=1 && x<=100000) { Polje[i]=x; ucitan=1; }
}
}
//sortiranje:
int i;
int j;
int pomocni;
for (i=0; i < 9; i++)
for (j=i+1; j< 10; j++)
if (Polje[j]<Polje[i])
{
pomocni = Polje[i];
Polje[i] = Polje[j];
Polje[j] = pomocni;
}
return 0;
}
bool NadiElement(){
}
[/code:1]
I sad hintovi za fju:
[quote="endurance"]U funkciji pretpostavite da je polje sortirano, te implementirajte binarno pretraživanje (to znači da je potrebno polje prije pretraživanja sortirati). [/quote]
Ova rečenica stvarno nema smisla. Pretp da je polje sortirano pa ga opet sortiraj. Dakle, to nije potrebno.
Fji ćeš poslat 4 elementa:
1. pointer na prvi element polja - u tvoj slučaju Polje.
2. brojElemenata - to je 10 tu kod tebe
3. koji element tražiš - to učitaš sa tipkovnice pa pošalješ fji
4. pointer na int na čiju ćeš adresu spremit index traženog elementa.
poziv bi trebo izgledat ovako:
[code:1]
int index;
int trazen;
bool postoji;
cout<<"Upisi broj: "<<endl;
cin>>trazen;
postoji = NadjiElement(Polje,10,trazen,&index);[/code:1]
Jedini "problem" je binarno traženje, al nije ni to teško, prouči materijale koje imaš... ideja je cijepati dio polja u kojem se traži... ako trebaš pomoć oko toga, reci :D
endurance (napisa): | Opet imam bjesni zadatak za riješit: |
Nije bijesan
Kao prvo, dobro bi bilo kod stavljat u code prozorčiće (ja ću ih sad stavit)
Popravit ću ti učitavanje i sortiranje
Kod: |
#include <iostream>
using namespace std;
bool NadiElement(const int *Polje, unsigned int BrojElemenata,
int TrazeniElement, unsigned int *Indeks);
int main() {
//unos polja
int Polje[10];
int x;
cout << "Unos brojeva, oni manji od 1 i veci od 100000 nece biti uneseni"<<endl;
for (int i = 0; i <=9; i++) {
int ucitan=0;
while( !ucitan)
{
cout << "Unesi broj:" << endl;
cin >> x;
if (x>=1 && x<=100000) { Polje[i]=x; ucitan=1; }
}
}
//sortiranje:
int i;
int j;
int pomocni;
for (i=0; i < 9; i++)
for (j=i+1; j< 10; j++)
if (Polje[j]<Polje[i])
{
pomocni = Polje[i];
Polje[i] = Polje[j];
Polje[j] = pomocni;
}
return 0;
}
bool NadiElement(){
}
|
I sad hintovi za fju:
endurance (napisa): | U funkciji pretpostavite da je polje sortirano, te implementirajte binarno pretraživanje (to znači da je potrebno polje prije pretraživanja sortirati). |
Ova rečenica stvarno nema smisla. Pretp da je polje sortirano pa ga opet sortiraj. Dakle, to nije potrebno.
Fji ćeš poslat 4 elementa:
1. pointer na prvi element polja - u tvoj slučaju Polje.
2. brojElemenata - to je 10 tu kod tebe
3. koji element tražiš - to učitaš sa tipkovnice pa pošalješ fji
4. pointer na int na čiju ćeš adresu spremit index traženog elementa.
poziv bi trebo izgledat ovako:
Kod: |
int index;
int trazen;
bool postoji;
cout<<"Upisi broj: "<<endl;
cin>>trazen;
postoji = NadjiElement(Polje,10,trazen,&index); |
Jedini "problem" je binarno traženje, al nije ni to teško, prouči materijale koje imaš... ideja je cijepati dio polja u kojem se traži... ako trebaš pomoć oko toga, reci
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 23:59 ned, 18. 1. 2009 Naslov: |
|
|
U cemu je tocno problem s funkcijom [tt]NadiElement()[/tt]? :-k Trazenje je - za pocetak - jedna [tt]for()[/tt] petlja (binarno je malo teze, ali slozi prvo obicno), a index vratis sa [tt]*Index = i[/tt] (ako si na mjestu [tt]i[/tt] nasao element). 8) Oboje je objasnjeno u zadnja dva poglavlja skripte iz Programiranja 1 (poglavlja o varijabilnim argumentima funkcija i o pretrazivanju nizova). :)
Kad ti to proradi, onda obicno trazenje zamijeni s binarnim (opet u navedenoj skripti, ako se ne varam, zadatak 11.28[i][/i]). 8)
U cemu je tocno problem s funkcijom NadiElement()? Trazenje je - za pocetak - jedna for() petlja (binarno je malo teze, ali slozi prvo obicno), a index vratis sa *Index = i (ako si na mjestu i nasao element). Oboje je objasnjeno u zadnja dva poglavlja skripte iz Programiranja 1 (poglavlja o varijabilnim argumentima funkcija i o pretrazivanju nizova).
Kad ti to proradi, onda obicno trazenje zamijeni s binarnim (opet u navedenoj skripti, ako se ne varam, zadatak 11.28).
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
root Forumaš(ica)
Pridružen/a: 28. 01. 2009. (00:07:39) Postovi: (2)16
|
Postano: 0:23 sri, 28. 1. 2009 Naslov: |
|
|
molio bih informaciju o skripti iz Programiranja 1 gdje nabaviti kopirati slinuti...a do onda bih molio dobre ljude da napisu kod za binarno pretrazivanje i objasne ako nije problem.usput imam i ja jedan bijesan zadatak ako ima zaiiinteresiranih da mi pokusa pomoci oko rijesavanja :).
Napišite program koji sa tastature učitava brojeve, sprema ih u tekstualnu datoteku te ispisuje aritmetičku
sredinu i standardnu devijaciju učitanih brojeva.
Postupak:
Postupak:
1. Učitavajte brojeve tipa double putem tipkovnice (jedan po jedan broj)
2. Svaki učitani broj zapišite u tekstualnu datoteku u zaseban redak
3. Istovremeno s učitavanjem računajte sumu brojeva SumaBrojeva i broj učitanih brojeva BrojUcitanihBrojeva
4. Sami odredite kako ćete prepoznati kraj učitavanja
repoznati
5. Na kraju učitavanja zatvorite datoteku
6. Izračunajte aritmetičku sredinu as:
as = SumaBrojeva / BrojUcitanihBrojeva
(Pazite na tipove podataka)
7. Ponovno otvorite datoteku kao ulaznu
8. Učitavajte brojeve iz datoteke jedan po jedan, ispisujte ih na ekran i izračunajte standardnu
devijaciju StandardnaDevijacija tih brojeva
Standardna devijacija skupa brojeva n1, n2, ..., nk se definira kao drugi korijen
aritmetičke sredine brojeva (n1-as)2, (n2-as) 2, (n3-as) 2, ..., (nk -as) 2, gdje je as gore
izračunata aritmetička sredina.
9. Zatvorite datoteku
10. Ispišite rezultate na konzolu, prema primjeru dijaloga.
molio bih informaciju o skripti iz Programiranja 1 gdje nabaviti kopirati slinuti...a do onda bih molio dobre ljude da napisu kod za binarno pretrazivanje i objasne ako nije problem.usput imam i ja jedan bijesan zadatak ako ima zaiiinteresiranih da mi pokusa pomoci oko rijesavanja .
Napišite program koji sa tastature učitava brojeve, sprema ih u tekstualnu datoteku te ispisuje aritmetičku
sredinu i standardnu devijaciju učitanih brojeva.
Postupak:
Postupak:
1. Učitavajte brojeve tipa double putem tipkovnice (jedan po jedan broj)
2. Svaki učitani broj zapišite u tekstualnu datoteku u zaseban redak
3. Istovremeno s učitavanjem računajte sumu brojeva SumaBrojeva i broj učitanih brojeva BrojUcitanihBrojeva
4. Sami odredite kako ćete prepoznati kraj učitavanja
repoznati
5. Na kraju učitavanja zatvorite datoteku
6. Izračunajte aritmetičku sredinu as:
as = SumaBrojeva / BrojUcitanihBrojeva
(Pazite na tipove podataka)
7. Ponovno otvorite datoteku kao ulaznu
8. Učitavajte brojeve iz datoteke jedan po jedan, ispisujte ih na ekran i izračunajte standardnu
devijaciju StandardnaDevijacija tih brojeva
Standardna devijacija skupa brojeva n1, n2, ..., nk se definira kao drugi korijen
aritmetičke sredine brojeva (n1-as)2, (n2-as) 2, (n3-as) 2, ..., (nk -as) 2, gdje je as gore
izračunata aritmetička sredina.
9. Zatvorite datoteku
10. Ispišite rezultate na konzolu, prema primjeru dijaloga.
|
|
[Vrh] |
|
kljuki Forumaš(ica)
Pridružen/a: 20. 10. 2005. (13:36:53) Postovi: (127)16
Spol:
Lokacija: hotel yorba
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 6:00 sri, 28. 1. 2009 Naslov: |
|
|
Sve što ti treba nalazi se :
[url=http://degiorgi.math.hr/prog1/materijali/p1-vjezbe.pdf]TU[/url]
[url=http://degiorgi.math.hr/prog2/materijali/p2-vjezbe.pdf]I TU[/url]
Prouči pa se vrati ako neće ići, makar ti je sve napisano kaj trebaš radit, samo slijedi postupak kak piše...
Sve što ti treba nalazi se :
TU
I TU
Prouči pa se vrati ako neće ići, makar ti je sve napisano kaj trebaš radit, samo slijedi postupak kak piše...
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
|
|
[Vrh] |
|
root Forumaš(ica)
Pridružen/a: 28. 01. 2009. (00:07:39) Postovi: (2)16
|
|
[Vrh] |
|
|