Hollosi Information eXchange /HIX/
HIX CODER 968
Copyright (C) HIX
2000-10-09
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 c++ jelolesrendszer, ertekadas (mind)  37 sor     (cikkei)
2 Hello, (mind)  4 sor     (cikkei)
3 prim (mind)  6 sor     (cikkei)
4 Re: Prim (mind)  102 sor     (cikkei)

+ - c++ jelolesrendszer, ertekadas (mind) VÁLASZ  Feladó: (cikkei)

Hi!

Meg nagyon kezdo vagyok a temaban, ugyhogy
keretik nem kirohogni...    :-)
De azert kerdezek hogy ne maradjak hulye.

Ugy tudom hogy a windows c++ programokban
a valtozok neveit egy egyseges jelolesrendszer
szerint szokas elnevezni. (Valahol olvastam hogy egy magyar
foszer talalta ki. Talan Simonyi Karoly?...)
A valtozok neveit ugy adjak meg hogy
az elso nekany betu utaljon a valtozo tipusara, igy konnyitve a
program olvasasat. Az MSDN-t olvasva nem talaltam
meg ennek a rendszernek a leirasat.
Ha ott nincs, akkor hol lehet egy _teljes_ leirast
talalni?

A masik dolog amit nem ertek.
Mifele ertekadasok ezek?
-
wcex.hbrBackground = ( HBRUSH )( COLOR_WINDOW+1 );
wcex.lpszMenuName = ( LPCSTR )IDC_PROBA;
-
Az egyenlosegjel jobb oldalan milyen kifejezesek ezek?
A ket zarojeles kifejezes kozott _nincs_ semmi?
Vagy a masodik pelda eseten a zarojel utan hogy
johet igy valami. En eddig ugy tudtam hogy ket
operandust egy operatorral kell osszekapcsolni hogy
ertelmes kifejezest alkossanak. Akkor ez most mi?

Na most lehet rohogni...    :-)

Nagyon orulnek ha valaki felvilagositana a
ket temaval kapcsolatban.

Krapulax

+ - Hello, (mind) VÁLASZ  Feladó: (cikkei)

honnan tolthetnem le a BIOS es a DOS megszakitasok listajat es
  magyarazatat? Maganba is. kosz

 Vikee! - mailto:     http://vikee.home.sk
+ - prim (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Mindenkinek koszonom, hogy az amator hibaimat javitgatta a prim kereso
programban, de hat csak nemreg kezdtem el tanulni.

Novak Aron
+ - Re: Prim (mind) VÁLASZ  Feladó: (cikkei)

Kedves Lista!

Csatlakoznek Kocsi Zoltanhoz, aki elmagyarazta, hogy miert nem jo a Prim 
program. Azert meg egy-ket kiegeszitest is tennek.

On 8 Oct 2000, at 4:43, HIX CODER wrote:

> Felado : Ko'csi Zolta'n
> E-mail :  [Australia]

>  > #include <stdio.h>
>  > #include <stdlib.h>
>  >
>  > main () {
>  > int szam;
>  > int eredmeny;
>  > printf("Írj be egy számot:");
>  > scanf("%d", &szam);
>  > eredmeny = prim(&szam);
>  > if (eredmeny == 0)
>  > 	printf("A szám prím");
>  > else if (eredmeny != 0)
>  > 	printf("A szám nem prím");
>  > }
>  >
>  > prim (szam) {
>  > int x, y;
>  > div_t div(int x, int y);
>  > long int ciklus;
>  > long int ertek;
>  > int eredmeny;
>  > 	for (ciklus = 1; ciklus <ertek; ciklus++) {
>  > 		ldiv_t ldiv(ciklus, ertek);
>  > 		if (y != 0)
>  > 			eredmeny++;
>  > 	}
>  > return eredmeny;
>  > }
>  >
>  > Miert nem megy a program?
> 
> 
> - a prim( szam ) nem deklaralja a 'szam' tipusat. Ez az ANSI C szerint
>   nem legalis es a K&R szerint sem volt az.

Azert van itt meg tobb problema is. Ha nem irja ki az int-et, akkor az meg 
nem annyira baj. Az mar igen, hogy a prim meghivasakor &szam-ot ir be, ami 
ugyebar a pointer. Tehat a prim fv-ben a szam erteke egy pointer lesz, ami 
nem sok jora vezet. Nyugodtan hasznald a prim(szam) hivast. Kevesbe faj.

> - a ciklus terminaciojara az 'ertek' valtozot hasznalod, ami sehol nem
>   kap erteket.
>
> - az 'y' valtozot deklaraltad, de sehol nem adsz neki erteket, megis
>   az alapjan dontesz az if-ben
> 
> - az 'x' valtozot deklaralod de sehol nem hasznalod
> 
> - a ldiv_t ldiv( ... ) a ciklusban formalisan egy kulso fuggveny-
>   deklaracio, csak szintaktikailag hibas. Gondolom, fuggvenyhivas
>   akart lenni, de annak is hibas szintaktikailag.
> 
> - nem egeszen vilagos a "div_t div( ..)" deklaracio sem  a fuggveny
>   elejen, minthogy a stdlib.h ezt amugy is deklaralja, viszont sehol
>   nem hasznalod.

Nem tudom mi az a ldiv es div fuggveny. De valahogy ugy tunik, hogy a prim fv-
n belul akarod oket definialni. Ha jol gondolom, akkor nem egy ilyen 
figgvenyre mutato pointert akarsz csinalni, mert ebben az esetben nem sok 
ertelme lenne. Fv. definicion belul pedig csak a Pascal-ban lehet fv-t 
definialni.

> - a main-ben ez a konstrukcio:
>     if ( eredmeny == 0 )
>       ...
>     else if ( eredmeny != 0 )
>       ...
>   nem hibas, csak tautologia. Ha az elso if-nek az else agaba
>   kerultel, akkor nyilvanvalo, hogy az 'eredmeny' nem nulla.
>   Egy jo compiler (pl. a gcc is) kioptimalizalja, de akkor is.

Ez nekem is feltunt...

> - a main() -t int main( int argc, char *argv[] ) -nek kellett volna
>   deklaralnod (felteszem, hogy nem embedded systemet csinalsz). Te
>   implicite int main( void ) -nak deklaraltad, viszont sehol nem
>   adsz vissza erteket.

Ez nem problema. En "void main()"-nak szoktam, de tok mindegy. Ugy sem fogod 
sehol sem felhasznalni a visszateresi erteket...

> Szerintem szerezd meg Kernighan - Ritchie: A C programozasi nyelv
> konyvenek 2. kiadasat, az egy *nagyon* jo C konyv.

Azt hiszem egyszerubb programokkal kellene kezdened, mert nagyon latszik, 
hogy meg a C-nyelv alapjait sem ertetted meg. Nagyon sok hibat vetetel. 
Valamint maga az algoritmus sem vilagos, amit meg akarsz valositani (bar 
lehet, hogy itt a hiba az en keszulekemben vagyon).

Ha leirod, hogy mit is szeretnel csinalni, akkor elvekengunk rajt'! :-)

Udv From:, a relativ prim

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS