Rozwi�za�am zadanie, moim zdaniem, najoptymalniej. Oto m�j kod:
#include <stream.h>
int main( int argc, char *argv[] ) {
int n; // deklaracja zmiennej calkowitoliczbowej
cin>>n; // wczytanie ze standardowego zmienne calkowitoliczbowej do
zmienne 'n'
while( --n ) // pomniejsz zmienna 'n' i powtarzaj jesli 'n' nie osiagnelo zera
if( n & 1 ) // jesli najmlodszy bit jest ustawiony to zmienna jest
nieparzysta, wiec...
cout<<n<< " "; // ...ja wyswietl
return 0;
}
Nauczyciel procentowo przyzna� mi 0 procent za to zadanie, po czym, po d�ugiej
k��tni zmieni� t� warto�� na 50%. Nadal czuj� si� skrzywdzona. Czy mam racj�?
Czy w tym programie s� jakie� b��dy? Nauczyciel argumentowa� swoj� ocen� tym,
�e w przyk�adzie by�y liczby by�y posortowane rosn�co, a m�j program sortuje
je malej�co. Moim zdaniem, przyk�ad nie jest tre�ci� zadania, tylko jedna z
wielu dr�g, kt�r� mo�na p�j��. Co Wy o tym s�dzicie?
--
Wys�ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Moim zdaniem, przykład nie jest treścią zadania, tylko jedna z
> wielu dróg, którą można pójść. Co Wy o tym sądzicie?
>
Jezeli ci to ulzy to masz racje. Jednak to palancina wystawia oceny.
> On Wed, 2 Dec 2009 18:51:05 +0000 (UTC)
> " Marlena" <cre...@NOSPAM.gazeta.pl> wrote:
>
> Moim zdaniem, przyk=B3ad nie jest tre=B6ci=B1 zadania, tylko jedna z
> > wielu dr=F3g, kt=F3r=B1 mo=BFna p=F3j=B6=E6. Co Wy o tym s=B1dzicie?
> >=20
>
> Jezeli ci to ulzy to masz racje. Jednak to palancina wystawia oceny.
Tak szczerze to mi nie ul�y�o, musz� si� do dyrektora przej�� ;) ale dzi�kuj�
za odpowiedďż˝
Gdybym oceniaďż˝, nastawiďż˝ bym siďż˝ psychicznie na
(n % 2)==1
mniej wydajne ale lepiej wyra�a intencje,
podobnie jak facet nastawi� bym sie psychicznie na rosn�ce, ale skoro
nastawi� si� a nie napisa�, jego strata. Mo�e powo�anie si� na przedzia�
jednak gdzie� miedzy wierszami przemyca, �e rosn�ce...
ale to jemu p�ac� za stawianie ocen
Najwydajniej to by�oby zapewne raz "z�apa�" parzyst� a potem
dodawaďż˝/odejmowaďż˝ 2.
> podobnie jak facet nastawi� bym sie psychicznie na rosn�ce, ale skoro
> nastawiďż˝ siďż˝ a nie napisaďż˝, jego strata.
Kiepski z faceta programista, skoro zamie�ci� buga (luk�) w tre�ci zadania.
--
Azarien
> Kiepski z faceta programista, skoro zamie�ci� buga (luk�) w tre�ci zadania.
Szczerze m�wi�c to nie pierwsza luka i pewnie nie ostatnia, w jednym z zada�
kaza� wypisa� wszystkie dzielniki liczby n r�ne od 1. Nie ma s�owa o ich
ca�kowitoliczbowo�ci. Takie niesprecyzowane zadania s� w stylu mojego
nauczyciela, staram siďż˝ na nie zwracaďż˝ uwagďż˝, lecz narazie, z marnym skutkiem.
Dzi�kuj� za odpowied� , Wiktorze S. ;)
Widzisz, na takiej wikipedii jest napisane:
Dzielnik – w matematyce dla danej liczby całkowitej liczba całkowita,
która dzieli ją bez reszty. W matematyce elementarnej dzielnikiem nazywa
się dowolną liczbę, przez którą się dzieli.
(http://pl.wikipedia.org/wiki/Dzielnik)
Może spodziewa się, że Twoja (czy też Wasza) matematyka jest powyżej
poziomu elementarnego.
JD
> Marlena pisze:
> > Wiktor S. <wswiktor&poczta,f...@no.spam> napisa��(a):
> >
> >> Kiepski z faceta programista, skoro zamie��ci�� buga (luk��) w tre��ci zadan
> ia.
> >
> > Szczerze mówi��c to nie pierwsza luka i pewnie nie ostatnia, w jednym z zada
> ��
> > kaza�� wypisa�� wszystkie dzielniki liczby n róşne od 1. Nie ma s��owa o ic
> h
> > ca��kowitoliczbowo��ci.
>
> Widzisz, na takiej wikipedii jest napisane:
>
> Dzielnik ��� w matematyce dla danej liczby ca��kowitej liczba ca��kowita,
> która dzieli j�� bez reszty. W matematyce elementarnej dzielnikiem nazywa
> si�� dowoln�� liczb��, przez któr�� si�� dzieli.
> (http://pl.wikipedia.org/wiki/Dzielnik)
>
> Moşe spodziewa si��, şe Twoja (czy teş Wasza) matematyka jest powyşej
> poziomu elementarnego.
>
> JD
Masz racj�, myli�am si� w tym przypadku, dzi�kuj� za czujno�� i sprostowanie :)
pozdrawiam, Marlena
To znaczy że poza matematyką elementarną nie można powiedzieć że
dzielnikiem liczby 5 jest 2.5 ?
Pozdrawiam
> Rozwiązałam zadanie, moim zdaniem, najoptymalniej. Oto mój kod:
Po pierwsze nieprawda, po drugie, słowo 'najoptymalniej' jest
podejrzane
ideologicznie, skoro samo optymalnie znaczy 'najlepiej'.
> if( n & 1 ) // jesli najmlodszy bit jest ustawiony to zmienna jest
Hmm, niespodziewanie co druga liczba okazala sie spelniac ten
warunek;)
Nie lepiej ('optymalniej';)
for(int i=1; i<n;i+=2) cout<<i<<'" ";
Tu nei ma to wielkiego znaczenia, ale jesli trzeba by bylo
zrobic cos na liczbach z przedzailu [1,10^9] podzielnych przez
12354 to roznice byly by spore.
pozdrawiam
bartekltg
Czytam PWN "Matematyka Konkretna" Ronald L. strona 124, rozdział
"teoria liczb/podzielność"
[,,,]
Mówimy, że m dzieli n (albo n jest podzielne przez m), gdy m>0 i
iloraz m/n jest liczbą
całkowitą.
[...]
W takim przypadku mamy na myśli po prostu to, że istnieje liczba
całkowita k taka, że n = m*k.
[...]
Definicję tę można zastosować do dowolnych liczb rzeczywistych, np.
2pi jest
podzielne przez pi. Niemniej jednak będziemy ich używali prawie zawsze
w
sytuacjach, w których zarówno m jak i n są liczbami całkowitymi. W
końcu
zajmujemy się teorią liczb.
Zawsze sądziłem że dzielnik jest liczbą całkowitą/naturalną w
kontekście
działu matematyki zwanego "teorią liczb", bez kontekstu jest dowolną
liczbą rzeczywistą bez względu na to czy mamy do czynienia z
matematyką wyższą czy elementarną. Ten cytat zdaje się to
potwierdzać.
Pozdrawiam
>> if( n & 1 ) // jesli najmlodszy bit jest ustawiony to zmienna jest
>
> Hmm, niespodziewanie co druga liczba okazala sie spelniac ten
> warunek;)
Tak pomy�la�em, �e teoretycznie niekoniecznie na ka�dej architekturze
mo�e to by� prawd�. Cho� nie znam �adnej gdzie dla dodatnich by to by�o
nieprawd�, co do ujemnych ... mo�na by wymienia� r�ne opcje.
Słowo optymalnie też jest podejrzane, bo nie wiadomo co
ma być optymalne? Czytelny zapis? Ilość zmiennych?
Czas działania? Czas napisania programu? W programie
Marleny jest użyta tylko jedna zmienna, w Twoim dwie,
pod tym kątem Twój program jest "mniej optymalny",
bo używa więcej zmiennych :)
Pozdrawiam
Dla "czystości" napisałbym jednak warunek ze sprawdzaniem reszty
z dzielenia. Liczby, to liczby, nie po to jest wysokopoziomowość, żeby
się bitami interesować 8-)
--
Paweł Kierski
ne...@pkierski.net
i to znaczy, �e jest "mniej optymalny"?
lol - optymalny w liczbie zmiennych, ciekawe...
poza tym, �e kod w�tkotw�rcy odwo�ywa� si� do
tej zmiennej dwukrotnie raza wiecej
optymalnie to mo�na ocenia� w jaki� konkretnych
warunkach, a tu ich nie podano, nie limitu zasob�w,
szybko�ci dzia�ania, wielko�ci programu, ani ich
priorytet�w.
--
Krzysztof Warunek
Heh... Obaj piszecie o tym samym. Przeczytaj na spokojnie raz jeszcze co
napisa� Mariusz. Da� przyk�ad, �e w jednym z przypadk�w mo�na uwa�a�
Tw�j algorytm za mniej optymalny, w innym mo�e by� bardziej... W�a�nie
napisa� o niejednoznaczno�ci s�owa 'optymalnie' w tym kontek�cie.
--
Kaczus
http://kaczus.republika.pl
No o tym mówię :) Słowo optymalne bez podania
kryterium też nie wyjaśnia o co chodzi.
W tym programie ilość zmiennych jest optymalna.
Pozdrawiam
A na przyk�ad, je�li program konserwowa� b�dzie firma dobrego kumpla z
podstaw�wki (bo dajmy na to wy�ej nie zd��y� zaliczy�) p.pos�a Xxxxx za
drobn� op�at� z bud�etu, optymalno�� jeszcze inaczej wygl�da.
My�l�, �e student�w informatyki warto tego te� nauczy� ;)
> Po pierwsze nieprawda, po drugie, s�owo 'najoptymalniej' jest
> podejrzane ideologicznie, skoro samo optymalnie znaczy 'najlepiej'.
Ten przymiotnik nale�y do gramatycznych wyj�tk�w -- stopniuje si�
w pi�ciu nat�eniach. Czwarty z nich brzmi "optymalniejszy" ;->
Pozdrawiam
Piotr Wyderski
jak nie ma sprecyzowanego kryterium, to wzi��bym,
dla tego konkretnego problemu, jak pewnie oceniaj�cy,
pod uwag� potrzebne zasoby, wielko�� programu,
czas dzia�ania i przemno�y� je, im wi�ksza liczba
tym "mniej optymalny".
> W tym programie ilo�� zmiennych jest optymalna.
no w�a�nie nie jest, jest najmniejsza, �apiesz
Kiedyś też nie używałem określenia "bardziej optymalny". Ale teraz
mam wątpliwości, czy to nie znaczy tego samo co "bliższy optymalnemu"?
Pozdrawiam
Aha :)
Czyli wg kt�rego� z kryteri�w mo�e by� najbardziej optymalna...
--
Kaczus
http://kaczus.republika.pl
Nie ma "bardziej optymalnego" - to tak, jaby był "bardziej najlepszy".
"Bliższy optymalnemu" ma sens, o ile ten poprzedni będzie nazwany
"bliski optymalnemu" 8-)
--
Paweł Kierski
ne...@pkierski.net
heh, straszny ot siďż˝ robi.
Pozdrawiam :)
http://sjp.pwn.pl/haslo.php?id=2569876
--
Kaczus
http://kaczus.republika.pl
a z tego wynika, �e...
dla mnie EOT :)
> Nie ma "bardziej optymalnego" - to tak, jaby był "bardziej najlepszy".
Optymalny jest ten kod, jaki mamy dzisiaj. Jutrzejszy bedzie optymalniejszy.
:->
Pozdrawiam
Piotr Wyderski
�e optymalny to najlepszy z mo�liwych w okre�lonych warunkach, a nie
kompleksowo optymalny, bo czegoďż˝ takiego nie ma....
--
Kaczus
http://kaczus.republika.pl
dla pocieszenia powiem anegdotk� w drug� stron�: dawno temu da�em studentom
na kolokwium z C zadanie, kt�re brzmia�o mniej wi�cej tak:
"napisa� program, kt�ry wypisze najmniejsz� liczb� trzycyfrow�, kt�ra
[....]"
chodzi�o mi oczywi�cie o taki program, kt�ry najpierw znajdzie tak� liczb�,
a potem jďż˝ wypisze.
int main()
{
for ( int liczba = 999; liczba >=0; liczba-- )
{
if ( warunek( liczba ) == 1 )
{
printf( "%d", liczba );
return 0;
}
}
}
student rozwi�za� to zadanie pisz�c program:
int main()
{
printf( "768" );
}
niestety, musia�em przyzna� mu komplet punkt�w.
ju� nigdy wi�cej nie pope�ni�em takiego b��du polegaj�cego na
niedoprecyzowaniu specyfikacji.
mora� z tego taki, �e b�d�c po drugiej stronie te� trzeba chcie� si� czego�
nauczyďż˝.
pozdrawiam uprzejmie
Wiktor Zychla
Spo�r�d 3 alternatyw selektywnie wybrali�my najbardziej optymaln�.
wer
Co to ma do rzeczy (po za tym, �e jest to niez�y potworek j�zykowy)?
--
Kaczus
http://kaczus.republika.pl
Zadanie na kolokwium z metod programowania b�d� algorytmiki -- MIMUW,
jaki� 1994 lub 1995 rok. "Napisa� program kt�ry na wej�ciu przyjmuje
napis s sk��daj�cy si� z liter, cyfr, znak�w przestankowych i spacji
oraz liczb� dodatni� n. Program ma wypisa� tekst powsta�y z podzielenia
s na sformatowane wiersze w nast�puj�cy spos�b: dzielimy na wiersze
d�ugo�ci dok�adnie n tak by nie wstawi� ko�ca linii wewn�trz s�owa (nie
�amiemy s��w), na ko�cu i na pocz�tku wiersza nie mo�e by� spacji, �adne
s�owa nie mog� zosta� sklejone a wyst�puj�ce wewn�trz wiersza spacje
powielamy/redukujemy tak, �eby d�ugo�� wiersza by�a r�wna n za� d�ugo�ci
wszystkich blok�w wyst�puj�cych po sobie spacji w wierszu mog� si�
r�ni� co najwy�ej o 1. Powy�sze formatowanie nie dotyczy ostatniego
wiersza wypisywanego tekstu."
Jeden ze student�w po prostu wypisa� tekst s na wyj�cie. Dosta� maksimum
punkt�w.
> niestety, musia�em przyzna� mu komplet punkt�w.
Tu te� tylko zapomnieli napisa�, �e ostatni wiersz, cho� nie musi
justowany, nie mo�e by� d�u�szy ni� n i nie mo�e mie� spacji na pocz�tku
i na ko�cu.
pzdr
\SK
--
"Never underestimate the power of human stupidity" -- L. Lang
--
http://www.tajga.org -- (some photos from my travels)
Taki program też ją wypisze:
int main() {
for(int i=-1000;i<=+1000;i++)
printf("%d ");
return 0;
}
Tyle że nie tylko ją ;-)
Pozdrawiam
Masz. Jedyne czego by si� mo�na przyczepi� to to, �e wypisujesz
nadmiarow� spacj� na ko�cu. No i jeszcze mo�e u�ycie n & 1 -- nie ma
gwarancji, �e to jest nieparzyste (tzn. jaki� ufoludek mo�e wymu�li�
kompilator C w kt�rym nie b�dzie gwarancji �e n & 1 a n jest typu int (a
nie unsigned int) oznacza �e n jest parzyste). I �e jeszcze <stream.h>
nie jest standardowym nag��wkiem w C++ (jest <iostream> bez �adnego h, i
trzeba u�y� przestrzeni nazw). Ale jako� podejrzewam, �e sam pan
nauczyciel tak uczy i tak pisze (i �miem podejrzewa�, �e o
przestrzeniach nazw nie s�ysza�)...
No ale przy tej okazji Ty w�a�nie s�yszysz (a raczej czytasz) :)
> Czy w tym programie s� jakie� b��dy? Nauczyciel argumentowa� swoj� ocen� tym,
> �e w przyk�adzie by�y liczby by�y posortowane rosn�co, a m�j program sortuje
> je malej�co. Moim zdaniem, przyk�ad nie jest tre�ci� zadania, tylko jedna z
> wielu dr�g, kt�r� mo�na p�j��. Co Wy o tym s�dzicie?
�e nauczyciel powinien si� nauczy�... precyzyjnego wyra�ania my�li
(conajmniej).
Tak to ju� jest, �e potem si� okazuje, �e ci kt�rzy prac� mieli nie
samodzieln�, ale tak� co w gust pana nauczyciela trafi�a dostaj� 100%
cho� nic nie umieli, nie umiej� i umie� nie b�d�. C�, musisz si�
przyzwyczai�. W ko�cu uczysz si� dla siebie nie dla nauczyciela. A �ycie
potem zweryfikuje :)
Tak zupełnie przy okazji możesz potrenować zdolności komunikacyjne,
mediacyjne i negocjacyje w ramach ustalania korzystnej dla Ciebie
wersji 8-) Programować od tego nauczyciela raczej się nie nauczysz, ale
być może "na nim" nauczysz się, jak rozmawiać z nieprecyzyjnie
wyrażającymi się klientami i to jeszcze tak, żeby byli zadowoleni, choć
z logiką się mijają.
--
Paweł Kierski
ne...@pkierski.net
> Jeden ze student�w po prostu wypisa� tekst s na wyj�cie. Dosta� maksimum
> punkt�w.
C�, trzeba pracowac m�drze, a nie ci�ko :-)
Pozdrawiam
Piotr Wyderski
> "napisać program, który wypisze najmniejszą liczbę trzycyfrową, która
> [....]"
> for ( int liczba = 999; liczba >=0; liczba-- )
> {
> if ( warunek( liczba ) == 1 )
> {
> printf( "%d", liczba );
> return 0;
Akurat ten program wypisze największą a nie najmniejszą. :-)
> student rozwiązał to zadanie pisząc program:
>
> int main()
> {
> printf( "768" );
> }
>
> niestety, musiałem przyznać mu komplet punktów.
Ja bym mu przyznał jeszcze dodatkowe za statyczną optymalizację
wydajności.
> już nigdy więcej nie popełniłem takiego błędu polegającego na
> niedoprecyzowaniu specyfikacji.
A to ciekawe - to jaka powinna być specyfikacja, żeby student nie mógł
tak zrobić?
Co jeśli student nastuka kilometr kodu a kompilator mu zrobi na złość
i sam to zoptymalizuje i zwinie do jednej instrukcji? W końcu może - a
jeżeli program nie pracuje na żadnych danych wejściowych (ani na
globalnym stanie systemu), to nawet należałoby tego oczekiwać.
Pytanie teraz - kto powinien robić tą optymalizację? Programista czy
kompilator?
Hint: "programming happens in the head, not on a computer", autora nie
znam. ;-)
--
Maciej Sobczak * www.msobczak.com * www.inspirel.com
> No i jeszcze może użycie n & 1 -- nie ma
> gwarancji, że to jest nieparzyste (tzn. jakiś ufoludek może wymuślić
> kompilator C w którym nie będzie gwarancji że n & 1 a n jest typu int (a
> nie unsigned int) oznacza że n jest parzyste).
Dobra, dobra, bez przesady: 3.9.1/7 oraz przypis 44.
n & 1 jest OK, chociaż stawia hakerstwo wyżej niż uczciwą
inżynierię. :-)
Bo ja wiem czy hakerstwo? szuka liczb, kt�re maj� najmniej znacz�c�
cyfr� w systemie binarnym r�wn� jeden....
--
Kaczus
http://kaczus.republika.pl
teďż˝ mocne
Wiktor Zychla
No sorry, zupe�nie na serio jak w zespole jest kto�, kto wyw�szy dziury
w specyfikacji (w�asnej tworzonej lub przyj�tej), to ma du�e pozytywne
znaczenie.
Dla tego studenta plus, cho� wr�� karier� prawnika.
> On 2 Gru, 19:51, " Marlena" <cre...@NOSPAM.gazeta.pl> wrote:
>
> > Rozwi=B1za=B3am zadanie, moim zdaniem, najoptymalniej. Oto m=F3j kod:
>
> Po pierwsze nieprawda, po drugie, s=B3owo 'najoptymalniej' jest
> podejrzane
> ideologicznie, skoro samo optymalnie znaczy 'najlepiej'.
Nieprawda? Dalczego 'nieprawda', panie Bartku? Napisa�am wyra�nie 'moim
zdaniem'. To moja indywidualna opinia na temat tego kodu. Jestem uczniem
liceum, a nie programist�. Napisa�am taki program, jaki moim zdaniem by�
najlepszy.
pozdrawiam, Marlena ;)
--
Wys�ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
> > n & 1 jest OK, chociaż stawia hakerstwo wyżej niż uczciwą
> > inżynierię. :-)
>
> Bo ja wiem czy hakerstwo? szuka liczb, które mają najmniej znaczącą
> cyfrę w systemie binarnym równą jeden....
Faktycznie, jest to zupełnie normalna definicja liczby nieparzystej -
prosto z podręcznika.
Można równie dobrze podnosić -1 do potęgi n i patrzeć na bit
znaku. :-)
Dodatkowo jest to hakerstwo, bo opiera się na niejawnej konwersji do
bool.
Zgodnie z podręcznikiem liczba jest nieparzysta, jeśli n % 2 == 1 i to
jest właśnie warunek, który należy użyć.
> Zgodnie z podręcznikiem liczba jest nieparzysta, jeśli n % 2
== 1 i to
> jest właśnie warunek, który należy użyć.
ja rowniez uzyłbym tego warunku
Każdy kto widział jakikolwiek odcinek kreskówki Dragon Ball wie, że
nawet, jeżeli ktoś jest najlepszy, to zaraz się okazuje, że ktoś jest od
niego lepszy, czyli jest bardziej najlepszy! :)
JD
Mnie uczono - ze liczba nieparzysta to taka, kt�rej ostatnia cyfra jest
nieparzysta. Je�eli mamy zapis binarny, kt�rego uczono mnie ju� w szkole
podstawowej w ramach ciekawostek, to liczb� nieparzyst� nazwa� mo�emy
tak�, kt�rej ostatnia cyfra jest r�wna jeden. Tak� definicj� pozna�em na
lekcji matematyki w szkole podstawowej. Nie uwa�am tego za jakies
hakerstwo, bo inaczej korzystanie z ka�dego twierdzenia by�oby
hakerstwem. Dla mnie w�a�nie takie sprawdzenie parzysto�ci jest
naturalnym. No ale mo�e jestem jakims paskudnym hakerem...
--
Kaczus
http://kaczus.republika.pl
W związku z tym XIX jest parzyste, a XIV nieparzyste? Albo w systemie
trójkowym: 10 (3 dziesiętnie) byłoby parzyste, ale 11 (4) - nieparzyste?
> Jeżeli mamy zapis binarny, którego uczono mnie już w szkole
> podstawowej w ramach ciekawostek, to liczbą nieparzystą nazwać możemy
> taką, której ostatnia cyfra jest równa jeden. Taką definicję poznałem na
> lekcji matematyki w szkole podstawowej.
Niejawnie założono, że cyfry są w systemie dziesiętnym. Ściślej -
twierdzenie to jest prawdziwe dla pozycyjnych systemów z podstawą
parzystą.
Tak się (nie)szczęśliwie składa, że w komputerach użyto systemu
binarnego - podstawa jest parzysta i się zgadza. Ale standard tego nie
zakłada (przynajmniej nie wprost).
> Nie uważam tego za jakies
> hakerstwo, bo inaczej korzystanie z każdego twierdzenia byłoby
> hakerstwem. Dla mnie właśnie takie sprawdzenie parzystości jest
> naturalnym. No ale może jestem jakims paskudnym hakerem...
Jeśli hakerstwo w tym miejscu utożsamiać z wykorzystaniem
nieudokumentowanych (nie opisanych wprost i nie gwarantowanych)
okoliczności, to tak 8-)
--
Paweł Kierski
ne...@pkierski.net
> Je�eli
je�eli ...
> mamy zapis binarny, kt�rego uczono mnie ju� w szkole
> podstawowej w ramach ciekawostek, to liczb� nieparzyst� nazwa� mo�emy
> tak�, kt�rej ostatnia cyfra jest r�wna jeden. Tak� definicj� pozna�em na
> lekcji matematyki w szkole podstawowej. Nie uwa�am tego za jakies
> hakerstwo, bo inaczej korzystanie z ka�dego twierdzenia by�oby
> hakerstwem.
Twierdzenie to dla wi�kszo�ci z nas zapis (n%2)==1
Korzystanie z bitu polega na konkretnej implementacji liczb (fakt, 90%
jest binarnych jak m�wisz, i by� mo�e do ko�ca �ycie nie wejdziesz na
inne, ale sďż˝ i inne). A i 'binarne' sďż˝ ze 2-3 rodzaje, czym w
podstaw�wce na pewno was nie stressowano. Stare g��bsze podr�czniki C
pog��bialy to zagadnienie.
G�upi przyk�ad: u�yjesz analogicznego algorytmu np. w dziedzinie
implementacji liczb w notacji biznesowej (BCD, Fixed decimal itd).
Dlaczego algorytm matematyczny ma si� r�ni� zapisem?
Na gruncie amtematyki:
czy liczba XVII jest parzyst�? Czy na liczbach rzymskich w og�le mo�na
m�wi� o parzysto�ci? Czy to brednie? Czy relacja parzysto�ci jest
specyficzne dla uk�adu dziesi�tnego/dw�jkowego? A dla innych?
A na liczbach w zapisie Maj�w (w przybli�eniu 12-kowym) jak jest? Co ma
cyfra (znak zapisu)w jakimkolwiek systemie do parzysto�ci, czy co� ma?
Jak sie sprawuj� Twoje, jak m�wisz, twierdzenia? Bo moje (nasze) ca�kiem
nie�le.
> Dla mnie w�a�nie takie sprawdzenie parzysto�ci jest
> naturalnym. No ale mo�e jestem jakims paskudnym hakerem...
Korzystanie z implementacji a korzystanie z twierdzenia (jak juďż˝ tego
s�owa uzy�e�) to co� co si� ogromnie r�ni - cho� po�lizgni�cie sie jest
tylko prawdopodobne i to ma�o.
Nieodr�znianie tego i mieszanie ...
Telepatia?
Kto jest parzystym medium a kto nieparzystym?
Polubi�am Pana, Panie Jacku. M�dre rzeczy Pan pisze :)
pozdrawiam, Marlena
> Dodatkowo jest to hakerstwo, bo opiera siďż˝ na niejawnej konwersji do bool.
Gdyby wy��czy� niejawne konwersje, to nie wiem, czy istnieje cho� jeden
nietrywialny program, kt�ry si� skompiluje. Poczynaj�c od biblioteki
standardowej. Taki urok tego j�zyka, nie marud�. :-)
> Zgodnie z podr�cznikiem liczba jest nieparzysta, je�li n % 2 == 1 i to
> jest w�a�nie warunek, kt�ry nale�y u�y�.
Wolďż˝ (n % 2) != 0, ale intencje popieram.
Pozdrawiam
Piotr Wyderski
Z tego samego powodu, dla którego condition == true nie jest dobrym
pomysłem 8-)
> ale intencje popieram.
Owszem - obok jest, jak się ma reprezentacja do własności parzystości.
--
Paweł Kierski
ne...@pkierski.net
> Korzystanie z bitu polega na konkretnej implementacji liczb (fakt, 90%
> jest binarnych jak m�wisz, i by� mo�e do ko�ca �ycie nie wejdziesz na
> inne, ale sďż˝ i inne).
No w�asnie niezupe�nie s� -- kiedy� by�y, ale ostatnio nawet komitet C
ol�ni�o, �e takie mutanty wygin�y przed 50 laty. Spraw� kojarz� do��
mgli�cie, ale poj�cie reprezentacji mia�o zosta� (zosta�o?) u�cislone tak,
�e jest to ci�g bit�w poprzedzony co najwy�ej jednym bitem znaku i
bez tzw. "padding bits".
Co odwa�niejsi wielbiciele �amig��wek mog� te� pokusi� si� o odcyfrowanie
standardu C++, gdzie j�zykiem godnym Sfinksa jest napisane, �e liczby bez
znaku s� kodowane u U2. C++0x poczyni�o nawet epokowe odkrycie liczb
32-bitowych (N3000, str. 881), wi�c sprawy id� w dobra stron�. :-)
> G�upi przyk�ad: u�yjesz analogicznego algorytmu np. w dziedzinie
> implementacji liczb w notacji biznesowej (BCD, Fixed decimal itd).
Wiesz... �wiadome sprawdzanie parzysto�ci liczby w oparciu o operacj�
modulo na typach nieelementarnych, zaimplementowanďż˝ w bibliotece, wymaga
nieprzeci�tnego twardziela... Bo nie�wiadome wymaga idioty.
> Dlaczego algorytm matematyczny ma si� r�ni� zapisem?
Bo specjalizowany test b�dzie kilka tysi�cy razy szybszy?
> Czy relacja parzysto�ci jest specyficzne dla uk�adu
> dziesi�tnego/dw�jkowego?
> A dla innych?
Czy cechy podzielno�ci w og�le s� specyficzne dla jakiegokolwiek uk�adu?
Bo w szko�ach podstawowych kiedy� uczono m.in. tego:
http://pl.wikipedia.org/wiki/Cecha_podzielno%C5%9Bci
"Liczba jest podzielna przez 9, je�li suma cyfr tej liczby jest podzielna
przez 9"
Cyfr w jakim uk�adzie? :-)))
> Co ma cyfra (znak zapisu)w jakimkolwiek systemie do parzysto�ci, czy co�
> ma?
"Liczba jest podzielna przez 2 (jest liczb� parzyst�), je�li ostatnia z jej
cyfr
reprezentuje liczbďż˝ parzystďż˝, czyli jest jednďż˝ z cyfr: 0, 2, 4, 6, 8."
Coďż˝ tam chyba ma...
> Jak sie sprawuj� Twoje, jak m�wisz, twierdzenia?
"Cho� podobne regu�y mog� by� one u�o�one dla dowolnej podstawy, to ni�ej
zawarto tylko regu�y dotycz�ce systemu dziesi�tnego"
U�� sobie np. dla dwunastkowego, je�li masz akurat tyle palc�w. :-)
Pozdrawiam
Piotr Wyderski
> Mnie uczono - ze liczba nieparzysta to taka, której ostatnia cyfra jest
> nieparzysta.
A żeby sprawdzić, czy ostatnia cyfra jest nieparzysta, sprawdzamy jej
ostatnią cyfrę, tak?
To jest brzydka definicja. Nadaje się jako kryterium jeśli liczbę mamy
akurat zapisaną w systemie pozycyjnym. Ale na liczbach jako takich
bardziej naturalną definicją (bo równie prostą, ale odwołującą się do
bardziej podstawowych pojęć) jest ta z resztą dzielenia przez 2.
> > Dodatkowo jest to hakerstwo, bo opiera się na niejawnej konwersji do bool.
>
> Gdyby wyłączyć niejawne konwersje, to nie wiem, czy istnieje choć jeden
> nietrywialny program, który się skompiluje. Poczynając od biblioteki
> standardowej. Taki urok tego języka, nie marudź. :-)
Eee, bez przez przesady. Napisanie takiego kodu nie jest żadnym
osiągnięciem. Wystarczy pisać ten kod na trzeźwo i przy otwartym
oknie.
W szczególności są na świecie języki, gdzie w ogóle nie ma niejawnych
konwersji. Weź programistę takiego języka i naucz go C++ - ani razu z
nich nie skorzysta, bo nie będzie to dla niego naturalne. Odważyłbym
się nawet swierdzić, że poleganie na takich konwersjach jest jedynie
stanem umysłu programisty i częścią lokalnej kultury a nie cechą
języka w ogóle.
> Wolę (n % 2) != 0
Nawet się zgadzam. "Skaluje" się lepiej na inne dzielniki.
To bym na kolanach do Częstochowy poszedł, dziękując za ten cud.
JD
Widz�c, �e mamy (my uczestnicy grupy pl.comp.lang.c) do czynienia z Osob� kt�ra co� zrobi�a samodzielnie i wykazuje inicjatyw�, a
nie jak�e cz�stym przypadkiem "zr�bcie mi", napisz� par� og�lniejszych uwag do samego kodu, mo�e si� przydadz� jeszcze :)
I niech b�dzie to przyk�ad dla nierob�w szukaj�cych gotowc�w: wyka� minimum inicjatywy to ci pomo�emy, ale producent�w darmowych
gotowc�w szukaj gdzie indziej.
Przechodz�c do meritum:
1. W kodzie przyda�yby si� tzw. wci�cia (chyba �e to efekt formatuj�cego mailera, wtedy ok)
2. Nie b�j si� "odrobiny powietrza" w kodzie -- spacje pomi�dzy separatorami itp nie zaszkodz�. I u�ywaj ich jak najbardziej
jednolicie. Pusty wiersz (lub czasem kilka, zw�aszcza w wi�kszych nieco programach) te� elegancko rozdziela fragmenty robi�ce r�ne
rzeczy. Kod taki po prostu lepiej siďż˝ czyta.
3. O tym ju� pisa�em, napisz� tu dla porz�dku -- <stream.h> to jest niestandardowy dodatek jakiego� kompilatora. Kompilator�w jest
wiele, a j�zyk C++ standard mi�dzynarodowy ma jeden. Standard m�wi o nag��wku <iostream>.
4. Wynika z 3 -- to co jest w <iostream> jest umieszczone w tzw. przestrzeni nazw, a ta konkretna przestrzeďż˝ nazw nazywa siďż˝ std.
5. O tym by�a ca�a ga��� dyskusji: zamiast pisa� (n & 1) lepiej umie�� w kodzie (n % 2 != 0)
Czyli Tw�j kod po uwzgl�dnieniu tych uwag wygl�da�by tak:
8<-----------------------------------------------------
#include <iostream>
int main(int argc, char *argv[])
{
int n; // deklaracja zmiennej calkowitoliczbowej
std::cin >> n; // wczytanie ze standardowego zmienne calkowitoliczbowej do zmiennej 'n'
while (--n) // pomniejsz zmienna 'n' i powtarzaj jesli 'n' nie osiagnelo zera
if (n % 2 != 0) // jesli najmlodszy bit jest ustawiony to zmienna jest nieparzysta, wiec...
std::cout << n << " "; // ...ja wyswietl
return 0;
}
8<-----------------------------------------------------
lub tak (w tym wy�ej u�ywamy nawy przestrzeni nazw std przed odwo�aniem do cin i cout, a w tym poni�ej deklarujemy s��wkiem using,
�e bierzemy sobie z przestrzeni nazw cin i cout):
8<-----------------------------------------------------
#include <iostream>
using std::cin;
using std::cout;
int main(int argc, char *argv[])
{
int n; // deklaracja zmiennej calkowitoliczbowej
cin >> n; // wczytanie ze standardowego zmienne calkowitoliczbowej do zmiennej 'n'
while (--n) // pomniejsz zmienna 'n' i powtarzaj jesli 'n' nie osiagnelo zera
if (n % 2 != 0) // jesli najmlodszy bit jest ustawiony to zmienna jest nieparzysta, wiec...
cout << n << " "; // ...ja wyswietl
return 0;
}
8<-----------------------------------------------------
> Czyli Twój kod po uwzględnieniu tych uwag wyglądałby tak:
> while (--n) // pomniejsz zmienna 'n' i powtarzaj jesli 'n' nie osiagnelo zera
> if (n % 2 != 0) // jesli najmlodszy bit jest ustawiony to zmienna jest nieparzysta, wiec...
> std::cout << n << " "; // ...ja wyswietl
Fuj!
Użycie niejawnej konwersji - 10 karnych pompek.
Brak nawiasów klamrowych w strukturach sterujących - po 10 pompek za
każdą brakującą parę.
Jeszcze drobiazg: to czy można zostawić tekstowy strumień wyjściowy
bez zamykającego znaku końca linii jest implementation defined.
Powyższy program może działać a może też nie działać.
Za to, powiedzmy - 5 pompek.
(Marlena - tutaj lekko nabijam się z Sebastiana, oczywiście wszystkie
jego uwagi są istotne.)
> (Marlena - tutaj lekko nabijam si=EA z Sebastiana, oczywi=B6cie wszystkie
> jego uwagi s=B1 istotne.)
Je�li si� do kogo� zwracasz, u�ywaj wo�acza, a nie mianownika. Tutaj lekko si�
z ciebie nabijam, lecz na lekcji polskiego to bardzo istotne ;)
Pozdrawiam
Marek
BTW: Stawiam dobre wino temu kto poda mi z zycia (nie wimaginowany)
przyklad gdzie zapis (n & 1) spowodowal wywalke programu.
> > (Marlena - tutaj lekko nabijam si=EA z Sebastiana, oczywi=B6cie wszystkie
> > jego uwagi s=B1 istotne.)
>
> Jeśli się do kogoś zwracasz, używaj wołacza, a nie mianownika. Tutaj lekko się
> z ciebie nabijam, lecz na lekcji polskiego to bardzo istotne ;)
Marleno - bardzo słuszna uwaga. Nawet w kontekście tego, że mi już
lekcje polskiego nie grożą, natomiast Ty nadal musisz zaliczyć
informatykę. Tak się lekko nabijam. :-)
(BTW - zdecydowanie popieram, żeby programistki częściej pisywały na
tą grupę. Już 3 dni i 65 postów i żadnej poważnej bijatyki. Czy tylko
ja mam takie obserwacje? ;-) )
Do tego po 20 pompek za argc i argv (3.6.1/2).
Pozdr
Marek
> > Do tego po 20 pompek za argc i argv (3.6.1/2).
>
> Mozesz rozwinac ?
Właśnie chodzi o to, żeby zwinąć.
Spróbuj g++ -Wall -Wextra -Werror
Czasem równie ważna jak obrona przed wywałką jest czytelność zapisu
(jasność wyrażania intencji) i jego podatność na modyfikacje.
if(n & 1) - jeśli n ma niezerowy bit 1
if(n % 2 != 0) - jeśli reszta z dzielenia przez 2 jest różna od zera
Każdy z tych zapisów wyraźnie mówi, co chcemy sprawdzić. Dla
testowania najmłodszej linii z portu równoległego oczywisty jest zapis
pierwszy. Dla sprawdzania podzielności przez 2 - drugi. W każdej z tych
interpretacji jasne jest, co zrobić, żeby (1) zmienić numer linii (choć
jeszcze lepszy mógłby być zapis (n & (1 << testedLine)) != 0), czy (2)
testować podzielność przez inną liczbę.
--
Paweł Kierski
ne...@pkierski.net
Napisa�em, uwzgl�dnieniu *tych* uwag. Konkretnych uwag. Popraw wi�c kod
wg kolejnych :)
30 pompek za nadu�ycie (konkretnego) kompilatora.
Program z argc/argv i bez ma siďż˝ kompilowaďż˝ juďż˝, bo tako rzecze Standard.
Program jest well formed i well behaved. Ma zosta� skompilowany i dzia�a�.
> Ju� 3 dni i 65 post�w i �adnej powa�nej bijatyki.
Uwa�asz to za zalet�? :->
Pozdrawiam
Piotr Wyderski
> Program z argc/argv i bez ma si kompilowa ju , bo tako rzecze Standard.
Wlasnie.
Dlatego nie nalezy wstawiac argc i argv, gdy nie sa urzywane.
Oczywiscie mialo byc uZywane.
> Program jest well formed i well behaved. Ma zosta skompilowany i dzia a .
Nieśmiało zauważę, że oryginalny program Marleny w dużym stopniu ten
warunek już spełniał.
Po co więc wziąłeś się za jego stylizację i poprawianie?
Bo uznałeś, że da się to zrobić *lepiej*?
W takim razie wyobraź sobie, że nadal można to zrobić lepiej i
usunięcie nieużywanych zmiennych jest krokiem w tym lepszym kierunku.
Fuj.
nie
Poniewaz OP jest licealistka, bede udawal, ze nie zauwazylem teksu:
"Obgadaliście każdą linijkę kodu i każde słowo przeze mnie napisane."
> Proponuję wrócić do sedna - czy powinnam dostać komplet punktów za
> to zadanie?
Powinnas, jesli jest to rozwiazanie zadania licealnego, o tresci jak w
OP.
Przeczytaj opowiastke Sebastiana o formatowaniu tekstu.
Takie numery mozna odstawiac, gdy prowadzacy zajecia sa na poziomie.
Ty masz po prostu niefart.
To jest rzecz marginalna. Nie wpływa na wygląd, utrzymywalność, itd...
Istnieją style / standardy kodowania gdzie argc/argv dodaje się zawsze i
już. Uzasadnienie jest proste -- taka funkcja main bardziej rzuca się w
oczy.
Zw�aszcza <stream.h> i nieuwzgl�dniony namespace std.
> Po co wi�c wzi��e� si� za jego stylizacj� i poprawianie?
>
> Bo uzna�e�, �e da si� to zrobi� *lepiej*?
> W takim razie wyobra� sobie, �e nadal mo�na to zrobi� lepiej i
> usuni�cie nieu�ywanych zmiennych jest krokiem w tym lepszym kierunku.
>
To nie s� jakie� nieu�ywane zmienne tylko standardowe parametry funkcji
main. Jak napisa�em Wiciowi to i tobie napisz�: s� (dobre) standardy
kodowania, gdzie siďż˝ ich wymaga i juďż˝ i majďż˝ byďż˝ nazwane argc i argv i
nijak inaczej. Ma to cho�b� t� istotn� zalet�, �e main lepiej si� rzuca
w oczy -- bo widac nie samo main wci�ni�te mi�dzy int i par� nawias�w
ale ca�y napis int main(int argc, char *argv[]).
> Fuj.
Whatever. Mo�na dyskutowa� do �mierci, czy to akurat lepiej zrobi� tak
czy owak. Podobnie jak o umieszczaniu klamer w tym samym wierszu vs w
kolejnym wierszu, o wstawianiu lub nie wstawianiyu spacji pomi�dzy s�owo
kluczowe a wyst�puj�cy po nim nawias, o u�ywaniu klamer w
jednolinijkowych ifach, o tym czy * przyklejaďż˝ do typu czy do
deklarowanej zmiennej czy od obu oddzielaďż˝, czy lepiej nazywaďż˝ MojaKlasa
czy moja_klasa, itd...
Na pewno nie mo�na odj�� punkt�w za kolejno�� wypisanych wynik�w.
Reszta zale�y od zasad oceniania (one musz� by� jasne). I ile punkt�w
mo�na by�o dosta�?
Mo�na odj�� punkt za dodatkow� spacj� na ko�cu (tyle, �e przy
zaprezentowanej precyzji specyfikacji w po��czeniu z jej nast�puj�cym
wymaganiem, czepianie si� o to jako� nie pasuje). Je�li oceniany jest
styl to mo�na by odj�� co� za styl. Mo�na by nawet z�o�liwie nie
zaliczy�, twierdz�c �e program si� nie skompiluje na zgodnym ze
standardem kompilatorze (tyle, �e podejrzewam, �e to sam nauczyciel tak
uczyďż˝).
pzdr
\SK
A nie lepiej: szybszy, wolniejszy, zajmujący więcej pamięci, zajmujący
mniej pamięci ;)
Może OT, ale może się komuś przyda:
Praktyczny sposób uzgadniania takich konwencji, gdy tworzy się ją
dla nowego zespołu (i nowego kodu). Dla każdego spornego punktu dajemy
kilka rozwiązań (zazwyczaj dwa, czasem są trzy) i pozwalamy głosować
ludziom na trzy sposoby: "tak piszę", "tak nie piszę, ale jest dla mnie
czytelne, mogę się przyzwyczaić", "tak jest dla mnie nieczytelne".
Wybieramy te warianty, które mają najmniej "tak jest dla mnie
nieczytelne", w przypadku równych - te, które mają więcej "tak piszę"
(choć można też pozostawić dowolność w ramach dwóch wersji).
--
Paweł Kierski
ne...@pkierski.net
> Marlena wrote:
> > Okej, Panowie. Obgadali�cie ka�d� linijk� kodu i ka�de s�owo przeze mnie
> > napisane. Proponuj� wr�ci� do sedna - czy powinnam dosta� komplet punkt�w za
> > to zadanie?
>
> Na pewno nie mo�na odj�� punkt�w za kolejno�� wypisanych wynik�w.
>
>
> Reszta zale�y od zasad oceniania (one musz� by� jasne). I ile punkt�w
> mo�na by�o dosta�?
>
> Mo�na odj�� punkt za dodatkow� spacj� na ko�cu (tyle, �e przy
> zaprezentowanej precyzji specyfikacji w po��czeniu z jej nast�puj�cym
> wymaganiem, czepianie si� o to jako� nie pasuje). Je�li oceniany jest
> styl to mo�na by odj�� co� za styl. Mo�na by nawet z�o�liwie nie
> zaliczy�, twierdz�c �e program si� nie skompiluje na zgodnym ze
> standardem kompilatorze (tyle, �e podejrzewam, �e to sam nauczyciel tak
> uczyďż˝).
>
> pzdr
> \SK
Szczerze m�wi�c te zadania s� sprawdzane na zasadzie dzia�a/nie dzia�a. Nie
jest brany pod uwag� ani styl ani optymalizacja kodu. Bywa�y zadania, gdzie
moi koledzy z klasy deklarowali ko�o 30 tablic, kiedy ja zadanie zrobi�am na 2
czy 3 zmiennych.
Ucz�szczam do liceum og�lnokszta�c�cego, nie profilowanego, st�d taki anie
inny poziom.
pozdrawiam, Marlena
bardzo �adnie, moze ladniej niz sam bym to napisal - do tego nie
pamietam jak dziala cin to napisze readNumber(), printNumber()
main()
{
int top = readNumber();
for(int i=0; i<top; i++)
{
if(i%2==1) printNumber(i);
}
}
p�tla for jest uwa�am bardziej m�ska ni� while, do tego "i%2==1"
jest w pewnym sensie lepsze by sprawdzac nieparzystosc liczby bo jest
to jawne wyrazenie na nieparzystosc, "n&1" zaklada ze nieparzyste to
te z ostatnim bitem 1 - tak oczywiscie niemal zawsze jest i do tego
"n&1" jest chyba szybsze - ale do takiego ogolnikowego zadania "i%2==1"
bardziej pasuje
Twoj program jest jednak ok - piatka bez w�tpliwo�i, nie ma tam w tresci
nic o kolejnosci liczb wiec mozna wypisac w dowolnej
fir
--
Wys�ano z serwisu OnetNiusy: http://niusy.onet.pl
tak, nie ma najmniejszych w�tpliwosci, sam styl jest tez bardzo
ladny - zrobil wrecz na mnie wrazenie
--
Wys�ano z serwisu OnetNiusy: http://niusy.onet.pl
Fuj! ;-) - "tę grupę"
--
pozdrawiam
Johnny
Według demokraty mieć rację to ryczeć w najsilniejszym chórze. - Nicolás
Gómez Dávila
- nauczyciel ma zawsze racj� - a jak nie ma
to patrz punkt wy�ej - to wa�niejsze
i trudniejsze od nauki programowania
- specyfikacja programu to nie tylko
zadanie - ale , r�wnie� , za�aczony przyk�ad
je�li Ci kiedy� b�dziesz naprawd� programowa�
to szybko zorientujesz sie ,�e "czytanie"
potrzeb "zlecaj�cego" jest wa�niejsze od
samego kodowania - To czytanie to
w tym wypadku za��czony przyk�ad.
- nie ,�ebym sie czepia� , ale twoje rozwi�zanie
z for od 0 nie spe�nia warunk�w zadania
- dodam ,�e pewnie sam napisa�bym podobnie
do autorki - tylko ,�e ja juz nie chodz�
do szko�y - to mi wolno :-))
- gdym jeszcze chodzi� do szko�y i mia� takiego
nauczyciela to nie dyskutowa�bym z nim o ocenach.
bo to strata czasu .
Do dzi� pami�tam obni�enie stopnia z klas�wki
( z fizyki) za brak daty na margniesie - a w nast�pnej
klas�wce za to ,�e data by� zbyt d�uga :-)
Nie dyskutowa�em.
Użytkownik "Paweł Kierski" <ne...@pkierski.net> napisał w wiadomości grup
dyskusyjnych:hfigb2$31v$1...@news.onet.pl...
> Marek Borowski wrote:
> [...]
>> BTW: Stawiam dobre wino temu kto poda mi z zycia (nie wimaginowany)
>> przyklad gdzie zapis (n & 1) spowodowal wywalke programu.
>
> Czasem równie ważna jak obrona przed wywałką jest czytelność zapisu
> (jasność wyrażania intencji) i jego podatność na modyfikacje.
>
> if(n & 1) - jeśli n ma niezerowy bit 1
> if(n % 2 != 0) - jeśli reszta z dzielenia przez 2 jest różna od zera
>
> Każdy z tych zapisów wyraźnie mówi, co chcemy sprawdzić. Dla
Dodam jeszcze, że operatory w C++ mogą być przedefiniowane.
slawek
> > if(n & 1) - jeśli n ma niezerowy bit 1
> > if(n % 2 != 0) - jeśli reszta z dzielenia przez 2 jest różna od zera
>
> > Każdy z tych zapisów wyraźnie mówi, co chcemy sprawdzić. Dla
>
> Dodam jeszcze, że operatory w C++ mogą być przedefiniowane.
Dla typów wbudowanych?
No to skoro tak, to nie powinien odejmowaďż˝
> To czytanie to
> w tym wypadku załączony przykład.
Przykład to wypisane liczby nieparzyste. Każda
kolejność jest równie dobra.
Pozdrawiam
U�ytkownik "Maciej Sobczak" <see.my....@gmail.com> napisa� w wiadomo�ci
grup
dyskusyjnych:6b699652-5cb9-4e0f...@m38g2000yqd.googlegroups.com...
> Dla typ�w wbudowanych?
A sk�d wiesz, co za typem jest a, je�eli masz fragment {int a} po #define
int something
Nota bene, gdzie jest ten program by Marlene?
Nota bene 2, sortowanie mo�na zrobi� tak marlene | sort
- czyli sortowanie jest nikomu do niczego nie potrzebne w tym przypadku.
Nota bene 3, kwestia czy ma byďż˝ .h czy nie ma byďż˝... moim zdaniem
wprowadzenie namespace pomog�o nieco niekt�rym - z drugiej strony zrobi�o z
C++ pasztet ma�o jadalny. Takie dobudowywanie ideologicznie poprawnych
kawa�k�w - naprawd� nie wiem, czy program z .h dzia�a wolniej/gorzej ni� ten
sam program bez .h . Ale oczywi�cie mo�na m�wi� o rozwoju j�zyka itd. itp.
Nota bene 4, czy liczba -1 jest nieparzysta? A liczba Pi ? A co z Sqrt[-1]
? Je�eli kryterium b�dzie "wynik dzielenia przez 2 nie jest liczb�
ca�kowit�" - to pytania te b�d� sensowne. :)
slawek
U�ytkownik "malkontent" <m...@onet.pl> napisa� w wiadomo�ci grup
dyskusyjnych:hfjujg$4jf$1...@atlantis.news.neostrada.pl...
>
> U�ytkownik " Marlena" <cref91...@gazeta.pl> napisa� w wiadomo�ci
> news:hfjtgu$an7$1...@inews.gazeta.pl...
>> Okej, Panowie. Obgadali�cie ka�d� linijk� kodu i ka�de s�owo przeze mnie
>> napisane. Proponuj� wr�ci� do sedna - czy powinnam dosta� komplet punkt�w
>> za
>> to zadanie?
>
> nie
Tak.
Ma�y drobiazg - zamiast zmniejsza� o 1, mo�na zmniejsza� o 2 - ale
powodowa�oby to komplikacje bez korzy�ci - cout zabiera tyle takt�w, �e
dodatkowe dec i dodatkowe sprawdzanie czy parzyste - nie spowalnia.
{
int n; cin >> n;
n = n - n % 2;
while(n > 0) {cout << n << ' '; n-=2;}
}
Regu�a Numer Jeden - ka�de prawid�owe rozwi�zanie nieprzewidziane przez
autor�w zadania nale�y punktowa� za oryginalno��.
slawek
> Regu�a Numer Jeden - ka�de prawid�owe rozwi�zanie nieprzewidziane przez
> autor�w zadania nale�y punktowa� za oryginalno��.
>
> slawek
Drogi S�awku, dzi�kuj� za odpowied�. Za�o�y�am ten w�tek by si� upewni�, czy
mam podstawy do tego, by o t� ocen� walczy�. Wcze�niej wypowiadano si� ju� �e
program jest poprawny, wi�c zd��y�am w tej sprawie odwiedzi� ju� wychowawc�
(matematyk) i dyrektora, poniewaďż˝ z moim panem profesorem rozmowa do niczego
nie prowadzi�a, szczerze m�wi�c zbywa� mnie 'nie rozmawiam z tob� na ten
temat'. M�j wychowawca uwa�a podobnie jak Ty, S�awku, �e powinnam dosta� za to
zadanie maksymalnďż˝ ocenďż˝. Niestety, i pan dyrektor, i pan profesor(tak
naprawd� magister ;)) uwa�aj�, �e zadanie powinno generowa� jedyny i poprawny
wynik posortowany rosn�co. Nale�a�o z�apa� t� informacj� o sortowaniu z
przyk�adu, wyczyta� j� mi�dzy wierszami. Ja tego nie zrobi�am.
Wykorzysta�am ju� wszystkie mo�liwo�ci na tym szczeblu. Zostaje mi pismo do
kuratorium o�wiaty. Musz� porozmawia� z mam� o tym i to przemy�le�. Mo�e to
jest jakie� rozwi�zanie?
pozdrawiam, Marlena
> > Dla typów wbudowanych?
>
> A skąd wiesz, co za typem jest a, jeżeli masz fragment {int a} po #define
> int something
To jest nielegalne. Jeśli w programie są takie gnioty, to przeciążanie
operatorów niewiele już zmienia.
> Nota bene, gdzie jest ten program by Marlene?
W pierwszym poście w tym wątku?
Hint: nie ma tam #define int something.
> Nota bene 2, sortowanie można zrobić tak marlene | sort
I jak sądzę świetnie to działa gdy liczby są wypisane *w jednym
wierszu*?
> - czyli sortowanie jest nikomu do niczego nie potrzebne w tym przypadku.
Było potrzebne do wymaksowania zadania...
> Nota bene 3, kwestia czy ma być .h czy nie ma być... moim zdaniem
> wprowadzenie namespace pomogło nieco niektórym
Myślisz, że wprowadzono namespace po to żeby nie było .h?
> - z drugiej strony zrobiło z
> C++ pasztet mało jadalny. Takie dobudowywanie ideologicznie poprawnych
> kawałków - naprawdę nie wiem, czy program z .h działa wolniej/gorzej niż ten
> sam program bez .h .
Otóż jest spora szansa, że "bez .h" działa wolniej. Ale nie wiązałbym
tego z namespace.
> Ale oczywiście można mówić o rozwoju języka itd. itp.
Można.
> Nota bene 4, czy liczba -1 jest nieparzysta?
Zgodnie z definicją, owszem.
> A liczba Pi ?
A według jakiej definicji?
> A co z Sqrt[-1]?
Znowu - według jakiej definicji?
> Jeżeli kryterium będzie "wynik dzielenia przez 2 nie jest liczbą
> całkowitą" - to pytania te będą sensowne. :)
Tak - i będą miały dobrze określone odpowiedzi. Przypuszczam, że je
znasz.
Napisz do Giertycha.. znaczy sie obecnego odpowiedniego ministra.
Jak nie poskutkuje, to Strasburg lub prosba o ulaskawienie z klasowki
do prezydenta. Wlacz, nie poddawaj sie! Nie zapomnij panu magistrowi
wytoczyc proces o straty wynikle z niemaksymalnej ilosci
punktow z klasowki (nie dostaneisz sie przez to na studia,
nie dostaneisz przez to dobrej roboty, co najmniej miliona zadaj,
w koncu zniszczyl tak dobrze zapowiadajaca sie kariere)
i straty moralne (ten stres, musiao to odbic sie na zdrowiu,
zniszczylo tak dobrze zapowidajacy sie mlody organizm).
Ech, wszedzie te trolle.
pzdr
bartekltg
Chryste, kolejna ofiara a.p.c.o.h.?
JD