Wynik MAIN : 91/100 . niby OK, ale jednak ten niesmak pozostaje . Może Wasze oczy są sprytniejsze na ten moment? .program przestepnosc;
var r: Integer;
begin
Read(r);
if r mod 4 = 0 then
Writeln('TAK')
else
Writeln('NIE');
if (r mod 100 = 0) and (r mod 400 <> 0) then
Writeln('NIE');
end.
[Pascal] Rok przestępny
-
- Użytkownik
- Posty: 40
- Rejestracja: 23 wrz 2012, o 14:52
- Płeć: Mężczyzna
- Lokalizacja: Iłża
- Podziękował: 3 razy
[Pascal] Rok przestępny
Witam. Proszę o pomoc w modyfikacji kodu źródłowego. Kod wydaje się OK, ale w dziesięciu próbach, jedna wychodzi niepoprawnie (bynajmniej według MAIN).
Ostatnio zmieniony 25 mar 2013, o 19:10 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 97
- Rejestracja: 14 paź 2009, o 20:11
- Płeć: Mężczyzna
- Lokalizacja: Kruszwica
- Podziękował: 17 razy
- Pomógł: 8 razy
[Pascal] Rok przestępny
Przeanalizuje liczbe 2100:
if 2100 mod 4 = 0 then
Writeln('TAK')
Niezależnie od tego co jest dalej , to ten program jak wypuszczony ze smyczy już napisze "TAK"
Najprościej myśle odwrócić kolejność, czyli najpierw niech sprawdzi podzielnosc przez 400, potem przez 100 i na koncu przez 4.
if 2100 mod 4 = 0 then
Writeln('TAK')
Niezależnie od tego co jest dalej , to ten program jak wypuszczony ze smyczy już napisze "TAK"
Najprościej myśle odwrócić kolejność, czyli najpierw niech sprawdzi podzielnosc przez 400, potem przez 100 i na koncu przez 4.
-
- Użytkownik
- Posty: 40
- Rejestracja: 23 wrz 2012, o 14:52
- Płeć: Mężczyzna
- Lokalizacja: Iłża
- Podziękował: 3 razy
[Pascal] Rok przestępny
Aż z ciekawości sprawdziłem, jak wygląda sytuacja podczas odwróconej kolejności i tak, jak myślałem - wynik 91/100 .mateuszl95 pisze:Przeanalizuje liczbe 2100:
if 2100 mod 4 = 0 then
Writeln('TAK')
Niezależnie od tego co jest dalej , to ten program jak wypuszczony ze smyczy już napisze "TAK"
Najprościej myśle odwrócić kolejność, czyli najpierw niech sprawdzi podzielnosc przez 400, potem przez 100 i na koncu przez 4.
Mógłbyś to pokazać? Nie widzę tu takiej możliwości, jeśli oczywiście dobrze rozumiem Twój tok myślenia .witekkq pisze:najprościej zapisać to jako jeden warunek
-
- Użytkownik
- Posty: 145
- Rejestracja: 16 lis 2007, o 09:06
- Płeć: Mężczyzna
- Lokalizacja: Gniezno
- Podziękował: 2 razy
- Pomógł: 27 razy
[Pascal] Rok przestępny
Nie znam się kompletnie na Pascalu..
@EDITED
Kod: Zaznacz cały
program przestepnosc;
var r: Integer;
begin
Read(r);
if ( ((r mod 4 = 0) AND (r mod 100 <> 0)) OR (r mod 400 =0)) then
Writeln('TAK')
else
Writeln('NIE');
end.
-
- Użytkownik
- Posty: 40
- Rejestracja: 23 wrz 2012, o 14:52
- Płeć: Mężczyzna
- Lokalizacja: Iłża
- Podziękował: 3 razy
[Pascal] Rok przestępny
Kodu jeszcze nie kompilowałem, ale już na oko widzę, że będzie OK . dzięki wielkie. Jeśli tylko możesz mi jeszcze powiedzieć, co z nawiasami. Otóż zawsze (a bynajmniej tyle ile pamiętam - 4 lata temu Pascal był w ruchu u mnie) miałem problem z nawiasami przy spójnikach logicznych. Możesz mi wytłumaczyć zasadę ich wstawiania?witekkq pisze:Nie znam się kompletnie na Pascalu..@EDITEDKod: Zaznacz cały
program przestepnosc; var r: Integer; begin Read(r); if ( ((r mod 4 = 0) AND (r mod 100 <> 0)) OR (r mod 400 =0)) then Writeln('TAK') else Writeln('NIE'); end.
PS: Czasem miło sobie co nieco przypomnieć. Otóż robiłem tak, jak ty poprzednio i mi nie wychodziło. teraz już wiem czemu. Spójniki And i Or nie są równorzędne pod względem pierwszeństwa . A więc zwracam sobie honor - nie ubliżając Twojej wiedzy i spostrzegawczości .
-
- Użytkownik
- Posty: 145
- Rejestracja: 16 lis 2007, o 09:06
- Płeć: Mężczyzna
- Lokalizacja: Gniezno
- Podziękował: 2 razy
- Pomógł: 27 razy
[Pascal] Rok przestępny
Co z nawiasami?
Nie wiem, z tego co dzisiaj przeczytałem to każde wyrażenie musi być w nawiasie.
a reszta normalnie grupowanie
nawet jakbybyły to też lepiej grupować nawiasami... wtedy ma się pewność.
Nie wiem, z tego co dzisiaj przeczytałem to każde wyrażenie musi być w nawiasie.
Kod: Zaznacz cały
(cos or cos)
Kod: Zaznacz cały
if( ( (to and to) and jeszcze_to) or (lub_to) )
-
- Użytkownik
- Posty: 40
- Rejestracja: 23 wrz 2012, o 14:52
- Płeć: Mężczyzna
- Lokalizacja: Iłża
- Podziękował: 3 razy
Pascal. Przestępność.
Czyli nasza wiedza co do nawiasów jest taka sama. Też zawsze tak postępowałem . Dobra. Jestem 27 godzin bez snu, myślę, że już czas dać sobie spokój chwilowy . Trzymaj się i dziękuję za pomoc.witekkq pisze:Co z nawiasami?
Nie wiem, z tego co dzisiaj przeczytałem to każde wyrażenie musi być w nawiasie.a reszta normalnie grupowanieKod: Zaznacz cały
(cos or cos)
nawet jakbybyły to też lepiej grupować nawiasami... wtedy ma się pewność.Kod: Zaznacz cały
if( ( (to and to) and jeszcze_to) or (lub_to) )
PS: Podziękowania również dla kolegi wyżej za chęci .