Posloupnost čísel – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Posloupnost čísel – JavaScript, AJAX, jQuery – Fórum – Programujte.comPosloupnost čísel – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Spooner0
Duch
12. 4. 2012   #1
-
0
-

Ahoj, mám takový úkol s kterým si prostě vůbec nevím rady.

Toto je zadání:Je dána posloupnost 50 celých čísel, z nichž některá mohou být stejná. Určete,
kolik hodnot se mezi vstupními čísly nachází právě dvakrát
.

Kdyby byl někdo tak hodný a poradil mi jak to udělat nebo co změnit. Děkuji všem.

Vytvořil jsem toto ale pořád mi to nefunguje.

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title></title>
</head>
<body style="margin: 20px 50px; padding: 10px">
<p>Počet různých čísel v posloupnosti</p>
<script language="JavaScript" type="text/javascript">
<!--
function numberSort(a,b)
{
return a-b;
}
pocitadlo=0;
posloupnost = new Array();
posloupnost[0]= 15;
posloupnost[1]= 12;
posloupnost[2]= 11;
posloupnost[3]= 11;
posloupnost[4]= 11;
posloupnost[5]= 11;
posloupnost[6]= 10;
posloupnost[7]= 9;
posloupnost[8]= 9;
posloupnost[9]= 9;
posloupnost[10]= 9;
posloupnost[11]= 8;
posloupnost[12]= 7;
posloupnost[13]= 7;
posloupnost[14]= 7;
posloupnost[15]= 6;
posloupnost[16]= 5;
posloupnost[17]= 4;
posloupnost[18]= 3;
posloupnost[19]= 1;
posloupnost[20]= 0;
posloupnost[21]= -1;
posloupnost[22]= -7;
posloupnost[23]= -8;
posloupnost[24]= -9;
posloupnost[25]= -10;
posloupnost[26]= -11;
posloupnost[27]= -23;
posloupnost[28]= -23;
posloupnost[29]= -24;
posloupnost[30]= -25;
posloupnost[31]= -44;
posloupnost[32]= -45;
posloupnost[33]= -52;
posloupnost[34]= -53;
posloupnost[35]= -60;
posloupnost[36]= -60;
posloupnost[37]= -69;
posloupnost[38]= -70;
posloupnost[39]= -79;
posloupnost[40]= -80;
posloupnost[41]= -88;
posloupnost[42]= -100;
posloupnost[43]= -101;
posloupnost[44]= -106;
posloupnost[45]= -107;
posloupnost[46]= -107;
posloupnost[47]= -108;
posloupnost[48]= -109;
posloupnost[49]= -110;
pole=posloupnost;
pole.sort(numberSort);
for(i=0;i<=pole.length-2;i++)
{
if (pole[i]==pole[i+1] and pole[i+1]!=pole[i+20]) pocitadlo++;
}
document.write("<br>"+"Počet právě 2krát stejných čísel v posloupnosti"+pocitadlo+".");
document.write("<br>");
for(i=0;i<=pole.length-1;i++)
{
document.write(pole[i]+", ");
}
// -->
</script>
</body>
</html>

Nahlásit jako SPAM
IP: 79.141.255.–
crazy
~ Moderátor
+10
Grafoman
12. 4. 2012   #2
-
0
-

#1 Spooner

pole[i+20]

tímhle seš si jistej? asi překlep.. i+2

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Spooner0
Duch
12. 4. 2012   #3
-
0
-

#2 crazy
díky, jo to byl překlep ale i tak to nejde

Nahlásit jako SPAM
IP: 79.141.255.–
crazy
~ Moderátor
+10
Grafoman
12. 4. 2012   #4
-
0
-

#3 Spooner

pocitadlo = 0;
for( i = 0; i < pole.length(); i++ )
{
	j = i;
	c = 0;
	while( j < pole.length() && pole[i] == pole[j++] ) c++;
	i += c-1;
	if( c == 2 ) pocitadlo++;
}

Nevim, jestli je to správně zapsaný v Javascriptu, ale mělo by to fungovat... a musí to být seřazené...

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Spooner0
Duch
12. 4. 2012   #5
-
0
-

#4 crazy
takže by to mělo vypadat takto ? :

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title></title>
</head>
<body style="margin: 20px 50px; padding: 10px">
<p>Počet různých čísel v posloupnosti</p>
<script language="JavaScript" type="text/javascript">
<!--
function numberSort(a,b)
{
return a-b;
}
pocitadlo = 0;
posloupnost = new Array();
posloupnost[0]= 15;
posloupnost[1]= 12;
posloupnost[2]= 11;
posloupnost[3]= 11;
posloupnost[4]= 11;
posloupnost[5]= 11;
posloupnost[6]= 10;
posloupnost[7]= 9;
posloupnost[8]= 9;
posloupnost[9]= 9;
posloupnost[10]= 9;
posloupnost[11]= 8;
posloupnost[12]= 7;
posloupnost[13]= 7;
posloupnost[14]= 7;
posloupnost[15]= 6;
posloupnost[16]= 5;
posloupnost[17]= 4;
posloupnost[18]= 3;
posloupnost[19]= 1;
posloupnost[20]= 0;
posloupnost[21]= -1;
posloupnost[22]= -7;
posloupnost[23]= -8;
posloupnost[24]= -9;
posloupnost[25]= -10;
posloupnost[26]= -11;
posloupnost[27]= -23;
posloupnost[28]= -23;
posloupnost[29]= -24;
posloupnost[30]= -25;
posloupnost[31]= -44;
posloupnost[32]= -45;
posloupnost[33]= -52;
posloupnost[34]= -53;
posloupnost[35]= -60;
posloupnost[36]= -60;
posloupnost[37]= -69;
posloupnost[38]= -70;
posloupnost[39]= -79;
posloupnost[40]= -80;
posloupnost[41]= -88;
posloupnost[42]= -100;
posloupnost[43]= -101;
posloupnost[44]= -106;
posloupnost[45]= -107;
posloupnost[46]= -107;
posloupnost[47]= -108;
posloupnost[48]= -109;
posloupnost[49]= -110;
pole=posloupnost;
pole.sort(numberSort);
for( i = 0; i < pole.length(); i++ )
{
j = i;
c = 0;
while( j < pole.length() && pole[i] == pole[j++] ) c++;
i += c-1;
if( c == 2 ) pocitadlo++;
}
// -->
</script>
</body>
</html>

Nahlásit jako SPAM
IP: 79.141.255.–
crazy
~ Moderátor
+10
Grafoman
12. 4. 2012   #6
-
0
-

#5 Spooner
ted koukám, že v JS length není metoda ale property... takže tam, kde je pole.length(), tak tam bude jenom pole.length... a používej Firebug nebo něco, co ti bude házet errory a warningy.

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Spooner0
Duch
13. 4. 2012   #7
-
0
-

#6 crazy
tak sem to opravil, ale furt nic. Sem z toho vedle.

Nahlásit jako SPAM
IP: 79.141.255.–
CZechBoY+4
Věrný člen
13. 4. 2012   #8
-
0
-

půjčím si crazyho kod s dovolením...

posloupnost = new Array(15, 12, 11, 11, 11, 11, 10, 9, 9, 9, 9, 8, 7, 7, 7, 6, 5, 4, 3, 1, 0, -1, -7, -8, -9, -10, -11, -23, -23, -24, -25, -44, -45, -52, -53, -60, -60, -69, -70, -79, -80, -88, -100, -101, -106, -107, -107, -108, -109, -110);
pole=posloupnost;

pocitadlo = 0;
var nalezeno=new Array();

for( i = 0; i < pole.length; i++ )
{
	if(pole[i]==null)
		continue;
	for( j=0; j < pole.length; j++ ) {
		if( pole[i] == pole[j] ) {
			if(nalezeno[pole[j]]==null)
				nalezeno[pole[j]]=0;
			nalezeno[pole[j]]++;
			pole[j]=null;
		}
	}
}
for(var i in nalezeno)
	if( nalezeno[i] == 2 ) {
		pocitadlo++;
	}
alert(pocitadlo);

nevim proč používáš přiřazování pole[x]=hodnota; když to pak stejně nevyužíváš, dal jsem to na jeden řádek..

jsem tak trošku PHPčkář tak mě nezabijte za to pole :D

Nahlásit jako SPAM
IP: 213.192.10.–
Spooner0
Duch
13. 4. 2012   #9
-
0
-

#8 CZechBoY
díky moc :)

a nešlo by ještě zařídit aby ten počet se napsal přímo na stránku a nevyhazovalo to další okno ? :)

jinak fakt moc díky :)

Nahlásit jako SPAM
IP: 79.141.255.–
CZechBoY+4
Věrný člen
13. 4. 2012   #10
-
0
-

jasně.. místo alert tam dej třeba document.write(pocitadlo);

nevim kam chceš ten text napsat, ale můžeš to vložit třeba do divu, nebo kamkoliv

Nahlásit jako SPAM
IP: 213.192.10.–
Spooner0
Duch
14. 4. 2012   #11
-
0
-

Ano už to funguje jak by mělo.

Děkuji Vám oběma mnohokrát :)). Díky moc.

Nahlásit jako SPAM
IP: 79.141.255.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Posloupnost čisel — založil bender89

Posloupnost čísel — založil Marek

Posloupnost čísel - úkol — založil Sandokan

Posloupnost celých čísel — založil Dmitriy

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý