program w VB - liczby pierwsze
- lukki_173
- Użytkownik
- Posty: 913
- Rejestracja: 24 paź 2008, o 17:48
- Płeć: Mężczyzna
- Lokalizacja: Kościeliska (woj. opolskie)
- Podziękował: 56 razy
- Pomógł: 218 razy
program w VB - liczby pierwsze
Witam. Muszę napisać program w Visual Basicu, który wypisze liczby pierwsze z podanego zakresu.
Ma to wyglądać tak, że mamy 3 textboxy. Do pierwszego wpisujemy liczbę od której program ma sprawdzać (np. 3), w drugim do której liczby ma sprawdzać (np. 24). Później należy po kolei sprawdzić, która liczba z tego zakresu jest pierwsza (najlepiej napisać funkcję ale można też inaczej) i następnie wszystkie liczby pierwsze z tego zakresu wypisać w trzecim textboxie.
Zacząłem coś pisać, ale ciągle mam gdzieś błędy.
Proszę o pomoc.
Z góry dziękuję.
Ma to wyglądać tak, że mamy 3 textboxy. Do pierwszego wpisujemy liczbę od której program ma sprawdzać (np. 3), w drugim do której liczby ma sprawdzać (np. 24). Później należy po kolei sprawdzić, która liczba z tego zakresu jest pierwsza (najlepiej napisać funkcję ale można też inaczej) i następnie wszystkie liczby pierwsze z tego zakresu wypisać w trzecim textboxie.
Zacząłem coś pisać, ale ciągle mam gdzieś błędy.
Proszę o pomoc.
Z góry dziękuję.
- Morusek
- Użytkownik
- Posty: 127
- Rejestracja: 8 lut 2009, o 17:34
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Pomógł: 29 razy
program w VB - liczby pierwsze
Spróbuj wykorzystać Sito Eratostenesa. BTW na wikipedii jest podobny kod źródłowy napisany w C++.
- lukki_173
- Użytkownik
- Posty: 913
- Rejestracja: 24 paź 2008, o 17:48
- Płeć: Mężczyzna
- Lokalizacja: Kościeliska (woj. opolskie)
- Podziękował: 56 razy
- Pomógł: 218 razy
program w VB - liczby pierwsze
Tylko że ja bardzo się na tym znam. A o C++ w ogóle pojęcia nie mam. Wiesz ktoś może jak ten program bez Sita Eratostenesa napisać? Tylko z użyciem funkcji do obliczenia liczb pierwszych.
Bardzo proszę o pomoc.
Bardzo proszę o pomoc.
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
program w VB - liczby pierwsze
Kod: Zaznacz cały
bool prime(int n)
{
if(n==1||n==0) return false;
for(int i=2;i*i<=n;i++)
if(n%i==0) return false;
return true;
}
Kod: Zaznacz cały
for(int i=2;i<n;i++)
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
program w VB - liczby pierwsze
Kod: Zaznacz cały
Public Class PrimeNumbers
Private Sub FillPrimeList()
Dim FromNumber, ToNumber, I, N As Integer
Dim Prime As Boolean
FromNumber = Convert.ToInt32(FromBox.Text)
ToNumber = Convert.ToInt32(ToBox.Text)
For N = FromNumber To ToNumber Step 1
Prime = True
If N < 2 Then
Prime = False
End If
I = 2
Do While I * I <= N And Prime
If N Mod I = 0 Then
Prime = False
End If
I = I + 1
Loop
If Prime = True Then
ListBox.Items.Add(N)
End If
Next
End Sub
Private Sub ShowButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowButton.Click
ListBox.Items.Clear()
FillPrimeList()
End Sub
End Class
zrobiłem 2 pola typu TextBox (FromBox - zakres od, ToBox - zakres do), 1 pole ListBox (tutaj pojawiają się liczby pierwsze), 1 przycisk ShowButton (czyści ListBox, wywołuje procedurę sita Eratostenesa i uzupełnia ListBox liczbami pierwszymi w podanym zakresie)
-- 10 lutego 2009, 03:02 --
zmieniając dwie linijki w kodzie, można użyć trzeciego TextBox
Kod: Zaznacz cały
ListBox.Items.Add(N)
Kod: Zaznacz cały
PrimeBox.Text = PrimeBox.Text + Convert.ToString(N) + ", "
Kod: Zaznacz cały
ListBox.Items.Clear()
Kod: Zaznacz cały
PrimeBox.Text = ""