Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok NapísalOffline : 13.04.2014 20:18

Ahoj, mám taký problém a veľmi by som potrebovala pomoc.
Mám v Perli naprogramované 2 polia. Prvé pole sa nazýva @podmienky_uzaver,
Je v ňom vybraných 11 rovníc, ktoré sú dané v tvare:
pod1 = u8 + u11 + u12 + u13 + u14 + u18 - 200
potrebujem z nich vybrať tie rovnice, tak aby sa tam nachádzali všetky uhly teda u1, u2, u3.......u18.
Druhé pole sa nazýva @podmienky_sinusova veta.
z nich potrebujem vybrat vsetky tie, aby sa tam nachádzali všetky dĺžky(d1....d12).
+ po vybratí tých rovníc nejaký dotatok, že ak počet vybraných rovníc nerovná sa q(to je počet podmienok, ktorý musím vybrať a je to 21) tak aby vybralo hocijaké ďalšie podmienky , aby ich bolo 21...
Tu je tá časť programu ( skúšala som to týmto spôsobom, vypíše podmienky, ale ako u1 berie aj u11, u12, u13 a vsetko proste čo začína u1)

Kód:
# výber q-počtu podmienok
foreach $podmienka (@podmienky_uzaver) {
      if ($podmienka =~ m/u1/){
      print " Obsahuje,  $podmienka, \n";
      }
      else{
      print " nenachadza sa tam \n";
      }
      }


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 13.04.2014 22:09

Ahoj, moc nerozumiem, ukaz prosim, aky mas obsah v jednotlivych poliach ([c]use Data::Dumper; print Dumper(\@podmienky_uzaver, \@podmienky_sinusova_veta);[/c]) a trosku rozved, kedy to ma dat aky vystup.
Co sa tyka tej poslednej vety, aby ti u1 matchovalo vyhradne u1, ale nie u11, mozes pouzit [c]$podmienka =~ /\bu1\b/[/c] -> http://www.regular-expressions.info/refwordboundaries.html, ale urcite to pojde nejak jednoducho. Len nam to treba lepsie vysvetlit.

Mimochodom, snad foreach my $podmienka, nie? [c]use strict[/c] pouzivas?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 13.04.2014 22:43

takže obsah poľa
@podmienky uzáver:
pod1 = u8 + u11 + u12 + u13 + u14 + u18 - 200
pod2 = u3 + u8 + u9 + u13 + u14 - 200
pod3 = u5 + u8 + u9 + u10 + u14 - 200
pod4 = u3 + u4 + u9 + u16 + u17 - 200
pod5 = u5 + u6 + u9 + u10 + u17 - 200
pod6 = u1 + u11 + u15 + u16 + u17 + u18 - 200
pod7 = u4 + u11 + u12 + u16 + u17 + u18 - 200
pod8 = u6 + u11 + u12 + u13 + u17 + u18 - 200
pod9 = u2 + u3 + u6 + u7 + u13 - 200
pod10 = u2 + u3 + u4 + u7 + u16 - 200
pod77 = u2 + u5 + u6 + u7 + u10 - 200

obsah poľa
@podmienky_sinusovaveta:
pod20 = (d1 * sin(u11 + u12 + u13 + u14)) - (d2 * sin(u18))
pod21 = (d2 * sin(u8)) - (d5 * sin(u11 + u12 + u13 + u14 ))
pod22 = (d1 * sin(u8)) - (d5 * sin(u18 ))
pod23 = (d1 * sin(u13 + u14 )) - (d4 * sin(u3 ))
pod24 = (d1 * sin(u8 + u9 )) - (d12 * sin(u3))
pod25 = (d4 * sin(u8 + u9)) - (d12 * sin(u13 + u14))
pod26 = (d1 * sin(u14 )) - (d3 * sin (u5))
pod27 = (d1 * sin(u8 + u9 + u10)) - (d6 * sin(u5))
pod28 = (d3 * sin(u8 + u9 + u10)) - (d6 * sin (u14) )
pod29 = (d2 * sin(u16 + u17)) - (d4 * sin (u3 + u4))
pod30 = (d2 * sin(u9 )) - (d9 * sin(u3 + u4))
pod31 = (d4 * sin(u9)) - (d9 * sin(u16 + u17 ))
pod32 = (d2 * sin(u17)) - (d3 * sin(u5 + u6))
pod33 = (d2 * sin(u9 + u10)) - (d8 * sin(u5 + u6))
pod34 = (d3 * sin(u9 + u10)) - (d8 * sin(u17))
pod35 = (d5 * sin(u15 + u16 + u17 + u18)) - (d7 * sin(u1))
pod36 = (d5 * sin(u11)) - (d10 * sin(u1))
pod37 = (d7 * sin(u11)) - (d10 * sin(u15 + u16 + u17 + u18))
pod38 = (d5 * sin(u11 + u12)) - (d9 * sin(u4))
pod39 = (d5 * sin(u16 + u17 + u18)) - (d12 * sin(u4))
pod40 = (d9 * sin(u16 + u17 + u18)) - (d12 * sin(u11 + u12))
pod41 = (d5 * sin(u17 + u18)) - (d6 * sin(u6))
pod42 = (d5 * sin(u11 + u12 + u13)) - (d8 * sin(u6))
pod43 = (d6 * sin(u11 + u12 + u13)) - (d8 * sin(u17 + u18))
pod44 = (d6 * sin(u13)) - (d11 * sin(u2 + u3))
pod45 = (d6 * sin(u6 + u7)) - (d12 * sin(u2 + u3))
pod46 = (d11 * sin(u6 + u7)) - (d12 * sin(u13))
pod47 = (d8 * sin(u7)) - (d9 * sin(u2 + u3 + u4))
pod48 = (d8 * sin(u16)) - (d11 * sin(u2 + u3 + u4))
pod49 = (d9 * sin(u16)) - (d11 * sin(u7))
pod78 = (d3 * sin(u5 + u6 + u7)) - (d4 * sin(u2))
pod79 = (d3 * sin(u10)) - (d11 * sin(u2))
pod80 = (d11 * sin(u5 + u6 + u7)) - (d4 * sin(u10)

Takže mojou úlohou je vybrať z podmienok uvedených v daných poliach 21 podmienok.
Z prvého poľa vyberám podľa uhlov(u1 - u18). Musím vybrať také podmienky, aby sa tam nachádzal každý uhol.
Teda napr. ak budem hľadať podľa u1 - malo by mi vybrať pod6 = u1 + u11 + u15 + u16 + u17 + u18 - 200.
Kedže sa tam nachádzajú aj uhly u11, u15, u16 tak tie už ďalej nebudem hľadať. A výsledné podmienky aby sa uložili do poľa @podmienky.

To isté urobiť aj s druhým poľom, len tam už nebudem brať do úvahy uhly, ale dĺžky d1 - d12.

Neviem, či chápete o čo mi ide. Netuším vôbec ako to zapísať.

// Spojený príspevok Ned 13.04.14 22:53

* a ešte jedna otázka, ako spravím inverznú maticu?
našla som nejaký modul, kde bola aj takáto nejaká funkcia na to, lenže ten modul mi vôbec nešlo inštalovať


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 16.04.2014 18:46

No, tak to bude asi jednoduche, nie?
Kód:
my $hladam = "u1";
my @podmienky = grep { /\b$hladam\b/ } @podmienky_uzaver;
Robi to to, co chces? ;)

Ad inverzna matica - pouzi Matrix::MatrixReal... co znamena "nejde nainstalovat?" Aku chybu ti to pise? Pod akym OS to instalujes?
Alebo si to naprogramuj, poznat algoritmus na vypocet inverznej matice musi snad kazdy.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 20.04.2014 21:43

ďakujem pekne :) vyhľadáva to u1 napísala som to s ďalšími,....
a ohľadom tej matice...píše mi tam chybu, že to nemôže nájsť PPD súbor..asi ho tam nemám, neviem ako sa to robí hľadám na internete...
A algoritmus musí poznať každý?? KEby som to vedela naprogramujem si to a nepíšem to tu...keď sa niekto učí v perli 3 týždne tak to asi nemusí vedieť....tiež viem veľa vecí, ktorý "musí poznať každý" ale ked sa tomu nevenuje tak nemá tušenie o čom hovorím....Ale vďaka za ochotu


Offline

Užívateľ
Užívateľ
Perl

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok NapísalOffline : 21.04.2014 0:55

Citácia:
A algoritmus musí poznať každý?? KEby som to vedela naprogramujem si to a nepíšem to tu...

http://lmgtfy.com/?q=inverse+matrix+pseudocode :-)

// Spojený príspevok Pon 21.04.14 1:05

Ruby neovladam, ale skus pozriet na: https://www.ruby-forum.com/
Necakaj, ze najdes vsetko napisane a vysvetlene v slovencine ;)







_________________
HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia
Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro

Boh je reálny, pokial nebol deklarovaný ako integer
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 21.04.2014 21:48

Wau, google? To, čo je? :) Som netušil, že niečo také existuje...Si super!!! (Inak hovorím o Perli a nie o Ruby)

Akože fakt som nečakal, že mi niekto napíše celý program, ale až to nejaký inteligenti programátori, čo si myslia, že vedia všetko a nedokážu poradiť s jednou vecou (Vďaka...čudujem sa, že v tejto dobe som čakal niečo viac)
Ale inak Ďuri tebe ďakujem, pomohlo mi to veľmi


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 21.04.2014 22:25

Preco pises raz v zenskom a raz v muzskom rode?
Ze v Perli programujes chvilu, nema nic spolocne s tym, ci poznas algoritmus. Algoritmus na vypocet inverznej matice sa uci najneskor v prvom semestri na VS a realizuje sa na papier. Kedze s tym chces pracovat, ocakava sa, ze tusis, o com je rec-- spravny postup je teda nastudovat si aspon tie zaklady linearnej algebry a potom prist s tym, ze kodim Gauss-Jordana v Perli, mam takyto kod, dam tomu tento vstup a blije to hento miesto onoho. Co od nas cakas, mame ti to naprogramovat cele? Na to je Ponuka prace. F3RYho reakcia bola spravna. My dokazeme poradit s kadecim, ale ty sa blbo pytas.
Ad ta instalacia z cpanu, ukaz presny postup, ako to instalujes, skopiruj sem prikazy z terminalu, ktore pouzivas, a presne znenie chyby (plus ju skus vygooglit, ci nahodou nenajdes riesenie bez nasej pomoci, ked teda ocividne google poznas) a napis aspon ten operacny system.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 24.04.2014 20:24

Ospravedlňujem sa, len akosi mi to nejde a neviem prečo.
Mám Windows7.
Našla som na internete, že inštalácia modulov je pomocou interaktívneho prostredia PPM.
Výstup:
PPM>search Math::MatrixReal
PPM>install Math::MatrixReal
Install package 'Math-MatrixReal?' (y/N): y
Installing package 'Math-MatrixReal'.....
Error installing package 'Math-MatrixReal' : Could not locate a PPD file for package Math-MatrixReal

Našla som na internete nejaké riešenia, skúšala som vytvoriť ten ppd file našla som, že by mal obsahovať:
<?xml version="1.0" encoding="UTF-8"?>
<SOFTPKG NAME="Bit-Vector" VERSION="6,3,0,0">
<TITLE>Bit-Vector</TITLE>
<ABSTRACT>Blah</ABSTRACT>
<AUTHOR>A Sometwit</AUTHOR>
<IMPLEMENTATION>
<CODEBASE HREF="file:///d|/downloads/cpan/Bit-Vector-6.3.tar.gz"></CODEBASE>
<INSTALL></INSTALL>
<UNINSTALL></UNINSTALL>
</IMPLEMENTATION>
</SOFTPKG>

ale stále mi to nefunguje.
Keď mám MS Windows a Strawberry Perl, tak to môžem inštalovať aj cez CPAN?


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 25.04.2014 12:44

Ano, urcite pouzi cpan. http://perlmaven.com/how-to-install-a-p ... n#dwimperl


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 28.04.2014 15:28

Ďakujem, hneď mi to nainštalovalo :)

// Spojený príspevok Pon 28.04.14 16:09

** mám ešte otázku **
Požívam ten modul Math::MatrixReal, mám maticu $A(zadanú ako nulovú, rozmer 30x30). Chcem ju vytvoriť vynásobením matice $B(rozmer 30x30) so skalárnym číslom $a, ktoré som si už vopred vypočítala a má hodnotu: 6.58516512284502e-007.

Zadala som príkaz:

$A-> multiply_scalar($B,$a);

A keď dám vypísať hodnoty matice $A tak ich vypíše, ale keď ju chcem násobiť inou maticou tak mi dá výpis: wrong argument type
Keď chcem vynásobiť niektorého jej člena : $1 = $A->element(1,1)*2; vypíše mi že Modification on a read-only value....
Pochopila som, že hodnoty v matici berie len na čítanie, ale akým iným spôsobom môžem vynásobiť maticu skalárom?


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 28.04.2014 16:48

No, to asi dava zmysel, ze multiply_scalar nebude urceny na nasobenie dvoch matic... :D aha, hned prva veta v dokumentacii nefunguje? http://search.cpan.org/~leto/Math-Matri ... ESCRIPTION

Druhy dotaz, asi chces assign().


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 28.04.2014 19:05

No, ale ono to je v podstate násobenie matice číslom, kedže obsah $a = 6.58516512284502e-007 , čo je jedno číslo.
Lenže keď dám

$A = $B * $a;

vypíše matrix size mismatch, pretože pri násobení musia sedieť veľkosti tých matíc. Takže matica B(30x30) a a(1x1) mi nevynásobí, preto som to skúšala cez ten multiply_scalar($matrix1->multiply_scalar($matrix2,$scalar), čo tiež nefunguje.


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 28.04.2014 19:22

No uz sa stracam. $a je matica 1x1? Potom to nie je skalar. (Matematicky mozno ano, ale implementaciou urcite nie.)
Bud si $a zadefinuj ako normalne cislo, nie maticu 1x1 (preco to tak nemas?), pripadne mozes teda, ak to silou-mocou chces nechat, pouzit $A = $B->multiply_scalar($a->element(1,1)) - vyberies z matice ten prvy a jediny prvok, co je cislo, a vynasobis nim maticu.
Vies o tom, ze nasobenie skalarom a nasobenie dvoch matic je nieco uplne ine, hej?

Nepouzivaj $a a $b ako nazvy premennych, su specialne.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.04.14
Prihlásený: 17.05.14
Príspevky: 8
Témy: 1
Príspevok Napísal autor témyOffline : 28.04.2014 19:58

Och ospravedlňujem sa ale $a používam len ako príklad mám to zadefinované iným názvom.

Pomohlo to, už to funguje vďaka. Viem, že násobenie skalárom je iné, ale hodnotu $a mam vypočítanú ako: $a = $b / $c,
kde $b a $c sú skaláry, tak som myslela, že aj $a je skalár.(Moja logika asi nič moc).


Offline

Čestný člen
Čestný člen
Perl

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 28.04.2014 20:12

Musi to byt skalar, nedava to ziadny zmysel. MatrixReal nema ani operator / overloadnuty (a aj keby mal, muselo by to fungovat normalne). Skus ukazat vystup
Kód:
use Data::Dumper;
print Dumper($a, $b, $c);


Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Perl začiatky

v Perl, Python, Ruby, CGI

0

606

21.11.2011 19:09

black evil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. CGI & Perl

v Perl, Python, Ruby, CGI

1

2114

25.02.2008 9:39

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Perl: hlásenie chýb

v Perl, Python, Ruby, CGI

5

1072

03.06.2011 20:00

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Perl - spustenie skriptu

v Perl, Python, Ruby, CGI

2

1373

02.08.2010 15:27

DARSON Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Napísanie skriptu v perl

v Perl, Python, Ruby, CGI

1

1313

24.10.2009 20:25

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. datum pridania suboru (perl)

v Perl, Python, Ruby, CGI

5

1569

09.01.2009 15:04

suchy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy v Perl

v Perl, Python, Ruby, CGI

0

2476

21.10.2007 22:41

quark Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Perl zapis XML do suboru

v Perl, Python, Ruby, CGI

4

675

09.03.2013 13:54

tangerine Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. perl: spustenie prikazu so znakom %

v Perl, Python, Ruby, CGI

4

1016

23.01.2011 16:04

siginigin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Čo je to PERL, Python, CGI

v Perl, Python, Ruby, CGI

2

7534

26.09.2009 14:19

Ded'leg Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Software tester pre telekomunikacny sektor - Perl

v Ponuka práce

0

594

08.02.2012 10:30

AuJob Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vista a WampServer - ako spúšťať Perl skripty

v Perl, Python, Ruby, CGI

1

1870

06.12.2008 1:21

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Je mozne skriptom jazyka perl spustat *.bat subory?

v Perl, Python, Ruby, CGI

4

2118

21.04.2008 21:00

Lucao Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PsychoStats, websuport, perl sa nedokaze pripojit k DB

v Perl, Python, Ruby, CGI

2

1579

28.02.2009 11:35

Unlink Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra