|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
19.10.2007, 21:05 | #1 |
Starosedelac
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
|
Hitno potreban pomocj
Treba da napravim program koji cje da odredi numericke vrednosti slova na osnovu
DONALD +GERALD --------- ROBERT Pisem u visual basicu: Private Sub cmdStart_Click() Dim D As Double Dim O As Double Dim N As Double Dim A As Double Dim L As Double Dim G As Double Dim E As Double Dim R As Double Dim B As Double Dim T As Double 'Dim i1 As Double 'Dim i2, i3, i4, i5, i6, i7, i8, i9, i10 As Double For D = 1 To 9 Next D For O = 1 To 9 Next O For N = 1 To 9 Next N For A = 1 To 9 Next A For L = 1 To 9 Next L For G = 1 To 9 Next G For E = 1 To 9 Next E For R = 1 To 9 Next R For B = 1 To 9 Next B For T = 1 To 9 Next T If (100000 * D + 10000 * O + 1000 * N + 100 * A + 10 * L + D) + (100000 * G + 10000 * E + 1000 * R + 100 * A + 10 * L + D) = (100000 * R + 10000 * O + 1000 * B + 100 * E + 10 * R + T) Then 'MsgBox (D & "is D") txtD.Text = D End If 'MsgBox ("A=" & i1) End Sub Mislim da nextovi nisu na dobrom mestu, sta predlazete da uradim??? |
19.10.2007, 21:30 | #2 |
Starosedelac
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
|
Re: Hitno potreban pomocj
evo nove verzije:
Private Sub cmdStart_Click() Dim D As Double Dim O As Double Dim N As Double Dim A As Double Dim L As Double Dim G As Double Dim E As Double Dim R As Double Dim B As Double Dim T As Double For D = 1 To 9 For O = 1 To 9 For N = 1 To 9 For A = 1 To 9 For L = 1 To 9 For G = 1 To 9 For E = 1 To 9 For R = 1 To 9 For B = 1 To 9 For T = 1 To 9 If D <> O And D <> N And D <> A And D <> L And D <> G And D <> E And D <> R And D <> B And D <> T Then If O <> N And O <> A And O <> L And O <> G And O <> E And O <> R And O <> B And O <> T Then If N <> A And N <> L And N <> G And N <> E And N <> R And N <> B And N <> T Then If A <> L And A <> G And A <> E And A <> R And A <> B And A <> T Then If L <> G And L <> E And L <> R And L <> B And L <> T Then If G <> E And G <> R And G <> B And G <> T Then If E <> R And E <> B And E <> T Then If R <> B And R <> T Then ' Beep ( I've put this here just to see if the program executes tis far) If B <> T Then If (100000 * D + 10000 * O + 1000 * N + 100 * A + 10 * L + D) + (100000 * G + 10000 * E + 1000 * R + 100 * A + 10 * L + D) = (100000 * R + 10000 * O + 1000 * B + 100 * E + 10 * R + T) Then MsgBox (D & O & N & A & L & G & E & R & B & T) 'txtD.Text = D 'MsgBox (D) 'txtD.Text = D 'Else End If End If End If End If End If End If End If End If End If Next T Next B Next R Next E Next G Next L Next A Next N Next O Next D End Sub Na kraju se ne pojavi messagebox, jel ima neko neku ideju??????? Poslednja ispravka: Eddy (20.10.2007 u 10:27) |
20.10.2007, 11:09 | #3 |
Veteran
|
Re: Hitno potreban pomocj
Jel mozes malo jasniji da budes, na osnovu cega se dobija da je Donald+ Geradr = Robert? Ne poznajem visual basic, ali ako bih shvatio sta program tacno treba da uradi mozda bih mogao da pomognem....
|
20.10.2007, 12:00 | #4 |
Član
Član od: 16.10.2007.
Lokacija: NS,SO
Poruke: 80
Zahvalnice: 24
Zahvaljeno 38 puta na 20 poruka
|
Re: Hitno potreban pomocj
Mislim da razumem. ( to je u stvari matematicki zadatak ? )
Ima deset razlicitih slova D, O, N, A, L, G, E, R, T, B i svaki predstavlja neku cifru 0-9. ( jesam li pogodio ? ). Tako da se sabiranjem brojeva DONALD i GERALD dobija broj ROBERT. Probao sam tvoj program i ima nekoliko gresaka: FOR petlja mora da ide od 0 do 9 a ne od 1 do 9 jer nikad nece biti ispunjen IF uslov ( imas 10 razlicitih slova ). Meni program radi jako sporo ( jos nije dosao do kraja ) verovatno ima mnogo FOR petlji ubacenih jedna u drugu ( promenljive je bolje koristiti tipa INTEGER ili cak BYTE jer promenljive idu od 0 do 9), pa je mozda bolje potraziti drugo resenje. Probacu da resim, pa cu javiti. Poslednja ispravka: KarloBasic (20.10.2007 u 12:25) |
20.10.2007, 12:49 | #5 |
Veteran
|
Re: Hitno potreban pomocj
Cek, ako je tako postoji jedna nelogicnost:
D+G=R O+E=O N+R=B A+A=E L+L=R D+D=T Iz 'O+E=O' sledi da je E = 0, ali onda iz 'A+A=E' sledi da i A mora biti 0 sto je nelogicno ako su svi brojevi razliciti... |
20.10.2007, 12:50 | #6 |
Starosedelac
|
Re: Hitno potreban pomocj
Ponovicu isto pitanje koje i Stevvan... na osnovu cega je DONALD + GERALD = ROBERT ... da li ima neke veze sa ASCII -jem... ili nesto drugo ?
|
20.10.2007, 13:17 | #7 | |
Član
Član od: 16.10.2007.
Lokacija: NS,SO
Poruke: 80
Zahvalnice: 24
Zahvaljeno 38 puta na 20 poruka
|
Re: Hitno potreban pomocj
Citat:
NPR ( 6+7=13, 3 ostaje a 1 prenosis u naredni zbir ) 1. tako da A+A+prenos iz predhodnog (L+L)=E 2. ili je A=5 pa je 5+5=10 ( 0 pises a 1 prenosis u naredni zbir) .... PS. Ovo uopste nije jednostavan problem. |
|
20.10.2007, 13:23 | #8 | |
Ad Ministrator
Član od: 19.8.2005.
Lokacija: Beograd, SK
Poruke: 7.280
Zahvalnice: 29
Zahvaljeno 3.041 puta na 1.544 poruka
|
Re: Hitno potreban pomocj
Citat:
Svako slovo je jedna cifra, treba pronaći koje slovo predstavlja koju cifru. E sad, pošto su ASCII kodovi poređani isto kao cifre, pri čemu je decimalno 48 kôd za nulu, može se dobiti svaka cifra oduzimanjem 48 od kôda, ako ti to u životu treba. |
|
20.10.2007, 13:56 | #9 |
Veteran
|
Re: Hitno potreban pomocj
Resio sam problem:
Donald = 1 0 8 9 7 1 Gerald = 2 9 4 9 7 1 Robet = 4 0 3 9 4 2 Ako nekom treba source mogu da ga psotavim, ali je u pythonu. Btw, ovo treba pistati u C/C++ ali mi kompajler nesto neradi... |
20.10.2007, 14:00 | #10 |
Član
Član od: 16.10.2007.
Lokacija: NS,SO
Poruke: 80
Zahvalnice: 24
Zahvaljeno 38 puta na 20 poruka
|
Re: Hitno potreban pomocj
Evo resenja:
D=5 O=2 N=6 A=4 L=8 G=1 E=9 R=7 B=3 T=0 526485-------DONALD 197485-------GERALD+ ----------------------- 723970-------ROBERT Malo je cudan kod ( mislim na RANDOM instrukciju ) ali radi: Kod:
Private Sub Command1_Click() Dim D As Long Dim O As Long Dim N As Long Dim A As Long Dim L As Long Dim G As Long Dim E As Long Dim R As Long Dim B As Long Dim T As Long Dim ROBERT As Long Dim DONALD As Long Dim GERALD As Long Dim nasao As Boolean Dim niz(10) As Integer Dim priv As Integer Dim i As Integer Dim j As Integer For i = 0 To 9 niz(i) = i Next i nasao = False Do D = niz(0) O = niz(1) N = niz(2) A = niz(3) L = niz(4) G = niz(5) E = niz(6) R = niz(7) B = niz(8) T = niz(9) DONALD = 100000 * D + 10000 * O + 1000 * N + 100 * A + 10 * L + D GERALD = 100000 * G + 10000 * E + 1000 * R + 100 * A + 10 * L + D ROBERT = 100000 * R + 10000 * O + 1000 * B + 100 * E + 10 * R + T If DONALD + GERALD = ROBERT Then MsgBox ("D=" & D & Chr$(13) & "O=" & O & Chr$(13) & "N=" & N & Chr$(13) & "A=" & A & Chr$(13) & "L=" & L & Chr$(13) & "G=" & G & Chr$(13) & "E=" & E & Chr$(13) & "R=" & R & Chr$(13) & "B=" & B & Chr$(13) & "T=" & T) nasao = True End If i = Int(10 * Rnd) j = Int(10 * Rnd) priv = niz(i) niz(i) = niz(j) niz(j) = priv Loop Until nasao = True End Sub |
20.10.2007, 14:03 | #11 |
Član
Član od: 16.10.2007.
Lokacija: NS,SO
Poruke: 80
Zahvalnice: 24
Zahvaljeno 38 puta na 20 poruka
|
Re: Hitno potreban pomocj
|
20.10.2007, 14:26 | #12 |
Veteran
|
Re: Hitno potreban pomocj
Ups! Vidi stvarno. Sad cu to da sredim
|
20.10.2007, 14:45 | #13 |
Starosedelac
|
Re: Hitno potreban pomocj
|
20.10.2007, 14:45 | #14 |
Veteran
|
Re: Hitno potreban pomocj
Evo sredio sam. C++ je odmah pronasao resenje (ima samo jedno i isto je kao kod KarloBasic-a). Preporucujem da ljdui sa slabim srcem negledaju kod iako je on veoma brz
Kod:
#include <iostream> using namespace std; int main() { for(int D=1; D<10; D++) for(int O=0; O<10; O++){ if (O != D) for(int N=0; N<10; N++){if (N!=O and N!=D) for(int A=0; A<10; A++) { if (A != N and A!= O and A!= D) for(int L=0; L<10; L++) {if (L!=A and L!=N and L!=O and L!=D ) for(int G=0; G<10; G++) { if (G != L and G!=A and G!=N and G!=O and G!=D) for(int E = 0; (E < 10); E++) { if (E != G and E!=L and E!=A and E!=N and E!=O and E!=D) for(int R = 0; R < 10; R++) { if (R != E and R!=G and R!=L and R!=A and R!=N and R!=O and R!=D) for(int T = 0; T < 10; T++) { if (T != R and T!=E and T!=G and T!=L and T!=A and T!=N and T!=O and T!=D) for(int B = 0; B < 10; B++) { if (B != T and B!=R and B!=E and B!=G and B!=L and B!=A and B!=N and B!=O and B!=D){ if ((100000 * D + 10000 * O + 1000 * N + 100 * A + 10 * L + D) + (100000 * G + 10000 * E + 1000 * R + 100 * A + 10 * L + D) == (100000 * R + 10000 * O + 1000 * B + 100 * E + 10 * R + T)) { cout << "Donald: " << D << O << N << A << L << D << endl; cout << "Gerald: " << G << E << R << A << L << D << endl; cout << "Robert: " << R << O << B << E << R << T << endl;} } }}}}}}}}} return 0; } |
21.10.2007, 14:25 | #15 |
Starosedelac
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
|
Re: Hitno potreban pomocj
Hvala ljudi.
Onaj moj program je proradio, zaboravio sam da neke vrednosti mogu biti i nule. Sad cju probati neki drugaciji pristup. Jel zna neko da li je mogucje prekinuti for petlju u slucaj nadjenog resenja? Da li se moze recimo u tom slucaju napisati nesto tipa if/ then go to line xx? |
21.10.2007, 16:03 | #16 |
Član
Član od: 16.10.2007.
Lokacija: NS,SO
Poruke: 80
Zahvalnice: 24
Zahvaljeno 38 puta na 20 poruka
|
Re: Hitno potreban pomocj
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Program za povratak izgubljenih programa hitno potreban! | Andross | Aplikativni softver | 5 | 24.6.2009 23:53 |
Potreban Savet Hitno!!! | Boys | Šta da kupim? | 18 | 3.5.2007 15:36 |
Hitno potreban ogroman pomocj iz c-a | Eddy | Programiranje | 7 | 30.5.2006 4:11 |
Hitno potreban softver za povratak fajlova sa formatirane particije! | Aksic Srdjan | Aplikativni softver | 8 | 12.3.2006 15:42 |
Hitno potreban savet (budzenje masine) | Nenadyus | Šta da kupim? | 18 | 10.12.2005 2:17 |