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

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

Libovi VS-a i C++ Buildera nisu međusobno kompatibilni jer nisu istih formata (COFF i OMF).

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

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

 

Budem proučio to, ma radim si preglednik 3D modela da nešto novo naučim (nesto slicno kao u UDK Content Browser) ali i sa 3D preview opcijom.

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

Onda svakako FireMonkey. Još pogotovo ako koristiš C++ Builder XE6 jer onda ćeš tu 3D aplikaciju direktno moći compilirati i za iOS, Android i Mac.

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

Da, ali ja vec imam VCL aplikaciju, da li je moguce sad nekako koristiti FireMonkey unutar standardne VCL aplikacije?

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

Ne. VCL je isključivo za Windows.

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

Eh ... -.-

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

e ljudi vidim da ima i ova tema,pa reko da pitam vec nesto ,idem u srednju elektrotehnicku i znam ponesto u C-u ,i sad kuci radim malo,iz dosade,pa radim neki program koji ce racunati starost osobe ,i imam jedan problemcic ,kako bi mogao vise(12) if petlji napisati krace ,s tim da svaka mora biti razlicita ,razlicit uslov ,mislio sam u for ,ali nije to to :) mislim da ce neko imati pravi odgovor hvala unaprijed

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

e ljudi vidim da ima i ova tema,pa reko da pitam vec nesto ,idem u srednju elektrotehnicku i znam ponesto u C-u ,i sad kuci radim malo,iz dosade,pa radim neki program koji ce racunati starost osobe ,i imam jedan problemcic ,kako bi mogao vise(12) if petlji napisati krace ,s tim da svaka mora biti razlicita ,razlicit uslov ,mislio sam u for ,ali nije to to :) mislim da ce neko imati pravi odgovor hvala unaprijed

Reci za što ti konkrentno treba 12 if grananja, pa će ti onda netko možda moći predložiti nešto kraće.

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

Možeš koristiti switch(int) - ali switch ti samo kao argument prima cijelobrojnu varijablu

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

e ljudi vidim da ima i ova tema,pa reko da pitam vec nesto ,idem u srednju elektrotehnicku i znam ponesto u C-u ,i sad kuci radim malo,iz dosade,pa radim neki program koji ce racunati starost osobe ,i imam jedan problemcic ,kako bi mogao vise(12) if petlji napisati krace ,s tim da svaka mora biti razlicita ,razlicit uslov ,mislio sam u for ,ali nije to to :) mislim da ce neko imati pravi odgovor hvala unaprijed

Možeš reći "if blok" ili nešto drugo, nikako petlja. No terminologiju na stranu, ako uspoređuješ jednu varijablu sa skupinom raznih cjelobrojnih vrijednosti, onda umjesto hrpe if blokova možeš iskoristiti switch.

 

Recimo:

int n = 5;

if (n == 0)
    /* učini nešto */
if (n == 1)
    /* učini nešto */
if (n == 3)
    /* učini nešto */
...
itd

 

možeš zamijeniti sa:

int n = 5;

switch (n)
{
    case 0:
        /* učini nešto */
        break;
       
    case 1:
        /* učini nešto */
        break;
       
    case 3:
        /* učini nešto */
        break;
}

 

Pri switch-case konstruktu kompajler će stvoriti jump tabelu, što može biti znatno brže kod testiranja ogromnog broja vrijednosti, a iako je u ovom primjeru switch blok dulji, elegantniji je kada imaš veći broj takvih usporedbi i lakše je upiknuti nove po potrebi.

To understand what recursion is, you must first understand recursion.
Poruka je uređivana zadnji put sri 16.7.2014 22:01 (rustweaver).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Nikad nisam pisao program koji je imao toliko usporedbi s if naredbom. O čemu god da je riječ sigurno može biti jednostavnije napisano.

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

ma radim ovaj program da ako neko unese da je rodjen u januaru 1990 ,da mu izracuna koliko godin i mjeseci ima tacno,pa radi elegancije hocu da uradim if petlju da ako neko unese da je rodjen u martu 1995 ,da mart pretvorim u brojcanu vrijednost ,kako bi mogao da racunam,i rustweaver mi je odgovorio tačno,ima nesto slicnu u paskalu ,case petlja/blok se zove,a sto se tice terminologije nisam iz hrvatske ,i nas uce petlja ,sta cu :) hvala vam puno na pomoci

 
0 1 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
kass kaže...

ma radim ovaj program da ako neko unese da je rodjen u januaru 1990 ,da mu izracuna koliko godin i mjeseci ima tacno,pa radi elegancije hocu da uradim if petlju da ako neko unese da je rodjen u martu 1995 ,da mart pretvorim u brojcanu vrijednost ,kako bi mogao da racunam,i rustweaver mi je odgovorio tačno,ima nesto slicnu u paskalu ,case petlja/blok se zove,a sto se tice terminologije nisam iz hrvatske ,i nas uce petlja ,sta cu :) hvala vam puno na pomoci

Drugim riječima umjesto 12 if "petlji" tebi ne treba niti jedna jer umjesto "mart" možeš tražiti da se unese broj mjesec. 

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

a sto se tice terminologije nisam iz hrvatske ,i nas uce petlja ,sta cu :) hvala vam puno na pomoci

Nema to veze sa Hrvatskom.

http://en.wikipedia.org/wiki/Block_%28programming%29

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

pa dobro ,nas uce tako ,sta ja tu mogu :)

 
0 1 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
kass kaže...

pa dobro ,nas uce tako ,sta ja tu mogu :)

Pa možeš to naučiti. Bar to nije problem.

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

naravno da mogu ,čovjek uči dok je živ

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

 

Možeš i ovak riješit problem.

int getMonthNum(char *month)
{
    static char months[][10] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
    for (int i = 0; i < 12; i++)
    {
        if (!strcmp(month, months[i]))
        {
            return i + 1;
        }
    }
    return 0;
}

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

ljudi, rješavam neke zadatke iz HONI-ja i htio bih pokrenuti program sa test podacima koje skinem sa stranice. profesor mi je pokazivao kako da to napravim preko cmd-a al sam zaboravio postupak {#} . ako mi neko može reći kako da napravim to bio bi mu jako zahvalan. 

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

ljudi, rješavam neke zadatke iz HONI-ja i htio bih pokrenuti program sa test podacima koje skinem sa stranice. profesor mi je pokazivao kako da to napravim preko cmd-a al sam zaboravio postupak {#} . ako mi neko može reći kako da napravim to bio bi mu jako zahvalan. 

Ajmo polako. Što točno podrazumijevaš pod "pokrenem"?

 

Trebaš li možda kompajlirati program koristeći konzolu? Ako da, koji je kompajler u pitanju (MinGW, odnosno GCC?).

Ili trebaš samo pokrenuti izvršnu datoteku već kompajliranog programa sa određenim argumentima? Ako da, onda ti se to svodi na:

 

imeprograma.exe argument1 argument2 argument3

 

ekstenziju izvršnih datoteka (exe, com, i bat) možeš i izostaviti (s time da moraš imati na umu da postoji određen redoslijed kojim se traži prva izvršna datoteka nekog imena, da se ne iznenadiš ako npr imaš nekiprogram.exe i nekiprogram.bat u istom folderu). Pa onda to izgleda ovako:

 

imeprograma argument1 argument2 argument3

 

S time da argumenata možeš imati koliko želiš (odnosno koliko stane), i da način na koji program razdvaja argumente ovisi od programa do programa (uglavnom se koristi '-', nekad prije je i '/' bio popularan). Ali to ti ništa ne znači ako tvoj program nije napisan tako da koristi te znakove za razdvajanje argumenata.

 

Druge komande koje bi te mogle interesirati su:

 

cd imefoldera

Za ulazak u neki podfolder. Možeš koristiti i apsolutnu putanju tipa c:\nekifolder\nekipodfolder\nekipodpodfolder za instant prebacivanje u neki "udaljeni" folder bez potrebe da ideš tamo "korak po korak".

 

cd..Za izlazak iz foldera (ista stvar kao kada u exploreru stisneš "up").

 

dirZa izlistanje sadržaja trenutnog foldera, možeš kombinirati sa raznim switchevima (npr. /p za pauziranje ispisa na svakoj stranici, ili *.ekstenzija za izlistanje samo datoteka sa nekom ekstenzijom)

 

Ono što ja sebi obavezno postavim na svakoj instalaciji windowsa (svi windowsi još od win95 to podržavaju, samo se postupak razlikuje), je otvaranje konzole u nekom folderu kroz desni klik menij u exploreru. Pretpostavljam da koristiš sedmicu pa evo.

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

samo hoću testirati program sa testnim podacima koje skinem, bez obzira na koji način. meni je profesor pokazao da skinute tetstne podatke stavim u mapu c:\eval\test , a svoj kompajlirani program u mapu c:\eval . nakon što to napravim, pokrenem cmd i preko njega pokrenem taj svoj program koji će vuče ulazne podatke i pokazuje mi moj rezultat i rezultat koji bi trebao biti. Uglavnom, ako postoji bilo koji drugi (jednostavniji) način za testiranje programa samo reci.

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Po ovome što si mi opisao (i ako kompletna putanja nije hardkodirana u program), onda taj .exe možeš smjestiti u bilo koji folder, a testne podatke u \eval podfolder. Znaš valjda kako koristiti relativne putanje u C++-u?

 

Iako ne vidim ovdje značaj ručnog pokretanja iz konzole. Zar ti IDE ne pauzira output programa u konzoli? Zašto baš moraš ručno?

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
etnes kaže...

samo hoću testirati program sa testnim podacima koje skinem, bez obzira na koji način. meni je profesor pokazao da skinute tetstne podatke stavim u mapu c:\eval\test , a svoj kompajlirani program u mapu c:\eval . nakon što to napravim, pokrenem cmd i preko njega pokrenem taj svoj program koji će vuče ulazne podatke i pokazuje mi moj rezultat i rezultat koji bi trebao biti. Uglavnom, ako postoji bilo koji drugi (jednostavniji) način za testiranje programa samo reci.

Stavi exe u isti folder kao i testni podatak.

Otvori cmd i pomocu cd udji u direktorij gdje se nalazi exe.

Upisi

imePrograma < ulaz1.txt
npr.

gledatelj < gledatelj.dummy.in.2

 

Ako hoces da izlaz ide u file, upisi:

gledatelj < gledatelj.dummy.in.2 > izlaz2.txt

rustweaver kaže...

Po ovome što si mi opisao (i ako kompletna putanja nije hardkodirana u program), onda taj .exe možeš smjestiti u bilo koji folder, a testne podatke u \eval podfolder. Znaš valjda kako koristiti relativne putanje u C++-u?

 

Iako ne vidim ovdje značaj ručnog pokretanja iz konzole. Zar ti IDE ne pauzira output programa u konzoli? Zašto baš moraš ručno?

Lakse je rucno pokretati kad na ulazu imas file od 1-2MB.

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
srky.du kaže...
Lakse je rucno pokretati kad na ulazu imas file od 1-2MB.

A lol. Pa vi o redirekciji standardnog ulaza pričate. Ja mislio da mora prosljeđivati ime datoteke preko argumenta ili nešto tako...

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

snašao sam se. hvala na pomoći :)

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

Pozdrav,

Imam zadatak u kojem nemogu skontati neke skracenice i sta one rade...e sada moze li mi netko objasniti cemu sluze i sto toco koji dio zadatka radi... te npr. za sto sluzi pom, zam...

 

/* 6.rujna 2012. zadatak 1.
Napravi program koji unos cijele brojeve sve dok se neki broj ne  unese uzastopno
tri puta, a zatim ispisuje koliko je uneseno brojeva manjih, a koliko vecih od
zadnjeg unesenog broja.
*/

#include <iostream>
using namespace std;

int main(){

int broj[200], b=0,n=1,k=0, niz[2], pom[200], mb=0, vb=0;
cout << "Unesi brojeve: " << endl;   
do{
   cin >> broj[b];
  
   if(broj[b]!=niz[0])
   {
      niz[0]=broj[b];
      n=1;
      pom[k]=broj[b];
      k++;              
   }
   else
       {
          n++;                          
       } 
 
  b++;
  }while(n<3);   

for(int i=0; i<k-1; i++)
{
  for(int j=i+1; j<k; j++)
  {
    if(pom[i]>pom[j])
    {
       int zam=pom[i];
       pom[i]=pom[j];
       pom[j]=zam;             
    }     
  }     
}


int zadnji=niz[0];
for(int i=0; i<k; i++)
{
  if(zadnji<pom[i])
  {
    vb++;              
  }
  else
      {
        mb++;               
      }     
}
cout << endl;
cout << "Uneseno je " << mb << " brojeva manjih i " << vb << " brojeva vecih od " << zadnji << endl;

// kraj
cout << endl;
system("PAUSE");
return 0;
}

 

Hvala na svim odgovorima

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

Netko :D?

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

Par osnovnih pitanja :)

 

1. Zašto se ovdje koristi void?

 

/* program unosi 10 cijelih brojeva, odredjuje minimum i

  maksimum i zapisuje ih ispisuje na ekran */

 

#include <stdio.h>

 

// prototip funkcije

void minmax(int niz[10]);

 

2. Ovaj dio sa računanjem mi nije jasan. Npr (4.5 - 4) > od čega?

 

/* program unosi 10 realnih brojeva i ispisuje onaj

  broj sa najmanjim decimalnim dijelom */

 

   min_dd = broj[0];

   for(i = 0; i < 10; i++)

     if(fabs(min_dd - int(min_dd)) > fabs(broj[i] - int(broj[i])))

       min_dd = broj[i];

 

3.  Ovaj dio kad je kontola 0 i kad je 1 ? Vise teoretski objasnit ako nije problem.

 

/* program unosi brojeve dok se neki broj ne unese drugi put

  i zatim ispisuje koliko je brojeva uneseno */

 

 

   int broj[100], i = -1, j, kontrola;

 

 

   do

   {

     i++;

     scanf("%d", &broj[i]);   

     kontrola = 0;

     for(j = 0; j < i; j++)

       if(broj[i] == broj[j])

         kontrola = 1;

   }

   while(kontrola == 0);

 

4. Ukratko o brojačima. Zasto je prvi = 0?

 

/* program unosi 10 cijelih brojeva i ispisuje onaj

  broj koji se najvise puta ponavlja */

 

 

   int broj[10], najcesci, i, j, brojac1 = 0, brojac2;

 

   // unos podataka

   printf("Unesi 10 cijelih brojeva:\n");

   for(i = 0; i < 10; i++)

     scanf("%d", &broj[i]);

 

   // pronalazenje najcesceg broja

   for(i = 0; i < 10; i++)

   {

     brojac2 = 0;

     for(j = 0; j < 10; j++)

       if(broj[i] == broj[j])

         brojac2++;

     if(brojac2 > brojac1)

     {

       brojac1 = brojac2;       

       najcesci = broj[i];

     }  

   }

 

   // ispis rezultata

   printf("Najcesci broj je %d sa %d ponavljanja.\n", najcesci, brojac1);

 

 

To bi bilo to :) Unaprijed hvala.

 

 

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

Imam zadatak u kojem nemogu skontati neke skracenice i sta one rade

To se događa kada užicaš rješenje, realno, lakše ti je napisati cijelu stvar nanovo nego ići raspetljavati nečiji cirkus...

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Budhala kaže...

Par osnovnih pitanja :)

 

1. Zašto se ovdje koristi void?

 

/* program unosi 10 cijelih brojeva, odredjuje minimum i

  maksimum i zapisuje ih ispisuje na ekran */

 

#include <stdio.h>

 

// prototip funkcije

void minmax(int niz[10]);

 

 

 

Jer funkcija minmax() nema povratnu vrijednost. Da ima povratnu vrijednost (npr da računa sumu i vraća sumu) onda bi bilo npr. int minmax()

 

Budhala kaže...

2. Ovaj dio sa računanjem mi nije jasan. Npr (4.5 - 4) > od čega?

 

/* program unosi 10 realnih brojeva i ispisuje onaj

  broj sa najmanjim decimalnim dijelom */

 

   min_dd = broj[0];

   for(i = 0; i < 10; i++)

     if(fabs(min_dd - int(min_dd)) > fabs(broj[i] - int(broj[i])))

       min_dd = broj[i];

 

 

 

fabs() vraća apsolutnu vrijednost, fabs(1) daje 1, fabs (-1) daje 1.

ako imaš npr 2 broja, 1.55 i 11.4 onda za prvi broj ide

 

fabs(1.55 - 1 (ova jedinica je zbog int() dakle napravio si cast u integer i izgubio si decimalnu komponentu)) > fabs(1.55 - 1)

i imaš rezultat 0.55 > 0.55

 

a u drugom prolazu imaš 0.55 > 0.4 te onda 11.4 pohranjuješ u min_dd kao novi broj sa najmanjim decimalnim dijelom

 

Budhala kaže...

 

3.  Ovaj dio kad je kontola 0 i kad je 1 ? Vise teoretski objasnit ako nije problem.

 

/* program unosi brojeve dok se neki broj ne unese drugi put

  i zatim ispisuje koliko je brojeva uneseno */

 

 

   int broj[100], i = -1, j, kontrola;

 

 

   do

   {

     i++;

     scanf("%d", &broj[i]);   

     kontrola = 0;

     for(j = 0; j < i; j++)

       if(broj[i] == broj[j])

         kontrola = 1;

   }

   while(kontrola == 0);

 

 

 

dakle svaki put kada uneseš broj u niz pregledaš cijeli niz da vidiš ako taj broj već postoji u nizu, te ako postoji postaviš varijablu kontrola na jedan tako da while petlja prestane sa radom.

 

varijabla kontrola ti služi da izađeš iz while petlje. Ovdje ti recimo break nebi napravio što želiš jer bi izašao samo iz for petlje tako da se koristi kontrolna varijabla.

 

Budhala kaže...

4. Ukratko o brojačima. Zasto je prvi = 0?

 

/* program unosi 10 cijelih brojeva i ispisuje onaj

  broj koji se najvise puta ponavlja */

 

 

   int broj[10], najcesci, i, j, brojac1 = 0, brojac2;

 

   // unos podataka

   printf("Unesi 10 cijelih brojeva:\n");

   for(i = 0; i < 10; i++)

     scanf("%d", &broj[i]);

 

   // pronalazenje najcesceg broja

   for(i = 0; i < 10; i++)

   {

     brojac2 = 0;

     for(j = 0; j < 10; j++)

       if(broj[i] == broj[j])

         brojac2++;

     if(brojac2 > brojac1)

     {

       brojac1 = brojac2;       

       najcesci = broj[i];

     }  

   }

 

   // ispis rezultata

   printf("Najcesci broj je %d sa %d ponavljanja.\n", najcesci, brojac1);

 

 

To bi bilo to :) Unaprijed hvala.

 

 

 

Brojače inicijaliziraš na nulu da bi bio siguran u vrijednost s kojom krećeš. I brojac2 je inicijaliziran na nulu u for petlji prije svakog novog prebrojavanja.

 

I onda ide, brojac1 je nula, onda se broji koliko puta se prvi član niza ponavlja (inkrementirajuci brojac2 od nule), ako je to veće od trenutne vrijednosti brojaca1 (koji je nula na prvom prolazu) onda se u brojac1 posprema broj ponavljanja a u najcesci broj koji se ponavlja

 

*edit: i ono što rust kaže :P

Poruka je uređivana zadnji put ned 31.8.2014 18:06 (Dr. Zoidberg).
E-mail:
Lozinka:
 
vrh stranice