ugrás a tartalomhoz

Algoritmus segítség

elektromania92 · 2010. Dec. 11. (Szo), 17.23
Jó napot kívánok.

Tudna nekem valaki segiteni? Mas forumra nem akartam regisztrálni. Tulajdonképpen folyamatábrát kell rajzolnom, de most mégis inkább a programozással kezdem.
Javascriptben kezdtem el, de nem az a lényeg, ebben a legegyszerűbb.
A teljes kódot nem teszem fel, mivel az nem fontos. Egy részfeladatról van szó.

PK[1] = "0";
PK[2] = "1";
PK[3] = "0";
PK[4] = "0";
PK[5] = "1";
PK[6] = "0";
PK[7] = "1";
PK[8] = "1";
PK[9] = "0";
PK[10] = "0";
PK[11] = "0";
PK[12] = "0";
PK[13] = "0";
PK[14] = "0";
PK[15] = "0";
PK[16] = "1";

A PK tömb egy 16 bites bináris számot tartalmaz. Azt kellene megoldani, hogy a PK[1] től haladva elkezdjük megvizsgálni az értékeket. Az első 1 ig a PK = DK val, utana a DK a PK negáltja.
Ebben a konkrét esetben a DK tömb értékei igy néznének ki:

DK[1] = "0";
DK[2] = "1";
DK[3] = "1";
DK[4] = "1";
DK[5] = "0";
.
.
.

en igy probalkoztam:

for (i = 1; i <= 16; i++){
while (PK[i] != 1){
}
/*Ide jön valami, a for müxik, a többi nem*/
}

Köszönöm a segítséget.
 
1

pl.

Totti 1986 · 2010. Dec. 11. (Szo), 17.34
A while-lal azt írtad, addig fusson a kód, amíg el nem ér az első 1-ig. Utána megáll.

Szerintem így csináld:

Hozz létre egy változót, aminek adsz egy értéket, majd megváltoztatod, ha elérted az első 1-est.

var elso_1es = 0;
for (var i = 1; i <= 16; i++){
	if(PK[i] == "1") {
		elso_1es = 1;
	}
	if(elso_1es == 1) {
		DK[i] != PK[i];
	} else {
		DK[i] = PK[i];
	}
}