Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.711.902
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
username kaže...

Evo radim jedan zadatak:

...

Ništa se ne događa, pojavi mi se cmd prozor, ukucam broj i nakon toga izađe... Može pomoć molim vas?

 

Sve je u redu, jedino jos dodaj printf-ove u case 0 i case 3, tako da se vidi koji je to broj S.

Ako koristis Code::Blocks on ce ti sam zastopati prozor da se ne ugasi, ako ne koristis C::B, dodaj recimo getchar() na kraju, on ce cekati unos varijable pa ce ti zastopati prozor. Ili otvori cmd, navigiraj do izvrsne datoteke i pokreni ju iz cmd-a. Jer inace program tebe nece cekati da ti vidis ispis, on je svoje obavio i gasi se.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Da li je moguće proslijediti cijelu listu kao parametar funcije(neke vlastite) i (ukoliko je moguće) može sintaksta jer ne uspjevam ništa nać na netu :)

 
0 0 hvala 0
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

Da li je moguće proslijediti cijelu listu kao parametar funcije(neke vlastite) i (ukoliko je moguće) može sintaksta jer ne uspjevam ništa nać na netu :)

Što misliš pod listom?

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

evo uspio sam s  " *&imeliste " 

 

a mislio sam na obicnu listu integera:

int lista[10];

 

funkcija( ??? );

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

evo uspio sam s  " *&imeliste " 

 

a mislio sam na obicnu listu integera:

int lista[10];

 

funkcija( ??? );

To nije lista, to je obican array. Mozes ovako, recimo:

void ispisiArray(int *intArray)
{
    for (int i(0); i < 5; ++i)
    {
        std::cout << intArray[i] << std::endl;
    }
}

 

U mainu pozivas funkciju ovako:

int main()
{
    int array[5] = {1, 2, 3, 4, 5}
    ispisiArray(array);

    return 0;
}

 
Ili:

void ispisiArray(int intArray[])
{
    for (int i(0); i < 5; ++i)
    {
        std::cout << intArray[i] << std::endl;
    }
}
int main()
{
    int array[5] = {1, 2, 3, 4, 5}
    ispisiArray(array);

    return 0;
}

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Instalirao sam VB 2012 i kad napišem kod i kad kliknem na build pojavi se greška:"The system cannot find the file specified". WTF? Projekt sam spremio u folder na desktopu i znam da je tamo, stvarno ne razumijem ovu grešku...

When all else fails - crowbar the fucker
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

I kakve to veze ima sa C++om? Nadam se da ne probaš Cpp kôd pokrećati u Visual Basic.NET-u?

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

I kakve to veze ima sa C++om? Nadam se da ne probaš Cpp kôd pokrećati u Visual Basic.NET-u?

Ima veze s C++ jer kod pišem u C++.

When all else fails - crowbar the fucker
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
username kaže...
royalhero kaže...

I kakve to veze ima sa C++om? Nadam se da ne probaš Cpp kôd pokrećati u Visual Basic.NET-u?

Ima veze s C++ jer kod pišem u C++.

 Zezas se sa nama? C++ kôd kompajliras u Visual Basic-u?

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

 Zezas se sa nama? C++ kôd kompajliras u Visual Basic-u?

visual studio

When all else fails - crowbar the fucker
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
username kaže...

 Zezas se sa nama? C++ kôd kompajliras u Visual Basic-u?

visual studio

Šta gore pričaš Visual Basic? Koju verziju Visual Studia imaš, ako je Professional ili Ultimate idi na Control Panel -> Add/Remove Programs i izbriši ga te odi na MS-ove stranice i skini Visual C++ 2010 Express ili Visual Studio for Desktop 2012.

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...
username kaže...

 Zezas se sa nama? C++ kôd kompajliras u Visual Basic-u?

visual studio

Šta gore pričaš Visual Basic? Koju verziju Visual Studia imaš, ako je Professional ili Ultimate idi na Control Panel -> Add/Remove Programs i izbriši ga te odi na MS-ove stranice i skini Visual C++ 2010 Express ili Visual Studio for Desktop 2012.

Verzija je 2012 i problem je što se problem javlja i s 2010 verzijom.

When all else fails - crowbar the fucker
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
username kaže...

Instalirao sam VB 2012 i kad napišem kod i kad kliknem na build pojavi se greška:"The system cannot find the file specified". WTF? Projekt sam spremio u folder na desktopu i znam da je tamo, stvarno ne razumijem ovu grešku...

 

Nisi napisao za koju datoteku to napiše.

Obično bude nešto kao "datotekaXYZ: The system cannot find the file specified".

 

Pogledaj u build log.

 

 

16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Evo greška:

 

When all else fails - crowbar the fucker
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Koji si projekt kreirao, koji je Visual Studio, da li imaš odgovarajući .NET framework (4.5)...

Poruka je uređivana zadnji put pon 21.1.2013 14:50 (royalhero).
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Koji si projekt kreirao, koji je Visual Studio, da li imaš odgovarajući .NET framework (4.5)...

Uglavnom,upisao sam neki najjednostavnijji kod. Imam sve .NET framework-ove... Stvarno ne razumijem da se ovo uopće događa.

When all else fails - crowbar the fucker
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
username kaže...
royalhero kaže...

Koji si projekt kreirao, koji je Visual Studio, da li imaš odgovarajući .NET framework (4.5)...

Uglavnom,upisao sam neki najjednostavnijji kod. Imam sve .NET framework-ove... Stvarno ne razumijem da se ovo uopće događa.

 

Ovdje ne valja pokretanje (debug/run), a ne kompajliranje (build).

Najprije provjeri - je li ta exe datoteka stvarno u direktoriju gdje bi trebala biti.

Ako nije, napravi "rebuild".

To se obično događa kod kopiranja direktorija i sličnih prebacivanja.

 

Ako je tamo, svejedno pokušaj rebuild.

Ako ne radi niti nakon toga, tada se možda neki genijalni antivirus ili vrlo pametan firewall pravi još pametniji, pa blokira izvšavanje aplikacija.

To obično rade jer se nakon svakog kompajliranja mijenja struktura kreirane exe datoteke, a to je jedan od načina kako rade polimorfni virusi.

 

12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

 

Eh ljudi na slici se nalazi zadatak i ja sam napisao kod za taj zadatak ali očigledno se negdje nalazi greška odnosno nešto nisam dobro uradio i ne mogu da pronađem ako može mala pomoć kako sam trebao uraditi i gdje je greška?

 

int main()

{

 unsigned int n;

 cout << "Unesite n: ";

 cin >> n;

 

 cout << "Suma iznosi: " << suma(n);

 

 system("PAUSE>0");

 return 0;

}

 

float suma(unsigned int n)

{

 float suma=0;

 for(unsigned int i=1;i<=n;n--){

 suma+=pow(-1,n-1)*(brojnik(n)/faktorijel(n));

 }

 return suma;

}

 

int brojnik(unsigned int n)

{

 int s=0;

 for(unsigned int i=1;i<=n;n--){

 s+=n;

 }

 

 return s;

}

 

int faktorijel(unsigned int n)

{

 int f=1;

 for(unsigned int i=1;i<n;i++){

 f*=i;

 }

 return f;

}

 

 

Edit: SLIKA

 

 

Poruka je uređivana zadnji put pon 21.1.2013 20:16 (TAPTAP12).
 
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Uz male ispravke radi kako treba. Logika programa je računanje sume od najvećeg do 1, dakle ne možeš n smanjivati i u funkciji brojnik, k tome kod faktorjela računaš umnožak [1,n], dakle uključno n.

 

 

#include <iostream>
using namespace std;
 
float suma(unsigned int);
int brojnik(unsigned int);
int faktorijel(unsigned int);

int main()

{

 unsigned int n;

 cout << "Unesite n: ";

 cin >> n;

 

 cout << "Suma iznosi: " << suma(n);

 

 system("PAUSE>0");

 return 0;

}

 

float suma(unsigned int n)

{

 float suma=0;

 for(unsigned int i=1;i<=n;n--){

 suma+=pow(-1,n-1)*(brojnik(n)/(float)faktorijel(n));

 }

 return suma;

}

 

int brojnik(unsigned int n)

{

 int s=0;

 for(unsigned int i=1;i<=n;i++){

 s+=i;

 }

 

 return s;

}

 

int faktorijel(unsigned int n)

{

 int f=1;

 for(unsigned int i=1;i<=n;i++){

 f*=i;

 }

 return f;

}


 
 

 

Poruka je uređivana zadnji put pon 21.1.2013 22:25 (Floki).
 
2 0 hvala 1
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

