• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

پرسش و پاسخ پیرامون برنامه‌نویسی

  • شروع کننده موضوع max
  • تاریخ شروع

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,970
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
سلام فکرکنم دلیلش اینه که با مقادیر بصورت string برخورد میکنه و از نظر string مقدار 100 کوچیکتر از مثلا مقدار 20 هست
دقیقا همینطور ک میگی شده :)
من عدد هارو دوباره int کردم اوکیه

اخه من تایپشو گرفتم گفت list نه str
عضو های اون لیست استرینگن
 

Asdfghjk

...
ارسال‌ها
263
امتیاز
695
نام مرکز سمپاد
...
شهر
...
سال فارغ التحصیلی
1391
رشته دانشگاه
مهندسی نرم افزار
اره

اخه من تایپشو گرفتم گفت list نه str
والا تست نکردم فقط حدس زدم ولی نوع لیست به کل مجموعه ات تعلق میگیره عناصر دورن لیست تایپ خودشونو دارن
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,970
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397

این الان اوکیه
دقیقا همون داستانه ک @AliR3za گفت
 

nils

کاربر حرفه‌ای
ارسال‌ها
519
امتیاز
10,162
نام مرکز سمپاد
‌‌فرزانگان
شهر
‌مشهد
سال فارغ التحصیلی
0

هولدن

کاربر فوق‌حرفه‌ای
ارسال‌ها
884
امتیاز
12,092
نام مرکز سمپاد
حلی
شهر
تهران
سال فارغ التحصیلی
96
فرق
Iteration با recursiveچیه چرا سرعتشون اینقدر باهم متفاوته؟
 

Asdfghjk

...
ارسال‌ها
263
امتیاز
695
نام مرکز سمپاد
...
شهر
...
سال فارغ التحصیلی
1391
رشته دانشگاه
مهندسی نرم افزار
فرق
Iteration با recursiveچیه چرا سرعتشون اینقدر باهم متفاوته؟
این دو روش واسه نوشتن الگوریتم ها یا بطور کلی تر حل مسئله بکار میره . تو روش تکرار از loop ها و یا حلقه های تکرار استفاده میشه و تو روش بازگشتی از فراخوانی های مکرر تابع درون خودش استفاده میشه . معمولا توضیح دادن بعضی مسائل بصورت بازگشتی خیلی سراست تر و قابل فهم تره ( مثل مسئله برج هانوی یا اعداد فیبوناچی یا تو کامپیوتر بحث تجزیه عبارات و ... ) و قاعدتا نوشتن الگوریتم هم براش ساده تر میشه بخوام مثال کامپیوتری بزنم نوشتن الگوریتم مثلا جستجوی اول عمق یا DFS رو اگه بخوایی با روش تکرار بنویسی متوجه میشی که خیلی کار سختیه اما واسه خیلی از مسائل دیگه روش تکرار بهتره .
--------------------------------------------------------------------------------------------------------------
خوب حالا چرا سرعتشون متفاوته بر میگزده به سرعت اجرا و میزان حافظه ای که مصرف میکنن الگوریتم های بازگشتی برای اجرا چون قراره یه تابع مکررا فراخوانی بشه نیاز به یه حافظه به اسم پشته یا stack دارن که اگه اندازه ورودی مسئله به اندازه کافی بزرگ باشه هم زمان اجراش وحشتناک بالا میره بدلیل فراخوانی مکرر تابع و و هم میزان حافظه مصرفیش بالا میره
 

هولدن

کاربر فوق‌حرفه‌ای
ارسال‌ها
884
امتیاز
12,092
نام مرکز سمپاد
حلی
شهر
تهران
سال فارغ التحصیلی
96
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,970
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
مفسر پایتون خط ب خط جلو میره
خط اول -» جایی ای از حافظه انتخاب شده توش عدد۱۰ نوشته شده اسمش رو هم گذاشته a
خط دوم -»جای از حافظه انتخاب میشه عدد ۴۰ توش نوشته میشه اسمش رو میزاره s
(درواقع جواب 4*a رو توی حافظه مینویسه ،نه خود عبارت a*4(
خط سوم-» میره همون جایی ک قبلا a رو درست کرده بود بجای ۱۰ مینویسه ۲۰
یعنی s هنوز تغیر نکرده
اگه خط دوم رو دوباره بنویسی مقدار s آپدیت میشه
درواقع میره اونجایی ک s رو نوشته بود دوبار 4*a رو حساب میکنه و مینویسه
---------------
sیه متغیره ، وقتی بهش مقدار بدی،هیچوقت خود ب خود تغیر نمیکنه مگه اینکه یه مقدار جدید بهش نسبت بدی
 
آخرین ویرایش:

mrezaas

رویش
ارسال‌ها
32
امتیاز
111
نام مرکز سمپاد
علامه حلی
شهر
تهران
سال فارغ التحصیلی
1396
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
چرا مگه چند میزاره؟!
کلا این رو بدون کامپایلر خط به خط از بالا اجرا میکنه به پایین شما الان یه مغیر داری که بهش گفتی 10 باش بعد گفتی 20 باش الان اگه a رو پرینت کنی 20 نشون میده و s رو پرینت کنی 40 نشون میده
 

هولدن

کاربر فوق‌حرفه‌ای
ارسال‌ها
884
امتیاز
12,092
نام مرکز سمپاد
حلی
شهر
تهران
سال فارغ التحصیلی
96
چرا مگه چند میزاره؟!
کلا این رو بدون کامپایلر خط به خط از بالا اجرا میکنه به پایین شما الان یه مغیر داری که بهش گفتی 10 باش بعد گفتی 20 باش الان اگه a رو پرینت کنی 20 نشون میده و s رو پرینت کنی 40 نشون میده
من به اشتباه فکر کردم مقدار aتو sهم تغییر میده
 

الینا:)

کاربر حرفه‌ای
ارسال‌ها
506
امتیاز
4,673
نام مرکز سمپاد
فرزانگان
شهر
بابل
سال فارغ التحصیلی
1400
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,970
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
شاید ویژوال بیسیک
اصلا و ابدا گزینه خوبی نیست واقعا :-"
ضعیفه
تاریخ مصرفش گذشته
کاربرد خاصی هم نداره الانا
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
باید خاصی نداره ...تو از هر زبونی میتونی شروع کنی ولی بهتره از زبونی شروع کنی ک یادگرفتنش ساده تر باشه و اینکه بدردت بخوره
پایتون این ویژگی رو داره ک اون اولا ک تازه کاری تورو درگیر پیچیدگی های زیادی نمیکنه
و کتابخونه هاش ب شدت گسترده اس و تو زمینه های زیادی میتونی ایده هات رو اجرا کنی
-----------------------
بخش زیادی از مفاهیم زبون ها مشترکه وقتی یکیشو یاد بگیری...یادگرفتن بعدی ها راحت تر میشه
پایتون گزینه خوبیه درکل
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
پایتون جادی ک فوق العاده اس
روش اول : میری سایتی مث مکتبخونه ...یه آموزش رو میخری(مثلا پایتون مقدماتی جادی)
نگاه میکنی و تمرینا رو از روی سایت حل میکنی آخرش هم یه مدرک ک ب درد خاصی نمیخوره بهت میدن :))
-سایت gotoclass هم یه پایتون جادی داره ک رایگانه ولی من خوشم ازش نمیاد

روش دوم : یه پیام ب من میدی ... من پایتون مقدماتی جادی رو واست میفرستم
نگاه میکنی تمرینا رو هم واس خودت حل میکنی بعد میری تو سایت jadi.ir/support
در حد توانت ب جادی کمک مالی میکنی :)) :)) :))

روش سوم: میری تو ی کانالی مث pythonforever یه کتاب ۲۰۰-۳۰۰ صفحه ای دانلود میکنی شروع میکنی ب خوندن
و خودت تمرین میکنی و چیز یاد میگیری

روش چهارم: یوتیوب:-" هم چیز یاد میگیری و هم زبانت قوی تر میشه

روش پنجم:استفاده از فیلمای فارسی ک کلا رایگانن مثل سری درک برنامه نویسی جادی یا کانال آپارات پای پراجک

و صد ها راه دیگر :-" :-"

درکل من ترکیب راه دوم و سوم و چهارم رو دوس دارم
 

الینا:)

کاربر حرفه‌ای
ارسال‌ها
506
امتیاز
4,673
نام مرکز سمپاد
فرزانگان
شهر
بابل
سال فارغ التحصیلی
1400
اصلا و ابدا گزینه خوبی نیست واقعا :-"
ضعیفه
تاریخ مصرفش گذشته
کاربرد خاصی هم نداره الانا

باید خاصی نداره ...تو از هر زبونی میتونی شروع کنی ولی بهتره از زبونی شروع کنی ک یادگرفتنش ساده تر باشه و اینکه بدردت بخوره
پایتون این ویژگی رو داره ک اون اولا ک تازه کاری تورو درگیر پیچیدگی های زیادی نمیکنه
و کتابخونه هاش ب شدت گسترده اس و تو زمینه های زیادی میتونی ایده هات رو اجرا کنی
-----------------------
بخش زیادی از مفاهیم زبون ها مشترکه وقتی یکیشو یاد بگیری...یادگرفتن بعدی ها راحت تر میشه
پایتون گزینه خوبیه درکل

پایتون جادی ک فوق العاده اس
روش اول : میری سایتی مث مکتبخونه ...یه آموزش رو میخری(مثلا پایتون مقدماتی جادی)
نگاه میکنی و تمرینا رو از روی سایت حل میکنی آخرش هم یه مدرک ک ب درد خاصی نمیخوره بهت میدن :))
-سایت gotoclass هم یه پایتون جادی داره ک رایگانه ولی من خوشم ازش نمیاد

روش دوم : یه پیام ب من میدی ... من پایتون مقدماتی جادی رو واست میفرستم
نگاه میکنی تمرینا رو هم واس خودت حل میکنی بعد میری تو سایت jadi.ir/support
در حد توانت ب جادی کمک مالی میکنی :)) :)) :))

روش سوم: میری تو ی کانالی مث pythonforever یه کتاب ۲۰۰-۳۰۰ صفحه ای دانلود میکنی شروع میکنی ب خوندن
و خودت تمرین میکنی و چیز یاد میگیری

روش چهارم: یوتیوب:-" هم چیز یاد میگیری و هم زبانت قوی تر میشه

روش پنجم:استفاده از فیلمای فارسی ک کلا رایگانن مثل سری درک برنامه نویسی جادی یا کانال آپارات پای پراجک

و صد ها راه دیگر :-" :-"

درکل من ترکیب راه دوم و سوم و چهارم رو دوس دارم
خب از اونجا که برای یه مدتی کمبود اینترنت دارم از روش سوم شروع میکنم تا بعد که اینترنت برسه:D
 

|تا

کاربر فوق‌حرفه‌ای
ارسال‌ها
633
امتیاز
13,193
نام مرکز سمپاد
فرزانگان
شهر
تهران
سال فارغ التحصیلی
96
رو تازه كشف كردم، جالبه.Dataquest
 

mrezaas

رویش
ارسال‌ها
32
امتیاز
111
نام مرکز سمپاد
علامه حلی
شهر
تهران
سال فارغ التحصیلی
1396
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
ببین همه میگن با پایتون شروع کنید اما من با جاوا شروع کردم و یاد گرفتم
به نظر من باید ببینی چه زبانی باهات سازگاری بیشتری داره...
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,970
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
سلام برای پیدا کردن دو عدد بزرگتر
از یکسری اعداد این کدو نوشتم ولی بعضی وقتا عدد دومو درست حساب نمیکنه:-"

http://s10.picofile.com/file/8394452842/20200418_164421.png
فک کنم تو مقایسه عدد دوم و سوم اشتباه میشه
درکل من اینجوری مینویسم:
Python:
listofnumbers =[]
age=int(input())
while(age!=-1):
    listofnumbers.append(age)
    age=int(input())

listofnumbers.sort()
biger = listofnumbers[-1]
big = listofnumbers[-2]
print(biger,big)

خط اول یه لیست خالی درست کردم
خط سوم اولین ورودی رو میگیرم
توی حلقه عدد ورودی رو به لیستم اضافه میکنم و ورودی بعدی رو میگیرم
خط نهم لیستم رو به ترتیب بزرگی مرتب میکنم
خط دهم بزرگ ترین عدد (آخرین عدد اون لیست) رو توی متغیر میریزم
خط یازدهم عدد بعدی رو (عدد یکی مونده ب آخر) زو توی متغیر میرزم
 

armin_att

کاربر حرفه‌ای
ارسال‌ها
516
امتیاز
12,809
نام مرکز سمپاد
شهید بهشتی
شهر
شهر ری
سال فارغ التحصیلی
1398
رشته دانشگاه
تقریبا برق
سلام برای پیدا کردن دو عدد بزرگتر
از یکسری اعداد این کدو نوشتم ولی بعضی وقتا عدد دومو درست حساب نمیکنه:-"

http://s10.picofile.com/file/8394452842/20200418_164421.png

اون b , c , k که اول برابر صفر قرار دادی کار رو احتمالا خراب میکنه ، چون تو لیست اعدادت نیستن
بهتره که دو مقدار ورودی اول رو بگیری بعد با اونا کار کنی
Python:
# farz mikonim = high1 > high2

high1=int(input())
high2=int(input())

while True:
    age = int(input())
    if age==-1:
        break
    
    elif age > high1:
            high2 = high1
            high1 = age

    elif age < high1 and age > high2:
            high2=age



print(" first = ", high1)
print(" second = " , high2)
 

هولدن

کاربر فوق‌حرفه‌ای
ارسال‌ها
884
امتیاز
12,092
نام مرکز سمپاد
حلی
شهر
تهران
سال فارغ التحصیلی
96
تو یه لیست پایتون چه جوری میشه عضو باعضو قبلیش مقایسه شه:-"
 
بالا