sapri [ ]
Prośba o pomoc w TP.
Witam!
Mam do zrobienia program w Turbo Pascalu, który po podaniu mu jakiejś liczby wylicza ile ta ma cyfr, np. (liczba 6735 ma 4 cyfry). Program ma też wyświetlić ile parzystych i nieparzystych cyfr w tej liczbie się znajduje. No i tu właśnie mam problem, bo tego napisać nie potrafię, żeby wyświetlało ile liczb nieparzystych jest w takiej liczbie. Czy ktoś ma jakiś pomysł?
Program, który napisałem: oblicza ile cyfr znajduje się w liczbie i ile cyfr parzystych w niej jest.
Program licz;
USES crt;
var m,d,c:longint;
Begin
clrscr;
writeln('Podaj jakas liczbe');
readln(m);
d:=0;
While m <> 0 Do
begin
d:=d+1;
m:=m div 10;
End;
c:=d div 2;
writeln('liczba cyfr w tej liczbie to: ',d);
writeln('liczba parzystych cyfr w tej liczbie to: ',c);
readln;
END.
Jeśli byłyby jakieś inne błędy w składni (czy jak to tam się nazywa :) ), również proszę o poprawienie.
Z góry THX.
sapri [ ]
Ech... sam znalazłem odpowiedź :)
Wystarczyło powiększyć tą liczbę o 1 i podzielić przez 2.
Program licz;
USES crt;
var m,d,c,f:longint;
Begin
clrscr;
writeln('Podaj jakas liczbe');
readln(m);
d:=0;
While m <> 0 Do
begin
d:=d+1;
m:=m div 10;
End;
c:=d div 2;
f:=(d+1) div 2;
writeln('liczba cyfr w tej liczbie to: ',d);
writeln('liczba parzystych cyfr w tej liczbie to: ',c);
writeln('liczba nieparzystych cyfr w tej liczbie to: ',f);
readln;
END.
Jeśli, ktoś próbował pomóc, to dziękuję :).
peanut [ kriegsmaschine ]
sprawdzanie koncowki robisz nie przez div, a mod(ulo). powinno zadzialac;)
pom:=m;
while (m<>0) do
begin
ile_cyfr:=ile_cyfr+1;
if ((m mod 10)/2=1) then
ile_parzystych:=ile_parzystych+1;
m:=m div 10
end;
// nieparzyste to ile_cyfr-ile_parzystych
-=]o[=- [ Generaďż˝ ]
a ja myślałem że chodzi o telekompromitację polską
Qbaa [ Generaďż˝ ]
peanut ---> w sprawdzaniu parzystych zamiast /2 powinno być chyba mod 2
mi działa taka wersja:
uses crt;
var z,x,c,v,b:longint;
begin
clrscr;
writeln('Podaj liczbę');
readln(z);
x:=0;
v:=0;
repeat
if (((z mod 10) mod 2)=0) then v:=v+1;
x:=x+1;
z:=z div 10;
until z=0;
writeln('Ogólna ilość cyfr w liczbie: ',x);
writeln('Ilość cyfr parzystych: ',v);
writeln('Ilość cyfr nieparzystych: ',x-v);
readkey;
end.