Diskuze: pole2D
Tvůrce
Zobrazeno 20 zpráv z 70.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Jaroslave, na takový projekt by možná bylo lepší používat nějaké IDE (jej ich mraky PyCharm, NinjaIde, atd.), aby jsi mohl kód trasovat. Tady, pokud je ti záhadou jaké hodnoty se plní do promenných, asi bych doporučil si je tisknout, tak by jsi měl jistotu, že jsi se dostal, nebo nedostal kam jsi neměl ... kód nezkoumám, k těm screenům jsme se vyjadřoval už dříve.
V první řadě bych se podíval do koše nebo zavolal sousedovi. A slyšel
jsem že ho maj na Benzině před Prahou.
Když se nezadaří tak bych zkusil otevřít Google a napsat PyCharm.
Ahoj, vysvětlí mi někdo tu disproporci, kdy u maticeK je pro i range(0, 14) a Python vyhodí chybu: index je mimo rozsah a přitom je index i=9 a j=0 ,jak je zřejmé z přílohy. Jak je vidět na příloze, tak cykly od i=0 do i=8 proběhly bezvadně.
Chtělo by to i definici matice, takto je to vaření z vody. Pravděpodobnost, že je chyba v Pythonu je dost malá.
Definice matice K je dána range(0,14) pro i a range (0,8) pro j . Je to vidět na příloze, kde je matice K vynulována (pocetstycI1=5) a d1=6 , takže výsledná matice je K(14x8).
Musíš to prohodit, to první definuje počet sloupců, to druhé počet řádků.
matk = [[0 for j in range(d1+1+1)] for i in range(pocetstycI1*2+2+2)]
navíc tam máš špatně
d1+1+2 = 9
Takže matice je 9x14, bez té opravy, čímž to umře na devítce, protože je to číslováné od nuly.
Ana to celé by si Jaroslav přišel i sám, kdyby si program trasoval a nebo vypisoval indexy tak jak jsem mu tady radil už někdy v pátek ... je to to stejné stále dokola ...
V Pythonu mi stačí print a když píšu program, tak po částech, kde jsem si jistý, že fakt na 99% fungují. Přepisování programu z jednoho jazyka do jiného změnou syntaxe je cesta do pekel.
V tomto případě by stačilo:
print(len(matK)) # počet řádků
print(len(matK[0])) # počet sloupců
a hned by věděl, že v těch rozměrech je chyba.
Načítám prvky do matice U[3x3] pomocí append() . Do obou řádků se mi
ale dostávají nuly, a neumím se jich zbavit. Potřebuji tam mít jen ta 3
čísla v obou řádcích. Matice U byla deklarována jako i=0,1,2 a
j=0,1,2.
Děkuji za pomoc.
Protože tím pádem by měla deklarovaná jinak:
U = [[] for in range(3)]
Anebo si ponech stávající inicializaci matice a vkládej tam prvky přes indexy.
Dobrá, funguje to, velmi děkuji.
Velmi nerad musím zase napsat dotaz. Program mi již běžel až do konce. Udělal jsem nějaké úpravy a zkazilo se mi vypisování matice matK. Nemohu rozluštit proč index j je mimo rozsah, deklarace matK je zřejmě správně, viz příloha. Nebo se mýlím?
P.S. index j má dosáhnout hodnoty=7, řádek matice matK má 7 položek : 1 až 7
d1=6 pocetstycI1=5
Jaroslave, zkuste implementovat rady, které jste tady již dříve dostal. Pokud se Vám nechce aplikaci, kterou píšete krokovat, tak si alespoň indexy vypisujte/logujte a jistě sám přijdete na to proč jsou mimo rozsah. To pro nás všechny a zejména Vás samotného bude jistě přínosnější než sem postovat screenshoty cyklicky se opakujících problémů s přetečeným indexem ...
Zdravím všechny,
byl mi nainstalován nový systém Windows 10, přitom jsem přišel o celý
program v Pythonu a začínám znovu.
Objevilo se mi, že objekt je nevolatelný, viz příloha. Co to znamená? Díky
za radu.
Zobrazeno 20 zpráv z 70.