» »

C programiranje

C programiranje

1
2
3

Rias Gremory ::

Ne vem kaj proba Janac naredit ampak sintakso se naučiš ravno z pisanjem kode.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

shadeX ::

Ne. Sintakso se naučiš tako da prebereš dokumentacijo o programskem jeziku. S pisanjem kode pa jo utrdiš v svojih možganih. Ampak če ti ne vidiš kako sintaksa poteka, ne boš vedel kaj sploh pisat.

c0ded je danes ob 12:45:16 izjavil:
Namesto TEXT ("Yet another Hello program"), probaj _T("Yet another Hello program").


Si mislil z Ex ali brez Ex-a? Z nobenim ne spusti naprej...



To je zame ugibanje in če bi prebral dokumentacijo , bi vedel katera metoda je za text ali karkoli že poskuša janac narediti. Tako pa samo "ugiba".

Janac ::

Jst sam prepisujem program.

Do tukaj sem prišel, čez me ne spusti.

# include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WinMain (HINSTANCE hinstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
 {
 
    static TCHAR szAppName[] = TEXT ("HelloWin");
    HWND                    hwnd;
    MSG                     msg;
    WNDCLASS                wndclass;
    /*Določanje lastnosti programa*/
    wndclass.style         = CS_HREDRAW| CS_VREDRAW;
    wndclass.lpfnWndProc   = WndProc;
    wndclass.cbClsExtra    = 0;
    wndclass.cbWndExtra    = 0;
    wndclass.hInstance     = hinstance;
    wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wndclass.lpszMenuName  = NULL;
    wndclass.lpszClassName = szAppName;

    if (RegisterClass (&wndclass))
 {
       MessageBox (NULL, TEXT ("This program only works in Windows NT or never operating Systems."), szAppName, MB_ICONERROR);
       return     (0);
     } /*END if */

    hwnd  = CreateWindow (szAppName,
                        TEXT("Yet another Hello program"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        NULL,
                        NULL,
                        hinstance,
			NULL); ----------------> tle je napaka.
    ShowWindow  (hwnd, iCmdShow);
    UpdateWindow (hwnd);


Najdete kakšno napako?

Zgodovina sprememb…

  • spremenil: Janac ()

shadeX ::

A ti IDE kaže katera vrstica meče napako?

EDIT. Aja zej vidm da si označil..

Zgodovina sprememb…

  • spremenil: shadeX ()

sas084 ::

Funkcija CreateWindow ma 11 parametrov, ti jih daješ samo 9. Probi to:
hwnd  = CreateWindow (szAppName,
                      TEXT("Yet another Hello program"),
                      WS_OVERLAPPEDWINDOW,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      NULL,
                      NULL,
                      hinstance,
                      NULL);

garamond ::

Janac je izjavil:

garamond je izjavil:

Mogoče nisi bil zbran pri malih in velikih črkah in je hInstance namesto hinstance?


Najlepša hvala za predlog, ki pa žal ni učinkoval.
Zdaj iz popravljene kode vidim, da je predlog očitno učinkoval ... res pa je, da sta bili dve taki besedi in si najprej popravil napačno :)

Mogoče bi se bilo fino naučit, kaj pomenijo posamezne napake, ki jih javi IDE. Čeprav se na začetku zdijo opisi napak zelo nejasni (vsaj meni so se) dejansko zelo pomagajo. (Napako lahko tudi prilepiš v temo.)

Janac ::

saso84, Evo to sm rabu! Sam sem probu še dva NULL-a na koncu dodat pa ni šlo čez.

Zdej sem tle:

	    switch(message)
{

 
        case WM_CREATE:


V zvezku mam napisano identično, Dev mi pa napiše sledeče:

56 13 C:\Dev-Cpp\main9.c [Error] 'message' undeclared (first use in this function)

black ice ::

Če ne razumeš kar ti compiler sporoča kopiraj napako v Google. Sicer je popolnoma osnovna napaka, vendar se moraš naučiti kako se sam prikopati do potrebnih informacij.

Janac ::

Vem kaj mi sporoča in to je da ta funkcija do sedaj še ni bila uporabljena, neko spremenljivko moram vstavit med oklepaja?

Zgodovina sprememb…

  • spremenil: Janac ()

black ice ::

Ne.

Janac ::

Nevem. Kar sem ugotovil je da to deluje kot pogojni stavek, sam nevem kako bi mogl zgledat v mojem primeru.

Zgodovina sprememb…

  • spremenil: Janac ()

Janac ::

torej neko variable moram vpisat.

Na voljo pa mam:

HWND
LPARAM
UINT
POINT
DWORD
WPARAM

je to to?

black ice ::

`variable' undeclared (first use in this function)
In C and C++ variables must be declared before they can be used. This error message indicates that the compiler has encountered a variable name which does not have a corresponding declaration. It can be caused by a missing declaration, or a typing error in the name. Variable names are case-sensitive, so foo and Foo represent different variables. To keep the output short, only the first use of an undeclared variable is reported.

Janac ::

Še kakšen namig pls?

black ice ::

Saj sem ti kopiral celoten odstavek. Čimprej vzemi v roke knjigo, ki pokriva osnove C-ja.

ozbolt ::

black ice je izjavil:

`variable' undeclared (first use in this function)
In C and C++ variables must be declared before they can be used. This error message indicates that the compiler has encountered a variable name which does not have a corresponding declaration. It can be caused by a missing declaration, or a typing error in the name. Variable names are case-sensitive, so foo and Foo represent different variables. To keep the output short, only the first use of an undeclared variable is reported.


Tvoj tok misli mora it nekako tako:
- "variables must be declared before they can be used"
- "It can be caused by a missing declaration"
- "a variable name which does not have a corresponding declaration"

- Aha: najbolje da pogooglam (ali ddg) "variable decleration C" -> http://www.dummies.com/how-to/content/d...

- Ali pa: ne znam anglesko, torej google translate da "spremenljivka deklaracija C", kar bos seveda pretvoril v "deklaracija spremenljivke C", napisal v google in doblil pdf, ki v slovenscini razlozi vse to.

Invictus ::

Najprej se nauči samega jezika, potem pa šele začni uporabljati Windows API.

http://www.learn-c.org/
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

shadeX ::

Invictus +1

Sicer, a ne bi kot začetnik sprobal s kakšnim lažjim jezikom ala Java ali kaj podobnega?

Janac ::

Jst sam prepisujem program!

Kaj se vam najbolj smiselno zdi da bi tam mogl pisat?

Senitel ::

Kje je to "tam"? Imaš probleme z angleščino? Spremenljivka message ni deklerirana, ti bi pa na podlagi tega delal neke odločitve (switch).
Problem je ker prepisuješ brez da bi ti bilo kar koli o jeziku jasno. Ne sanja se ti kaj je to spremenljivka in kaj tip spremenljivke.
Torej resno: najprej se nauči vsaj kako se spremenljivko deklerira.

shadeX ::

Jst sam prepisujem program!


Zakaj to delaš? Kaj boš mel od tega?

Ti moraš program razumeti kaj dela. Torej vsako vrstico moraš poznat kaj naredi. Ne moreš kar prepisovat. Prvo kar je, moraš razumeti osnove, kot so ti povedali tam gor. In začel si z težkim jezikom.

c0ded ::

Tako je. Tukaj se ne gre za to, da ti pravilno prepišeš program in ga zaženeš, gre se za to da razumeš njegovo delovanje. Ampak, ker je to že vse bilo povedano v najmanj 15 postih ne vidim smisla, da bi nadaljevali s temo, ker nasvetov ne upoštevaš in si niti ne pogooglaš. In pa Dev C++ zamenjaj, ker je to 15 let star IDE v beta fazi.

Invictus ::

Janac je izjavil:

Jst sam prepisujem program!

Kaj se vam najbolj smiselno zdi da bi tam mogl pisat?

Dol nam visi kaj bi moralo pisat.

Začni se učiti jezik, katerikoli, pa ne prepisovat programov in potem težit zakaj ti ne delajo.

Zaenkrat niti nismo dobili reference da si ga prav prepisal.

Če pa že hočeš to početi, si pa snemi zadnji Visual Studio Express. Za zadnjo verzijo rabiš Windows 8 ...

Še bolje bi pa bilo da se greš C učit v Linux command line. Boš vsaj vedel kaj je to compiler in kaj linker in kaj knjižnice. Znanje vima pa še nikomur ni škodilo ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

bluefish ::

2013 dela prav lepo tudi na W7.

Datadog ::

Za c++ http://www.stroustrup.com/programming.h...

Za IDE MS visual studio express free in prijazen za začetnika. Piši stvari z uporabo stl-a maybe boost pa drži se stran MS API-jev pa boš imel čisto ok portable kodo.

imho seveda okusi so različni...

Janac ::

Zdravo, kje bi res lahko bil problem? Probal sem brez ;, dodajal oklepaja pa vse in še vedno je nekje error.



Hvala.

Zgodovina sprememb…

  • spremenil: Janac ()

Mipe ::

Znebi se podpičja v vrstici 52.

Janac ::

Still.

Potem je napaka v 52 vrstici, ker manjka ;.

techfreak :) ::

V 52. vrstici definitivno ni podpicja.

Invictus ::

Najbrž ti manjka kak zaklepaj v tej callback funkciji ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

garamond ::

Problem je že v prvem argumentu funkcije, kjer je samo tip ne pa tudi spremenljivka.

Kot je reklo že nekaj ljudi: tudi jaz priporočam učenje osnov. Janac, po katerem tutorialu sploh delaš oziroma že znaš kaj drugega? Brez knjige ali spletnega vodiča se je programiranja zelo težko naučiti.

Janac ::

techfreak :) je izjavil:

