sulea Posted June 14, 2011 Report Posted June 14, 2011 se da urmatoarea functie cu care s-a criptat un text.function criptfor i de la 1 la lungime_text-1 sir=sir+3 sir[i+1]=sir[i+1]-5end forsir=sir+iend function criptavem outputul: dqt+fcpxmecl_sp_rccare a fost textul initial care s-a criptat?(este vorba de o echipa de fotbal mereu 'la moda')trimiteti raspunsurile prin pm Quote
totti93 Posted June 14, 2011 Report Posted June 14, 2011 Poi n-am auzit de echipa asta:-? Ai PM 1 Quote
em Posted June 14, 2011 Report Posted June 14, 2011 Eu n-am auzit in viata mea de echipa asta.ai pm. Quote
sulea Posted June 14, 2011 Author Report Posted June 14, 2011 am primit 6 raspunsuri diferite, si anume:asv-herzogenauratpfsv-herzogenauratearv-herzogenaurateasv-herzogenauradhasv-herzogenaurachasv herzogenaura (ar fi trebuit sa scrii inputul)eu dupa cine sa ma iau? Quote
flux Posted June 14, 2011 Report Posted June 14, 2011 am primit 6 raspunsuri diferite, si anume:asv-herzogenauratpfsv-herzogenauratearv-herzogenaurateasv-herzogenauradhasv-herzogenaurachasv herzogenaura (ar fi trebuit sa scrii inputul)eu dupa cine sa ma iau?asv-herzogenaurate Quote
cristi_89 Posted June 14, 2011 Report Posted June 14, 2011 in PM am trimis cu tp la final... acum mi-am dat seama ca ar trebui sa fie tVok...hai sa vedem cum functioneaza din cate am inteles:primul caracter a fost incrementat cu 3 si s-a obtinut:d => d-3 = aurmatoarele pana la penultimul au fost incrementate cu 3 si decrementate cu 5, deci decrementate cu 2 si s-a obtinut:q => q+2 = st => t+2 = v+ => ++2 = -f => f+2 = hc => c+2 = ep => p+2 = rx => x+2 = zm => m+2 = oe => e+2 = gc => c+2 = el => l+2 = n_ => _+2 = as => s+2 = up => p+2 = r_ => _+2 = ar => r+2 = tUltimul caracter e decrementat cu 5 si incrementat cu 18 deci + 13c => c-13 = Vdeci rezultatul ar trebui sa fie "asv-herzogenauratV" - ceea ce nu are nici o logicaAsta in cazul in care for-ul e cel din pseudocod, nu cel din C cu strict < Quote
flux Posted June 14, 2011 Report Posted June 14, 2011 sulea.php<?phpfunction sulea($s){ for($i=0; $i<strlen($s); $i++){ $s[$i]=chr(ord($s[$i])+3); if($i<strlen($s)-1) $s[$i+1]=chr(ord($s[$i+1])-5); } return $s;}function unsulea($s){ $len=strlen($s); for($i=1; $i<$len-1; $i++){ $s[$i]=chr(ord($s[$i])+2); } $s[0]=chr(ord($s[0])-3); $s[$len-1]=chr(ord($s[$len-1])+2); return $s;}echo sulea("steaua");echo "<br>";echo unsulea("vrc_s_");echo "<br>";echo unsulea("dqt+fcpxmecl_sp_rc");//echo unsulea(sulea("Ana are mere."));?><!--a b c d+3 -5 +3 -5 +3 -5 +3 -5--> Quote
cristi_89 Posted June 14, 2011 Report Posted June 14, 2011 function criptfor i de la 1 la lungime_text-1 sir=sir+3 sir[i+1]=sir[i+1]-5end forsir=sir+iend function criptsulea.php<?phpfunction sulea($s){ for($i=0; $i<strlen($s); $i++){ $s[$i]=chr(ord($s[$i])+3); if($i<strlen($s)-1) $s[$i+1]=chr(ord($s[$i+1])-5); } return $s;}function unsulea($s){ $len=strlen($s); for($i=1; $i<$len-1; $i++){ $s[$i]=chr(ord($s[$i])+2); } $s[0]=chr(ord($s[0])-3); $s[$len-1]=chr(ord($s[$len-1])+2); return $s;}...?>@3348399: e ok ce ai scris tu, doar ca iti lipseste partea cu modificarea ultimului caracter Quote
flux Posted June 15, 2011 Report Posted June 15, 2011 @3348399: e ok ce ai scris tu, doar ca iti lipseste partea cu modificarea ultimului caracter la ultimul e + 5 Quote
cristi_89 Posted June 15, 2011 Report Posted June 15, 2011 la ultimul e + 5da... am vazut ca ai pus + 5dar uita-te in scriptul lui sulea din postul anterior linia scrisa cu rosu... Dupa ce iese din for, face urmatoarea atribuire: sir=sir+iaici i are valoarea 18 Quote
sulea Posted June 15, 2011 Author Report Posted June 15, 2011 Dupa ce iese din for, face urmatoarea atribuire: sir=sir+iaici i are valoarea 18 oare chiar asa o fi ?? Quote
cristi_89 Posted June 15, 2011 Report Posted June 15, 2011 oare chiar asa o fi ?? poi zi cum e daca nu e asa... ca nu inteleg Quote
sulea Posted June 15, 2011 Author Report Posted June 15, 2011 pai i-ul parca merge pana la length-1, sau ma insel?oricum, eu inca astept raspunsuri Quote
cristi_89 Posted June 15, 2011 Report Posted June 15, 2011 pai i-ul parca merge pana la length-1, sau ma insel?oricum, eu inca astept raspunsuri ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervaluluiIn cazul asta ultimele doua caractere sunt r + 2 - 17 = csi c + 5 = hraspunsul: asv-herzogenaurach Quote
sulea Posted June 15, 2011 Author Report Posted June 15, 2011 ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervaluluiai gandit bine, insa la for-uri nu se depasesc limitele (cel putin in pascal).am transformat pseudocodul in limbaj pascal, si am scris si instructiunile de decriptare.:program test;uses crt;var i:integer; sir:string;beginclrscr; readln(sir); // criptarea : for i:=1 to length(sir)-1 do begin sir[i]:=chr(ord(sir[i])+3); sir[i+1]:=chr(ord(sir[i+1])-5); end; sir[i]:=chr(ord(sir[i])+i); writeln; writeln('textul criptat este: ',sir); writeln('i-ul la iesirea din for este: ',i); writeln; //decriptarea sir[i]:=chr(ord(sir[i])-i); for i:=length(sir)-1 downto 1 do begin sir[i+1]:=chr(ord(sir[i+1])+5); sir[i]:=chr(ord(sir[i])-3); end; writeln('textul decriptat este: ',sir); writeln('i-ul la iesirea din for este: ',i); writeln;end.cine poate sa-l transforme in c ?referitor la challenge, felicitari tuturor participantilor.+rep lui totti93 pt ca a fost primul care a raspuns corect Quote
em Posted June 15, 2011 Report Posted June 15, 2011 Nu am stiut ca in Pascal indicii de String incep de la 1 (M-am gandit ca asa vrei tu). Asa cred ca au gresit multi.. Quote
sulea Posted June 15, 2011 Author Report Posted June 15, 2011 l-am dat in pseudocod pt ca stiam ca mai sunt diferente intre limbaje.decriptarea ta a fost *buna*, insa cu o foarte mica modificare Quote