A dijeljenje je krivo - čovjek nije castao u float {#}.

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Bobobo-bo Bo-bobo kaže...

A dijeljenje je krivo - čovjek nije castao u float {#}.

 

Da, tu grešku jesam ispravio u kodu, a onda sam je zaboravio napomenuti u tekstu, inače je temeljni uzrok greške, više nego ona u faktorjel funkciji.

 

Inače, kad smo već kod ovog ponovno, ja predznak kod izračuna sume ne bi rješavao potencijom, nego uvođenjem pomoćne varijable i množenjem. Tek toliko da se vidi razlika između matematičke notacije i programiranja, a i brži je postupak.

 

 

int predznak = -1;

for(int i = 1; i <= n; i++)

{

   predznak *= -1;

   suma += predznak  * (brojnik(i) / (float) faktorjel(i));

}

Poruka je uređivana zadnji put sri 23.1.2013 13:34 (Floki).
12 godina
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav,

Imam par pitanja u vezi sljedećih programa. Trenutno sam na funkcijama, a ovo su programi iz knjige Demistificirani C++. Funkcija ovih programa je da dodaju jedan znakovni niz u drugi. E sad me zanima zašto u prvom programu funkcija počinje sa void doljepi (..), a u drugom char* doljepi(...).

 

1. program

#include <iostream>
#include <cmath>
using namespace std;
int duljinaNiza(const char* niz){
    int i = 0;
    while (*(niz + i) != 0)
       i++;
    return i;
}
void doljepi (char* tekst, const char* dodatak){
    int novaDuljina = duljinaNiza (dodatak) + 1;
    if (tekst != 0)
       novaDuljina += duljinaNiza(tekst);
    char* noviTekst = new char[novaDuljina];
    char* odrediste = noviTekst;
    if (tekst != 0){
       const char* polaziste = tekst;
       while( *polaziste != 0)
          *odrediste++ = *polaziste++;
    }
    while (*dodatak != 0)   
       *odrediste++ = *dodatak++;
    *odrediste = '\0';
    tekst = noviTekst;
    cout << tekst << endl;      
    delete [] tekst;
}

int main () {
   
    char pozdrav [10]= "dobar dan";
    doljepi(pozdrav, " dobri covjece");      

}

 

2.program

#include <iostream>
#include <cctype>
using namespace std;
int duljinaNiza(const char* niz){
    int i = 0;
    while (*(niz + i) !=0)
       ++i;
    return i;   
}
char* doljepi(char* tekst,const char* dodatak){
    int novaDuljina = duljinaNiza(dodatak) + 1;
    if (tekst != 0)
       novaDuljina += duljinaNiza(tekst); //duljina teksta + dodatka
    char* noviTekst = new char [novaDuljina]; //noviTekst stavljamo u niz
    char* odrediste = noviTekst;
    if (tekst != 0 ){
       const char* polaziste = tekst;   // prvo u novi niz stavljamo tekst
       while (*polaziste != 0)          // ....
          *odrediste++ = *polaziste++; //...
    }
    while (*dodatak != 0)             // zatim dodatak stavljamo u novi niz
       *odrediste++ = *dodatak++;      
    *odrediste = '\0';
    delete[] tekst;
    return noviTekst;   
}
   
int main () {
   
    char* pozdrav = 0;
    pozdrav = doljepi(pozdrav, "dobar dan");
    pozdrav = doljepi(pozdrav, " dobri covjece");
    cout << pozdrav << endl;
    delete [] pozdrav;
    return 0;
   
}

 

 

A sljedeći pitanje je zašto se kod ovog programa ništa ne ispisuje na ekranu. Zadatak glasi: napišite funkciju koja će sve znakove iz niza "izvoriste" preslikati u niz "odrediste". Prvi argument funkcije neka je "odrediste" (tipa char*), a drugi argument "izvoriste" (tipa const char*).

 

#include <iostream>
using namespace std;
int duljinaNiza(const char* niz){
    int i = 0;
    while (*(niz + i) !=0)
       ++i;
    return i;   
}

char* preslikaj(char* odrediste, const char* izvoriste){
    int novaDuljina = duljinaNiza(izvoriste) + 1;
    if(odrediste != 0)
       novaDuljina += duljinaNiza(odrediste);
    char* niz = new char[novaDuljina];   
    char* cilj = niz;   
    if (izvoriste != 0){
       const char* polaziste = izvoriste;
       while (*polaziste != 0)
          *cilj++ = *polaziste++;
    }
    while( odrediste != 0)
       *cilj++ = *odrediste++;
    *cilj = '\0';
      
    return niz;
}
int main() {
   
    char* rijec = 0;
    rijec = preslikaj (rijec, "bok");
    rijec = preslikaj (rijec, "stari");
    cout << rijec << endl;   
    delete [] rijec;
}

Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Evo kako glasi rijesenje ovog zadatka?   ovo je tako jednostavno 100% ali nemogu se sjetiti kako ga rijesiti -.-

 

"Mirko se ludo zabavlja gledajući "popularnu" TV igru u kojoj voditeljica pokušava nagovoriti gledatelje da
nazovu i kažu joj rješenje zadatka kojeg je zadala.
Trenutno je zadan sljedeći zadatak: voditeljica je na ploči napisala četveroznamenkasti prirodni broj. Potrebno
je odabrati jednu znamenku broja i uvećati ju za jedan tako da nakon izmjene na ploči bude napisan najveći
mogući broj. Znamenku 9 ne smijemo uvećavati.
Pomognite Mirku da odredi broj koji će biti napisan nakon izmjene.
Napomena:
Broj koji je na početku napisan na ploči uvijek će biti takav da se može povećati izmjenom jedne znamenke.
Ulazni podaci:
- četveroznamenkasti prirodni broj N (1000 ≤ N ≤ 9998) koji je na početku napisan na ploči.
Izlazni podatak:
- najveći mogući četveroznamenkasti broj koji se može dobiti povećanjem jedne znamenke broja N. "

 

 

--------------

 

znaci   unesemo neki 4-znamenkasni broj (npr 9812) i sad treba 1 znamenku uvecati ali da ispadne najveci moguci broj ( u ovom slucaju 9912 )

 

unaprijed hvala!!

Moj PC  
0 0 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Orionn125 kaže...

Evo kako glasi rijesenje ovog zadatka?   ovo je tako jednostavno 100% ali nemogu se sjetiti kako ga rijesiti -.-

 

"Mirko se ludo zabavlja gledajući "popularnu" TV igru u kojoj voditeljica pokušava nagovoriti gledatelje da
nazovu i kažu joj rješenje zadatka kojeg je zadala

 

 

znaci   unesemo neki 4-znamenkasni broj (npr 9812) i sad treba 1 znamenku uvecati ali da ispadne najveci moguci broj ( u ovom slucaju 9912 )

 

unaprijed hvala!!

Evo, može ovako, objašnjenje je dato u komentarima.

A kod se uz male dodatke može prilagodti da računa za sve brojeve neovisno o broju znamenki.

 

 

#include <iostream>
using namespace std;
 

int main()

{
    int broj, potencija=1, razlika;
    cin>> broj;
    razlika = 9999 - broj; // broj znamenki varijable razlika govori koje dekadsko mjesto varijable broj treba povecati
    while (razlika>9)
    {
       razlika /= 10; // dok ne ostane krajnja lijeva znamenka odbacujemo desnu znamenku cjelobrojnim dijeljenjem sa 10
       potencija *= 10; // svakim odbacivanjem znamenke broj 1 koji dodajemo varijbli broj pomicemo ulijevo
    }
    broj += potencija;   // dodajemo broj 1 na potrebno mjesto da bi dobili najveci moguci broj
    cout<< broj << endl;
    return 0;
}

 


Poruka je uređivana zadnji put sub 26.1.2013 12:43 (Floki).
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

rado bih ucio ovaj c++ mlad sam i imam vremena mislim da gamogu svladat al pitanje je odakle da pocnem sto mi je najbolje za pocetak ako ga naucim sto mi on dalje pruza ssto sa njim mogu malo glupa pitanja rado bih volio odgovor hvala.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
buterino kaže...

rado bih ucio ovaj c++ mlad sam i imam vremena mislim da gamogu svladat al pitanje je odakle da pocnem sto mi je najbolje za pocetak ako ga naucim sto mi on dalje pruza ssto sa njim mogu malo glupa pitanja rado bih volio odgovor hvala.

Otidi u podforum Programiranje, imas sticky temu Literatura za programiranje. To ti je dobar pocetak.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

Da li je moguće proslijediti cijelu listu kao parametar funcije(neke vlastite) i (ukoliko je moguće) može sintaksta jer ne uspjevam ništa nać na netu :)

naravno.

#include <vector>
#include <iostream>
void f(const std::vector<int>& vec)
{
    for (auto elem : vec)
    {
        std::cout << elem << std::endl;
    }
}
int main()
{
   

std::vector<int> v{11,22,33,44,55};
f(v);
   
   
}

 

Ne radi na svim kompajlerima jer je to C++11 kod, ako ti treba c++11 kompajler za win skines ovo

http://isocpp.org/get-started (prvo ponudeno, ne vs 2012)

13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

dal mi neko moze objasniti zasto ovaj dio sa inputom ne radi bez outputa?

 

#include<iostream>

#include<cstdlib>

#include<fstream> 

 

using namespace std;

int main ()

{

 

ofstream output;

ifstream input;

char ulaznadatoteka[50], izlaznadatoteka[50];

 

 

cout<<"daj ime datoteki";

cin>>ulaznadatoteka;

 

output.open(ulaznadatoteka);

if (output.fail())

{

cout<<"datoteka nije kreirana";

 

}

output.close();

 

cout<<"daj ime datoteki";

cin>>izlaznadatoteka;

input.open(ulaznadatoteka);

if(input.fail())

{

cout<<"datoteka nije kreirana";

}

input.close();

 

system("PAUSE");

return 0 ;

}

 

u jednom primjeru zadataka imam da mi prvo ide dio sa inputom i nikako mi ne radi...??? Hvala :D

 
0 0 hvala 0
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

meni radi. sto te muci...

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
maricuj kaže...

 

cout<<"daj ime datoteki";

cin>>izlaznadatoteka;

input.open(ulaznadatoteka);

 

si siguran da si htio da ovo ovako izgleda?

E-mail:
Lozinka:
 
vrh stranice