Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > FIKRI OLAN VARMI(SHELL SCRIPT)
Yazar
saskin


avatar

Kayıt: 22.09.2006
28.11.2006-00:42 #11913
Write a shell script that prints the prime numbers and their sum between two
integers (inclusive) given from the command line. Consider the example given
below:
$prog2 1 10
Prime Numbers: 3 5 7 Sum = 15





Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
28.11.2006-17:04 #11933
Ben asal sayı bulma ile ilgili bir program yazmıştım. Ana kod aşağıda yazıyor. VB6.0 ile yapmıştım. Kullandığım yöntemde 2 sayı arasındaki asal sayıları bulmak için önce büyük sayıyı bölebilecek asal sayılar bir listeye kaydediliyor. (Bu 2. liste). Sonra küçük sayıdan başlayıp büyük sayıya kadar her sayı 2.listede kendisini bölebilecek en büyük asal sayıya kadar "mod" işlemine tabi tutuluyor. Eğer herhangi bir mod işleminin sonucu o çıkarsa o sayı atlanıyor. Hiç biri 0 çıkmamışsa o sayı 1. listeye yazılıyor. Bu 1. liste ekranda gösteriliyor. İstersen bu listedeki tüm sayıları ayrı bir döngü ile toplayabilirsin. Bu yöntem çok hızlı. Çok büyük sayılar için bile kısa sürede sonuç veriyor. Aşağıdaki kodu istediğin dile çevirebilirsin.

Dim a As Long, b As Long, i As Long, ik As Long, j As Long, x As Long, xk As Long, y As Long, asal As Boolean
Private Sub Command1_Click()
a = Val(Text1)
b = Val(Text2)
If a = b Then MsgBox ("Eşit olmayan sayılar girin."): Exit Sub
If a > b Then k = a: a = b: b = k
If a < 2 Then MsgBox ("2'den kücük sayılar asal olamaz."): Exit Sub
On Local Error Resume Next
t1 = Time()
Label4.Caption = "İşlem yapılıyor."
Label3.Caption = "Lütfen bekleyin...."
DoEvents
List1.Clear
List2.Clear
List2.AddItem 2

'2. Listeye sayımı bölebilecek asal sayıları eklerim.
If b > 2 Then
For x = 3 To b ^ (1 / 2)
xk = x ^ (1 / 2)
asal = True
For y = 0 To List2.ListCount - 1
DoEvents
If (x Mod List2.List(y)) = 0 Then asal = False: Exit For
If List2.List(y) >= xk Then Exit For
Next
If asal = True Then List2.AddItem x
Next
End If

'1.Listeye aralığımdaki asal sayıları eklerim.
If a = 2 Then List1.AddItem 2
For i = a To b
ik = i ^ (1 / 2)
asal = True
For j = 0 To List2.ListCount - 1
ProgressBar2.Value = j
DoEvents
If (i Mod List2.List(j)) = 0 Then asal = False: Exit For
If List2.List(j) >= ik Then Exit For
Next
ProgressBar1.Value = i - a
If asal = True Then List1.AddItem i
Next
t2 = Time()
t = t2 - t1
Label3.Caption = "İşlem" + Str(Second(t) + 60 * Minute(t) + 3600 * Hour(t)) + " saniye sürdü."
Label4.Caption = "Toplam" + Str(List1.ListCount) + " tane asal sayı bulundu."
Open "asal" + Str(a) + "-" + Str(b) + ".txt" For Append As #1
For a = 0 To List1.ListCount - 1
Print #1, List1.List(a)
Next
Close #1
End Sub

Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub






Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
28.11.2006-17:07 #11934
Shell script nedir bilsem ödevinin tamamını, ücretiyle yapardım.Programlama konusunda iddialıyımdır.
Nedir bu shell script? İnternette bildiğin bir kaynak var mı bununlar ilgili. Hangi IDE programlarla yazabiliriz bunu?thinking





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb