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

poruka: 7.285
|
čitano: 1.702.384
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
11 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav ekipa. Imam jedno malo pitanje. Kao zadatak imam napisati program koji računa prosjek nepoznatog broja pozitivnih cijelih brojeva(brojevi se učitavaju doko se ne učita 0). Negativne brojeve program treba ignorirati pomoću naredbe continue no to me i najviše muči. Uvijek izbacuje grešku nakon učitanog negativnog broja. Vjerojatno zbog toga što je if naredba koja ima taj uvjet u do while petlji.

 

Eto CP mog koda. Znam da nije savršen, ali učim....

 

#include<stdio.h>
#include<conio.h>
#include<math.h>

 int main(){
    
     int broj,suma=0,n=0;
     float prosjek;
     printf("Unesite pozitivne cijele brojeve:");
    
     do{
        scanf("%d",&broj);
        if(broj==0) break;
        if(broj<0)continue;
        suma=suma+broj;
        n=n+1;
        }while(broj>0);
       
     prosjek=(float)suma/n;
     printf("Prosjek iznosi:%f",prosjek);
    
 getch();
 return 0;
}

Prije svega budi čovjek. CS GO &amp; Fifa 14 player
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
stavi uvjet
broj != 0
http://getdotastats.com/sig/86815748.png
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

uoči da ti ne treba taj break u petlji, prije ili kasnije lupiš nulu, ona ne povećava sumu, dakle samo smanjiš brojač pozitivnih za jedan, a onda prosjek staviš na početku 0, kojeg računasš jedino ako je brojac - 1 veći od 0, da bi izbjegao dijeljenje s nulom, u tvom slučaju ako udariš samo 0, program se ruši.

Poruka je uređivana zadnji put sub 28.6.2014 13:42 (Floki).
 
0 0 hvala 1
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
pepelko kaže...

krenuo sam s tim jer je sample koji proucavam s naparavljen s tim. boljeg razloga od toga nema (osim mozda da neznam ni za koji drugi).

Jednostavno napravi obicnu konzolnu aplikaciju, ne znam kako to ide tocno u NetBeansu, ali negdje ima sigurno za odabrati "Console application" ili nesto slicno. Qt aplikacije su aplikacije s grafickim korisnickim suceljem, a to ti je ipak malo overkill ovako na pocetku.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
pepelko kaže...

krenuo sam s tim jer je sample koji proucavam s naparavljen s tim. boljeg razloga od toga nema (osim mozda da neznam ni za koji drugi).

Jednostavno napravi obicnu konzolnu aplikaciju, ne znam kako to ide tocno u NetBeansu, ali negdje ima sigurno za odabrati "Console application" ili nesto slicno. Qt aplikacije su aplikacije s grafickim korisnickim suceljem, a to ti je ipak malo overkill ovako na pocetku.

Stvar je tome da imam neke osnove u c++ i programiranju opcenito (kao sto sam vec napisal radim sa PHP-om aktivno) i konkretno me zanima izrada qt aplikacije, al nisam bas na 'ti' sa kompajliranjem.

Moje konkretno pitanje je kako kompajlirati qt program? Tj u cemu grijesim? (link na prvi post)

Konzolne programe mogu bez problema kompajlirat.

http://getdotastats.com/sig/86815748.png
Poruka je uređivana zadnji put ned 29.6.2014 15:10 (pepelko).
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
pepelko kaže...

Stvar je tome da imam neke osnove u c++ i programiranju opcenito (kao sto sam vec napisal radim sa PHP-om aktivno) i konkretno me zanima izrada qt aplikacije, al nisam bas na 'ti' sa kompajliranjem.

Moje konkretno pitanje je kako kompajlirati qt program? Tj u cemu grijesim? (link na prvi post)

Konzolne programe mogu bez problema kompajlirat.

Aha. Onda ti ne mogu puno pomoci s obzirom da ne znam bas raditi s NetBeansom. Kad su u pitanju Qt aplikacije (a i ako nisu), ja koristim odlican Qt Creator IDE. Bez obzira sto mu ime to ne sugerira, ima podrsku i za JavaScript i nesto malo za Python iako za Python koristim odlican PyCharm.

Ovdje mozes skinuti cijeli paket (Qt biblioteke + Qt Creator). Mislim da su u paketu jos i Qt Designer (dizajn GUI-ja u GUI-ju lol), Qt Assistant (alat za prezentiranje online dokumentacije) i Qt Linguist (pisanje prijevoda za Qt aplikacije).

Kad skines i instaliras, sve se automatski namjesti i ne bi trebalo biti nikakvih problema kod kompajliranja brojnih primjera.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put ned 29.6.2014 15:37 (1domagoj1).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Imam pitanje, radi li ode iko u pgAdminu postgresql ?

 

Nemogu postaviti localhost na pc svom ne znam zašto, a moram napraviti hitno database jedan za faks :(

Bilokakve upute bi bile much appriciated. Kad se idem connectat na kreirani local host server ne uspijem pa nemogu dodat new database i unijet u nju podatke, pa radit sql upite..

edit:  Postam sad sliku greške.. sec samo 

Nema errora, samo se odvrti connectanje i ne spoji se Nema errora, samo se odvrti connectanje i ne spoji se
Live and let live.
Poruka je uređivana zadnji put uto 1.7.2014 21:56 (cecenac).
Moj PC  
0 0 hvala 0
13 godina
online
Programiranje u C++-u - pitanja i odgovori

Probaj modificirati pg_hba.conf file ovako (na dnu se nalazi taj odlomak):

 

local   all             postgres                                trust

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

 

Ovako to izgleda na Linuxu, ali nešto mi je ostalo u sjećanju da je na Windozama još nešto potrebno. Meni je ovo pomoglo, a mislim da se radilo o sličnom ako ne i o istom problemu.

Ovo inače nema veze sa pgAdminom koji je ustvari frontend za rad sa Postgresom.

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

#include<iostream>

using namespace std;

 

int main() {

   int*brojevi=

   (int*)malloc(sizeof(int));

   cin>>brojevi[0];

   float prosjek=brojevi[0];

   int duzina=1;

 

   while (prosjek<47){

      duzina++;

      int*tmp=(int*)malloc(duzina*sizeof(int));

      memcpy(brojevi,tmp,duzina*sizeof(int));

      brojevi=tmp;

      cin>>brojevi[duzina-1];

      prosjek=prosjek+brojevi[duzina-1];

      prosjek=prosjek/duzina;

      }

 

      for(int i=0;i<duzina;i++)

      {

          cout<<brojevi[i]<<"";

          }

          return 0;

}



MOzeli mi itko objasniti sta radi ovaj zadatak?
bogli
Moj PC  
0 2 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
bogli kaže...

#include<iostream>

using namespace std;

 

int main() {

   int*brojevi=

   (int*)malloc(sizeof(int));

   cin>>brojevi[0];

   float prosjek=brojevi[0];

   int duzina=1;

 

   while (prosjek<47){

      duzina++;

      int*tmp=(int*)malloc(duzina*sizeof(int));

      memcpy(brojevi,tmp,duzina*sizeof(int));

      brojevi=tmp;

      cin>>brojevi[duzina-1];

      prosjek=prosjek+brojevi[duzina-1];

      prosjek=prosjek/duzina;

      }

 

      for(int i=0;i<duzina;i++)

      {

          cout<<brojevi[i]<<"";

          }

          return 0;

}



MOzeli mi itko objasniti sta radi ovaj zadatak?

Ne radi ništa, u memorijski blok brojevi kopiraš memorijski blok temp koji nije inicijaliziran, da bi u liniji ispod pokazivač brojevi usmjerio na memorijski blok temp. U konačnici, dobiješ niz brojevi koji ispisuje garbage sve dok prosjek prethodnih prosjeka i tekućeg broja ne premaši 47, i na zadnjem mjestu niza brojevi dobiješ broj čiji prosjek sa prethodnim prosjekom prelazi 47.

Što god tražio, niz brojeva čiji prosjek prelazi 47 ili niz kod kojeg tekući broj sa prethodnim prosjekom prelazi 47, ovo je pogrešno.

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

Može mala pomoc... nezz raditi u vise  headera... nezz sto mi javlja u ovom kodu  gresku kad koristim string u klasi evo jedan simple kod!
javlja kao  'string does not name type !
_____ 

main:

 

#include <string>

#include "Stroj.h"

using namespace::std;

 

int main(){

 

   return 0;

}

______

Stroj.h:
______
#ifndef Stroj_h
#define Stroj_h
 
  class Stroj{
public:
string Naziv;
int BrojEl;
int BrojFunk;
string* Funkcije;
};
#endif
______
Stroj.cpp:
_______
#include "Stroj.h"
#include <iostream>
#include <string>
using namespace::std;
Stroj::Stroj(string Naziv, int BrojEl)
: Naziv(Naziv), BrojEl(BrojEl){
BrojFunk = 0;
Funkcije = 0;
}
Poruka je uređivana zadnji put sub 5.7.2014 16:07 (HA-HA-HA-HA).
 
0 2 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pa i u headeru "stroj.h" moraš dodati header "string". Ne razmišljaš, odakle će drugdje "stroj.h" dobiti definiciju string klase? Prije nego dodaš string header, identifikator "string" je nepoznat...

 

Prije uporabe nekog identifikatora on mora biti definiran (doslovno prije, može i jednu liniju iznad, samo da je "prije"). Prema tome ako koristiš neke dijelove standardne biblioteke, moraš u svaku source datoteku (nije bitno je li source ili header datoteka) koja koristi taj identifikator uključiti traženi header koji ga definira... osim ako već nisi u tu source datoteku dodao neki header koji u sebi dodaje taj header (npr. kada u "stroj.h" dodaš header "string", tada u "stroj.cpp" ne moraš dodati header "string" jer si već u toj datoteci dodao header "stroj.h" koji uključuje "string").

To understand what recursion is, you must first understand recursion.
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ma skuzio sam to cim sam napisao .... thx

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

Može još jedna mal pomoc... nezz sto mi javlja grsku nakon izvršavanja programa

#include <iostream>

#include <string>

 

using namespace::std;

 

class Stroj{

protected:

string Naziv;

int BrojEl;

int BrojFunk;

string* Funkcije;

public:

Stroj(string Naziv, int BrojEl, int BrojFunk, string* Funk);

~Stroj();

};

 

Stroj::Stroj(string Naziv, int BrojEl, int BrojFunk, string* Funk)

:  Naziv(Naziv), BrojEl(BrojEl), BrojFunk(BrojFunk), Funkcije(Funk){

 

Funkcije = new string[BrojFunk];

for (int i = 0; i < BrojFunk; ++i){

*(Funkcije + i) = *(Funk + i);

}

}

 

Stroj::~Stroj(){

cout << "Stroj " << Naziv << " izlazi iz uporabe! " << endl;

delete[] Funkcije;

}

 

class ElektricniStroj : public Stroj{

private:

int Snaga;

public:

ElektricniStroj(string Naziv, int BrojEl, int BrojFunk, string* Funk, int Snaga);

~ElektricniStroj();

};

 

ElektricniStroj::ElektricniStroj(string Naziv, int BrojEl, int BrojFunk, string* Funk, int Snaga)

:  Stroj(Naziv, BrojEl, BrojFunk, Funk), Snaga(Snaga){

}

 

ElektricniStroj::~ElektricniStroj(){

cout << "El. Stroj " << Naziv << " izlazi iz uporabe! " << endl;

delete[] Funkcije;

}

 

int main(){

string fun[] = {"popravlja", "brise", "vozi", "kvari"};

 

ElektricniStroj A("A", 3, 4, fun, 5);

 

char z;

cin >> z;

}

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Koliko mi se čini - dva puta dealociraš "Funkcije". To bi trebalo dealocirati samo u klasi Stroj a ne i u klasi ElektricniStroj.

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

Koliko mi se čini - dva puta dealociraš "Funkcije". To bi trebalo dealocirati samo u klasi Stroj a ne i u klasi ElektricniStroj.

E da to sam primjetio, znači ne treba mi destruktor izvedene klase uopšte???

11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
HA-HA-HA-HA kaže...
TracerCPP kaže...

Koliko mi se čini - dva puta dealociraš "Funkcije". To bi trebalo dealocirati samo u klasi Stroj a ne i u klasi ElektricniStroj.

E da to sam primjetio, znači ne treba mi destruktor izvedene klase uopšte???

Ili pak treba ali ovaj put bez dealociranja??

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

Ne znam da li ti treba ili ne pošto ne vidim tekst zadatka. Uostalom, sam zaključi.

Poruka je uređivana zadnji put uto 8.7.2014 14:48 (TracerCPP).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Ne znam da li ti treba ili ne pošto ne vidim tekst zadatka. Uostalom, sam zaključi.

Pa mislim za svaku klasu bi trebao destruktor pa tako i za nasljeđenu?? samo ne da kao i ja da 2 puta dealociram! 

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

Pa znaš valjda čemu destruktori služe? U njih strpaš neki kod koji će se izvršavati svaki puta kada objekt biva uništen. Sada ti procjeni treba li ti neki specijalni destruktor (trebaš li osloboditi neku memoriju, ili nešto drugo obaviti pri uništavanju objekta).

 

Kompajler će ti u svakom slučaju načiniti defaultni destruktor ako ti ne definiraš vlastiti (isto vrijedi i za konstruktore).

To understand what recursion is, you must first understand recursion.
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Imam pitanje, kako u C++ Builderu napraviti petlju kroz određene kontrole (TEdit) na formi (znaci recimo od Edit1 do Edit 10 u petlji i svima izbrisati text)?

 

Sredio sam, umjesto Control treba koristiti Component (evo i kod ako nekome zatreba):

 

for (int i = 0; i < ComponentCount; i++) {

TComponent * component = Components[i];

TEdit * edit = dynamic_cast<TEdit*>(component);

if(edit) edit->Clear();

}

Poruka je uređivana zadnji put uto 8.7.2014 16:25 (NiGHT_RiDER92).
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...

Pa znaš valjda čemu destruktori služe? U njih strpaš neki kod koji će se izvršavati svaki puta kada objekt biva uništen. Sada ti procjeni treba li ti neki specijalni destruktor (trebaš li osloboditi neku memoriju, ili nešto drugo obaviti pri uništavanju objekta).

 

Kompajler će ti u svakom slučaju načiniti defaultni destruktor ako ti ne definiraš vlastiti (isto vrijedi i za konstruktore).

Ma jasno mi je u biti ovo je neki zadatak od profesora, i ne treba mi specialno destruktor eto samo da vidi kad se objekt nasljeđene klase unistio ...  ;)

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

TPanel * panel = new TPanel(FlowPanel1->Handle);

panel->AlignWithMargins = true;

panel->Align = alLeft;

panel->Caption = "Panel";

FlowPanel1->InsertControl(panel);

 

Znači, koliko sam ja shvatio, dinamički alociram (kreiram) komponentu panel i stavim joj svojstva ta koja sam stavio,

e sad, pošto se radi o dinamičkoj alokaciji (operator new), zanima me da li negdje trebam staviti panel->Free() ili delete Panel da bi oslobodio memoriju ili?

 

 

edit: radi se o C++ Builderu

Poruka je uređivana zadnji put uto 15.7.2014 23:07 (NiGHT_RiDER92).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Najbolje da taj pointer deklariraš u samoj klasi forme (TForm1 ili kako već se zove) u .h datoteci. I onda u eventu OnDestroy (Forma) napraviš delete panel.

 

S druge strane, ukoliko ti taj panel treba tek privremeno onda možeš koristiti pametne pokazivače za automatsku dealokaciju.

 

#include <memory>
std::unique_ptr<TPanel> panel(new TPanel(FlowPanel1->Handle));

 

a ako ti iz ovoga treba raw pokazivač onda ga dohvatiš s panel.get().

Poruka je uređivana zadnji put uto 15.7.2014 23:19 (TracerCPP).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Sve jasno! :) Hvala.

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

Traceru, pitanje, da li znaš možda neki (po mogucnosti free) FBX importer koji radi sa Borlandovim compilerom?

Sve koje sam isprobao ne rade sa tim compilerom nažalost.

Poruka je uređivana zadnji put sri 16.7.2014 0:00 (NiGHT_RiDER92).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

FBX? Autodesk?

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

Da, ma probao sam sa Autodesk FBX SDK ali kaze da ne radi sa borlandovim compilerom (u Visual Studio radi).

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

Daj da vidim link. Inače, potraži za Delphi jer C++ Builder interno može compilirati i Delphi kod.

 

A što se općenito tiče importiranja 3D objekata to se može napraviti kroz FireMonkey 3D aplikaciju.

 

importiranje 3d modela u aplikaciju (.ase, .dae, .obj)

podešavanje 3d modela nakon importiranja

Poruka je uređivana zadnji put sri 16.7.2014 0:19 (TracerCPP).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Link od FBX SDK? http://www.autodesk.com/products/fbx/overview

 

u C++ Builderu sam includao sve sta treba i stavio include i lib direktorije u postavke da u njima trazi, ali svejedno baci gresku da borland compiler nije podrzan.

E-mail:
Lozinka:
 
vrh stranice