سوال : برنامه ای که اعداد 1 تا n را چاپ کند.

زیبااا

New Member
سوال : برنامه ای که اعداد m تا n را چاپ کند.

سلام. چن تا سوال داشتم ...
یه برنامه ای میخواستم که اعداد m تا n رو چاپ کنه!!! (m<n) . اینطوری نوشتمش ...




Visual Basic Code:

Private Sub Form_click()Dim m%, n%m = Val(Text1.Text)n = Val(Text2.Text) For i = m To nIf m < n ThenPrint iEnd IfNext iEnd Sub










حالا سوالام راجع همین برنامه :!
1. وقتی m بزرگتر از n شد دوس دارم برنامه یه پیغام بده ینی با دستور else هرطوری کدشو نوشتم کار نداد !!
2. بعد وقتی فاصله ی عددامون زیاده ، نصف عددا به دلیل طول کوچیک فرم نشون داده نمیشه . چطوری میتونم کاری کنم که همه ی عددا نشون داده
بشن یا طول فرم همزمان با اعداد زیادتر بشه ؟! یا وقتی اعداد از طول فرم بیشترن بیان یه ستون جدید درست کنن !!!
3. اگه بخوام برنامه فقط یه بار قابل اجرا باشه باید چیکار کنم؟ مثلا یه بار که رو فرم کلیک کردیم برنامه اجرا شه ... برای بار دوم که کلیک کردیم هیچ
اتفاقی نیوفته !!!!
4. اگه بخوام بعد از تغییر مقادیر m و n و بعد از کلیک کردن رو فرم ، مقادیر قبلی که رو فرم چاپ شده پاک بشه و مقادیر جدید جایگزین بشه باید چیکار کنم؟


-------------------------------------------------------------
سوال بعد :
برنامه ای بنویسید که حاصل جمع اعداد یک تا 10 رو چاپ کنه.



Private Sub Form_click()


For i = 1 To 10
a = 0 + i
b = b + a
Next i
Print b
End Sub



اینطوری نوشتمش ولی کلا تصادفی به جواب رسیدم و نمیدونم این قسمت ( b = b + a) یعنی چی !؟ فقط همین تیکش برام جا نمیوفته!!!

امروز چن تا مبحثو با هم خوندم احساس میکنم قاطی کردم !!!!
 
آخرین ویرایش:

e D v A r D o

New Member
سلام

برنامه نويسي به زبان ++C
[CPPS]#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
cout << "\n\n______________.:eDvArDo:._____________\n\n";
cout << "Adad ra Vared Kon va Kelid ENTER Bezan:\n\n\n";
int i=1,n=n;
cin >> n;
cout << "\n\n\n";
while (i <= n) {
cout << i << endl;
i = (i +1);
}
cout << "\n\n\n";
system("PAUSE");
return 0;
}


[/CPPS]




دوستدار هميشگي شما eDvArDo
 

پیوست ها

  • Namayesh_1_ta_N.rar
    282.9 کیلوبایت · بازدیدها: 10
آخرین ویرایش توسط مدیر:

e D v A r D o

New Member
سوال شما در بر گيرنده چند نوع كد نويسيه!

سوال1سوال : برنامه ای که اعداد 1 تا n را چاپ کند.


كه جواب در پست قبلي داده شد.

حالا يه كد كه چه عدد اولي بزرگتر از دومي باشد يا كوچكتر، اعداد مابين آنها نمايش داده خواهد شد.
[CPPS]#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
cout << "\n\n______________.:eDvArDo:._____________\n\n";
int n1,n2;
cout << " n1=?\n\n";
cin >> n1;
cout << "\n n2=?\n\n";
cin >> n2;
cout << "\n\n\n";
if (n1 <= n2)
while (n1<=n2) {
cout << n1 << endl;
n1 = (n1 +1);
}
if (n2 <= n1)
while (n2<=n1) {
cout << n1 << endl;
n1 = (n1-1);
}
cout << "\n\n\n";
system("PAUSE");
return 0;
}[/CPPS]​
دوستدار هميشگي شما eDvArDo
 

پیوست ها

  • N1_ta_N2_or_N2_ta_N1.rar
    282.9 کیلوبایت · بازدیدها: 12
آخرین ویرایش توسط مدیر:

زیبااا

New Member
مرسی. من سی پلاس پلاس بلد نیستم و چون تازه کارم با وی بی 6 شروع کردم !!!
کدهارو به زبون ویژوال بیسیک 6 میخوام.
 

the_king

مدیرکل انجمن
سلام. چن تا سوال داشتم ...
حالا سوالام راجع همین برنامه :!
1. وقتی m بزرگتر از n شد دوس دارم برنامه یه پیغام بده ینی با دستور else هرطوری کدشو نوشتم کار نداد !!
بعد از اینکه متغیر های m و n رو دریافت کردید و قبل از اینکه حلقه for را شروع کنید شرط را قرار خواهید داد :
کد:
Private Sub Form_Click()
    Dim m%, n%, i%
    m = Val(Text1.Text)
    n = Val(Text2.Text)
    If m > n Then
        MsgBox "Your message"
    Else
        For i = m To n
            Print i
        Next i
    End If
End Sub

2. بعد وقتی فاصله ی عددامون زیاده ، نصف عددا به دلیل طول کوچیک فرم نشون داده نمیشه . چطوری میتونم کاری کنم که همه ی عددا نشون داده
بشن یا طول فرم همزمان با اعداد زیادتر بشه ؟! یا وقتی اعداد از طول فرم بیشترن بیان یه ستون جدید درست کنن !!!
بهتره که از MsgBox استفاده کنید، اعداد مورد نظر رو به یک رشته اضافه کنید و نهایتا اون رشته رو نمایش دهید :
کد:
    Dim m%, n%, i%, s$
    m = Val(Text1.Text)
    n = Val(Text2.Text)
    For i = m To n
        s = s + CStr(i) + vbTab
    Next i
    MsgBox s

مگر اینکه بخواهید حتما از Print استفاده بشه :
کد:
Private Sub Form_Click()
    Dim m%, n%, i%
    m = Val(Text1.Text)
    n = Val(Text2.Text)
    AutoRedraw = True
    For i = m To n
        Print i,
        If (i - m) Mod 4 = 3 Then Print
    Next i
End Sub
این مثال 4 ستونه است، اگر بخواهید 10 ستونه باشد، بجای If (i - m) Mod 4 = 3 Then از کد If (i - m) Mod 10 = 9 Then استفاده کنید.

3. اگه بخوام برنامه فقط یه بار قابل اجرا باشه باید چیکار کنم؟ مثلا یه بار که رو فرم کلیک کردیم برنامه اجرا شه ... برای بار دوم که کلیک کردیم هیچ
اتفاقی نیوفته !!!!
یک متغیری رو داخل بدنه اون Private Sub Form_Click بصورت Static تعریف کنید و بر اساس مقدارش از اجرای کد جلوگیری کنید.
یک متغیر Static با متغیر های دیگه فرق داره، چون مقدار رو در دفعات بعدی اجرا حفظ می کنه و یادشون می مونه که آخرین بار چه مقداری داشته :
کد:
Private Sub Form_Click()
    Static b%
    Dim m%, n%, i%
    If b = 1 Then Exit Sub
    b = 1
    m = Val(Text1.Text)
    n = Val(Text2.Text)
    .
    .
    .

4. اگه بخوام بعد از تغییر مقادیر m و n و بعد از کلیک کردن رو فرم ، مقادیر قبلی که رو فرم چاپ شده پاک بشه و مقادیر جدید جایگزین بشه باید چیکار کنم؟
اگر از Print استفاده می کنید، دستور Cls قبلی ها رو پاک می کنه :
کد:
Private Sub Form_Click()
    Dim m%, n%, i%
    m = Val(Text1.Text)
    n = Val(Text2.Text)
    Cls
    For i = m To n
        Print i
    Next i
End Sub

برنامه ای بنویسید که حاصل جمع اعداد یک تا 10 رو چاپ کنه.
کد:
Private Sub Form_click()


For i = 1 To 10
a = 0 + i
b = b + a
Next i
Print b
End Sub
اینطوری نوشتمش ولی کلا تصادفی به جواب رسیدم و نمیدونم این قسمت ( b = b + a) یعنی چی !؟ فقط همین تیکش برام جا نمیوفته!!!

امروز چن تا مبحثو با هم خوندم احساس میکنم قاطی کردم !!!!
کد:
Private Sub Form_Click()
    Dim b%, i%
    For i = 1 To 10
        b = b + i
    Next i
    Print b
End Sub

مقدار اولیه هر متغیر عددی مثل b صفر ئه.
شما داخل حلقه، مقدار b + i رو در b قرار می دهید. یعنی b رو با i جمع می کنید و حاصل رو در همان b ثبت می کنید.
اینکار برای کل اعداد 1 تا 10 تکرار می شه.
 

جدیدترین ارسال ها

بالا