Zagadka dla programistow C

2002-03-05 12:45
Skysh
0

Jak widac ponizej poishe w Delphi, ale zaczolem sie uczyc C...I qmpel, ktory mi tlumaczy tajniki tego jezyka, ciongle mnie zaskakuje jakimis trickami. już wiem jak zrobic dwie pascalowe pentle w jednej pentli c, ale teraz to mnie zakasowal zupelnie...Problem jest taki: nalezy podac wartosc zmienne i dla ktorej wartosc wyrazenia:
( i++==++i )
jest True. Specjalisci, proshe o pomoc...--Delphi 4

Skysh The God, Your Slave

Pozostało 580 znaków

2002-03-05 13:10
mek
0

Przyznam, że nie wiem, ale może tu chodzi o typ zmiennej i.

Podumam Remek

Pozostało 580 znaków

2002-03-05 17:33
wojtas
0

for (int j=-32000 ; j&lt32000 ; j++) {
i = j ;
if (i++ == ++i)
printf("Kurde znalazlem :-) %d", i) ;
else printf("Jest do bani") ;
}

pozdrawiam
wojta$--Lets make linux better :-)

Pozostało 580 znaków

2002-03-06 08:46
remek
0

Wojtas !

Ten kod wyrzuca baaaardzo dużo "Jest do bani" i ani razu "Kurde znalazłem ...". To nie działa !
To by było zbyt proste aby było prawdziwe.

remek.

Pozostało 580 znaków

2002-03-06 23:07
wojtas
0

a wszystko dlatego ze nie ma takiej mozliwosci dla ktorej i++ == ++i
to byla tylko podpucha :-)

najpierw zobaczcie sobie w madrych ksiazkach czym rozni sie preinkrementacja od postinkrementacji

powodzenia
wojta$--Lets make linux better :-)

Pozostało 580 znaków

2002-03-07 13:17
pq
0

W madrej ksiazce napisanej sporo juz lat temu przez mojego kumpla (dotyczyla w zasadzie Borland C++ 3) przeczytalem, ze jesli zdefiniowac przeciazone wersje operatorow inkrementacji, to dzialaja one identycznie - jakby nie zwracajac uwagi czy sa pre czy post. Przynajmniej tak to zrozumialem (moze zle - C slabo rozumiem). Wieczorem w domu jak mi sie bedzie chcialo to przepisze caly cytat.

Jednak jesli to nawet dobrze zrozumialem, to nie wiem czy jest to poprawna odpowiedz albowiem pytano o wartosc zmiennej a nie o rodzaj operatora.

Moj wlasny pomysl - niezalezny od powyzszego, choc tez oparty na przeciazaniu i na grzebaniu w operatorach:
Zdefiniujmy przeciazone operatory inkrementacji dla pewnego typu (czy klasy) tak by nie zmienialy wartosci zmiennej (a++ i ++a rownaloby sie a). No i niech i bedzie tego wlasnie typu lub klasy... Albo moze mozna poprzez przeciazenie zmienic znaczenie operatora ==?

Co na to specjalisci od C?

Aha, Wojtas, Twoja brutalna proba rozwiazania problemu mialaby jak sadze wiecej sensu dla pelnego zakresu zmiennej (-32768 do 32767). Nietypowych zachowan mozna sie chyba spodziewac raczej w punktach przepelnienia, a nie gdzies w srodku zakresu...--Pawel

Delphi6

Pozostało 580 znaków

2002-03-07 13:58
Skysh
0

Ale z was programisci...Ja poczontkujoncy lamer to roztrzaskalem, a u was lipa..Przyznaje punkt emerkowi...Chodi o zmiennom i. Nikt nie pomyslal o tym? W pascalu robi sie cos takiego:
type
MyType = a..b; a,b :Integer;
A jesli a=b ??
Nio to mamy typ jednoelementowy i zadne post i dec tego nie zmieniom...Nie wiem jeszcze jak to zapisac w C, ale tak to chyba sie rozwionzuje...I co spece? :)--Delphi 4

Skysh The God, Your Slave

Pozostało 580 znaków

2002-03-09 09:11
wojtas
0

sproboj inkrementowac typ jednoelementowy w c/c++ ?????
a poza tym w C nie ma zmiennych typu zbiorowego

a jesli zadeklarujesz tablice/liste jednoelementowa i bedziesz inkrementowal jej wskaznik/iterator
to lecisz w kosmos bo C nie kontroluje zakresow zmiennych tablicowych i list

wojta$ --Lets make linux better :-)

Pozostało 580 znaków

2002-03-26 19:43
Cameel
0

A moze by tak uzyc ENUM?

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0