Nevidím chybu v algoritmu – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nevidím chybu v algoritmu – Pascal – Fórum – Programujte.comNevidím chybu v algoritmu – Pascal – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
19. 4. 2021   #1
-
0
-

Dobrý den, byl bych velice vděčný za radu - nevidím chybu. Účel algoritmu je najít všechny dvojice čísel, jejichž dělením vyjde výsledek s nejvíce dvěma desetinnými místy. Omezení u dělence je 50 až 99 a max dvě desetinná místa, u dělitele 1 až 50 a max jedno desetinné místo.

Najde mnoho příkladů: 50,1/2=25,05 a 50,15/2,5=20,06

ale velká část záznamů v listboxu je 50,399999999999 : 2,8400000000000000000001 ....

nechápu, kde se ty desítky desetinným míst berou.

EDIT: VYŘEŠENO!

z nějakého důvodu je třeba to zaokrouhlit.


j := round(j * 100)/100;

i := round(i * 100)/100;  
 

var
  i,j,x: double;
  delka, tecka: integer;
  s, priklad: string;
begin
 
i:= 50;
  while i < 99 do
    begin
      i:= i + 0.01;
      j:= 1;
      while j < 50 do
        begin
          j:= j + 0.1;
          x:= i / j;
          s:= floattostr(x);
          priklad:= '';
          delka:= length(s);
          tecka:= pos('.', s);
          if ((delka - tecka) < 6) then
            begin
              priklad:= floattostr(i) + ' ' + ':' + ' ' + floattostr(j) + ' ' + '=' + ' ' +                                           floattostr(x);
              lb.items.add(priklad);
            end;
        end;
    end;        
  
 

Nahlásit jako SPAM
IP: 178.22.113.–
MilanL+1
Grafoman
23. 4. 2021   #2
-
0
-

#1 KARLOSCZ1979
toto se u dělení s desetinými čísly stává často, je třeba tam vložit upravovací mechanismus, který odchytí ty rozdíly +-0,000000nic

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+15
Guru
24. 4. 2021   #3
-
0
-

#1 KARLOSCZ1979
Jednoduchá rada: Vynásob si všechno 100, vystačíš si tak s typem integer. Můžeš pak použít operátory div a hlavně mod.

Nahlásit jako SPAM
IP: 81.19.2.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Fotak, nevidim fotografie — založil blackcats

Zjednodušení algoritmu — založil Mutagen

Visualizace algoritmu — založil Gadael

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý