kryptogram v TP

Programovacie jazyky, rady, poradňa...
MadMatt
Light Expert
Light Expert
Príspevky: 64
Registrovaný: 14 dec 2008, 13:15
Kontaktovať používateľa:

kryptogram v TP

Príspevok od používateľa MadMatt »

cawte ,
mam takyto problem : na ulohu sme dostali vyriesit kryptogram
DONALD + GERALD = ROBERT a mal vyjst iba jeden vysledok podla nasho profesora a to je 526485 + 197485 = 723970 a mne s tochto programu vyslo ze ich tam je asi 11 program je takyto :

Kód: Vybrať všetko

program donald;
uses crt;
var q1,q2,q3,d,o,n,a,l,g,e,r,b,t,p:integer;  {donald,gerald,robert}

begin
 clrscr;
 writeln('DONALD+ GERALD = ROBERT');
 p:=1;
  for d:=1 to 5 do
   for o:=0 to 9 do
    if o<>d then
     for n:=0 to 9 do
       if (n<>d) and (n<>o) then
        for a:=0 to 9 do
          if (a<>d) and (a<>o) and (a<>n) then
           for l:=0 to 9 do
            if (l<>d) and (l<>o) and (l<>n) and (l<>a) then
             for g:=1 to 5 do
              if  (g<>d) and (g<>o) and (g<>n) and (g<>a) and (g<>l) then
               for e:=0 to 9 do
                if  (e<>d) and (e<>o) and (e<>n) and (e<>a) and (e<>l) and (e<>g) then
                 for r:=1 to 9 do
                  if  (r<>d) and (r<>o) and (r<>n) and (r<>a) and (r<>l) and (r<>g) and (r<>e) then
                   for b:=0 to 9 do
                     if  (b<>d) and (b<>o) and (b<>n) and (b<>a) and (b<>l) and (b<>g) and (b<>e) and (b<>r) then
                      for t:=0 to 9 do
                        if  (t<>d) and (t<>o) and (t<>n) and (t<>a) and (t<>l) and (t<>g) and (t<>e) and (t<>r) and (t<>b) then
    begin
     q1:=d+10*l+100*a+1000*n+10000*o+100000*d;
     q2:=d+10*l+100*a+1000*r+10000*e+100000*g;
     q3:=t+10*r+100*e+1000*b+10000*o+100000*r;
      if q1+q2=q3 then begin
           writeln('Riesenie cislo ',p);
           writeln;
           writeln('Vysledok je ');
            writeln(' D=',d,'  O=',o,' N=',n,' A=',a,' L=',l,' G=',g,' E=',e,' R=',r,' B=',b,' T=',t);
            writeln(d,o,n,a,l,d,' + ',g,e,r,a,l,d,' = ',r,o,b,e,r,t);
             p:=p+1;
             readln;
             writeln;
             end;
             end;
             readln;
end.
Dvakrat som ho kontroloval a chybu som nenasiel , neviete kde je ??? DIK
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nie je tam chyba, neviem ale ako si mohol dostať 11 výsledkov keď som presne to čo máš hodil do delphi (iba ctrl+c a ctrl+v) a dopracoval som sa iba k jednému výsledku, a to k tomu čo si uviedol.
MadMatt
Light Expert
Light Expert
Príspevky: 64
Registrovaný: 14 dec 2008, 13:15
Kontaktovať používateľa:

Príspevok od používateľa MadMatt »

ale? mne to hodi najprv jeden ale iny a potom enterom ked si preklikam tak jeden z tych jedenastich je ten vysledok . asi mam potom daco s pascalom alebo co
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

No ked som to hodil do Borland Pascal 7.0 tak robilo to co popisujes... cez delphi to ale podla audiotracka ide. Tagze poradit neviem :-D (Len aby si vedel ze nemas nic s compilerom ;))
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

veď sem vypíšte tie riešenia, uvidíme či sú správne :)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

nech sa paci :) (ja sa vobec nevyznam co ten prgram roby, viem len ze vypluva nejake cisla :-D tagze je to na tebe :-D)

- spominane riesenie je riesenie cislo 15

Kód: Vybrať všetko

Riesenie cislo 1
Vysledok je 
 D=1  O=0 N=6 A=4 L=2 G=5 E=3 R=7 B=9 T=8
 106421 + 537421 = 709378
Riesenie cislo 2
Vysledok je 
 D=1  O=3 N=9 A=5 L=7 G=4 E=2 R=8 B=0 T=6
 139571 + 428571 = 830286
Riesenie cislo 3
Vysledok je 
 D=1  O=5 N=4 A=9 L=3 G=2 E=0 R=7 B=6 T=8
 154931 + 207931 = 756078
Riesenie cislo 4
Vysledok je 
 D=1  O=6 N=0 A=9 L=2 G=5 E=3 R=7 B=4 T=8
 160921 + 537921 = 764378
Riesenie cislo 5
Vysledok je 
 D=1  O=6 N=4 A=0 L=5 G=3 E=7 R=8 B=9 T=2
 164051 + 378051 = 869782
Riesenie cislo 6
Vysledok je 
 D=1  O=8 N=3 A=7 L=9 G=2 E=6 R=5 B=0 T=4
 183791 + 265791 = 580654
Riesenie cislo 7
Vysledok je 
 D=1  O=8 N=5 A=0 L=7 G=4 E=9 R=2 B=3 T=6
 185071 + 492071 = 283926
Riesenie cislo 8
Vysledok je 
 D=1  O=9 N=5 A=4 L=3 G=2 E=0 R=7 B=6 T=8
 195431 + 207431 = 796078
Riesenie cislo 9
Vysledok je 
 D=2  O=3 N=1 A=7 L=8 G=4 E=9 R=5 B=0 T=6
 231782 + 495782 = 530956
Riesenie cislo 10
Vysledok je 
 D=3  O=2 N=4 A=0 L=5 G=1 E=7 R=8 B=9 T=6
 324053 + 178053 = 829786
Riesenie cislo 11
Vysledok je 
 D=4  O=3 N=8 A=0 L=9 G=1 E=6 R=5 B=7 T=2
 438094 + 165094 = 537652
Riesenie cislo 12
Vysledok je 
 D=4  O=5 N=8 A=1 L=0 G=3 E=6 R=7 B=9 T=2
 458104 + 367104 = 759672
Riesenie cislo 13
Vysledok je 
 D=4  O=7 N=1 A=0 L=2 G=5 E=3 R=6 B=9 T=8
 471024 + 536024 = 679368
Riesenie cislo 14
Vysledok je 
 D=4  O=8 N=5 A=2 L=3 G=1 E=0 R=7 B=9 T=6
 485234 + 107234 = 789076
Riesenie cislo 15
Vysledok je 
 D=5  O=2 N=6 A=4 L=8 G=1 E=9 R=7 B=3 T=0
 526485 + 197485 = 723970
Riesenie cislo 16
Vysledok je 
 D=5  O=3 N=8 A=1 L=0 G=2 E=6 R=7 B=9 T=4
 538105 + 267105 = 739674
Riesenie cislo 17
Vysledok je 
 D=5  O=7 N=0 A=1 L=9 G=2 E=6 R=3 B=4 T=8
 570195 + 263195 = 374638
Riesenie cislo 18
Vysledok je 
 D=5  O=7 N=3 A=4 L=8 G=2 E=6 R=1 B=9 T=0
 573485 + 261485 = 179610
// audiotrack pekny pocet prispevkov - 8500 :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

substitúcie čísel za znaky sú správne, no výsledky tých príkladov vám tam nesedia. Napríklad ten prvý:
106421 + 537421 = 709378 Ten výsledok neviem ako váš pascal získal :) keď to hneď z hlavy vidím že to musí byť podstatne menej
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

audiotrack napísal:Ten výsledok neviem ako váš pascal získal :)
To mne nehovor :lol: No ale v podstate je ten program dobre napisany. Len compiler si ho nejako zle vysvetluje :-D nie?
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

co som si ja vsimol tak to cislo je nejake vacsie....
takze delphi integer ma sa mi zda ze ocosi vyssi tieto nove programovacie languages su ocosi narocnejsie na miesto
TP7 skus dat namiesto integer longint alebo vyskusaj longint je to vlastne jedno a to iste len sa mi to zdalo take dolezite ze som to spomenul hned dvakrat...

druhy pohlad nato mi vyslo tak skratka ze hadam by stacilo dat Q-1..3 deklarovat ako real, ale neviem ci to bude spravne
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

Uau nevedel som ze v pascale existuje longint :-D (nikde som sa to nedocital a skusat ma to nenapadlo :lol:)
Tagze s longint-om to ide. Mna tiez napadlo to davat v real, ale to by som sa na ten program musel pozriet viac ako 10 sekund :-D (totizto tie cykly tam a tak)

// juho: Ved pisem ze by som sa do toho musel kuknut :-D
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

BX napísal: Mna tiez napadlo to davat v real, ale to by som sa na ten program musel pozriet viac ako 10 sekund :-D (totizto tie cykly tam a tak)
no stacilo hadam dat len Q-1..3 dat real takze cykly by ti tam ostali nezmenene aspon sa mi teraz tak zda, ale mozno sa mylim
no a mozno ze nie...
MadMatt
Light Expert
Light Expert
Príspevky: 64
Registrovaný: 14 dec 2008, 13:15
Kontaktovať používateľa:

Príspevok od používateľa MadMatt »

hej uz som si uvedomil ze integer je iba do 32 767 a to cislo vo vysledku je vacsie :) ......................... tak som dal longint a ten TP teraz vyhodi iba DONALD + GERALD = ROBERT a nic ine .
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

toto mi da s tymto programom (Su tam nejake riadky navyse, koli tomu co som posielal audiotrack-ovi na rozbor)

Kód: Vybrať všetko

program donald;
uses crt;
var q1,q2,q3,d,o,n,a,l,g,e,r,b,t,p:longint;  {donald,gerald,robert}
    f:text;

begin
 clrscr;
 assign(f,'vysledky.txt');
 rewrite(f);
 writeln('DONALD+ GERALD = ROBERT');
 p:=1;
  for d:=1 to 5 do
   for o:=0 to 9 do
    if o<>d then
     for n:=0 to 9 do
       if (n<>d) and (n<>o) then
        for a:=0 to 9 do
          if (a<>d) and (a<>o) and (a<>n) then
           for l:=0 to 9 do
            if (l<>d) and (l<>o) and (l<>n) and (l<>a) then
             for g:=1 to 5 do
              if  (g<>d) and (g<>o) and (g<>n) and (g<>a) and (g<>l) then
               for e:=0 to 9 do
                if  (e<>d) and (e<>o) and (e<>n) and (e<>a) and (e<>l) and (e<>g) then
                 for r:=1 to 9 do
                  if  (r<>d) and (r<>o) and (r<>n) and (r<>a) and (r<>l) and (r<>g) and (r<>e) then
                   for b:=0 to 9 do
                     if  (b<>d) and (b<>o) and (b<>n) and (b<>a) and (b<>l) and (b<>g) and (b<>e) and (b<>r) then
                      for t:=0 to 9 do
                        if  (t<>d) and (t<>o) and (t<>n) and (t<>a) and (t<>l) and (t<>g) and (t<>e) and (t<>r) and (t<>b) then
    begin
     q1:=d+10*l+100*a+1000*n+10000*o+100000*d;
     q2:=d+10*l+100*a+1000*r+10000*e+100000*g;
     q3:=t+10*r+100*e+1000*b+10000*o+100000*r;
      if q1+q2=q3 then begin
           writeln('Riesenie cislo ',p);
           writeln;
           writeln('Vysledok je ');
            writeln(' D=',d,'  O=',o,' N=',n,' A=',a,' L=',l,' G=',g,' E=',e,' R=',r,' B=',b,' T=',t);
            writeln(d,o,n,a,l,d,' + ',g,e,r,a,l,d,' = ',r,o,b,e,r,t);
             p:=p+1;
             readln;
             writeln;
             end;
             end;
             readln;
           close(f);
end.
Musi to proste ist :-D
Prílohy
2009-04-07_183039.jpg
MadMatt
Light Expert
Light Expert
Príspevky: 64
Registrovaný: 14 dec 2008, 13:15
Kontaktovať používateľa:

Príspevok od používateľa MadMatt »

no proste to nejde :D , to potom mam asi daco s compom alebo s tym pascalom co nam dali v skole , bo zvysku triedy ani nejde poriadne takze mam este stastie :)
OK ide, chyba bola medzi stolickou a monitorom :D
Napísať odpoveď