• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed prośba o pomoc w znalezieniu błędu

Object Storage Arubacloud
0 głosów
202 wizyt
pytanie zadane 21 czerwca 2017 w JavaScript przez Emil Szerafin Nowicjusz (170 p.)
zamknięte 23 czerwca 2017 przez Emil Szerafin

pisałem ostatnio koder do tekstu i trafiłem na błąd którego nie jestem w stanie rozpoznać. kiedy uruchamiam program komputer mi się zawiesza i nie jestem w stanie nawet sprawdzić do którego miejsca program działa. proszę o pomoc w znalezieniu i wytłumaczeniu na czym polegał ten błąd. (znaczyłem w programie część która nie działa)

Z góry dzięki!

 


<html>
<head><title>dekoder</title>
<meta charset="utf-8">
</head>
<body>
<script>
var znaki = ["a", "A", "ą", "Ą", "b", "B", "c", "C", "ć", "Ć", "d", "D", "e", "E", "ę", "Ę", "f", "F", "g", "G", "h", "H", "i", "I", "j", "J", "k", "K", "l", "L", "ł", "Ł", "m", "M", "n", "N", "ń", "Ń", "o", "O", "ó", "Ó", "p", "P", "r", "R", "s", "S", "ś", "Ś", "t", "T", "u", "U", "v", "V", "w", "W", "x", "X", "y", "Y", "z", "Z", "ź", "Ź", "ż", "Ż", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
var k0=[];var k1=[];var k2=[];var k3=[];var k4=[];var k5=[];var k6=[];var k7=[];var k8=[];var k9=[];
	for (i=0;i<1;i++) {
		K0=(0+10*i);K1=(1+10*i);K2=(2+10*i);K3=(3+10*i);K4=(4+10*i);K5=(5+10*i);K6=(6+10*i);K7=(7+10*i);K8=(8+10*i);K9=(9+10*i);
		k0[i]="00"+K0.toString();k1[i]="00"+K1.toString();k2[i]="00"+K2.toString();k3[i]="00"+K3.toString();k4[i]="00"+K4.toString();k5[i]="00"+K5.toString();k6[i]="00"+K6.toString();k7[i]="00"+K7.toString();k8[i]="00"+K8.toString();k9[i]="00"+K9.toString();
	};
	for (i=1;i<10;i++) {
		K0=(0+10*i);K1=(1+10*i);K2=(2+10*i);K3=(3+10*i);K4=(4+10*i);K5=(5+10*i);K6=(6+10*i);K7=(7+10*i);K8=(8+10*i);K9=(9+10*i);
		k0[i]="0"+K0.toString();k1[i]="0"+K1.toString();k2[i]="0"+K2.toString();k3[i]="0"+K3.toString();k4[i]="0"+K4.toString();k5[i]="0"+K5.toString();k6[i]="0"+K6.toString();k7[i]="0"+K7.toString();k8[i]="0"+K8.toString();k9[i]="0"+K9.toString();
	};
	for (i=10;i<78;i++) {
		K0=(0+10*i);K1=(1+10*i);K2=(2+10*i);K3=(3+10*i);K4=(4+10*i);K5=(5+10*i);K6=(6+10*i);K7=(7+10*i);K8=(8+10*i);K9=(9+10*i);
		k0[i]=K0.toString();k1[i]=K1.toString();k2[i]=K2.toString();k3[i]=K3.toString();k4[i]=K4.toString();k5[i]=K5.toString();k6[i]=K6.toString();k7[i]=K7.toString();k8[i]=K8.toString();k9[i]=K9.toString();
	};
	var listaK = [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9];


	var koder5 = function() {
		var kodowanie = prompt("Wpisz tekst do zakodowania");
			var wynik = "";
			var zależność
			var l = 0;
			for (var i = 0; i < kodowanie.length; i++) {
				zależność = Math.floor(Math.random()*10);
				lkod = listaK[zależność]
				for (var j = 0; j < znaki.length; j++) {
					if (kodowanie.slice(i,i + 1) === znaki[j]) {
					wynik += lkod[j];
					};
				};
			};
	var kodowanie = wynik;
			var wynik1 = "";
			var zależność2 = "";
			var zależność1
			var l = 0;
			for (var i = 0; i < kodowanie.length; i++) {
				zależność1 = Math.floor(Math.random()*10);
				lkod = listaK[zależność1]
				zależność2 += zależność1.toString();
				for (var j = 0; j < znaki.length; j++) {
					if (kodowanie.slice(i,i + 1) === znaki[j]) {
					wynik1 += lkod[j];
					};
				};
			};
		var wynik2 = wynik1 + "781" + zależność2;
		var wynik3 = "";
		var wynik4 = "";
		for (var i = 0; i < wynik2.length; i++) {
			wynik3 += wynik2.slice(i,i+1); i++
		};
		for (var I = 1; I < wynik2.length; I++) {
			wynik4 += wynik2.slice(I,I+1); I++
		};
		var wynik5 = wynik3.length.toString() + "782" + wynik3 + wynik4;

		alert("Kodowana wiadomość = " + wynik5);
		console.log(wynik5);
	document.forms["wynik"].elements["pokaz3"].value = wynik5;	
}




//ta część nie działa
var dekoder5 = function(){
		var dekodowanie1 =prompt("Wpisz tekst do dekodowania");
		var zależnośćD;
		for (var i = 0; i < dekodowanie1.length; i++) {
			if (dekodowanie1.slice(i,i+3) === "782") {
				zależnośćD = dekodowanie1.slice(0,i);
				dekodowanie1 = dekodowanie1.slice(i+3);
				break;
			}
		};
		zależnośćD = parseInt(zależnośćD);
		var dekodowanie;
		var dekodowanie2 = dekodowanie1.slice(0,zależnośćD);
		var dekodowanie3 = dekodowanie1.slice(zależnośćD);
		





//wydaje mi się, że to tu popełniłem błąd
//----------------------------------------------------------------------------	
var zal = 0;
		for (var I = 0; zal < 1; I++) {
			dekodowanie += dekodowanie2.slice(I,I+1);
			dekodowanie += dekodowanie3.slice(I+1,I+2);
		if (dekodowanie.length === dekodowanie2.length + dekodowanie3.length){
			zal++
			}; 
		I++
		};
//-----------------------------------------------------------------------------





		var wynik = "";
		var zależność;
		var l = 0;
		for (var i = 0; i < dekodowanie.length; i++) {
			if (dekodowanie.slice(i,i+3) === "781") {
				zależność = dekodowanie.slice(i+3);
				i+2;
				break
			}
		};
		dekodowanie = dekodowanie.slice(0,i);
		for (var j = 0; j < dekodowanie.length / 3; j++) {
			for (var J = 0; J < znaki.length; J++) {
				if (dekodowanie.slice(j+l,j+3+l) === listaK[zależność.slice(j,j+1)][J]) {
					wynik += znaki[J]
				}
			}
		l++; l++
		}
	var wynik2 = "";
		var zależność2;
		var l = 0;
		for (var i = 2; i < wynik.length; i++) {
				zależność2 += wynik.slice(i,i+1);
				i+=2;
		}zależność2=zależność2.slice(9)
		for (var j = 0; j < wynik.length / 3; j++) {
			for (var J = 0; J < znaki.length; J++) {
				if (wynik.slice(j+l,j+3+l) === listaK[zależność2.slice(j,j+1)][J]) {
					wynik2 += znaki[J]
				}
			}
		l++; l++
		}
		alert("Kodowana wiadomość = " + wynik2);
		console.log(wynik2);
	document.forms["wynik"].elements["pokaz3"].value =wynik2;
	};
</script>

<h3>Koder tekstu</h3>
<table>
	<tr><h4>kodowanie zasadą "BKE4":</h4></tr>
	<tr>
		<td><form><input type="button" value="kodowanie" onclick="koder5()"></form></td>
		<td><form><input type="button" value="dekodowanie" onclick="dekoder5()"></form></td>
	</tr>
</table>
<h3>wynik:</h3>
<form id="wynik"><input type="text" value="" name="pokaz3" style="width: 1200px;" /></form>
</body>
</html>

 

komentarz zamknięcia: znalazłem błąd w przedstawionym kodzie

1 odpowiedź

+2 głosów
odpowiedź 21 czerwca 2017 przez ProgramistaStepek Nałogowiec (27,020 p.)
Nie potrafię znaleźć błędu w tak niejasnym kodzie. W swoim skrypcie tworzysz polskie, nic nie znaczące nazwy, które na dodatek zawierają ogonki. Czy potrafisz mi logicznie odpowiedzieć czym się różnią zmienne zależność, zależność1, zależność2, zaleznoscD, zal od siebie? Ja nie mam pojęcia. Podsumowując -> popracuj nad nazwami dla zmiennych i wtedy pogadamy o błędach w skrypcie.

PS: Tak na moje oko w tym miejscu, które zaznaczyłeś, masz niekończącą się pętlę.
komentarz 23 czerwca 2017 przez Emil Szerafin Nowicjusz (170 p.)
Dopiero zaczynam programować więc rozwiązania z "zależnościami"  możliwe, że nie były poprawne ale dla mnie logiczne (na razie jestem na etapie: ważne by działało)

Poza tym nie rozumiem, gdzie popełniłem błąd w zaznaczonym fragmencie, bo przecież jeżeli "dekodowanie" będzie równe "dekodowanie2" + "dekodowanie3" (do czego ma dążyć pętla) "zal" będzie równe 1, a pętla ma istnieć do momentu, gdy  "zal" będzie mniejsze od 1.

Podobne pytania

0 głosów
2 odpowiedzi 123 wizyt
pytanie zadane 8 lutego 2016 w JavaScript przez Else Stary wyjadacz (12,260 p.)
0 głosów
1 odpowiedź 381 wizyt
0 głosów
4 odpowiedzi 168 wizyt
pytanie zadane 2 stycznia 2016 w C i C++ przez Mały Adaś Nowicjusz (120 p.)

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...