Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko jednog programcica :(

[es] :: C/C++ programiranje :: Pomoc oko jednog programcica :(

[ Pregleda: 3133 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

c1u4

Član broj: 94247
Poruke: 3
85.158.39.*



Profil

icon Pomoc oko jednog programcica :(09.05.2006. u 09:19 - pre 217 meseci
Prije svega pozdrav svima!

Nakon duzeg vremena provedenog ovde citajuci forum i uceci od pojedini clanova, prije svega bi morao pohvaliti forum i ljude koji su tu, jer je zaista jedan od rijetki po sadrzaju i kvaliteti. ODLICNI STE!

Pa tako dodje red i na mene, da postavim jednu temu, jer imam jedan zadatak koji ne znam kako rijesiti :(

Radi se o sl. stvari

Ucenik sam III razreda Elektrotehnicke skole i zada prof. iz Elektricni Kola trazi od nas da napravimo program koji ce rjesavati Konturne struje (na nama je da odaberemo koliko ce to biti kontura) i ko to uradi imat ce vecu i bolju ocjenu, ali sto se tice programiranja ja sam zaista n00b, nemam nikakvog iskustva, pa ovom prilikom bi zamolio ove iskusne programere da mi pomognu ukoliko mogu, zaista bi bio zahvalan od srca, raja pomozite ovaj programcic moze mi pomoci da dobijem jos koju pozitivnu ocjenu i da prodjem!
Dok s druge strane malo se stidim, jer nemam pojma, a dosao sam kod vas, mozda pomislite svasta ali eto tako je, nastojim nauciti ali mi vise idu druge stvari nego programiranje, mislim da bi mogao nauciti da sjednem i kako neki ovde kazu "zagrijem stolcu" i hocu, ali samo da malo ugrabim vremena.

Jos jednom veliko hvala svima koji mi pomognu da ovo realizujem ;)


Pozdrav

[Ovu poruku je menjao c1u4 dana 09.05.2006. u 10:20 GMT+1]
 
Odgovor na temu

rumpl

Član broj: 54959
Poruke: 156
*.net81-66-198.noos.fr.



Profil

icon Re: Pomoc oko jednog programcica :(09.05.2006. u 19:41 - pre 217 meseci
A jeli, sta ti je to Konturna struja?
Ajde ako objasnis malo, mozda bih mogao da ti pomognem
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
 
Odgovor na temu

mijatovic_86
Linux System Administrator
TeleSign
Beograd

Član broj: 35044
Poruke: 361
*.maksnet.net.



Profil

icon Re: Pomoc oko jednog programcica :(10.05.2006. u 12:00 - pre 217 meseci
@rumpl

Za ovo je potrebno da malo poznajes osnove elektrotehnike!!

@c1u4

Pa budi malo precizniji, na koji nacin zadajes kolo, kako da resava??
mislis da zadajs cvorove, i grane ili kako???
inace taj profesor je malo wacked, po ovo rade mnogo slozeniji programi, tipa spice !

[Ovu poruku je menjao mijatovic_86 dana 10.05.2006. u 13:01 GMT+1]
😀
 
Odgovor na temu

c1u4

Član broj: 94247
Poruke: 3
85.158.38.*



Profil

icon Re: Pomoc oko jednog programcica :(10.05.2006. u 23:35 - pre 217 meseci
Da profesor je. . no comment!

No sta je tu je, izvinjavam se sto nisam odgovorio, nisam imao vremena da obidjem forum.

Ovako sa mojim skromnim znanjem uspio sam napraviti ovaj program, ali imam negdje gresku za sada ne mogu da vidim gdje, znam da je kod imaginarnog dijela ali. . .
-----------------------------------------------------------------------------------------------------
PROGRAM Kont;
(*USES CRT_PII;*)
TYPE Comp = record
re,im:array[1..10,1..10] of real;
r,i:array[1..10] of real;
end;
TYPE mat = ARRAY [1..10,1..10] of real;
VAR i,j,g,n,m,k,h : integer;
a : mat;
x,u,p,q,p1,q1,I1,I2:comp;
Det:real;

PROCEDURE Unos_Z(VAR m:integer);
VAR i,j :integer;
BEGIN
FOR i:=1 TO m DO
FOR j:=i TO m DO
BEGIN
write('Z(',i,j,') realno =');
readln(x.re[i,j]);
write('Z(',i,j,') imaginarno =');
readln(x.im[i,j]);
writeln;
END;
FOR i:=1 TO m-1 DO
FOR j:=i+1 TO m DO
BEGIN
x.re[j,i]:=x.re[i,j];
x.im[j,i]:=x.im[i,j];
END;
END;

PROCEDURE Unos_U(VAR m:integer);
VAR i :integer;
BEGIN
FOR i:=1 TO m DO
BEGIN
write('U(',i,i,') realno =');
readln(u.re[i,i]);
write('U(',i,i,') imaginarno =');
readln(u.im[i,i]);
writeln;
END;
END;

PROCEDURE Ispis_jed(VAR m: integer);
VAR i,j :integer;
BEGIN
FOR i:=1 TO m DO
BEGIN
FOR j:=1 TO m DO
BEGIN
if j=m THEN write('(',x.re[i,j]:5:2,' + j ',x.im[i,j]:5:2,') * I',j)
ELSE write('(',x.re[i,j]:5:2,' + j ',x.im[i,j]:5:2,') * I',j,' + ');
if j=m THEN write (' = (',u.re[i,i]:5:2,' + j ',u.im[i,i]:5:2,')V');
END;
writeln;
END;
END;


PROCEDURE Ispis_D(VAR m:integer);
VAR i,j :integer;
BEGIN
FOR i:=1 TO m DO
BEGIN
FOR j:=1 TO m DO
if x.im[i,j]>=0 THEN
write('(',x.re[i,j]:5:2,' + j ',x.im[i,j]:5:2,') ')
ELSE write('(',x.re[i,j]:5:2,' - j ',abs(x.im[i,j]):5:2,') ');
writeln;
END;
END;

PROCEDURE Mnoz2(VAR m:integer);
VAR spr,spi,smr,smi,spr1,spi1,smr1,smi1,spr2,spi2,smr2,smi2:real;
I1r,I1i,I2r,I2i,Dsr,Dsi,D1r,D1i,D2r,D2i:real;

BEGIN
spr:=x.re[1,1]*x.re[2,2]-x.im[1,1]*x.im[2,2];
spi:=x.re[1,1]*x.im[2,2]+x.im[1,1]*x.re[2,2];
smr:=x.re[2,1]*x.re[1,2]-x.im[2,1]*x.im[1,2];
smi:=x.re[2,1]*x.im[1,2]+x.im[2,1]*x.re[1,2];
if (spi-smi)>=0
THEN writeln ('Ds=',(spr-smr):5:2,' + j ',(spi-smi):5:2)
ELSE writeln ('Ds=',(spr-smr):5:2,' - j ',abs(spi-smi):5:2);
spr1:=u.re[1,1]*x.re[2,2]-u.im[1,1]*x.im[2,2];
spi1:=u.re[1,1]*x.im[2,2]+u.im[1,1]*x.re[2,2];
smr1:=u.re[2,2]*x.re[1,2]-u.im[2,2]*x.im[1,2];
smi1:=u.re[2,2]*x.im[1,2]+u.im[2,2]*x.re[1,2];
if (spi1-smi1)>=0
THEN writeln ('D1=',(spr1-smr1):5:2,' + j ',(spi1-smi1):5:2)
ELSE writeln ('D1=',(spr1-smr1):5:2,' - j ',abs(spi1-smi1):5:2);
spr2:=x.re[1,1]*u.re[2,2]-x.im[1,1]*u.im[2,2];
spi2:=x.re[1,1]*u.im[2,2]+x.im[1,1]*u.re[2,2];
smr2:=x.re[2,1]*u.re[1,1]-x.im[2,1]*u.im[1,1];
smi2:=x.re[2,1]*u.im[1,1]+x.im[2,1]*u.re[1,1];
if (spi1-smi1)>=0
THEN writeln ('D2=',(spr2-smr2):5:2,' + j ',(spi2-smi2):5:2)
ELSE writeln ('D2=',(spr2-smr2):5:2,' - j ',abs(spi2-smi2):5:2);
Dsr:=spr-smr;
Dsi:=spi-smi;
D1r:=spr1-smr1;
D1i:=spi1-smi1;
D2r:=spr2-smr2;
D2i:=spi2-smi2;

I1r:=(D1r*Dsr)+(D1i*Dsi);
I1i:=(D1i*Dsr)-(D1r*Dsi);
I2r:=(D2r*Dsr)+(D2i*Dsi);
I2i:=(D2i*Dsr)-(D2r*Dsi);
writeln;
writeln ('Ik1=(',(I1r/(sqr(Dsr)+sqr(Dsi))):10:5,' + j ',(I1i/(sqr(Dsr)+sqr(Dsi))):10:5,')A' );
writeln ('Ik2=(',(I2r/(sqr(Dsr)+sqr(Dsi))):10:5,' + j ',(I2i/(sqr(Dsr)+sqr(Dsi))):10:5,')A' );

END;

PROCEDURE Mnoz(VAR R:mat;VAR s:real;m:integer);
TYPE PROIZ = ARRAY [1..10] of real;
VAR i,j,h :integer;
spr,spi,sm,pr,p1r,pi,p1i :real;
BEGIN
spr:=0;
spi:=0;
sm:=0;
FOR j:=1 TO m DO
BEGIN
p.r[j]:=1;
h:=j;
FOR i:=1 TO m DO
BEGIN
IF h<=m THEN
BEGIN




INC(h)
END
ELSE
BEGIN
h:=1;
p.r[j]:=p.r[j]*x.re[i,h];
INC(h)
END;
END;




END;

FOR j:=m DOWNTO 1 DO
BEGIN
q.r[j]:=1;
h:=j;
FOR i:=1 TO m DO
BEGIN
IF h>=1 THEN
BEGIN
q.r[j]:=q.r[j]*x.re[i,h];
DEC(h)
END
ELSE
BEGIN
h:=m;
q.r[j]:=q.r[j]*x.re[i,h];
DEC(h)
END;
END;
sm:=sm+q.r[j]
END;
s:=spr-sm;
writeln(spr:10:2,' ',sm:10:2,' ',s:10:2)
END;

BEGIN
repeat
writeln ('-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-');
write ('Unesite broj grana:');
readln (g);
write ('A sada unesite broj cvorova:');
readln (n);
writeln;
m:=g-n+1;
if m<=0 then writeln ('NE POSTOJI TAKVO KOLO!!! PONOVO UNESITE PODATKE!!!');
until m>=0;
writeln ('Kolo ima ',m,' konture.');
Unos_Z(m);
Unos_U(m);
writeln ('JEDNACINE IMAJU SLIJEDECI OBLIK:');
Ispis_jed(m);
writeln;
Ispis_D(m);
writeln;
if m=2 THEN Mnoz2(m)
ELSE Mnoz(a,det,m);
readln;
END.
--------------------------------------------------------------------------------------------------------


ako neko vidi il predlozi nesto da zamjenim, slobodno recite. . .

[Ovu poruku je menjao c1u4 dana 11.05.2006. u 00:37 GMT+1]
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pomoc oko jednog programcica :(11.05.2006. u 19:16 - pre 217 meseci
Eh, druze moj,
tesko da ce ti neko na ovo odgovoriti.
Prvo, ovo nije C, a drugo ja sam na brzinu bacio pogled na prilozeni kod i nemam pojma sta se tu zbiva.
Sta si ti kojom promenjivom oznacio ili podrazumevao to tesko da ce neko provaliti bez par dana buljenja u prilozeni kod, a to sumnjam da ce neko da radi...
Trece, od samog konkretnog koda u nekom konkretnom jeziku, bitnija je ideja kako problem uopsteno resiti, ne razmisljajuci dakle jos o nekom konkretnom jeziku. To dolazi na kraju.
Znaci, ne bi bilo lose da krenes od pocetka i da izlozis fino sta je problem. Dakle:
- kakve su struje u pitanju (DC ili AC ili moze i jedno i drugo)
- kakvi elementi mogu da se nalaze u kolu (otpornosti, kapacitivnosti, induktivnosti,...)
- kakvi strujni/naponski izvori mogu da se nadju u kolu (AC, DC, strujni, naponski, zavisni, nezavisni, sa ili bez unutrasnje impedanse, ili svi....)
- da li kolo moze da bude ograniceno po velicini i broju elemenata i kontura ili ne
- kako mislis da korisnik unosi podatke o kolu (kako da u tekstualnom obliku predstavi kolo racunaru, kako da oznaci cvorove, kontrurne struje, elemente u kolu itd.)
- sta hoces od informacija da ti racunar izracuna itd...

Tek kad se problem fino definise, onda moze da se razgovara o resenju.

Na kraju, kad se svedu svi racuni, u tvom slucaju, bilo koji algoritam da pronadjes, dobices da treba da resis sistem jednacina (uopsteno sistem n jednacina sa n nepoznatih).
Neko je gore predlozio spice, ali spice ne radi to sto tebi treba, spice radi NUMERICKU SIMULACIJU.

Dakle, ja bih ti predlozio da krenes od toga da svoje elektricno kolo nekako prevedes u sistem linearnih jednacina. To ne bi trebalo da je tesko. Korisnik treba da gledajuci u el. semu unese elemente sa seme u racunar, kao i da unese informacije o njihovoj povezanosti. Ti elementi ce predstavljati koeficijente jednacina (impedanse) i konstante u jednacinama (strujni i naponski izvori), dok ce ti same konturne struje predstavljati promenjive po kojima resavas jednacine. Naravno, u igru treba da udju i cvorovi, da bi se znalo sta je gde povezano i da bi racunar na osnovu tog grafa mogao da formira jednacine.
Sad tu mozes mozda malo i da se natezes sa korisnikom. Mozes da napravis da korisnik sam na semi oznaci konturne struje i da na osnovu tog rasporeda unosi dalje elemente sa seme i prosledjuje dodatne informacije o polozaju elemenata u skladu sa oznacenim strujama. Time ces malo otezati posao korisniku programa, a olaksati sebi pravljenje algoritma za prevodjenje seme u sistem jednacina.
Ili mozes pretpostaviti da je korisnik potpuno neuk, te da nema pojma o konturnim strujama, i da treba samo da unese elemente sa seme u datom rasporedu. Time ces olaksati posao korisniku, a otezati sebi. U principu, uvek se bira druga solucija, jer << sta jedan korisnik pokvari, sto programera ne mogu ispraviti>>.
Zatim, pronadji negde algoritam za resavanje sistema linearnih jednacina. Ima dosta o tome na netu, a ako ti ne podje za rukom javi se opet ovde, pa cemo da vidimo. U principu, to nije neki veliki problem. Ako znas kako da resavas sistem jednacina na papiru (npr. Gausovim postupkom) lako ces taj algoritam prebaciti u program. Mozes da se petljas i sa matricama i determinantama ako oces.

U principu, problem nije tezak, ali ima i da se radi.

Kad znas kako da problem resis na srpskom/hrvatskom/bosnjackom ili nekom drugom maternjem jeziku, lako ces ga prevesti na C, Pascal ili neki drugi.

Pozdrav.



 
Odgovor na temu

c1u4

Član broj: 94247
Poruke: 3
85.158.38.*



Profil

icon Re: Pomoc oko jednog programcica :(13.05.2006. u 15:29 - pre 217 meseci
Iskreno se zahvaljujem na uputama koje sam dobio.


...vec radim na tome..


P.S kolo treba uraditi za najmanje 5 kontura, a ustvari on trazi (ko zna i moze) da uradi za n kontura.
 
Odgovor na temu

FaQe
Biće Biće
Sarajevo

Član broj: 26650
Poruke: 47
*.PPPoE-2512.sa.bih.net.ba.

Jabber: FaQe4@hotmail.com
ICQ: 12101986
Sajt: www.ue.ba


Profil

icon Re: Pomoc oko jednog programcica :(29.05.2007. u 22:56 - pre 204 meseci
e buraz vidim tvoj problem evo sad sam ja doso u treci razred sreca pa ja nisma toliki noob kad je problem programiranje i vidim da si ovaj gore navedeni kod kopiro od nekog drugog namie ovaj lik sto ti je slao ovo je napravio jendu malu caku

a to je "cRt_pIi.tpu" bez nje nemozes nista .... znam da dzaba pisem jer si ti vec zavrsio sa skolom ali samo da napisem da je VRCKO FREAK!
 
Odgovor na temu

[es] :: C/C++ programiranje :: Pomoc oko jednog programcica :(

[ Pregleda: 3133 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.