i tak zrobiłam, nie losuje w ogólesoku11 pisze:Zreszta wystarczy go uruchomic, by zobaczyc rezultaty
Pozdrawiam.
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
-
- Użytkownik
- Posty: 860
- Rejestracja: 18 cze 2007, o 20:57
- Płeć: Kobieta
- Lokalizacja: Rybnik
- Podziękował: 86 razy
- Pomógł: 57 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
-
- Użytkownik
- Posty: 860
- Rejestracja: 18 cze 2007, o 20:57
- Płeć: Kobieta
- Lokalizacja: Rybnik
- Podziękował: 86 razy
- Pomógł: 57 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
z jakiego Visual Studio korzystasz?
ja z 2008
są małe różnice między tym, a starszymi i nie zawsze działa
ja z 2008
są małe różnice między tym, a starszymi i nie zawsze działa
- Dedemonn
- Użytkownik
- Posty: 689
- Rejestracja: 21 lut 2007, o 19:40
- Płeć: Mężczyzna
- Lokalizacja: Z kompa
- Podziękował: 26 razy
- Pomógł: 137 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
Z żadnego niestety. Program testowałem w środowisku Javy (zamieniając tylko np. Length na length, Next na nextInt).
Dlaczego pytasz? Program się nie kompiluje, czy wyświetla złe wyniki? (wylosowane liczby oczywiście w tablicy wynik)
Dlaczego pytasz? Program się nie kompiluje, czy wyświetla złe wyniki? (wylosowane liczby oczywiście w tablicy wynik)
- Dedemonn
- Użytkownik
- Posty: 689
- Rejestracja: 21 lut 2007, o 19:40
- Płeć: Mężczyzna
- Lokalizacja: Z kompa
- Podziękował: 26 razy
- Pomógł: 137 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
A kto powiedział, że jest linijka za to odpowiedzialna?
Dodaj pod koniec np.:
Dodaj pod koniec np.:
Kod: Zaznacz cały
foreach(int liczba in wynik)
Console.Write( "{0} ", liczba );
-
- Użytkownik
- Posty: 860
- Rejestracja: 18 cze 2007, o 20:57
- Płeć: Kobieta
- Lokalizacja: Rybnik
- Podziękował: 86 razy
- Pomógł: 57 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
hmm
teraz wynik wyszedł taki:
:/
teraz wynik wyszedł taki:
Kod: Zaznacz cały
46
41
16
27
9
18
36
37
17
13
32
31
30
48
49
34
10
39
12
5
19
21
35
- Dedemonn
- Użytkownik
- Posty: 689
- Rejestracja: 21 lut 2007, o 19:40
- Płeć: Mężczyzna
- Lokalizacja: Z kompa
- Podziękował: 26 razy
- Pomógł: 137 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
Polecam zacząć od jakiegoś prostego tutoriala, bo widzę że rzuciłaś się na głęboką wodę od razu.
Program testowałem dla większej tablicy, aby się upewnić, że nie ma powtórzeń. Wystarczy zmienić rozmiar tablicy wynik na Tobie odpowiadającą. (6)
Program testowałem dla większej tablicy, aby się upewnić, że nie ma powtórzeń. Wystarczy zmienić rozmiar tablicy wynik na Tobie odpowiadającą. (6)
-
- Użytkownik
- Posty: 860
- Rejestracja: 18 cze 2007, o 20:57
- Płeć: Kobieta
- Lokalizacja: Rybnik
- Podziękował: 86 razy
- Pomógł: 57 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
co to jest?Dedemonn pisze:od jakiegoś prostego tutoriala
-- 17 czerwca 2009, 12:43 --
Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace matematyka.pl
{
class Program
{
static void Main(string[] args)
{ int[] data = new int[49];
int[] wynik = new int[6];
int wylosowano = 0;
Random generator = new Random();
for (int i = 0; i < data.Length; i++)
data[i] = i + 1;
for(int i=0; i < wynik.Length; i++)
{
int miejsce = generator.Next(0, data.Length-1-wylosowano);
wynik[i] = data[miejsce]; // wpisujemy do wyniku
data[miejsce] = data[data.Length - 1 - wylosowano];
data[data.Length - 1 - wylosowano] = wynik[i];
++wylosowano;
}
foreach (int liczba in wynik)
Console.WriteLine("{0} ", liczba);
Console.ReadKey();
}
}
}
-- 17 czerwca 2009, 12:46 --
podaj proszę jakiś konkretny prosty
Ostatnio zmieniony 17 cze 2009, o 12:48 przez Hania_87, łącznie zmieniany 1 raz.
-
- Użytkownik
- Posty: 2
- Rejestracja: 18 mar 2011, o 20:21
- Płeć: Mężczyzna
- Lokalizacja: Białystok
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
Piszac swój pierwszy "dłuższy" program trafiłem na to forum szukając zasad losowania liczby ze zbioru bez powtórzeń, no i bylem pod wrazeniem algorytmu jaki przedstawil Dedemonn.
Wykorzystalem go w swoim programie, którego celem było wylosowanie okreslonej liczby zakładów TotoLotka (od 1 do 8) ale tak aby raz wylosowana liczba w któryms zakładzie nie powtórzyla sie w pozostałych.
A ponieważ żonie nie udziela się moja euforia z racji ukonczenia pierwszego jak dla mnie, bardziej zlozonego programu, chcialbym sie pochwalić nim tutaj
Liczę na konstruktywną krytykę co jest nie tak, co można było zrobić inaczej i prościej, za wszelkie uwagi i sugestie będę wdzięczny.
PS. Wow!!! Ponad 100 linii kodu - to mój wielki dzien!!!!
Wykorzystalem go w swoim programie, którego celem było wylosowanie okreslonej liczby zakładów TotoLotka (od 1 do 8) ale tak aby raz wylosowana liczba w któryms zakładzie nie powtórzyla sie w pozostałych.
A ponieważ żonie nie udziela się moja euforia z racji ukonczenia pierwszego jak dla mnie, bardziej zlozonego programu, chcialbym sie pochwalić nim tutaj
Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Generator_liczb_losowych
{
class DuzyLotek
{
//definicja pól klasy
public int iloscObstawianychZakladow;
private int[] ZakresLiczb = new int[49];
public int[,] WylosowaneZaklady = new int[8, 6];
public void PobieranieDanychOdUzytkownika()
{
Console.SetCursorPosition(20, 10);
Console.WriteLine("Podaj ilość zakładów które chcesz wylosować,");
Console.SetCursorPosition(20, 11);
Console.WriteLine("dopuszczalny zakres od 1 do 8");
Console.WriteLine("");
Console.WriteLine("");
Console.SetCursorPosition(40, 20);
iloscObstawianychZakladow = Convert.ToInt32(Console.ReadLine());
Console.Clear();
}
public void LosowanieZakladowBezPowtorzen()
{
int nrLosowania = 0;
Random generator = new Random();
for (int i = 0; i < 49; i++)
{
ZakresLiczb[i] = i + 1;
}
int j = 0;
for (int i = 0; i < iloscObstawianychZakladow * 6; i++)
{
int indexWylosowanejLiczby = generator.Next(0, ZakresLiczb.Length - 1 - nrLosowania);
WylosowaneZaklady[j, i % 6] = ZakresLiczb[indexWylosowanejLiczby];
ZakresLiczb[indexWylosowanejLiczby] = ZakresLiczb[ZakresLiczb.Length - 1 - nrLosowania];
ZakresLiczb[ZakresLiczb.Length - 1 - nrLosowania] = WylosowaneZaklady[j, i % 6];
nrLosowania++;
if ((i + 1) % 6 == 0)
{
for (int m = 0; m < 5; m++)
{
for (int k = 0; k < 6 - 1; k++)
{
int bufor;
int pierwszaWSzeregu = WylosowaneZaklady[j, k];
int drugaWSzeregu = WylosowaneZaklady[j, k + 1];
if (pierwszaWSzeregu > drugaWSzeregu)
{
bufor = pierwszaWSzeregu;
WylosowaneZaklady[j, k] = drugaWSzeregu;
WylosowaneZaklady[j, k + 1] = bufor;
}
}
}
j++;
}
}
}
public void PrezentacjaWyników()
{
int L = 25;
int G = 6;
for (int z = 0; z < iloscObstawianychZakladow ; z++)
{
for (int x = 0; x < 6; x++)
{
Console.SetCursorPosition(L, G);
Console.WriteLine("{0}", WylosowaneZaklady[z, x]);
L = L + 5;
if ((x+1) % 6 == 0 )
{
G++;
L = 25;
}
}
}
//Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
DuzyLotek MojeLotto = new DuzyLotek();
MojeLotto.PobieranieDanychOdUzytkownika();
bool losuj = true;
do
{
MojeLotto.LosowanieZakladowBezPowtorzen();
MojeLotto.PrezentacjaWyników();
Console.SetCursorPosition(12, 15);
Console.WriteLine("Zeby losowac jeszcze raz wybierz N i zatwierdz enterem.");
Console.SetCursorPosition(40, 18);
string wyborUzytkownika = Convert.ToString(Console.ReadLine()).ToUpper();
if (wyborUzytkownika != "N")
{
losuj = false;
}
Console.Clear();
} while (losuj == true);
}
}
}
PS. Wow!!! Ponad 100 linii kodu - to mój wielki dzien!!!!
- Quaerens
- Użytkownik
- Posty: 2489
- Rejestracja: 5 wrz 2007, o 13:36
- Płeć: Mężczyzna
- Podziękował: 439 razy
- Pomógł: 181 razy
[C#] program losujący 6 różnych cyfr z 49 bez zwracania
VarranC, doskonale rozumiem Twoje uczucie, podobnie się czułem, gdy napisałem swój pierwszy program w C#, ale z tego co pamiętam zawierał on tylko chyba pętle for Także działaj dalej i życzę powodzenia