OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů

HVDOSdev2019!

Právě je 22 zář 2019, 01:31

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 49 ]  Přejít na stránku 1, 2, 3, 4  Další
Autor Zpráva
 Předmět příspěvku: Počítání pí
PříspěvekNapsal: 25 kvě 2019, 11:41 
Offline
Kecálek

Registrován: 28 říj 2016, 21:03
Příspěvky: 77
Has thanked: 8 times
Been thanked: 37 times
Při hledání informací, jak se v minulosti počítala hodnota čísla pí, jsem narazil na zajímavý článek na stránkách univerzity Wittenberg, s názvem ENIAC a pí (v angličtině) [1]. Jeden z profesorů této univerzity, Brian Shelburne, se zajímal proč a jak byla na počítači Eniac počítána hodnota pí, a co zjistil v archívech, potom sepsal do vědeckého článku.

Sice jsem samotný vědecký článek nečetl, ale na webu je možné najít prezentaci, ze které je možné poznat, jak asi takový ENIAC pracoval. A napadá mě, že by výpočet šlo nasimulovat i na Sharpu, jako program v Basicu.

ENIAC měl 20 akumulátorů, do kterých bylo možné uložit čísla, provádět nad nimi výpočty, a připadně přesouvat hodnoty mezi akumulátory. Z těchto 20 bylo ovšem pro uživatele dostupných jen 12, ostatní sloužily na uchování pomocných hodnot při provádění některých složitějších operací.

Myslím, že akumulátory by bylo možné simulovat pomocí normálních číselných proměnných. Dále měl ENIAC možnost použít děrné štítky pro vstup, a také generovat děrné štítky na výstupu. Štítky je zas možné nasimuloval pomocí pole. Aby to odpovídalo realitě, tak by se dodržovalo pravidlo, že pole je možné číst buď odpředu dozadu, nebo obráceně, ale není možné do pole přistupovat v náhodném pořadí.

Další informace pak přidám, až se mi to povede víc rozpracovat.

[1] http://www.wittenberg.edu/news/2013/03_14_pi.html


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 25 kvě 2019, 19:13 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 20:13
Příspěvky: 1762
Has thanked: 83 times
Been thanked: 333 times
Eniac nebyl počítač v dnešním slova smyslu, ale hromada hardwarových bloků, ze kterých se pomocí propojovacích kabelů a přepínačů "sestavil obvod", řešící konkrétní výpočet. Podobně jako v analogových počítačích. Ale dokázali tam udělat i cykly! Nebo spíš dokázaly, protože to často zapojovaly a programovaly ženské.

Takže Babbage byl o dost dál ;-)

_________________
Alan Kay: „Java je to nejhorší utrpení co se stalo počítačům od doby MS-DOSu.“


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 12:50 
Offline
Kecálek

Registrován: 28 říj 2016, 21:03
Příspěvky: 77
Has thanked: 8 times
Been thanked: 37 times
Byly dva způsoby, jak se zadávaly programy do ENIACu. První, jediný možný způsob po sestavení stroje, byl pomocí fyzických přepínačů na jednotlivých modulech a propojení pomocí vodičů mezi jednotlivými moduly. Tento způsob byl dosti časově náročný.

Druhý způsob se objevil později, a celý počítač byl "zadrátován" jedním programem, který četl kódy, a podle kódů prováděl něco jako instrukce. Programování počítače potom spočívalo v připravení kódů a jejich zapsání do počítače, a bylo mnohem rychlejší.

Publikace popisující systém zapojeni ENIACu, který zpracovává instrukce:
https://archive.org/details/DTIC_ADB205179/page/n1

citace z abstraktu:
Citace:
During the first two years of operation, problems were coded for the ENIAC by listing complicated sets of switch settings and cable connections. Meanwhile new machines were being designed with a small but sufficient vocabulary of operations to each of which a number was assigned. Problems were to be coded for these machines by listing a logical sequence of these numbers. Application of such a system to the ENIAC, described in this report, has been possible with only minor electronic changes. ...

Výpočet pí se prováděl roku 1949, kdy už byl dostupný druhý způsob.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 18:28 
Offline
Pan Generální

Registrován: 16 čer 2014, 12:23
Příspěvky: 2399
Bydliště: Jesenice u Prahy
Has thanked: 14 times
Been thanked: 144 times
"Cena opravy letadlové lodi Admirál Kuzněcov, řízené ožralými ruskými námořníky cestou do Sýrie a přitažené zpět do Ruska na laně: 70 000 000 rublů.
Cena opravy nepotopitelné fregaty KNM Helge Ingstad, řízené genderově způsobilými navigátorkami a potopené u norského pobřeží po nárazu do tankeru: 90 000 000 000 rublů."

Z toho vyplývá jen, že v Rusku mají levné letadlové lodě :lol:
Ale trefiliy se holky pěkně https://3kbo302xo3lg2i1rj8450xje-wpengi ... 0x420.jpeg prý to měly jen odřený.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 20:22 
Offline
Pan Generální

Registrován: 22 kvě 2013, 21:14
Příspěvky: 2253
Bydliště: Bratislava
Has thanked: 248 times
Been thanked: 427 times
danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 20:55 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 20:13
Příspěvky: 1762
Has thanked: 83 times
Been thanked: 333 times
Nijak, kromě toho že to jsou pořádné Pí...

lukz: Takže tam vlastně zadrátovali BASIC. Nebo Javu? Možná by bylo dobré doplnit název na "Počítání Pí - simulace ENIACu".

_________________
Alan Kay: „Java je to nejhorší utrpení co se stalo počítačům od doby MS-DOSu.“


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 21:19 
Offline
Pan Generální

Registrován: 16 čer 2014, 12:23
Příspěvky: 2399
Bydliště: Jesenice u Prahy
Has thanked: 14 times
Been thanked: 144 times
Busy píše:
danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?

Nijak, ragoval jsem jen na tu genderovou otázku, chlap by se uhnul, ženská jenom brzdí.

Mám to vyzkoušený na svých autech, několikrát jsem to hodil i do pole na střechu, abych se vyhnul střetu, ale za zezadu to do mě napraly dvě ženský :lol:

Papírově nebyla žádná havárie z mé viny, ale občas i někdo ujel.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 22:54 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08 črc 2013, 00:28
Příspěvky: 1016
Has thanked: 201 times
Been thanked: 221 times
Busy píše:
danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?
Prosimtě děláš jako bys ho neznal :-) Srovnává ceny rublu v 80.letech a 0.letech a diví se, že mu to nevychází :lol: Tak nějak kolorit tohodle webu, kdy se "faraon" vždycky vyjádří k něčemu, co si přečet na jeho "nezávislých" webech a hned si to bezmyšlenkovitě lupne do statusu. Už jsme tu měli osvětu k Novičoku, Huawei a nevím k čemu všemu dalšímu. Bohužel s tím admini nic nedělají, tak na to tady musíme halt koukat... Enjoy :-)

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 26 kvě 2019, 23:26 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 20:13
Příspěvky: 1762
Has thanked: 83 times
Been thanked: 333 times
Lžeš jak Rudé právo. Zkus tohle:
https://www.armadninoviny.cz/vazna-nehoda-ruske-letadlove-lode-admiral-kuznecov-a-ztrata-klicoveho-doku-pd-50.html
https://www.armadninoviny.cz/oprava-norske-helge-ingstad-by-stala-vic-nez-nova-lod.html
Prosím potvrdit přečtení, aby to admini mohli následně promazat.

_________________
Alan Kay: „Java je to nejhorší utrpení co se stalo počítačům od doby MS-DOSu.“


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 27 kvě 2019, 15:49 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08 črc 2013, 00:28
Příspěvky: 1016
Has thanked: 201 times
Been thanked: 221 times
S datem ruské kocábky jsem se fakt seknul, google mi původně vyplivnul jinou ruskou kocábku :-)

Nikde jsem ale nedočetl, že by námořníci byli ožralí. Článek o ruské loďce taky informuje, že "v současné době není znám rozsah škod." Prosím o doplnění zdrojů.

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 27 kvě 2019, 15:58 
Offline
Kecálek

Registrován: 28 říj 2016, 21:03
Příspěvky: 77
Has thanked: 8 times
Been thanked: 37 times
faraon píše:
Takže tam vlastně zadrátovali BASIC.

Já bych ty zadrátované instrukce nenazýval BASIC, aby se to nepletlo. BASIC byl vyvíjen až roku 1964, a byl to v podstatě vysokoúrovňový programovací jazyk pro počítač.

To, co zadrátovali do ENIACu byl systém, který instrukce programu četl z jednoho modulu. Takže na rozdíl od toho, kdy původně program byl vyjádřen pomocí toho, jak datové vodiče propojovaly jeden modul s druhým, a program byl tedy rozházený po celém stroji, tak teď byl program na jednom centrálním místě.

Instrukce byly od jednoduchých po složitější:

vynuluj akumulátor 15
přenes hodnotu z generátoru konstant do akumulátorů 11 a 15 (možno vybrat z několika možností, které dvě hodnoty se přenesou)
vlož do akumulátoru 15 dvojciferné číslo uložené jako další kód v programu
vlož do akumulátoru 8 trojciferné číslo uložené jako další kód v programu
halt (zastav výpočet)
vynuluj akumulátor x, potom přičti k x hodnotu z akumulátoru 15 (x je 1-5, 7-12, 14 nebo 16-19)
přičti k 13 hodnotu z akumulátoru 15
k akumulátoru 15 přičti hodnotu z akumulátoru x
přečti hodnotu z funkční tabulky do akumulátorů 11 a 15
změň znaménko akumulátoru 15 na plus
obrať znaménko akumulátoru 15
shiftuj číslo v akumulátoru 15 doleva/doprava
vynásob hodnoty z akumulátorů 15 a 11
vyděl hodnotu z akumulátoru 15 hodnotou v akumulátoru 7
spočítej odmocninu čísla v akumulátoru 15

Vytiskni jeden štítek
Načti jeden štítek ze vstupu

skoč na jíné místo v programu
podmíněně skoč pokud číslo v akumulátoru 15 je nezáporné


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 29 kvě 2019, 12:41 
Offline
Kecálek

Registrován: 28 říj 2016, 21:03
Příspěvky: 77
Has thanked: 8 times
Been thanked: 37 times
Při výpočtu pí nebudu dělat úplně věrnou simulaci ENIACu. Ten jsem zmínil spíš
jako inspiraci, protože jeho možnosti byly dosti omezené. A tedy, co šlo
spočítat na něm, půjde nejspíše spočítat i na osobním počítači.

Princip výpočtu je počítání jednotlivých členů řady a jejich postupné
přičítání. Vlastně půjde o dvě řady, a jejich pár členů si můžeme zobrazit
následujícím jednoduchým programem.

Kód:
2 X=4/5
3 F.I=0TO4
4 ?X,X/(2*I+1):X=-X/25
5 N.:?
7 X=-1/239:I=0
8 ?X,X/(2*I+1)

Výsledek:

Kód:
 .8        .8
-.032     -1.0666667E-2
 .00128    .000256
-.0000512 -7.3142857E-6
 2.048E-6  2.2755556E-7

-4.1841004E-3       -4.1841004E-3

V horní části v prvním sloupečku jsou čísla postupně dělená 25. Ve druhém
sloupečku je číslo z prvního sloupečku, vydělené postupně 1, 3, 5, 7, 9. Také
znaménko se obrací na každém řádku. Ve spodní části je začátek druhé řady,
která se sestavuje podobně jako ta první, jen se postupně dělí číslem 239^2.

Po sečtení všech čísel ze druhého sloupečku dostaneme 0.78539815, což se velmi
blíží π/4.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 11 čer 2019, 13:55 
Offline
Kecálek

Registrován: 28 říj 2016, 21:03
Příspěvky: 77
Has thanked: 8 times
Been thanked: 37 times
Dopsal jsem kompletní program, pro ty zvědavé a trpělivé je přiložen na konci. Je
možné ho napsat do Sharpa a spustit. Ovšem pozor, výpočet trvá dlouho.

Princip výpočtu jsem popisoval minule - používá se součet
arctg(1/5) + arctg(1/239).

Členy řady se počítají na 1506 destinných míst, tím je možné získat pí přesné na
1500 desetinných míst.

ENIAC měl jen malé množství paměti, takže pomocná data bylo nutné ukládat na děrné
štítky. Probíhalo to tedy tak, že pro každý člen řady se spočítalo několik
desetinných míst, a na výstupní štítek se zapsal zbytek. Když se probraly všechny
členy, tak se ještě zapsal celkový součet. Potom se všechny výstupní štítky se
zbytky vzaly, vložily na vstup, a proběhl nový cyklus, který opět spočítal několik
dalších desetinných míst. Musel tam být nejspíše někdo, kdo ručně štítky přendaval
z výstupu na vstup.

V programu tomu odpovídá cyklus na řádcích 8 až 26. V každém průchodu se přečtou
data z minulého průchodu a spočítají se nová data, která se uloží do polí RA a RB.
Pole R obsahuje součty členů na určité desetinné pozici.

I něco takového jsme tedy schopni spočítat ve starém BASICu.


Přílohy:
pibas.png
pibas.png [ 3.53 KiB | Zobrazeno 1854 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 11 čer 2019, 17:10 
Offline
Profík

Registrován: 11 lis 2013, 10:29
Příspěvky: 631
Has thanked: 85 times
Been thanked: 145 times
Pekne, co znamena dlouho? Jsem ted tyden mimo, ale az se vratim domu, tak bych to rad zkusil. A muzu to zkusit spustit na BASICu s ALU ;-) Treba se to o dost urychli. Jen tak pro zvedavost. Pro zajimavost, jak dlouho to trvalo na ENIACu?

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Počítání pí
PříspěvekNapsal: 28 črc 2019, 21:57 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 19:04
Příspěvky: 836
Has thanked: 94 times
Been thanked: 33 times
Skúšal si to?

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 49 ]  Přejít na stránku 1, 2, 3, 4  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz