۴۶ مطلب با کلمه‌ی کلیدی «برنامه نویسی» ثبت شده است

«نظرات شما» برنامه‌نویسی را با چه زبانی و چطور شروع کنیم؟

این پست بیشتر برای بحث و تبادل نظر هست.به نظر شما مهم هست که یک کاربر مبتدی برنامه‌نویسی را با زبان خاصی شروع کند؟اگر نه، چرا و اگر بله چه زبانی مدنظر شما هست؟به نظرتون بهتره با بازی کردن(بازی‌هایی مثل روبوکد یا بازی‌های کدینگیم) برنامه‌نویسی یاد گرفته بشه یا مستقیم بریم سراغ پروژه‌های واقعی؟از این دست سوالات زیاد هست و من هم مثل بقیه نظرم رو زیر پست می‌نویسم.

مجوز مطالب و محتوا ۳۱ شهریور ۹۹ ، ۱۱:۵۴ ۷ نظر موافقین ۳ مخالفین ۱
فاروق کریمی زاده

چطور کاری کنیم لیسپ سریع‌تر از سی اجرا شود؟

این مقاله از «دیدیر ورنا» می‌باشد که توسط من به فارسی ترجمه شده است.اگر اشتباهی تایپی یا علمی یا املایی مشاهده کردید حتما به مترجم گزارش دهید.

دریافت با حجم ۹۰ کیلوبایت از بیتکوین‌شل

دریافت از وب‌سایت فاروق

دریافت از «سیب‌زمینی تخم‌مرغ» فاروق

مجوز مطالب و محتوا ۰۶ مرداد ۹۹ ، ۱۶:۵۰ ۰ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده

نکاتی اندر کامن لیسپ مصطلح(Idiomatic Common Lisp)

این مطلب به تدریج کامل‌تر می‌شود پس در آینده دوباره به آن سر بزنید :)

مبتدی‌های یک زبان برنامه نویسی مخصوصا اگر قبل از فراگیری زبان جدید یک زبان دیگر را یاد گرفته باشند، کد هایی به زبان جدید اما با روشی نادرست(و با روش زبان قبلی اگر داشته باشند) می‌نویسند. این کد‌ها معمولا به درستی کار می‌کنند اما به روش زبان جدید نوشته نشده‌اند. یک مثال معروف در زبان پایتون استفاده از range(len(somelist)) برای دسترسی به اعضای یک لیست است.کامن لیسپ نیز بین زبان‌ها برنامه نویسی استثنا نیست.در ادامه برای حل کردن هر مسئله در کامن لیسپ حداقل دو تکه کد یکی روش اشتباه حل کردن مسئله در کامن لیسپ و دیگری روش درست آن‌را ارائه میکنم.

ادامه مطلب...
مجوز مطالب و محتوا ۱۸ دی ۹۸ ، ۱۵:۲۱ ۰ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده

پایتون ۳.۸ و عملگر :=

در پایتون ۳.۸ یک عملگر جدید برای انتصاب معرفی شده است.این عملگر جهت انتصاب در عبارات بزرگتر استفاده می‌شود. مثلا:

a = 10
if (b := a) == 10:
...

در تکه کد بالا هم‌زمان مقدار b برابر مقدار a می‌شود و هم مقایسه انجام می‌شود.

مجوز مطالب و محتوا ۱۳ آبان ۹۸ ، ۱۹:۱۵ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

برنامه‌نویسی را از کجا آغاز کنم؟ (2)

احساس کردم که مطلب "برنامه نویسی را از کجا آغاز کنم؟" به کمی بررسی بیشتر نیاز دارد، لذا تصمیم به بازنویسی این مطلب گرفتم.

لازم است قبل از هر چیز بگویم که من صرفا نظرات خودم را به جهت کمک به برنامه نویسان تازه‌وارد مطرح می کنم. در این مطلب به بررسی و راهنمایی برنامه نویسان تازه‌وارد می پردازیم تا علاقه مندان به این هنرِ فنی در رایانه راه خود را بیابند.

بسیاری از دوستان و اطرافیان من می پرسند که برنامه نویسی چیست و باید از کجا شروع کنیم. در واقع همین پرسش های بسیار انگیزه‌ی من برای نوشتن این مطلب بوده است.

ادامه مطلب...
مجوز مطالب و محتوا ۱۵ ارديبهشت ۹۸ ، ۲۰:۰۶ ۳ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

نظرات (۳)

فرهاد حسن پور
فرهاد حسن پور

botters: جامعه توسعه‌ی بات‌های آی‌آر‌سی

botters یک جامعه قدیمی و نسبتا کوچک از توسعه‌دهندگان بات‌های آی‌آر‌سی هست. آنها یک ویکی که شامل مطالب فنی و غیر فنی راجب بات‌ها و همچنین چند کانال IRC(کانال #botters روی فری‌نود کانال اصلی آنهاست)  در این مورد دارند. اگر به ساخت بات آی‌آر‌سی علاقه دارید، این جامعه میتواند به شما کمک کند.

مجوز مطالب و محتوا ۲۲ آذر ۹۷ ، ۱۴:۳۱ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

تابع qsort برای مرتب کردن یک آرایه با الگوریتم مرتب‌سازی سریع در سی/سی‌پلاس‌پلاس

تابع qsort از کتاب‌خانه‌ی استاندارد(stdlib.h) از توابع مفید و البته استاندارد هست.این تابع با دادن آدرس آرایه، تعداد اعضا، اندازه‌ی هر عضو و یک تابع برای مقایسه‌ی دو عضو،آرایه  را بصورت صعودی مرتب میکند.

با اینکه این تابع استاندارد هست اما اجباری در پیاده‌سازی آن نیست، به این معنی که qsort ضرورتا همه‌جا(منظور از همه جا دقیقا همه‌جاست! این یعنی ابر‌رایانه‌ها،فبلت‌ها،رایانه‌های شخصی و همچنین میکروکنترلر‌ها مانند AVR و PIC را نیز حساب میکنیم) وجود ندارد.

void qsort(void *base, size_t nmemb, size_t size,
            int (*compar(const void *, const void *)))

ادامه مطلب...
مجوز مطالب و محتوا ۰۳ آبان ۹۷ ، ۱۶:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

مروری بر پست «برنامه‌نویسی را از کجا آغاز کنیم؟»

مطمئن نبودم که باید این پست را بنویسم یا نه. بعد از اندکی فکر کردن، دیدم بهتر است این حرف‌ها را به گوش بقیه رسانده و عقیده‌ی خود را ابراز کنم! شاید دلیل نوشتن حداقل بخشی از این پست یک تعصب پنهان به بعضی زبان‌ها و سیستم‌عامل‌ها باشد.بخشی دیگر هم مطالبی بودند که فکر کردم پست بهنام سیمجو به اندازه کافی به آنها نپرداخته یا مبهم نوشته و ... .پیشنیاز مطالعه‌ی این مطلب، مطلب بهنام سیمجو است.
ادامه مطلب...
مجوز مطالب و محتوا ۱۴ تیر ۹۷ ، ۱۴:۴۶ ۱ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

تابع input در زبان پایتون

در زبان پایتون، تابع input از ورودی استاندارد(که بصورت پیشفرض و معمولا صفحه کلید است) تا زمانی که به نویسه‌ی خط جدید نرسیده میخواند و یک رشته(نوع str) با حذف خط جدید برمیگرداند.استفاده از آن بصورت زیر است:

input(prompt='')

prompt یک رشته است که به عنوان یک پیام به کاربر نمایش داده میشود و از کاربر میخواهد تا چیزی وارد کند، در صورتی که ذکر نشود،رشته‌ای خالی است(یعنی چیزی نمایش داده نمیشود). یک مثال:

name = input('What is your name?')
print('Hi,', name)

فراموش نکنید که تابع یک رشته برمیگرداند و در صورت نیاز باید آنرا به عدد و غیره تبدیل کنید.

مطالب مرتبط:

مجوز مطالب و محتوا ۱۶ مهر ۹۶ ، ۱۲:۰۰ ۳ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

نظرات (۳)

محمدصالح کامیاب
محمدصالح کامیاب

چطور حجم یک پرونده را بدست بیاوریم؟ + کد پایتون + کد سی + کد پرل

اندی پیش به این فکر میکردم که چطور میتوانم حجم یک پرونده را بدست بیاورم و زیر کاپوت این توابع چه چیزی پنهان است.

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

ادامه مطلب...
مجوز مطالب و محتوا ۳۰ شهریور ۹۶ ، ۱۲:۳۱ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

3 روش برنامه نویسی در ویندوز بدون نیاز به برنامه اضافی

در این جا سه روش برنامه نویسی در ویندوز بدون نیاز به برنامه اضافی را به شما معرفی میکنیم.

 

1 - برنامه نویسی بتچ

 

این نوع برنامه نویسی در واقع همان دستورات داس است که تک به تک در خط فرمان اجرا میشوند.کافیست دستورات داس خود را در notepad نوشته و سپس با فرمت bat یا cmd ذخیره کنید. مثلا دستور echo hello که باعث نمایش پیغام hello میشود.

 

2 - برنامه نویسی ویژوال بیسیک اسکریپت

 

این برنامه نویسی از دستورات ویژوال بیسیک 6 پشتیبانی میکند. فقط باید مثل بالا دستورات را بنویسید و با فرمت vbs ذخیره کنید. حال میتوانید آن را اجرا کنید. مثال : msgbox time این مثال زمان فعلی سیستم را نمایش میدهد.

 

3 - برنامه نویسی جاوا اسکریپت

 

باید دستورات جاوا اسکریپت را در آن بنویسید.

 

همه ی این ها را باید بعد از ذخیره اجرا کنید تا نتیجه مشاهده شود.

مجوز مطالب و محتوا ۰۳ مرداد ۹۶ ، ۱۲:۰۰ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

range در پایتون

range([start,]end)
range(start, end[, step])

تابع range در زبان پایتون یک بازه از اعداد صحیح از start تا end-1 بر میگرداند و در صورتی که start ذکر نشود،بصورت پیشفرض ۰ است.step نیز مشخص میکند که فاصله‌ی اعدادی از هم چقدر باشد و بصورت پیشفرض ۱ هست.

ادامه مطلب...
مجوز مطالب و محتوا ۰۶ فروردين ۹۶ ، ۰۹:۰۰ ۲ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

enumerate در پایتون

enumerate در واقع یک کلاس هست و کاربردش زمانیست که بخواهید روی یک لیست(یا هر مخزن دیگر) پیمایش کنید و علاوه بر اعضای لیست، شماره‌ی آنها در لیست را نیز داشته باشید.
enumerate(myList) = (0, myList[0]), (1, myList[1]), (2, myList[2]), ...
سینتکس کلی بصورت زیر هست:
enumerate(myContainer, [start])

ادامه مطلب...
مجوز مطالب و محتوا ۳۰ اسفند ۹۵ ، ۱۹:۱۱ ۰ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

حلقه تکرار for-each در سی پلاس پلاس

این نوع حلقه که در c++11(همان C++0x) معرفی شد، الآن در زبان های برنامه نویسی جاوا، سی شارپ، پایتون، پرل و روبی وجود دارد،و برای انجام دادن یک عمل برای تمام اعضای یک مجموعه - مثلا یک آرایه - است. کد زیر را در نظر بگیرید:

int ary[5] = {1, 2, 4, 8, 16};
for (int i = 0; i < 5; i++){
cout << ary[i] << endl;
}

اما با استفاده از حلقه for-each میتوانید کار بالا را بصورت زیر انجام بدهید:

int ary[5] = {1, 2, 4, 8, 16};
for (a : ary){
cout << a << endl;
}

ادامه مطلب...
مجوز مطالب و محتوا ۲۹ اسفند ۹۵ ، ۱۷:۱۷ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

نصب و پیکره‌بندی آپاچی در گنو/لینوکس برای برنامه نویسی CGI

چند وقت پیش میخواستم چند تا اسکریپت پرل را تست بکنم و در حال نوشتن یک برنامه ساده با پرل بودم که مجبور شدم آپاچی را نصب و پیکره‌بندی بکنم.

نکته: فکر نمیکنم لازم به ذکر باشه که باید دسترسی ریشه داشته باشید.

نکته: با توجه به اینکه من از اوبونتو ۱۶.۰۴ استفاده میکنم شاید نیاز باشه تا بعضی دستورات را با توجه به توزیع خود تغییر دهید.

نکته:‌ اگر کمی باهوش(یا باتجربه؟) باشید میتوانید با توجه به این آموزش آپاچی را برای ویندوز و سایر شبه یونیکس ها هم پیکره‌بندی بکنید.

برای اینکار اول آپاچی را نصب کنید(در توزیع شما ممکن است متفاوت باشد):

apt install apache2

حال آدرس localhost یا 127.0.0.1 را در مرورگر وارد بکنید، اگر صفحه It works ظاهر شد پس آپاچی به درستی نصب شده است. حال این دو خط را به فایل /etc/apache2/apache2.conf اضافه کنید:

AddHandler cgi-script .cgi .pl
ServerName 127.0.0.1

حال این بلاک را پیدا کنید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

و آنرا به این تغییر دهید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
ExecCGI
    AllowOverride None
    Require all granted
</Directory>

حال باید ماژول cgi را با این دستور فعال بکنید:

a2enmod cgi

و سرویس مربوط به آپاچی را از نو راه‌اندازی بکنید(در توزیع شما ممکن است متفاوت باشد):

service apache2 restart

پایان!

مجوز مطالب و محتوا ۰۵ اسفند ۹۵ ، ۱۷:۵۳ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده