A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

در کتاب 1500 صفحه ای آموزش جاوا (دایتل & دایتل)، شما برنامه نویسی شیء گرا را یاد خواهید گرفت که یکی از روش های کلیدی برنامه نویسی امروزی است. همچنین با اشیاء نرم افزاری زیادی در طی این کتاب سروکار خواهید داشت.
کتاب "Java, How To Program" برای کسانی است که کامپیوتر را در حد روشن و خاموش کردن بلدند و از مباحث کاملاً پایه و ابتدایی شروع کرده و او را تا حد حرفه ای پیش می برد. در این میان محبوبیت کتاب های نشر دایتل نیز دور از نظر نیست.
 
cover - Java dietel
 
دانلود کتاب زبان اصلی Java How To Program در ادامه مطلب...
۳ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۲ ، ۱۵:۳۱
Amirhossein Mahdinejad
کتاب تفکر در جاوا یا همان "Thinking in Java 4th Edition" در حال حاضر یکی از مراجع خوب برای زبان جاوا به شمار می رود، و در صورتی که با برنامه نویسی شی گرا آشنایی داشته باشید، انتخابی مناسب جهت یادگیری جاوا برای شماست.
 
cover - Thinking In Java
 
دانلود کتاب زبان اصلی Thinking in Java در ادامه مطلب...
۳ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۲ ، ۱۱:۳۸
Amirhossein Mahdinejad

فرض کنید سه نفر به نامهای A و B و C داریم؛ A اندازه ی 20دلار به B، B اندازه ی 20دلار به C بدهکار است. مجموع بدهی ها 40دلار است ولی باید نوعی آنها را سازماندهی کنیم که مجموع بدهی ها کمینه شود، پس اینگونه می نویسیم که A اندازه ی 20دلار به C بدهکار است، CوB به کسی بدهکار نیستند که در اینصورت مجموع بدهی ها 20 بوده و بدهکاری ها، همان حالت قبلی را شکل می دهد.

می خواهیم شکل توسعه یافته ی این مثال را برای nنفر حل کنیم که m بدهکاری بین آنها وجود دارد. به عبارت دیگر، در نهایت برای هر یک از افراد، تفاوت بین کل پولی که باید به او بدهید و پول او باید همان باشد.به ازای هر m و n مطلوب است یافتن کمترین مجموع بدهی هایی که بین آنهاست.

input
4 3
1 2 1
2 3 1
3 1 1
output
0
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ دی ۹۲ ، ۱۶:۴۰
Amirhossein Mahdinejad

رفیق شما در کشوری زندگی می کند که در آستانه ی برگزاری انتخابات مجلس است.

این کشور، n استان و n-1 جاده(مسیر بین 2 استان) دارد و از هر استانی می توان از طریق تعدادی جاده به استانی دیگر رفت. هر استان از 1 تا n شماره گذاری شده و هر جاده از دو حالت خارج نیست: یا "راه سالم" است و یا "راه مشکل دار".

از میان نامزدهای انتخابات، کسی انتخاب می شود که به این وعده عمل کند: "من حداقل k و همچنین k استانی را می یابم که با تعمیر مسیرهای آن k استان منتهی به استان شماره 1 (مثلاً استان شماره 1 پایتخت آن کشور بوده)، هیچ راه مشکل داری در کشور ما وجود نداشته باشد".

حال یکی از فامیل های رفیق تان که در این انتخابات کاندید شده، از شما کمک می خواهد که در عملی شدن این وعده به او کمک کنید.

input
5
1 2 2
2 3 2
3 4 2
4 5 2
output
1
5
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ دی ۹۲ ، ۲۲:۵۹
Amirhossein Mahdinejad
کتاب "درس هایی از نظریه گراف" نوشته ی علیرضا علیپور، که به کتاب گراف آبی علیپور (!) معروف است را برای دانلود آماده کرده ایم. در این کتاب مباحثی شامل گراف های مسطح، اویلری، هامیلتونی، درخت ها و ... آورده شده که جزو مقدمات گراف و پیش نیازهای حل مسائل سخت تر می باشد. سطح این کتاب در حد کتاب های West و یا Bondy & Murty نیست ولی از معدود کتاب های فارسی آموزش گرافه که برای شروع خوبه و حتی در برخی موارد دیده شده که کافیه!

alipour - graph - cover

دانلود کتاب گراف آبی علیپور در ادامه مطلب...
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ آذر ۹۲ ، ۱۹:۲۶
Amirhossein Mahdinejad

مسابقه برنامه نویسی بیان - انتخابی آبان 91

دوئل

در نوع جدیدی از بازی دوئل، n سرباز در یک صف قرار می گیرند و هر سرباز به سمت چپ ‘(‘ یا راست ‘)’ نشانه گیری کرده و آماده ی شلیک می شود. در هر ثانیه، اگر دو سرباز به سمت یکدیگر نشانه گرفته باشند و سرباز زنده ای میان آن دو نباشد، به همدیگر شلیک می کنند و هر دو کشته شده و به زمین می افتند. سربازانی که از مسابقه جان سالم به در ببرند، جوایز نفیسی دریافت می کنند.

برای مثال اگر جهت گیری اولیه سربازان به صورت ) ( ( ( ) ( ) ) ( ( باشد، در ثانیه اول سربازان چهارم و پنجم از سمت چپ و سربازان ششم و هفتم به هم شلیک خواهند کرد و در ثانیه دوم، سربازان سوم و هشتم به هم شلیک خواهند کرد و سایرین سالم خواهند ماند.

برگزار کننده ی این مسابقه از شما خواسته است تا با توجه به جهت گیری اولیه سربازان، تعداد سربازهایی که جان سالم بدر خواهند برد را بدست آورید تا او جوایز لازم را تهیه کند.

input
2
10
))(()()))(
6
()(())
output
4
0
۰ نظر موافقین ۱ مخالفین ۱ ۰۲ آذر ۹۲ ، ۰۸:۳۵
Amirhossein Mahdinejad

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

Soroban دارای تعدادی میله افقی و هر میله شامل 5 مهره است. نوار عمودی که یک مهره سمت چپ را از 4 مهره ی دیگر جدا می کند، نوار حساب نام دارد، این مهره تک نامیده می شود (طبق شکل) و مهره های سمت راست نوار حساب را ایچی می گویند. هر میله ی افقی رقمی از 0 تا 9 را نشان می دهد که با این الگوریتم، به سادگی می توان آنرا بدست آورد:

     ابتدا همه ی میله ها، رقم 0 را نشان می دهند. (مهره های ایچی، کاملاً راست و مهره ی تک، چپ) مثل ردیف اوّل در شکل.

     اگر مهره ی تک به سمت راست برود، 5 واحد اضافه می شود.

     به ازای هریک از مهره های ایچی که سمت چپ برود، 1 واحد اضافه می شود.

بنابراین در شکل، ردیف اوّل نشان دهنده ی رقم 0، ردیف دوّم نشان دهنده ی رقم 2 و ردیف سوّم نشان دهنده ی رقم 7 است که چرتکه عدد 720 را نشان می دهد.

کار شما نوشتن برنامه ای است که به ازای هر عددی، Soroban آن را نمایش دهد...

input
720
output
O-|-OOOO
O-|OO-OO
-O|OO-OO
۰ نظر موافقین ۰ مخالفین ۰ ۲۱ آبان ۹۲ ، ۱۹:۴۰
Amirhossein Mahdinejad