تاريخ : ۱۳٩۱/٥/۱٩ | ٩:٠٤ ‎ب.ظ | نویسنده : مسعود چگنی

سلام

خیلی وقته نیومدم اینجا سر بزنم...

میخوام اگه موافق باشید در پست بعدی الگوریتم یک ویروس فوق خطرناک رو براتون بذارم که 2 روز (به عنوان اولین پروژه ویروس نویسی) روش کار کردم...

این ویروس: تحت ویندوز اجرا میشه (98، 2000، اکس پی، سون)، کلیه فایل های روی پارتیشن های شما رو پاک میکنه، از خودش به شدت تکثیر میکنه (روی کلیه پارتیشن ها)، پردازش سی پی یو رو به 98% میبره (احتمال سوختن سی پی یو هستش، چون در نوع خودش آورکلاک محسوب میشه) و خلاصه وحشتناک ترین ویروس در نوع خودش هست!

جلوگیری از آلودگی: مراقب باشید رو سیستم خودتون اجرا نشه!

حذف : امکان پذیر نیست (هرگز راه حذفش رو لو نخواهم داد!!! البته راهی برای حذفش وجود نداره، چون با اولین ری استارت دیگه ویندوز بالا نمیاد)

حجم : کمتر  از 2 مگابایت

زبان: این الگوریتم رو میتونید به زبان C# و یا VB پیاده کنید.

قدرت: تا CPU Core i 7 از اینتل تست شده است!!!! (یک مدل لپ تاپ ایسوس از دوست خوبم سالارپیرهادی حیف شد ولی خب میگفت اطلاعاتش مهم نیست)

 

++++++++++++++++++++++++++++++++++++++++++++

حالا نظر بدین... به رای اکثریت اهمیت میدم و 48 ساعت مهلت نظر سنجی:

با پخشش موافق هستید یا نه؟ (ببینم چقدر اهل ریسک هستید!)



تاريخ : ۱۳٩۱/٤/٧ | ۱٢:٤٩ ‎ب.ظ | نویسنده : مسعود چگنی

قرار بود کمی در مورد الگوریتم و شی گرایی صحبت کنیم.

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

برای اشاره به الگوریتم، بهتره با مثال شروع کنم.

شما هیچوقت نیاز به یک کامپیوتر ندارید. مگر زمانی که احساس نیاز کنید. شما با یک کامپیوتر هیچکاری نمیتونید انجام بدید، مگر اینکه برنامه لازم رو داشته باشید! پس، برای رفع نیاز ها از طریق کامپیوتر، 2 چیز باید بررسی بشه، 1- نیاز ما 2-برنامه ما

خب؛ حالا سوال اینجاست، این برنامه ما، چی هست؟ چجوری نوشته بشه؟

باید بگم، توجه داشته باشید، نوشتن یک برنامه نیازمند یک طرح و نقشه اولیه است. وقتی که شما قصد میکنید خونه ای بسازید، اول نقشه اون رو در نظر میگیرید.

خب، پس به طور ساده تر، میشه گفت، الگوریتم یعنی طرح و نقشه اولیه برنامه، که برای حل مشکل (نیاز) ما پیاده سازی شده.

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

پاسخ این سوال کمی مشکله. بذارید از کمی شی گرایی صحبت کنیم. نمیخوام درباره اش صحبت کنم، فقط یک اشاره کوچک. شما با هر زبان مدرنی که کار کنید، مثل VB6  ، VB.Net ، C++ ، C# و... همگی شی گرا هستند. شی گرا یعنی چی؟ (به طور ساده) یعنی شما برنامه های خودتون رو با اشیا درست میکنید.

مثلا شما، برای چاپ کارنامه، یک دکمه روی فرم میگذارید، و برای اون دکمه برنامه مینویسید، که اگر روی آن کلیک شد، کارنامه رو چاپ کنه.

خب، همین دکمه که شما روی فرم گذاشتید، خودش یک شی بود. پس شما برای نوشتن الگوریتم ها، باید بعد از این که هدف نرم افزار رو مشخص کردید، مراحل طراحی اون رو به وسیله اشیا توضیح بدید.

مثلا، این یک الگوریتم برای چاپ مقسوم علیه های اعداد است:

1- شروع

2- متغیر m را درنظر بگیر.  مقدار این متغیر، 1 است.

3- عدد مورد نظر کاربر را هم دریافت کن، و در یک متغیر بذار، اسم این متغیر هم k باشه

4- اگر k از m کوچک تر بود، برو به  مرحله 8 (پایان!)

5- اگر k از m بزرگتر، یا مساوی هم بودند، k را به m تقسیم کن. اگر باقیمانده صفر بود، m را چاپ کن.

6- یک واحد به m اضافه کن (یه دونه زیادش کن)

7- برو به مرحله 4

8- پایان

 

همونطور که دیدیم، از مرحله 5، شاید چندین عدد چاپ شود. مثلا اگر کاربر عدد 1 را وارد کند، خروجی برنامه هم 1 خواهد بود، ولی اگر کاربر 4 وارد کند، برنامه اول 1 میده، بعد 2 میده، بعد 4 که همه مقسوم علیه های عدد وارد شده کاربر هستند.

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

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

البته فراموش نکنید، اینم بگم که هیچ وقت، نه مغرور بشید، نه ناامید، چون هر دو یعنی شکست.



تاريخ : ۱۳٩۱/٤/۱ | ٤:۱٤ ‎ب.ظ | نویسنده : مسعود چگنی

الان میخوام چند نکته رو بگم که دونستنش برای کسانی که تازه برنامه نویسی رو شروع کردن لازمه؛ با دونستنش خیلی راحت تر میتونید از منابع دیگه و سورس ها (کدهای نمونه) استفاده کنید...

نکته 1 : برای قرار دادن یک مقدار در متغیر، باید از دستور انتصاب استفاده بشه. شکل کلی اینطوریه:

 A = 2

که در اون، نام متغیر باید حتما در سمت چپ قرار بگیره. یعنی، مقدار سمت راست، در متغیر سمت چپ قرار میگیره. علاوه بر این، میتونیم مقدار یک متغیر رو در یک متغیر دیگه قرار بدیم. به این شکل:

A = B

که در پی اون، مقدار متغیر سمت چپی، در متغیر سمت راستی قرار میگیره.

نکته 2 : متغیر ها، انواع مختلف دارند. مهم ترین نوع داده ها، اینا هستند:

Integer : که مقادیر عددی رو میگیره. از منفی 32768 تا مثبت 32767 و فقط عدد صحیح بدون اعشار.

Single : برای اعداد اعشاری (مثبت یا منفی) استفده میشود.

Double : برای اعداد بزرگ و نجومی (مثبت یا منفی) استفاده میشود. البته اعداد کوچک هم قبول میکند، ولی از حافظه بیشتری از RAM را اشغال میکند.

String : همه ی متن ها باید از متغیر String استفاده کنند. این متغیر، فقط و فقط مقادیر رشته ای رو قبول میکنه. یک رشته از اعداد و حروف. مثلا، مقادیر زیر رشته هستند:

"ali"   "ensan"          "110 police"        "1391"     "a"      "0937-242-1234"

توجه کنید، مقادیر رشته ای باید در جفت کوتیشن قرار بگیرند.

ضمنا، شاید بپرسید که این "1391" یک عدد هست؛ چرا با Integer نمیشه باهاش کرد؟ باید بگم که مقادیر رشته ای، قابل محاسبه در عملیات های ریاضی نیستن. یعنی اگر خواستید جمع و تفریق و... انجام بدین، متغیر رشته ای برای شما پاسخگو نیست.

البته ویژوال بیسیک متغیر های زیادی داره، ولی اینا پر استفاده ترین هستند.

نکته 3 : برای تعریف متغیر اینطور عمل کنید:

dim نام متغیر as نوع متغیر

مثال:
Dim A As integer
Dim Masoud As String
Dim ensan21 As Byte

________________________________________________________________

گفته بودیم از تابع Msgbox توضیح بدیم. این تابع، برای نشون دادن یک کادر متن (مثلا، مثل کادر های خطای ویندوز!) به کاربر استفاده میشه. شکل کلی این دستور به این شکل هست:

Dim a as Integer
a = msgbox ("Matne peigham", vbOkCancel, "Onvane Kadr" )

در قسمت اول، متن پیغام دلخواه رو بنویسید، در قسمت دوم، طرح دکمه ها و در قسمت سوم، عنوان کادر متن رو بنویسید. قسمت های اول و سوم که متنی هستند، حتما باید رشته ای باشند و در علامت " " قرار بگیرند. طرح دکمه ها، میتونه یکی از مقادیر زیر باشه که کارشون از اسمشون مشخصه:

vbOkOnly

vbOkCancel

vbYesNo

vbYesNoCancel

vbRetryCancel

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



تاريخ : ۱۳٩۱/۳/۳۱ | ۳:۳٥ ‎ب.ظ | نویسنده : مسعود چگنی

این اولین قسمت آموزش برنامه نویسی ویژوال بیسیک هست. به شدت تاکید میکنم که اگه واقعا قصد یاد گرفتن دارید عملی کار کنید و تمرین تئوری رو کنار بذارید که زیاد به کارتون نمیاد. دلیل هم دارم. مثلا توی تئوری به شما میگن که متغیر از نوع Currency هست، 8 بایت فضا اشغال میکنه، ولی خب، این اطلاعات تقریبا هیچوقت به کار شما نمیاد! مگر موقع تست کنکور!

پس، با فرض اینکه ویژوال بیسیک 6 به درستی نصب شده کار رو شروع میکنیم:

ویژوال بیسیک رو اجرا کنید. به فرم زیر برخورد میکنید:

روی Standard EXE کلیک کنید و بسم الله! به طور خودکار یک پروژه و یک فرم برای شما ساخته میشه. بعدا میتونید فرم های بیشتری به برنامتون اضافه کنید.

از نوار سمت چپ، روی Command Button که توی این عکس هست کلیک کنید. به این نوار، جعبه ابزار میگن.

قسمت اعظم کار های شما با ویژوال بیسیک با همین دکمه ها انجام میشه.

بعد از اینکه روی Command Button کلیک کردید، طوری که انگار میخوایید روی فرم یک مستطیل بکشید، عمل کنید!

میبینید که یک دکمه به اندازه مستطیلی که رسم میکنید ساخته میشه.

روی اون دکمه  دابل کلیک کنید.

پنجره ای که باز میشه، بهش میگن "پنجره کد". چون همه کدهای فرم شما اونجا نوشته میشه.

به طور خود کار، واسه هر دکمه 2 خط کد نوشته میشه، به شکل زیر:

Private Sub Command1_Click()

End Sub

قسمت قرمز رنگ، نشون دهنده اسم دکمه شما هست. میتونید کدها و دستورات مورد نظرتون رو در "بین این دو خط موجود" بنویسید. به طور مثال، کد رو به شکل زیر تغییر بدین:

Private Sub Command1_Click()
    Dim a As String
    a = "www.zti.ir"
    Print a
End Sub

خط دوم؛ یک متغیر با نام a و از نوع String تعریف کرده است.

خط سوم؛ یک مقدار در متغیر قرار میدهد. این مقدار، باید در جفت کوتیشن " " قرار گیرد

خط چهارم؛ میگوید مقدار a را روی فرم چاپ کن!

فعلا کافیه. وقتشه که نتیجه کارتون رو ببینید. برای اینکه تست کنید، برنامه شما چکار میکنه، روی دکمه Run کلیک کنید تا کدی که نوشته اید، اجرا شود.

میبینید که، با هربار کلیک روی دکمه، کلمه www.zti.ir روی فرم چاپ میشود.

دستور Print برای نوشتن متن یا اعداد روی فرم استفاده میشود.

برای کمی کار کردن، با MsgBox هم تمرین کنید. میتوانید این کد را وارد کنید:

Msgbox "in yek kadre payam hast"

درباره ی این کادر های پیام در قسمت بعدی توضیح میدم. ولی خودتون هم تستش کنید.

اگر خواستید، پروژه خودتون رو ذخیره کنید که برای دفعات بعد استفاده کنید، از منوی فایل، Save Project as رو کلیک کنید و فایل هایی که داده میشود را ذخیره کنید.



تاريخ : ۱۳٩۱/۱/٢٤ | ۸:۱٦ ‎ب.ظ | نویسنده : مسعود چگنی

 

حرفی نیست!

_____________________________________________________________

پینوشت:

امروز زد به سرم که یه کاری کنم! پروژه برنامه نویسی دارم ولی نمیدونم چه برنامه ای بنویسم... پروژه های زیادی تا حالا انجام شده، ساده، مثل ماشین حساب و دفترتلفن 3 بعدی، بازی های vb و و و و .... خب، من چی بنویسم؟

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

هم استاد قبولش داره، هم سودش به شما هم میرسه!

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

به جز این، خودتون هم اگه نظر دیگه ای داشتین بگید.

پینوشت 2:

به درخواست اکید امپراطور عظیم شأن و محترم "انسان" عالی مقام، قالب همین وبلاگ هم اصلاح شد.



  • ابر جادو
  • وبلاگ من
  • ضایعات