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
Подели на овим сајтовима

Придружите се разговору

Можете одговорити сада, а касније да се региструјете на Поуке.орг Ако имате налог, пријавите се сада да бисте објавили на свом налогу.

Guest
Имаш нешто да додаш? Одговори на ову тему

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Чланови који сада читају   0 чланова

    Нема регистрованих чланова који гледају ову страницу

  • Сличан садржај

    • Од Давор73,
      Има ли кога да се бахће са Пајтоном?  Планирам да по трећи пут кренем из почетка, мада сам својевремено био дошао до класа али сам направио за мене већу паузу тако да...Ако је неко вољан за размену мишљења, искуства, заједничко учење  нека цимне. Иначе тотални сам почетник и ово ми је први језик тако да ми аналогије са неким другим језицима за сада нису од користи.
    • Од Juanito,
      Уз једну важну разлику...

    • Од Grizzly Adams,
      За оне који су завршили лекцију бр. 1 следи наставак.
      Почећемо са малом причицом, молим за пажњу и стрпљење.
      Замислите да правимо игрицу, трку аутомобила. Значи, наш програм приказује на екрану аутомобиле различитих боја који се међусобно утркују:

      И онда имамо "зелени ауто", "црвени ауто" и "плави ауто". Е сад, они се разликују по боји, али осим тога имају пуно сличности - свима се управља на исти начин. Имају педалу за гас, кочницу, могу да скрену лево или десно.
      Замислите сада да је неко већ испрограмирао све што је потребно за "ауто" и да постоји некаква "фабрика" која може да нам у тренутку направи ауто било које боје. Онда би програмирање наше игрице било врло једноставно, на пример - у програмском језику Срб# то би изгледало овако:
         Направи нови зелени ауто.
         Направи нови црвени ауто.
         Направи нови плави ауто.

         зелениАуто.Убрзај();

         if (иде кривина улево) {
            црвениАуто.Кочи();
            плавиАуто.СкрениЛево();
         }
      Веома једноставно и лако за разумевање.
      Такав начин програмирања зове се "објектно програмирање" јер правимо некакве "објекте" и онда само њима "командујемо" шта да раде (слично као што "објекту" Console издајемо "команде" типа WriteLine(), ReadLine() и слично). Нажалост, програмски језици немају унапред уграђен тип "аутомобил" па морамо да га направимо сами. Тај нови тип податка "аутомобил" зове се "класа". То је као "упутство" за фабрику како се прави аутомобил, срећом - програмски језици имају уграђену "фабрику" која може у делићу секунде да направи колико год хоћеш аутомобила различитих боја. Само је прво потребно направити "упутство".
      Како се то ради може се прочитати овде: http://csharp.net-tutorials.com/classes/introduction/
      Очекујем пуно питања.
    • Од Grizzly Adams,
      Ко је завршио све са почетне теме, ово је наставак.
      На теми већ има један задатак ("Регистар каса"), овде да додамо још неке идеје шта би могло да се направи са знањем из првог поглавља ("The Basics"). Веома је битно испробати што више примера тако се сви концепти потпуно разјасне и стекне способност да се примене на практичне проблеме.
      У првом делу научили смо:
      Основне типове података и варијабле, Условне наредбе (if, switch), Петље (while, do-while, for, foreach), Функције и параметре, Низове (arrays). Сада све то треба применити на што више примера.
      За оне који су тамо завршили све што има, ево другог задатка - направити "калкулатор".

      Кад се отвори, програм прво пита само за број. Кад се унесе број, освежи се екран, прикаже унет број, онда се тражи операција - само један "карактер", може бити: '+', '-', '*', '/'.
      Затим поново тражи број. Када се унесе број, екран се освежава приказује операција, број и резултат као на слици изнад и тако у круг. Предлажем да овде употребите while, низове, функције и switch наредбу.
      -
      Ако имате још коју идеју за једноставан програм, слободно јавите!
    • Од Grizzly Adams,
      Ово је прва лекција, а овде можете да видите цео план овог нашег "курса":
      За почетак, потребан је Windows (може и Linux или други OS - погледај поруке испод) и знање како да се иде на интернет и инсталирају програми.
      Циљ ове прве лекције је да "пробијемо лед" и направимо најједноставнији могућ програм.
      1) Инсталирати Visual Studio Community Edition (бесплатно и легално)
      https://www.visualstudio.com/vs/community/
      При инсталацији одабери опцију ".NET Desktop Development":

      2) Отвори Visual Studio и пажљиво следи ово упутство:
      https://msdn.microsoft.com/en-us/library/k1sx6ed2.aspx
      Осим последњег дела (Command-Line Compilation and Execution), то ти не треба.
      Направио си свој први програм. Покушај да измениш поруку која се појављује на екрану - нпр. преведи на српски језик. Јави кад завршиш или ако не иде и треба помоћ.
      -
      Молим овде само конкретна питања везана за тему, све остало ће бити брисано без милости. Данке шен.
      Потребно је све укупно око 15 минута, ко не уради требало би да буде кажњен...
      ----------------------------------
      Кад се ово претходо успешно заврши, наставити овде:
      http://csharp.net-tutorials.com/basics/hello-world/
      Почиње са овим што смо већ урадили па наставља даље где треба. Пробајте да изгурате поглавље "The Basics" до краја и питајте одма шта није јасно. То је циљ ове "лекције бр. 1".
      ----------------------------------
      Када завршите прво поглавље, овде је задатак за "испит":
       
×
×
  • Креирај ново...