Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
dobrý den
zadání: Určete počet cifer zadaného kladného celého čísla. Vstupní hodnotu načtěte ze standardního vstupu do proměnné celočíselného typu. Výsledek bude rovněž celé číslo, které zapište na standardní výstup. Např. pro zadané vstupní číslo 5814 se na výstupu musí objevit číslo 4.
Zkoušel jsem tohle, ale to asi není to pravé, protože potřebuji výsledek aby byl celé číslo nikoliv racionální
program pocetcifer;
var a,c:integer;b:real;
begin
read(a);
if a >=1 then
b:=(ln(a))/(ln(10))+1
else writeln('nelze');
writeln(b);
end.
děkuji za nápady.
a vzhledem k tomu že začínám v programování tak raději více vysvětlit.
Offline
Možno by bolo dobré previesť to na reťazec, a zistiť dĺžku(počet znakov) reťazca...
V tvojom prípade môžeš desatinnú časť jednoducho odrezať, alebo výraz pretypovať.
Offline
↑ myrek:
jj presne a zkonvertuješ to pomocou STR(odkiaľ-číslo, kam-reťazec) aspoň myslím...
Offline
Pak me jeste napada tohle
program pocetcifer;
var a,c:integer;b:real;
begin
read(a);
if a >=1 then
b:=(ln(a))/(ln(10))+1
b:=trunc b
else writeln('nelze');
writeln(b);
end.
a vypsalo by me to zrejme u cisla napr 542 > 3.000000000......
ale nevim jestli by se to dalo uznat jestli nema byt resenim spise 3
diky
Offline
↑ myrek:, kolega ↑ Honzc: použil cykly. Pokud jsi se cykly ještě neučil pak by to šlo i takto.
program pocetcifer; uses wincrt; var a,b:real; begin Writeln('Program vypocita pocet cifer zadaneho realneho cisla'); readln; Write('Zadej cislo '); readln(a); if a >=1 then begin b:=(ln(a))/(ln(10))+1; b:=trunc b; end else writeln('Cislo je mensi nez jedna'); writeln('Pocet cifer je ',b:2:0); readln; end.
Offline