مشاهده نسخه کامل
: چگونه می توان با نوشتن یک برنامه اهمیت زمان جستجو را نشان داد؟
mohammad aghajani
06-05-2007, 00:31
برنامه اي كه مي نويسيم بايستي شامل سه تابع باشد:
الف) تابعي كه يك فايل با 100000 ركورد كه هركدام شامل يك مقدار صحيح دلخواه هست ايجاد كند.
ب) فايل را به صورت ترتيبي بخواند. يعني از يك حلقه براي جمع اولين ركورد، سپس دومين ركورد و الي آخر استفاده كند. در نهايت ميانگين اعداد داخل فايل را محاسبه كرده و چاپ كند.
ج) اين تابع نيز يك حلقه دارد، با اين تفاوت كه ابتدا ركورد اول را مي خواند، سپس ركورد 50001 ام، سپس دومين ركورد و آنگاه 50002 امين ركورد را به همين ترتيب تا ميانگين را محاسبه و چاپ كند.
در برنامه اصلي خود از يك ساعت براي محاسبه رمان اجرا استفاده كنيد و به سوالات زير پاسخ دهيد:
- هر يك از برنامه هاي (ب) و (ج) چقدر زمان به خود اختصاص دادند؟
- دليل تفاوت اين دو زمان چيست؟
این درخواست پروژه است و ممنوعه اینجا. این برنامه رو بنویس موقع کد نویسی خودت می فهمی چرا دومی زمان بیشتری صرف میکنه.!
mohammad aghajani
10-05-2007, 01:38
مثل اینکه اشتباه شده ولی من خودم برنامه رو نوشتم ولی می خوام یکی اشکالاشو بگیره من کدشو میذارم
mohammad aghajani
10-05-2007, 01:40
کد برنامه
Dim t As Long
Dim t1 As Long
Dim X As Long
Private Sub ijad()
Me.MousePointer = 11
Label1.Caption = "ÏÑ ÍÇá ÓÇÎÊ ÈÇä˜"
For i = 1 To 100000
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("f") = i
Adodc1.Recordset.Update
Next i
Label1.Caption = "јæÑÏåÇ ÏÑ ÈÇä˜ ÇíÌÇÏ ÔÏå ÇäÏ"
Command3.Caption = ""
Frame3.Enabled = False
Text5.SetFocus
Me.MousePointer = 0
End Sub
Private Sub mo1()
Adodc1.Recordset.MoveFirst
Text7.Text = ""
Timer1.Enabled = True
For i = 1 To Adodc1.Recordset.RecordCount
Text7.Text = Val(Text7.Text) + Adodc1.Recordset.Fields("f")
Adodc1.Recordset.MoveNext
Next i
Text7.Text = Val(Text7.Text) \ Adodc1.Recordset.RecordCount
Timer2.Enabled = False
Text8.Text = t1
Command2.Enabled = False
Text5.SetFocus
End Sub
Private Sub mo2()
Timer1.Enabled = True
Adodc1.Recordset.MoveFirst
Adodc2.Recordset.Move (5000)
For i = 1 To 4999
X1 = Adodc2.Recordset.Fields("f")
X2 = Adodc1.Recordset.Fields("f")
Text3.Text = Val(Text3.Text) + X1 + X2
Adodc1.Recordset.MoveNext
Adodc2.Recordset.MoveNext
Next i
Text3.Text = Val(Text3.Text) \ Adodc1.Recordset.RecordCount
Timer1.Enabled = False
Text4.Text = t
Command1.Enabled = False
Text5.SetFocus
End Sub
Private Sub Command1_Click()
Call mo2
End Sub
Private Sub Command2_Click()
Call mo1
End Sub
Private Sub Command3_Click()
Call ijad
End Sub
Private Sub Form_Activate()
Dim i As Long
i = 100000
If (Adodc1.Recordset.RecordCount < i) Then "توی این خط خطا میگیره"
Command1.Enabled = False
Command2.Enabled = False
Label1.Caption = "ÇíÌÇÏ Ñ˜æÑÏåÇ ÏÑ ÈÇä˜"
Command3.Caption = "ÇíÌÇÏ"
Frame3.Enabled = True
For i = 1 To Adodc1.Recordset.RecordCount
Adodc1.Recordset.Delete
Adodc1.Refresh
Adodc1.Recordset.Update
Next i
End If
Command1.Enabled = True
Command2.Enabled = True
End Sub
Private Sub Timer1_Timer()
t = t + 1
End Sub
Private Sub Timer2_Timer()
t1 = t1 + 1
End Sub
mohammad aghajani
10-05-2007, 01:46
اگه بتونید کمک کنید ممنون می شوم من نمی خواستم کسی این برنامه را برام بنویسه فقط می خواستم کسی کمک و راهنمای کنه لطفا قبل از جمعه رفع خطا ها را به من بگید
ممنون
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.