GRY-Online.pl --> Archiwum Forum

Prośba o pomoc w TP.

02.02.2005
20:30
smile
[1]

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.

02.02.2005
20:49
smile
[2]

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ę :).

02.02.2005
20:52
[3]

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

02.02.2005
20:54
smile
[4]

-=]o[=- [ Generaďż˝ ]

a ja myślałem że chodzi o telekompromitację polską

03.02.2005
02:42
[5]

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.

© 2000-2024 GRY-OnLine S.A.