V 52. vrstici definitivno ni podpicja.


http://msdn.microsoft.com/en-us/library...

Tle piše da mora bit ; na koncu ?

Vesoljc ::

Janac je izjavil:

techfreak :) je izjavil:

V 52. vrstici definitivno ni podpicja.


http://msdn.microsoft.com/en-us/library...

Tle piše da mora bit ; na koncu ?


http://opencbp.sourceforge.net/en_US.IS...
Abnormal behavior of abnormal brain makes me normal...

Invictus ::

Hmmm, najprej se nauči jezika.

Brez Windows APIja ...

Command line je čisto O.K.

http://www.homeandlearn.co.uk/csharp/cs...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

lebdim ::

res janac, najprej se nauči osnove jezika C in njegovo sintakso ...

Janac ::

Uspesno sem prevedel program. Sicer nevem zakaj mi deluje samo s White_BRUSH though.

ERGY ::

Janac je izjavil:

Uspesno sem prevedel program. Sicer nevem zakaj mi deluje samo s White_BRUSH though.


Ustavi se za sekundo. Preberi kaj so ti vsi napisali zgoraj in potem prilagodi smer učenja, ker se točno to dogaja kar so ti že vsi rekli.

Janac ::

printf("%f", fPovprecje);


Kako tukaj naredim new line? Običajno ne deluje. Izpisujem pa samo vrednost spremenjljive, float; ker gre za decimalke.

Vesoljc ::

Janac je izjavil:

printf("%f\n", fPovprecje);
Abnormal behavior of abnormal brain makes me normal...

Janac ::

printf("%f\n", fPovprecje );


Takole je prav :)

Janac ::

#include <stdio.h>

int main (void)
{
	float fStevilo1;
	float fStevilo2;
	float fStevilo3;
	float fStevilo4;
	float fStevilo5;
	float fStevilo6;
	float fSestevek;
	float fPovprecje;
	float fOdlocitev;

do
	
{
	
	printf("Izracunam vam pravilno povprecje za 6 stevil. Izpisem le povprecja do 10! \r\n\n");
	printf("Zahtevam, da v mene vnesete le stevila do 10!\r\n\n\n");
	
	
	printf("Vnesite prvo stevilo\r\n");
	scanf("%f", &fStevilo1);
	
	
	printf("Vnesite drugo stevilo:\r\n");
	scanf("%f", &fStevilo2);
	

	printf("Vnesite tretje stevilo:\r\n");
	scanf("%f", &fStevilo3);
	
	printf("Vneses lahko se 3 stevila!\r\n\n\n");
	
	printf("Vnesite cetrto stevilo:\r\n");
	scanf("%f", &fStevilo4);
	
	
	printf("Vnesite peto stevilo:\r\n");
	scanf("%f", &fStevilo5);
	

	printf("Vnesite sesto stevilo:\r\n\n\n");
	scanf("%f", &fStevilo6);
	
	fSestevek=fStevilo1+fStevilo2+fStevilo3+fStevilo4+fStevilo5+fStevilo6;
	fPovprecje=fSestevek /6;
	
	if(fPovprecje>10)
	{
		 printf("Povprecje je nad 10!\n\n");
	}
	
	else if(fPovprecje<=10)
	{
		printf("Povprecje vnesenih ocen je:___");
		printf("%f\n\n\n\n\n", fPovprecje );
	}	
	
	printf("Ali zelite ponoviti racunanje? Za ponovno racunanje vnesite stevilo 1.\n");
	scanf("%f", &fOdlocitev);

}

while (fOdlocitev==1);


 return (0);
	
} 


Moj prvi program v C :)

Z zanko do-while, if stavkom ... )

Tak program sem znal napsiat po pol leta psevdokode.

Vesel bi bil če bi bili ponosni name.

Vesoljc ::

hodor - i mean horror!
Abnormal behavior of abnormal brain makes me normal...

Janac ::

Vesoljc je izjavil:

hodor - i mean horror!


do explain

pickle_rick ::

Verjetno je ciljal na to, da se da to realizirati veliko bolj elegantno ter krajše, če bi uporabil arraye npr. Ne vem kaj pomeni "tak program sem znal napisat po pol leta psevdokode", ampak če s tem misliš da si se pol leta ukvarjal s tem ni ravno nek dosežek.

Rias Gremory ::

Dokler se ne neha učiti je to za moje pojme čist kul. Bi bilo lahko bolje? Vsekakor.
Kar tako naprej.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

technolog ::

Za pol leta izkušenj je ok.

error7891 ::

V bistvu ste me kar malo razočarali, ker sem pričakoval, da bo nekdo že v prvem komentarju, ki bo sledil, prilepil kodo, kako se da isto funkcionalnost sprogramirati v samo eni vrstici z njegovim najljubšim programskim jezikom.:D

Zgodovina sprememb…

shadeX ::

Janac. Tvoja naslednja naloga.

Povprečen izračun 100 random števil med 1-1000 :)

Janac ::

Seprav uporabnik vnese 100 števil, ki morajo biti velike do 1000 ?

black ice ::

Ne, računalnik generira števila.
1
2
3


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java @Override

Oddelek: Programiranje
6712 (577) kretze
»

C in računanje kotov

Oddelek: Programiranje
376078 (5131) RatedR
»

naloga ne funkcionira

Oddelek: Programiranje
101353 (1262) FX6300B
»

c napaka .c:4:1: error: expected identifier or '(' before '{' token

Oddelek: Programiranje
141825 (1398) MrStein
»

[c] char zadeva

Oddelek: Programiranje
222102 (1900) TheCyborg

Več podobnih tem