Zapsání náhodných čísel do pole – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zapsání náhodných čísel do pole – .NET – Fórum – Programujte.comZapsání náhodných čísel do pole – .NET – Fórum – Programujte.com

 

dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #1
-
0
-

Tak je tu další z mých dotazů :D.
Znám algoritmus jak seřadit náhodná čísla od největšího po nejmenší. Vím i jak ho napsat v C#.
Můj problém je, že si vytvořím pole o 20 místech, ale nevím jak do něj napsat do každého místa/indexu jedno číslo.

Je tu někdo kdo by mi s tím pomohl ?? Za pomoc předem děkuji :).

Nahlásit jako SPAM
IP: 62.168.43.–
KIIV
~ Moderátor
+43
God of flame
14. 9. 2011   #2
-
0
-

#1 dreamwaver
nejak sem nepochopil co presne neumis...   jestli:   pole[index] = cislo;  ? nebo neumis udelat cyklus od 0 do 19? ci jen neumis vygenerovat nahodne cislo?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #3
-
0
-

no vice méně mám problém s tím ho vygenerovat a zapsat do pole.

Nahlásit jako SPAM
IP: 62.168.43.–
KIIV
~ Moderátor
+43
God of flame
14. 9. 2011   #4
-
0
-

#3 dreamwaver
tak hledej cyklus (for), generovani nahodnych cisel a zapis do pole uz sem ti napsal

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
liborb
~ Redaktor
+18
Guru
14. 9. 2011   #5
-
0
-

Případně si můžeš nechat vyplnit to pole náhodnými čísly - Random a NextBytes, ale jinak je dobré umět i cyklus   

Nahlásit jako SPAM
IP: 78.80.52.–
dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #6
-
0
-

jj zkusím to co jste říkali :)

for(int i = 0;i < pole.lenght; i++)
{
	for(int j; j < pole.lenght -1;  j++)
	{
		if(pole[i] < pole[i+1])
		{
			pomocna = pole[i];
			pole[i] = pole[i + 1];
			pole[i+1] = a;
		}
	}
}

tohle je ten algoritmus co pouziju.

Nahlásit jako SPAM
IP: 62.168.43.–
dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #7
-
0
-

Díky všem, co mi to tu pomohli vyřešit. :)

přikládám zde moje funkční řešení:

			int[] pole = new int[20];
			int pomocna = 0;
			Random nahoda = new Random();
			nahoda.Next(1,200);
			for(int x =0; x < pole.Length; x++)
			{
				pole[x] = nahoda.Next(1, 200);
			}
			for(int j = 0;j < pole.Length; j++)
			{
				Console.WriteLine(pole[j]);
			}
			
			
			
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
Nahlásit jako SPAM
IP: 62.168.43.–
Mutagen
~ Anonymní uživatel
549 příspěvků
14. 9. 2011   #8
-
0
-

Omluvte me pokud se pletu ale kdyz ma pole.Length tak mu to zapise 21 cisel ze ? Protoze vlastne 0 - 20 je 21 nemel by tam zpravne mit (pole.Length - 1) ?

Nahlásit jako SPAM
IP: 89.190.90.–
dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #9
-
0
-

až budu doma tak sem dám celý program v celku(funkční ;) ).

Nahlásit jako SPAM
IP: 62.168.43.–
liborb
~ Redaktor
+18
Guru
14. 9. 2011   #10
-
0
-

#8 Mutagen
Pole má 20 prvků, takže jeho délka je 20 a i dané rozmezí cyklu (x = 0; x < pole.Length) je správně, tj. od 0 do 19. Má to správně. Jediné, co bych připomínkoval je to, že v příspěvku #6 není inicializovaná indexová proměnná ( j ) vnořeného cyklu.

EDIT: Hmm, nevšiml jsem si, že je celý špatně :), takže lépe:

for(int i = 0;i < (pole.lenght - 1);i++) {
	for(int j = i + 1;j < pole.lenght;j++) {
		if(pole[i] < pole[j]) {
			pomocna = pole[i];
			pole[i] = pole[j];
			pole[j] = pomocna;
		}
	}
}
Nahlásit jako SPAM
IP: 78.80.52.–
Mutagen
~ Anonymní uživatel
549 příspěvků
14. 9. 2011   #11
-
0
-

#10 liborb
Rikal jsem ze si nejsem jist ... Ty podminky jsem si poradne nevsiml ja sem zvyklej pouzivat tohle ale za predpokladu ze tam mam i "=" ...

Nahlásit jako SPAM
IP: 89.190.90.–
liborb
~ Redaktor
+18
Guru
14. 9. 2011   #12
-
0
-

#11 Mutagen
Ano, jde to i takto: 

for(int i = 0;i <= (pole.lenght - 1);i++)

I když původně jsem tě šacoval spíše na nějaký ten Visual Basic :)

Nahlásit jako SPAM
IP: 78.80.52.–
Mutagen
~ Anonymní uživatel
549 příspěvků
14. 9. 2011   #13
-
0
-

#12 liborb
To vubec ... v C# delam od prvaku samostudiem a ted sem ve třetaku ... Jenom sem si nevsiml ty podmínky tot vse ...

Nahlásit jako SPAM
IP: 89.190.90.–
dreamwaver
~ Anonymní uživatel
9 příspěvků
14. 9. 2011   #14
-
0
-

using System;

namespace serazeni_nahodne_vytvorenych_cisel
{
class Program
{
  public static void Main(string[] args)
  {
   int[] pole = new int[20];
   int pomocna = 0;
   Random nahoda = new Random();
   for(int x =0; x < pole.Length; x++)
   {
    pole[x] = nahoda.Next(1, 150);
   }
   for(int i = 0;i < pole.Length -1; i++)
   {
    for(int j = 0; j < pole.Length -1; j++)
    {
     if(pole[j] < pole[j+1])
     
     {
      pomocna = pole[j];
      pole[j] = pole[j + 1];
      pole[j+1] = pomocna;
     }
    }
   }
  
  
  
   for(int y = 0; y < pole.Length; y++)
   {
    Console.WriteLine(pole[y]);
   }
   Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
}
}

Takto vypadá to co jsem udělal já :D je to plně funkční, vím že to není nejlepší,ale funguje.

Nahlásit jako SPAM
IP: 79.98.72.–
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, 10 hostů

 

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