Jump to content

Програмирање - дигресије

Оцени ову тему


Препоручена порука

пре 1 минут, Grizzly Adams рече

"Decimal" су бројеви који захтевају апсолутну прецизност нпр. као цене на рачуну - ту нећеш да ти се у рачунским операцијама нешто "изгуби". Зато се они "интерно" у меморију смештају "строго" и имају мањи "опсег". "Float" се технички зове "floating point number", они се у меморију смештају на другачији начин, у облику - на пример: 12345 * 10^8. Тако да омогућавају много већи опсег, али губе на "прецизности". Они су погоднији за научне прорачуне и сл. где ти није битна стота децимала, већ и овако радиш са приближним вредностима.

Е ово је већ информација ! Тенкс !

 

Link to comment
Подели на овим сајтовима

 

пре 39 минута, Grizzly Adams рече

Мислим да је проблем само у испису, пробај ово:


$foo = "105";
echo number_format((float)$foo, 2, '.', '');  // Outputs -> 105.00

Мислим да није фора у испису. Фора је у томе што он у сваком кораку петље додаје по један цео обртај и онда испадне 143. Али у последњем кораку се не прави цео обртај, него нешто  мало мање (јер точак пређе 100 метара укупно и онда стаје). Треба проверити да ли у датом кораку прелазимо стотку. Ако прелазимо, одузети вишак. Наравно, ово је пример кога ће у пракси срести јако ретко, али чини ми се да је постављач задатка хтео баш то - да се уради дељење користећи петљу. Ево га решење у Swift-у, ове куке не могу да гледам очима. 

2gumfz8.jpg

Link to comment
Подели на овим сајтовима

пре 1 минут, Давор73 рече

Е ово је већ информација ! Тенкс !

Ју ар велком! :)

Ја радим доста са нумеричком математиком и разним прорачунима, тако да пуно користим float. Занимљивост је, на пример, кад хоћеш да провериш да ли је резултат неке float операције 0. Не можеш да направиш једноставно if (x == 0) ... јер је сваки број само апроксимативан, већ мораш да упоређујеш са неким "епсилон" који ти је "најмања значајна вредност"  па пишеш if (|x| < e) ...

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

пре 1 минут, Grizzly Adams рече

if (|x| < e

Претпостављам да "е" сам одређујеш у зависности од твојих потреба ?

Ја у Пајтону још нисам натрчао на такве примере, мада сам дошао до основа класа. Вероватно ће их бити после. Ал добра је прича за Сци област.

Link to comment
Подели на овим сајтовима

Управо сада, Давор73 рече

Претпостављам да "е" сам одређујеш у зависности од твојих потреба ?

Да, то зависи од прецизности коју очекујеш у својим прорачунима.

Само мала илустрација да ни бројеви нису тако једноставни како излгедају на први поглед. :)

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

.

пре 1 минут, Grizzly Adams рече

Само мала илустрација да ни бројеви нису тако једноставни како излгедају на први поглед. :)

Ма да ...Ја сам покушао са званичном документацијом о њима на Пу сајту па сам одустао за пет минута. Има још времена за то..:)

Link to comment
Подели на овим сајтовима

пре 2 минута, Давор73 рече

Ма да ...Ја сам покушао са званичном документацијом о њима на Пу сајту па сам одустао за пет минута. Има још времена за то..:)

Па нумеричка математика је цео предмет на факултету који се учи пар година... Има ту свашта, а доста се тога природно пренело и на програмске језике.

Не треба се замарати са тим превише, ако фирми требају такве ствари онда они запосле неког др/мр ко се тиме бави. Од програмера се не очекује да зна све те ствари детаљно. Само да зна шта не зна...

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

пре 2 минута, Grizzly Adams рече

Не треба се замарати са тим превише, ако фирми требају такве ствари онда они запосле неког др/мр ко се тиме бави. Од програмера се не очекује да зна све те ствари.

Било некад. Данас отвориш python, import scipy as sp и онда sp.урадиНекиКомпликованиПрорачунИПобриниСеЗаСвеЗачкољице(). 

Link to comment
Подели на овим сајтовима

пре 2 минута, Grizzly Adams рече

Па нумеричка математика је цео предмет на факултету који се учи пар година... Има ту свашта, а доста се тога природно пренело и на програмске језике.

Не треба се замарати са тим превише, ако фирми требају такве ствари онда они запосле неког др/мр ко се тиме бави. Од програмера се не очекује да зна све те ствари.

medjede nemoj plasiti narod sa tim epsilonima, to rijetko kome treba, svaki problem se da rijesiti sa nekoliko prostih funkcija po sistemu stap i kanap, a moze i sa jednom kompaktnom funkcijom koju dok napises izgubis pola kose na glavi...

Link to comment
Подели на овим сајтовима

@Juanito

Evo, preveo sam tvoj kod u php i radi.  Samo još da prokljuvim sve ovo... Npr. nije mi jasno zašto ovaj     $x += 0.7;  stoji  u telu petlje umesto u  uslovu? Mislim da je za for loop karakteristicno da ima tri vrednosti u uslovu... i još nešto, mada to je verovatno specifičnost za swift - zašto kod tebe ima višak = n + 0.7 - 100  kada si ga već incrimentovao gore (ono što piše by 0.7)

<?php
$brojac = 0;
for ($x=0; $x<=100; ) {
    $x += 0.7;
    $visak= $x -100;
    
    if ($visak<0){
        
        $brojac+=1;
    } else {
        $brojac+=1 - $visak;
    }

}
 
 echo"broj prolaska: $brojac <br>";

?>

 

Link to comment
Подели на овим сајтовима

пре 22 минута, Tumaralo. рече

@Juanito

Evo, preveo sam tvoj kod u php i radi.  Samo još da prokljuvim sve ovo... Npr. nije mi jasno zašto ovaj     $x += 0.7;  stoji  u telu petlje umesto u  uslovu? Mislim da je za for loop karakteristicno da ima tri vrednosti u uslovu... i još nešto, mada to je verovatno specifičnost za swift - zašto kod tebe ima višak = n + 0.7 - 100  kada si ga već incrimentovao gore (ono što piše by 0.7)

<?php
$brojac = 0;
for ($x=0; $x<=100; ) {
    $x += 0.7;
    $visak= $x -100;
    
    if ($visak<0){
        
        $brojac+=1;
    } else {
        $brojac+=1 - $visak;
    }

}
 
 echo"broj prolaska: $brojac <br>";

?>

Најпре ми реци ово, пошто код мене не ради твој код (избацује гомилу syntax error-а). Да ли на крају добијаш 142.9, пошто не видим како би могао... Рекао бих да у овом твом коду мора негде око стотке да испадне. 

Link to comment
Подели на овим сајтовима

пре 30 минута, Grizzly Adams рече

Е тако сам и ја научио PHP... :D

У ствари, можда и добија тачно. Необично ми кад се инкремент стави у тело петље, теже је пратити. :)

 

Link to comment
Подели на овим сајтовима

@Tumaralo.

Верзија у којој x повећаваш у телу петље је еквивалентна верији у којој га повећаваш у услову. Разлика је што си у другом случају унутар тела један корак иза, па мораш да додаш следећи (+ 0.7) кад рачунаш вишак. У Swift-у је бројач петље константан, не можеш да га промениш у телу, па сам одабрао други начин. У C#-у може и једно и друго и исто се добија. Можеш обе верзије да напишеш у PHP-у. 

2vsgdhe.jpg

aos4s1.jpg

Link to comment
Подели на овим сајтовима

×
×
  • Креирај ново...