Zadanie z main.edu.p dotyczące instrukcji warunkowej

0

Witam,
Napisałem program jednak nie działa on prawidłowo tak jak wymaga polecenie zadania. Czy mógłby ktoś pomóc mi znaleźć błąd w moim kodzie programu?

Zadanie napisał(a)

Przestępność

Limit pamięci: 32 MB

Mamy dany rok . Powiemy, że rok jest przestępny, gdy wartość jest podzielna przez 4. Jeśli jednak wartość dzieli się przez 100, a nie dzieli się przez 400 to rok nie jest przestępny. Zadaniem Twojego programu jest stwierdzenie czy dany rok jest przestępny.

Zadanie

Napisz program, który:

wczyta ze standardowego wejścia liczbę naturalną oznaczającą rok,
wypisze TAK jeśli rok jest przestępny, albo NIE jeśli nie jest.
Wejście

Jedna liczba naturalna oznaczającą rok.

Wyjście

W jedynym wierszu wyjścia należy wypisać TAK jeśli rok jest przestępny, albo NIE jeśli nie jest.

Przykład

Dla danych wejściowych:

1066
poprawną odpowiedzią jest:

NIE

O to mój kod programu, który napisałem:

uses crt;
 var r: LongInt;
 begin
 readln(r);
 if r mod 4 = 0 then
 writeln('TAK')
 else
 if (r mod 100 = 0) and (r mod 400 < 0) then
 writeln('NIE');
 readln; 
 end.

dodanie znaczników <quote> i <code class="pascal"> - furious programming

4

if ((r mod 100) = 0) and ((r mod 400) <> 0) then
albo
if ((r mod 100) = 0) and not ((r mod 400) = 0) then

Edit: więcej nawiasów :)

0

jeżeli tu jest błąd to jak powinno to wyglądać prawidłowo? Jak przekształcić ten mój kod programu, aby działał prawidłowo?

uses crt;
var r: LongInt;
begin
readln(r);
if r mod 4 = 0 then
writeln('TAK')
else
if (r mod 100 = 0) and (r mod 400 <> 0) then
writeln('NIE');
readln; 
end.

dodanie znacznika <code class="pascal"> - furious programming

0

co masz na myśli? Wstawiaj kod w odpowiednie znaczniki kolorujące składnię! W moim TP jak piszę program to wszystkie litery mam jednolitego koloru oprócz cyfr!

0

osobnik typu porażka na maksa... Ja wiem, że się można nie znać na czymś, czegoś nie lubić lub nie rozumieć. Ale chyba każdy ma jakiś zmysł do ogarniania rzeczywistości przynajmniej w minimalnym stopniu.

0

@bombisz, jeżeli masz zamiar zajmować się programowaniem to zacznij od nauczenia się posługiwaniem się google i/lub książkami:

var r:LongInt;
const Answer:array[Boolean]of String=('NIE','TAK');
begin
  ReadLn(r);
  WriteLn(Answer[((r mod 100)=0)and((r mod 400)<>0)]);
end.
0

Problem rozwiązany. Ale czy tak trudno było sobie podpatrzeć ze źródeł Lazarusa czy VCL Delphi (łatwiej tego pierwszego, bo jest darmowy) kod funkcji IsLeapYear? I wszystko było by jasne. Trochę samodzielności i pomyślunku. Oraz chęci do używania google, życzę autorowi tego watku.

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