Pocetak na Dev-C++
Prikazujem rezultate 1 do 11 od 11

Tema: Pocetak na Dev-C++

  1. #1
    Zainteresovan član
    Učlanjen
    29.07.2003.
    Poruke
    300
    Reputaciona moć
    56

    Podrazumevano Pocetak na Dev-C++

    Kao prvo zahvalio bih se Incu i Null na pomoci oko skidanja ovog kompajlera, juce sam to uradio i uspeo sam da skinem verziju Dev-C++ 4, a peticu nisam mogao da skinem.

    Zamolio bih vas sada bih hteo da pocnem. Malo sam zbunjen knjigom koju imam. Juce sam pokusavao da napisem neki kod ali mi nije poslo za rukom....

    Da li neko moze da mi napise programcic od pocetka do kraja koji ce da sabira 10 brojeve nekog niza koji se prethodno ubace preko tastature kako bih za pocetak shvatio ovaj programski jezik

    Na BASUC-u bi ja to uradio ovako

    ' Program koji sabira elemente niza A koji se ubacuju sa tastature
    C=0
    For i = 1 to 10
    Print "Ubaci" i". element niza A"
    Input A(i)
    Next
    For i = 1 to 10
    C = C + A(i)
    Next
    Print "Suma Niza A(i) je:" C
    End

    Da li neko moze da isti ovaj problem prikaze u C++.

    Hvala unapred...



  2. #2
    Poznat Incognito (avatar)
    Učlanjen
    17.07.2003.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    8.035
    Reputaciona moć
    133

    Podrazumevano

    vrlo prosto...

    Kod:
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[]) {
        int i, C=0, A[10];
        for (i=0; i<10; i++) {
            cout << "Unesi " << (i+1) << ". element niza A: ";
            cin >> A[i];
        }
        for (i=0; i<10; i++) {
            C += A[i];
        }
        cout << "Suma niza A je: " << C << endl;
        return 0;
    }
    Mada, generalno, kod ovakvog programa se moze odraditi vrlo laka optimizacija:

    Kod:
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[]) {
        int i, C=0, A;
        for (i=0; i<10; i++) {
            cout << "Unesi " << (i+1) << ". broj: ";
            cin >> A;
            C += A;
        }
        cout << "Suma unetih brojeva je: " << C << endl;
        return 0;
    }
    ... moze cak i dodatno da se optimizuje, ali necu ulaziti u detalje... Naravno, sve ovo se moze odraditi na milion nacina, ali eto, ovo je najlaksi koji mi pada na pamet...

    Poz.

  3. #3
    Zainteresovan član
    Učlanjen
    29.07.2003.
    Poruke
    300
    Reputaciona moć
    56

    Podrazumevano

    Hvala Inko...

    Sto se tice ovog programa uneo sam ga kao takvog i radi pnda sam menja neke parametre itd...ali imam neka pitanja o pocetku konkretno ovog programa i ukoliko neko ima vremena neka kratko odgovor, please....

    #include iostream sta ustvari ovo predstavlja ?

    using namespace std; Korisnjenje prostora za ime std, sta predstavlja std ?

    int main(int argc, char *argv[]) a ovo?

    return 0; Gde se to vracamao...

    Ukapirao sam da su zagrade { .... } pocetak i kraj neke naredbe ili dela programa....


    E da postoji jedan problem, kako da zadrzim kraj programa na ekranu da bih video rezultat sume, jer cim ja ubacim sve brojeve i kliknem enter na kraju se ponovo vratim u deo za pianje programa jer moja aplikacija se iskljuci,,,,


    Hvala unapred...

    Pozdrav....

  4. #4
    Poznat Incognito (avatar)
    Učlanjen
    17.07.2003.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    8.035
    Reputaciona moć
    133

    Podrazumevano

    Citat Original postavio Robinzon Kruso
    Hvala Inko...

    Sto se tice ovog programa uneo sam ga kao takvog i radi pnda sam menja neke parametre itd...ali imam neka pitanja o pocetku konkretno ovog programa i ukoliko neko ima vremena neka kratko odgovor, please....

    #include iostream sta ustvari ovo predstavlja ?

    using namespace std; Korisnjenje prostora za ime std, sta predstavlja std ?

    int main(int argc, char *argv[]) a ovo?

    return 0; Gde se to vracamao...

    Ukapirao sam da su zagrade { .... } pocetak i kraj neke naredbe ili dela programa....


    E da postoji jedan problem, kako da zadrzim kraj programa na ekranu da bih video rezultat sume, jer cim ja ubacim sve brojeve i kliknem enter na kraju se ponovo vratim u deo za pianje programa jer moja aplikacija se iskljuci,,,,


    Hvala unapred...

    Pozdrav....
    Pa nema teorije da te naucim step-by-step C++, jer bi trebalo dosta vremena... Za pocetak kupi neku knjigu...

    #include direktive ubacuju odredjene header-e za odredjene funkcije... iostream je skup funkcija za I/O komunikaciju, pa su tako cin i cout funkcije koje isti implementira

    std su standardne C++ biblioteke... kako ne bi morao da pises std::cin ili std::cout, ti dodas to kao namespace ispred funkcija...

    Posto pravis konzolnu aplikaciju, ne ubacujes winapi headere (windows.h), i ne zoves WinMain, vec osnovnu main() funkciju... int argc i char *argv[] unutar nje definisu unesene parametre sa tastature... argc je broj parametara, a argv je niz sa unesenim parametrima...

    Posto je funkcija tipa 'int', a ne void, potreban je return kako bi sve bilo po propisu (mada vecina kompajlera to tolerise)

    Sto se 'problema' tice, program nije kriv... Tako reaguje tvoj shell (windows command prompt)... Kad se program izvrsi, on zatvori prozor... Pusti ga direktno iz command prompt-a, i onda ces videti i sta se desilo... Mozes i da napravis pauzu, dok korisnik ne pritisne nesto na tastaturi... samo dodaj: system("PAUSE"); iznad return-a...

    Poz.

  5. #5
    Zainteresovan član
    Učlanjen
    29.07.2003.
    Poruke
    300
    Reputaciona moć
    56

    Podrazumevano

    Hvala Inco, nemas pojma koliko mi ove informacije znace. Imam ja par knjiga o C-u ali mi je ovo potrebno za prvi start...

    Hvala jos jednom a sad na programiranje...

    Pozdrav

  6. #6
    Guest

    Podrazumevano pauza

    moze i ovako: nna pocetku dodas sledeci header-file:
    #include <conio.h>

    i na kraju kazes:
    getch();

    i imas pauzu dok ne aktiviras bilo koji taster.

  7. #7
    Zainteresovan član
    Učlanjen
    29.07.2003.
    Poruke
    300
    Reputaciona moć
    56

    Podrazumevano

    Stvarno sam zahvalan ljudima (programerima) koji odgovaraju i pomazu nama koji manje znamo...

    Posto malo po malu ulazim u tajne programiranja u C++. Interesuje me kako se crta tacka na ekranu i jos po nesto o grafici u C++.

    Nikako ne mogu da aktiviram program koji bi radio u Windows okruzenju pa bih pitao za pomoc ako neko zna...


    Pozdrav i unarede zahvalan.

    P.S. Kad namlatim dosta love oduzicu se svakom prikladnim poklonom...

  8. #8
    Poznat Incognito (avatar)
    Učlanjen
    17.07.2003.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    8.035
    Reputaciona moć
    133

    Podrazumevano

    Za windows programe, moras koristiti windows.h header, tj. winapi funkcije.

    Evo ti osnovne 'skoljke' za pravljenje windows programa:

    Kod:
    #include <windows.h>
    
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    char szClassName[ ] = "WinApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) {
        HWND hwnd;
        MSG messages;
        WNDCLASSEX wincl;
    
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;
        wincl.style = CS_DBLCLKS;
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;
        wincl.cbClsExtra = 0;
        wincl.cbWndExtra = 0;
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        if (!RegisterClassEx (&wincl)) return 0;
    
        hwnd = CreateWindowEx(0, szClassName, "Test Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, HWND_DESKTOP, NULL, hThisInstance, NULL);
    
        ShowWindow (hwnd, nFunsterStil);
    
        while (GetMessage (&messages, NULL, 0, 0)) {
            TranslateMessage(&messages);
            DispatchMessage(&messages);
        }
    
        return messages.wParam;
    }
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
        switch (message) {
            case WM_DESTROY:
                PostQuitMessage (0);
                break;
            default:
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
        return 0;
    }
    e, sad, da bi razumeo sta svaka funkcija radi, moras da naucis winapi, tj. njegove osnove... Skini sa MSDN-a Winapi Reference, pomoci ce ti itekako...

    Sto se crtanja tice, imas mnogo biblioteka za to, a nisi naveo gde hoces da crtas... Po konzoli ili u winapi-ju... Sto se konzole tice (do VGA rezolucije), proveri funkcije koje ima biblioteka graphics.h, sto se crtanja po Windows-u tice, imas i funkcije u winapi-ju, a imas i mnoge dodatne biblioteke... Prava poslastica su 3d biblioteke, poput OpenGL-a i DirectX...

    Srecno...

  9. #9
    Zainteresovan član
    Učlanjen
    29.07.2003.
    Poruke
    300
    Reputaciona moć
    56

    Podrazumevano

    Dobro nesto sam ukapirao...

    1. U kom delu osnovne skoljke za Win. mogu da pisem program i da razultate dobijam u windows okruzenju...

    1. Kako da pregledam funkcije koje ima graph.h

    Hvala unapred

    Pozdrav

  10. #10
    Početnik
    Učlanjen
    10.06.2003.
    Pol
    muški
    Poruke
    45
    Reputaciona moć
    0

    Podrazumevano

    ne mogu ti dati konkretan odgovor jer sam i ja pocetnok za C++ kao i ti

    ali evo ti neki savet

    imas u folderu gde si instalirao dev C++ folder examples i tu su ti neki primeri
    gledaj njih i proucavaj code

    zatim slucajno sam kliknuo na about da vidim koja mi je verzija programa i tamo sam nasao u prozoru koji se otvorio par satjova gde je forum. mailing list i resources for dev c++

  11. #11
    Početnik
    Učlanjen
    10.06.2003.
    Pol
    muški
    Poruke
    45
    Reputaciona moć
    0

    Podrazumevano evo jednog prostog primera!

    kreirajn novi projekat windows aplikaciju
    napravi novi folder gde ces je cuvati!
    idu tri fajla
    main.cpp
    main.h
    main.rc

    kompajliraj, startuj program i proucavaj ih posle!

    main.cpp:
    ----------------------------------------
    #include <windows.h>
    #include "Main.h"

    static char g_szClassName[] = "MyWindowClass";
    static HINSTANCE g_hInst = NULL;

    #define IDC_MAIN_TEXT 1001

    BOOL LoadFile(HWND hEdit, LPSTR pszFileName)
    {
    HANDLE hFile;
    BOOL bSuccess = FALSE;

    hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
    OPEN_EXISTING, 0, 0);
    if(hFile != INVALID_HANDLE_VALUE)
    {
    DWORD dwFileSize;
    dwFileSize = GetFileSize(hFile, NULL);
    if(dwFileSize != 0xFFFFFFFF)
    {
    LPSTR pszFileText;
    pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
    if(pszFileText != NULL)
    {
    DWORD dwRead;
    if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
    {
    pszFileText[dwFileSize] = 0; // Null terminator
    if(SetWindowText(hEdit, pszFileText))
    bSuccess = TRUE; // It worked!
    }
    GlobalFree(pszFileText);
    }
    }
    CloseHandle(hFile);
    }
    return bSuccess;
    }

    BOOL SaveFile(HWND hEdit, LPSTR pszFileName)
    {
    HANDLE hFile;
    BOOL bSuccess = FALSE;

    hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0,
    CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    if(hFile != INVALID_HANDLE_VALUE)
    {
    DWORD dwTextLength;
    dwTextLength = GetWindowTextLength(hEdit);
    if(dwTextLength > 0)// No need to bother if there's no text.
    {
    LPSTR pszText;
    pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1);
    if(pszText != NULL)
    {
    if(GetWindowText(hEdit, pszText, dwTextLength + 1))
    {
    DWORD dwWritten;
    if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))
    bSuccess = TRUE;
    }
    GlobalFree(pszText);
    }
    }
    CloseHandle(hFile);
    }
    return bSuccess;
    }

    BOOL DoFileOpenSave(HWND hwnd, BOOL bSave)
    {
    OPENFILENAME ofn;
    char szFileName[MAX_PATH];

    ZeroMemory(&ofn, sizeof(ofn));
    szFileName[0] = 0;

    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = hwnd;
    ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = MAX_PATH;
    ofn.lpstrDefExt = "txt";

    if(bSave)
    {
    ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY |
    OFN_OVERWRITEPROMPT;

    if(GetSaveFileName(&ofn))
    {
    if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
    {
    MessageBox(hwnd, "Save file failed.", "Error",
    MB_OK | MB_ICONEXCLAMATION);
    return FALSE;
    }
    }
    }
    else
    {
    ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    if(GetOpenFileName(&ofn))
    {
    if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
    {
    MessageBox(hwnd, "Load of file failed.", "Error",
    MB_OK | MB_ICONEXCLAMATION);
    return FALSE;
    }
    }
    }
    return TRUE;
    }

    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    switch(Message)
    {
    case WM_CREATE:
    CreateWindow("EDIT", "",
    WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE |
    ES_WANTRETURN,
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
    hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL);

    SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,
    (WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));
    break;
    case WM_SIZE:
    if(wParam != SIZE_MINIMIZED)
    MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),
    HIWORD(lParam), TRUE);
    break;
    case WM_SETFOCUS:
    SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT));
    break;
    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case CM_FILE_OPEN:
    DoFileOpenSave(hwnd, FALSE);
    break;
    case CM_FILE_SAVEAS:
    DoFileOpenSave(hwnd, TRUE);
    break;
    case CM_FILE_EXIT:
    PostMessage(hwnd, WM_CLOSE, 0, 0);
    break;
    case CM_ABOUT:
    MessageBox (NULL, "File Editor for Windows !\n Using the Win32 API" , "About...", 0);
    }
    break;
    case WM_CLOSE:
    DestroyWindow(hwnd);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
    }


    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
    {
    WNDCLASSEX WndClass;
    HWND hwnd;
    MSG Msg;

    g_hInst = hInstance;

    WndClass.cbSize = sizeof(WNDCLASSEX);
    WndClass.style = 0;
    WndClass.lpfnWndProc = WndProc;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hInstance = g_hInst;
    WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    WndClass.lpszMenuName = "MAINMENU";
    WndClass.lpszClassName = g_szClassName;
    WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&WndClass))
    {
    MessageBox(0, "Window Registration Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
    return 0;
    }

    hwnd = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    g_szClassName,
    "File Editor Example Program",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 320, 240,
    NULL, NULL, g_hInst, NULL);

    if(hwnd == NULL)
    {
    MessageBox(0, "Window Creation Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
    return 0;
    }

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    while(GetMessage(&Msg, NULL, 0, 0))
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    return Msg.wParam;
    }
    //kraj od main.cpp

    ------------------
    main.h
    ------------------
    #define CM_FILE_SAVEAS 9072
    #define CM_FILE_EXIT 9071
    #define CM_FILE_OPEN 9070
    #define CM_ABOUT 9069

    ------------------
    main.rc
    ------------------
    #include "main.h"

    MAINMENU MENU
    {
    POPUP "&File"
    {
    MENUITEM "&Open...", CM_FILE_OPEN
    MENUITEM "Save &As...", CM_FILE_SAVEAS
    MENUITEM SEPARATOR
    MENUITEM "E&xit", CM_FILE_EXIT
    }

    POPUP "&Help"
    {
    MENUITEM "&About", CM_ABOUT
    }
    }

Slične teme

  1. Za pocetak
    Autor makimaki u forumu Dom i porodica
    Odgovora: 1
    Poslednja poruka: 26.07.2004., 23:59

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •