Matematické Fórum

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

#1 03. 11. 2013 11:10

rama27
Příspěvky: 74
Reputace:   
 

číslo bez první cifry

Ahoj,
máme za úkol napsat v pascalu program, který z čísla sebere první číslici. Tj. z 1234 bude 234
jdu na to tak, že nejdřív spočítám logaritmus o zakladu 10, vezmu z toho dolni celou cast (floor) a udelam modulo.

Code:

program odebranicislice;
uses math;
var a,c,d,e:integer;
        b:real;

begin
   readln(a);

        begin
        b:=(log10(a));
                       //spocita logaritmus
           begin
           c:=(floor(b));
                           //dolni cela cast z b
               begin
               d:=(power(10,c));
                                //desata mocnina
                   begin
                   e:=(a mod d);   //a mod 10^c

 begin
 write(e);
 readln();
 end.

Kompilator mi ale hlasi error u  d:=(power(10,c));
Nevi nekdo proc? Diky

Offline

 

#2 03. 11. 2013 20:13

Formol
Místo: Praha
Příspěvky: 782
Pozice: krotitel mikroskopů (UHIEM 1. LF UK)
Reputace:   42 
 

Re: číslo bez první cifry

↑ rama27:
Ahoj,
zkus číst, co ti kompilátor říká. Funkce power vrací typ float, ten se na integer sám od sebe obvykle nepřetypuje.


Доктор сказал «в морг» — значит в морг!

Offline

 

#3 03. 11. 2013 21:14

rama27
Příspěvky: 74
Reputace:   
 

Re: číslo bez první cifry

Díky, když jsem to předělal na float, tak to pomohlo. Teď má kompilátor problém s tím modulem a píše (expected LongInt). To je ale přece blbost, ne? Když počítám modulo, tak LongInt nepotřebuju.

Offline

 

#4 03. 11. 2013 21:37 — Editoval Formol (03. 11. 2013 21:38)

Formol
Místo: Praha
Příspěvky: 782
Pozice: krotitel mikroskopů (UHIEM 1. LF UK)
Reputace:   42 
 

Re: číslo bez první cifry

↑ rama27:
Modulo pro změnu nekamarádí s reálnými typy. Neboj se přetypování, to se, pokud si Pascal ještě vybavím, dělá takhle:

Code:

d:=integer(power(10,c))

Доктор сказал «в морг» — значит в морг!

Offline

 

#5 04. 11. 2013 11:30

rama27
Příspěvky: 74
Reputace:   
 

Re: číslo bez první cifry

Zkusil jsem to, ale nechce mi to přetypovat. Jde vůbec float přetypovat na integer?

Offline

 

#6 04. 11. 2013 12:55

Formol
Místo: Praha
Příspěvky: 782
Pozice: krotitel mikroskopů (UHIEM 1. LF UK)
Reputace:   42 
 

Re: číslo bez první cifry

↑ rama27:
Tak pokud to nejde přeložit, tak asi nejde;-) V tom případě se podívej to manuálu, jak je definovaná některá z konverzních funkcí Int, Round a Trunc, jedna z nich by měla dělat přesně to, co chceš.


Доктор сказал «в морг» — значит в морг!

Offline

 

#7 04. 11. 2013 13:01 — Editoval Honzc (04. 11. 2013 13:07)

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: číslo bez první cifry

↑ rama27:
Můžeš mi vysvětlit, proč to děláš tak složitě?
Co to udělat takto?

Code:

program odebranicislice;
uses SysUtils;
var i: integer; 
    c,c1: string;
begin
  write(' Zadej cislo: ');
  readln(c);
  c1 := '';
  for i := 2 to Length(c) do
    c1 := c1+c[i];
  writeln;
  writeln(' ',c1);
  readln;
end.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson