تبلیغات
Pro4 programming
منوی اصلی
Pro4 programming
  • با سلام.
     
    این وبلاگ پست جدیدی نخواهد داشت و مطالب را در وبسایت شخصی ام به آدرس زیر خواهم نوشت.


    وبسایت جدید: www.palinezhad.com

    آخرین ویرایش: 1397/02/22 08:10
    ارسال دیدگاه
  • سلام،
    بعد از حدود 2 یا سه سال پست جدیدی می نویسم. شاید بیشتر افرادی که این وبلاگ رو میبینن به صورت گذری به اینجا رسیده باشند.
    قبلا این وبلاگ بیشتر برای به اشتراک گذاشتن تجربیات برنامه نویسی ام بود. در این مدت تقریبا دو شغل عوض کردم و همینطور در دانشگاه هم دوره های مختلفی رو گذروندم که تجربیات زیادی به زندگیم اضافه کرد. سعی می کنم ازین به بعد بیشتر از تجربیات شخصی در طول دوران دانشگاه و بعد از اون بنویسم. اگر در توانم باشه و زمان کافی داشته باشم سعی میکنم که یک وبسایت شخصی درست کنم که بهتر بتونم مطالبم رو به اشتراک بگذارم.


    آخرین ویرایش: 1396/12/25 22:30
    ارسال دیدگاه
  • برای دانلود بر روی این لینک کلیک کنید.
    آخرین ویرایش: 1392/12/6 14:18
    ارسال دیدگاه
  • آخرین ویرایش: 1389/09/22 20:44
    ارسال دیدگاه
  • CSS مخفف کلمه Cascading Style Sheets می باشند.

    زبان HTML برای ایجاد یك سیستم كد سازی جهانی به وجود آمد تا بوسیله آن بتوان صفحات وب را بدون توجه به نوع كامپیوتر طراحی كرد. خاصیت مهم HTML قالب بندی ساختاری می‌باشد ولی متاسفانه به طراحان قابلیت کنترل در همه زوایای صفحه را نمی‌دهد. برای قالب بندی و ایجاد افکت های بیشتر از CSS استفاده می‌کنیم.
    در واقع
    CSS این امکان را ایجاد می‌کند تا طراح بتواند چندین مشخصه در طراحی صفحه را به یکباره تعیین کند بعنوان مثال خصوصیات تمامی تگهای h1 موجود در صفحه اعم از اندازه، فونت و رنگ را مشخص نماید. و یا مشخصات ظاهری چندین صفحه را در یك فایل CSS تعیین نماید.

    برای دیدن کد نمونه فایل css اینجا کلیک کنید و برای مشاهده ی آن در مرورگرتان اینجا کلیک کنید.

    آخرین ویرایش: 1389/06/16 15:24
    ارسال دیدگاه
  • XML برای حمل داده ها طراحی شده است و این در حالی است که به عنوان یک جایگزین برای HTML تعریف نشده است. در حقیقت XML و HTML برای اهدافی مختلف طراحی شده اند
    • XML
    برای این طراحی شده است که داده ها را توصیف کند و بیشتر بر این مسئله تاکید دارد که بگوید داده ها واقعا چه چیزهایی هستند.
    • HTML
    برای این طراحی شد که نحوه ی نمایش داده ها را بیان کند و بر این تاکید دارد که داده ها چگونه به نظر برسند.
    • HTML
    برای نحوه ی نمایش داده هاست درحالی که XML برای توصیف داده ها بکار می رود.

     

     

    Xml  چیست؟

     

    • XML رایگان و قابل توسعه است.
    تگ های XML از پیش تعریف شده نیستند و شما باید درخور نیاز خود تگ های مد نظرتان را تعریف کنید.
    • XML
    مکملی برای HTML است.
    • XML
    یک تکنولوژی مستقل از Platform و سخت افزار و نرم افزار، برای انتقال داده می باشد.
    • XML
    آینده ی برنامه نویسی و توسعه صفحات وب می باشد.
    • XML
    به زودی یک تکنولوژی فراگیر خواهد شد.
    • XML
    می تواند داده ها را از تگ های HTML جدا کند.
    با XML داده های شما می توانند بیرون از HTML ذخیره شوند.
    از XML برای تبادل داده ها بین سیستم های ناهماهنگ استفاده می شود.
    با کمک XML داده های مالی و تجاری می توانند در اینترنت مبادله شوند.
    با کمک XML می توان داده ها را توسط متونی بسیار ساده Share کرد.
    با کمک XML داده ها می توانند در فایل های متنی بسیار ساده ذخیره شوند.
    باXML داده های شما می توانند برای کاربران بسیاری قابل دسترس باشند.
    با XML می توان زبان های جدیدی را ابداع نمود.
    • XML
    مادر تکنولوژی WAP و WML می باشد.
    امکان این مسئله بسیار زیاد است که در آینده تمامی برنامه های کاربردی از XML برای تبادل داده های خود استفاده کنند.

     

    XML برای کمک به ذخیره سازی ، سازماندهی و انتقال داده ها طراحی شده است. به این دلیل که از متنی بسیار ساده برای نوشتن کمک می گیرد و به آسانی می تواند به اینترنت فرستاده شود و توسط نرم افزارهای مختلف بر روی platform های مختلف نگه داری شود. XML طراحی شده است که به مردم امکان بدهد به آسانی داده های خود را جابجا کنند. در این 5 سال اخیر، حدود صدها زبان نشات گرفته از XML (که همه مجموعه ای از Element های از پیش تعریف شده می باشند) بوجود آمدند.
    برای مثال فرض کنید که می خواهید یک تحقیق در مورد نسل ها و شجره ی افراد داشته باشید. برای جستجو در میان بسیاری از رکوردها، مطمئنا نیاز به یک ساختار مرتب و از پیش تعریف شده خواهید داشت و داشتن آن همه اطلاعات فقط در یک فایل متنی ساده کافی نخواهد بود.

    حال برای این تحقیق شما می توانید از یکی از شاخه های زبان
    XML به نام Genealogical Data Communication استفاده کنید. در این زبان تگ های مخصوص بسیاری برای ذخیره سازی نام ها، تاریخ ها، ازدواج ها و... وجود دارد. با استفاده از GEDCOM بسیاری از مردم در سرتاسر جهان می توانند از پایگاه های داده برای نسل ها و شجره ها استفاده کنند.

    زبان های منشعب از
    XML مثل GEDCOM به برنامه های کاربردی XML شهرت دارند. (این نام تا حدی با بدشانسی روبرو بوده است، به این دلیل که بسته های نرم افزاری نیز برنامه های کاربردی خوانده می شوند، ولی در کل ایده ی این نامگذاری بیشتر به برنامه های کاربردی XML متمایل بوده است).
    هم اکنون صدها برنامه ی کاربردی
    XML موجود است که به گروه های مختلف مردم اجازه ی ارتباط برقرار کردن و تبادل داده ها را می دهد. در اینجا لیستی از این برنامه های کاربردی وجود دارد:

    Application Vulnerability Description Language-AVDL
    Bank Internet Payment System -BIPS
    Banking Industry Technology Secretariat -BITS
    Common Business Library -xCBL
    Connexions Markup Language -CNXML
    Electronic Business XML plan -ebXML
    Extensible Access Control Markup Language-XACML
    Financial Exchange -IFX
    Financial Information eXchange protocol -FIX
    Financial Products Markup Language-FpML
    Genealogical Data Communication -GEDCOM
    Geography Markup Language-GML
    Global Justice's Justice XML Data Dictionary -JXDD
    Human Resources Background Checks and Payroll Deductions Language -HR-XML
    Product Data Markup Language-PDML
    Schools Interoperability Framework -SIF
    Telecommunications Interchange Markup -TIM
    The Text Encoding Initiative -TEI
    Windows Rights Management Services -RMS
    XML Common Biometric Format -XCBF
    XML Process Definition Language-XPDL

    آخرین ویرایش: - -
    ارسال دیدگاه

  • • XHTML مخفف eXtensible HyperText Markup Language می باشد.

    • XHTML به عنوان یک جایگزین برای HTML طراحی شده است.

    • XHTML بسیار شبیه HTML است.

    • XHTML کمی از HTML خشک تر و مرتب تر است.

    • XHTML یک HTML تعریف شده برای برنامه های کاربردی XML ی می باشد.

    • XHTML از طرف W3C تائید شده می باشد.

    دلیل پیدایش XHTML :

    تمامی توسعه دهندگان روزی به این نتیجه رسیدند كه بسیاری از صفحات وب ساختار HTML مناسبی ندارند. زبان نشانه گذاری xml نیز به این دلیل بوجود آمد كه بتواند داده‌ها را به درستی نشانه‌گذاری كند و نتیجه‌ آن خوانا بودن سند شد.
    امروزه تكنولوژی های مرورگرهای مختلفی موجود است مثلاً برخی از مرورگرها اینترنت را بر روی pc ها و برخی بر روی موبایلها فراهم می كنند و نكته ای كه بسیار قابل توجه می‌باشد. این است كه این مرورگرها فاقد منابعی هستند كه قدرت ترجمه‌ی بالایی را به آنها می‌دهد.
    بنابراین، با تركیب HTML و XML و قدرت‌های آنها، یك زبان نشانه‌گذاری جدیدی به نام XHTML بوجود آمد.

    آخرین ویرایش: 1389/06/15 12:40
    ارسال دیدگاه
  • یک برنامه‌نویس و یک مهندس در یک مسافرت طولانى هوائى کنار یکدیگر در ... نشسته بودند.

    برنامه‌نویس رو به مهندس کرد و گفت: مایلى با همدیگر بازى کنیم؟

    مهندس که می‌خواست استراحت کند محترمانه عذر خواست و رویش را به طرف پنجره برگرداند و پتو را روى خودش کشید.

    برنامه‌نویس دوباره گفت: بازى سرگرم‌کننده‌اى است. من از شما یک سوال می‌پرسم و اگر شما جوابش را نمی‌دانستید ۵ دلار به من بدهید. بعد شما از من یک سوال می‌کنید و اگر من جوابش را نمی‌دانستم من٥ دلار به شما می‌دهم.

    مهندس مجدداً معذرت خواست و چشمهایش را روى هم گذاشت تا خوابش ببرد.

    این بار، برنامه‌نویس پیشنهاد دیگرى داد. گفت: خوب، اگر شما سوال مرا جواب ندادید ۵ دلار بدهید ولى اگر من نتوانستم سوال شما را جواب دهم ٥٠ دلار به شما می‌دهم.

    این پیشنهاد چرت مهندس را پاره کرد و رضایت داد که با برنامه‌نویس بازى کند.

    برنامه‌نویس نخستین سوال را مطرح کرد: «فاصله زمین تا ماه چقدر است؟»

    مهندس بدون اینکه کلمه‌اى بر زبان آورد دست در جیبش کرد و ۵ دلار به برنامه‌نویس داد. حالا نوبت خودش بود.

    مهندس گفت: «آن چیست که وقتى از تپه بالا می‌رود ۳ پا دارد و وقتى پائین می‌آید ۴ پا؟»

    برنامه‌نویس نگاه تعجب آمیزى کرد و سپس به سراغ کامپیوتر قابل حملش رفت و تمام اطلاعات موجود در آن را مورد جستجو قرار داد. آنگاه از طریق مودم بیسیم کامپیوترش به اینترنت وصل شد و اطلاعات موجود در کتابخانه کنگره آمریکا را هم جستجو کرد. باز هم چیز بدرد بخورى پیدا نکرد. سپس براى تمام همکارانش پست الکترونیک فرستاد و سوال را با آنها در میان گذاشت و با یکى دو نفر هم گپ زد ولى آنها هم نتوانستند کمکى کنند. بالاخره بعد از ۳ ساعت، مهندس را از خواب بیدار کرد و ٥٠ دلار به او داد.

    مهندس مودبانه ٥٠ دلار را گرفت و رویش را برگرداند تا دوباره بخوابد. برنامه‌نویس بعد از کمى مکث، او را تکان داد و گفت: «خوب، جواب سوالت چه بود؟»

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

    آخرین ویرایش: 1389/06/6 13:53
    ارسال دیدگاه
  • pi

    دقیقا یادم نیست ولی فکر کنم که سوم راهنمایی بودم که با عدد pi آشنا شدم.یادمه اون موقع تو کتابمون نوشته بود که عدد pi رو با ابرکامپیوترها تا میلیون ها رقم اعشار حساب کرده اند . خوب حالا من الان به این فکر کردم که چه جوری این اعداد رو به دست آوردند؟فرمول های زیر رو می توانید تو کتاب های ریاضیات دانشگاهی پیدا کنید.

    من از کتاب حساب دیفرانسیل و انتگرالِ " جورج توماس و راس فینی " پیداشون کردم.

     

     :فرمول های مجموع جملات نامتناهی

      

        Pi = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 . . . = 4 / Pi

        Pi = 1/1^2 + 1/2^2 + 1/3^2 +1/4^2 + 1/5^2 . . . = (Pi^2) / 6      

     

    فرمول آرک تانژانت :

                Pi = 4 * Atn1))

     

    فرمول اویلر:

                Pi = 20 * Atn(1/7) + 8 * Atn3/79) )

     

    :فرول گاووس

                Pi = 48 * Atn(1/18) + 32 * Atn(1/57) - 20 * Atn(1/239 )

     

    فرمول ماچین:

                Pi = 16 * Atn(1/5) - 4 * Atn1/239))

       

       

    سری توانی آرک تانژانت:

                Atn(X) = X - X^3 /3 + X^5 /5 - X^7 /7 + X^9 /9 . . .

      

    Ramanujan فرمول:

     

                    1                  1103     27493      1     1*3      53883       1*3     1*3*5*7

            ----------------  =  ------ + ---------     --     ----  +  ---------   ------     ----------- + . .  .

              2*pi*Sqr(2)        99^2     99^6       2     4^2      99^10       2*4     4^2+8^2

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

    pi

    آخرین ویرایش: - -
    ارسال دیدگاه
  • قبلا یک برنامه برای محاسبه ی میدان الکتریکی حاصل از دو بار نقطه ای در صفحه نوشته بودم .وسط امتحانات ترمی که گذشت یک نفر در وبلاگم برنامه ای خواست تا برآیند این میدان را برای دو بار نقطه ای در صفحه ی مختصات رسم کند و اندازه ی میدان را در نقطه ی مشخصی به دست آورد.

    می دانیم که هر بار نقطه ای در فضا میدانی ایجاد می کند که برای بارهای منفی میدان در جهت نزدیک شونده با بار و برای بار مثبت در جهت دور شونده از آن است.و خطوط میدان در فضا از دو اصل مهم پیروی می کنند.

    1-ھر خط مماس بر خط ھای میدان در یک نقطه با خط میدان در آن نقطه موازی است.

    2- میدان به وجود آمده در یک نقطه از فضا با اندازه ی میدان در آن نقطه رابطه ی مستقیم دارد.

    از قانون اول که بر موازی بودن هر خط مماس برخطوط میدان با همین خطوط دلالت دارد ،مفهوم مشتق به ذهن می رسد.

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

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

    field

    آخرین ویرایش: - -
    ارسال دیدگاه
  • چند وقت پیش بود که پسر عموم که 8 سالشه با یک جعبه اومد جلوم و گفت بیا دوز بازی کنیم! جل الخالق! تا اونجایی که من یادمه وقتی بچه بودم دوز بازی این شکلی نبود.سه تا ده سنگ ریزه و یک تیکه کاغذ یا گچ که باهاش رو زمین شکل می کشیدیم کل وسایل بازی دوز ما بود.

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

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

    برنامه ی نوشته شده را از اینجا دانلود کنید و بازی کنید. این بازی که نوشتم رو احتمالا دو تا از پسرعموهای کوچیکترم که الان 4 و 1 سالشونه در آینده بازی کنند.به هر حال از زمان ما تا آینده تغییرات زیاده! اون بازی دوز ما کجا و این برنامه ی کامپیوتری دوز کجا؟

    دوز

    آخرین ویرایش: 1389/05/24 14:12
    ارسال دیدگاه
  • امروز یکی از هم کلاسی هام از من خواست تا براش مقدار دقیق عبارت cos(3.141583304) را محاسبه کنم. خودش با ماشین حساب مهندسی حساب کرده بود و عدد منفی یک رو جواب گرفته بود.خوب من هم با ماشین حساب خودم امتحان کردم عدد منفی یک رو جواب گرفتم.البته همون طور که واضحه این عدد همان عدد pi تا  8 رقم اعشار است.حالا سوال اینجاست که چرا هم cos(pi)  و هم cos (3.141583304)  دارای یک جواب اند!

    خوب معلومه دیگه!ماشین حساب ارقام رو گرد می کنه.تازه این ماشین حساب من تا 9 رقم اعشار بیشتر رو حساب نمی کند و بقیه ی ارقام رو تا 1099± به صورت نماد علمی نمایش می دهد.حالا ما چی کار کنیم!چه جوری مقدار دقیق این عبارت رو به دست بیاوریم؟ اولین چیزی که به ذهنم رسید این بود که برنامه ای بنویسم که عددx  را بگیره و cos(x) را حساب کنه.چه جوری؟ دو راه داشت.اولین راه استفاده از توابع همراه با کامپایلر بود که مثلا در اینجا من از torbo c++ استفاده کردم .می تونستم تابع cos() از سرفایل <math.h> برای نوشتن این برنامه استفاده کنم.اما این تابع هم مقدار دقیق رو به دست نمیدهد چون برای نوشتن همین تابع از سری تیلور تابع cos (x) با تعداد جمله های محدود استفاده شده است.

    خوب پس من باید برنامه ای بنویسم که سری تیلور تابع cos(_) را تا تعداد جمله ی دلخواه به دست بیاورد و البته با خطای و دقتی که ما می خواهیم.خوب قبلش یک گوشه ی چشمی هم به matlab می اندازیم تا ببینیم چقدر دقیق برامون حساب می کنه.همون طور که در شکل 2 می بینید مقدار cos(3.141583304) را تا 60 رقم اعشار با matlab  حساب کردم که مقدار...-.99999999995629263000 رو جواب داد.در ادامه به این نتیجه می رسیم که این مقدار زیاد هم دقیق نیست!

    این برنامه رو نوشتم و مقدار این عبارت رو تا 50 رقم اعشار حساب کردم و برای این کار 200 جمله ی اول سری cos(x) را حساب کردم.مقدار این بود :

     Cos( 3.141583304 ) = -.9999999999562925850654407521516198700002

    در کامپیوتر من که 32 بیتی این عدد دقیق ترین عددی است که می توان به دست آورد.چون دقیقترین نوع داده ای که برای ذخیره ی این عدد می توانم تعریف کنم از نوع  long double است و این نوع دقتی بیشتر از این را به دست نمی دهد.در ادامه وقتی برنامه ی نوشته شده توسط خودم را طوری تغییر دادم تا مقدار cos(x) را تا جملاتی حساب کند که یبه عددی برسیم که باmatlab  به دست آمده بود و به این نتیجه رسیدم که matlab فقط 25 جمله از سری تیلور را حساب می کند!      دانلود برنامه 

    آخرین ویرایش: 1389/05/13 22:11
    ارسال دیدگاه
  • قبل از این یک مقاله ی کامل درباره ی توابعAPI در زبان های سطح بالا نوشته بودم که از این جا می توانید دانلود کنید.اما بعد از اون تعداد زیادی از مراجعه کننده گان به وبلاگم مطلبی درباره ی کاربرد این توابع در زبان های c++/cخواسته بودند.من هم این مقاله ی آموزشی رو درباره ی برنامه نویسی با توابع API در ویندوز 32 بیتی نوشته ام.این را هم بگویم که این مقاله تنها مرجع فارسی درباره ی این توابع است.برای دانلود اینجا کلیک کنید.


    آخرین ویرایش: 1389/04/22 13:16
    ارسال دیدگاه
  • خوب بلاخره امتحانام تموم شد و برگشتم.

    یه برنامه که قبل امتحانات برای یکی از هم کلاسی هام نوشته بودم رو تو این پست براتون گذاشتم تا ببینید.روش ریشه یابی رانگه کوتا که در درس محاسبات عددی می خونیم رو با نرم افزار متلب نوشتم.این برنامه ریشه ی معادله را هم با رانگه کوتای مرتبه دو و هم با مرتبه چهار حل می کند. دانلود .
    آخرین ویرایش: - -
    ارسال دیدگاه
  • خوب فایل مقاله ی آموزشی که تو پست قبلی گذاشته بودم رو جدا آپلود کردم  تا کسانی که فقط فایل اصلی رو می خواهند و با توابع API  آشنایی دارند دیگه مجبور نشوند همه ی فایل رو دانلود کنند.اینجا کلیک کنید.(در ضمن بگم که فقط دانشجویان و مهندسان برق)
    آخرین ویرایش: - -
    ارسال دیدگاه
  • مهندسان و دانشجویان برق بخوانند.....

    یک مقاله ی آموزشی برای ساختن برنامه هایی که فهرست شبکه (netlist) دلخواه ما را به وجود بیاورند.netlist ها فایل هایی اند که اطلاعات مدار رسم شده ی ما را به صورت فایل متنی ذخیره می کنند.این اطلاعات شامل نام و تعداد شاخه ها و قطعات و پین ها  و نوع قطعات و ولتاژ و جریان شاخه ها و انواع تحلیل های انجام شده و نمودار های رسم شده و ....هستند.حال اگر ما بخواهیم netlist ای متناسب با کار خودمان به وجود بیاوریم باید بتوانیم برنامه ی آن را بنویسیم و آن را در محیط Capture و یا خارج ازآن ، اجرا کنیم. (برای مثال netlist ای که فقط نام عناصر پسیو و پین ها ی عناصر اکتیو و شاخه های متصل به آنها را ذخیره کند و یا netlist ای که فقط نام عناصر دیجیتال را در خود ذخیره کند.)

    برای دانلود اینجا کلیک کنید.

    آخرین ویرایش: 1389/01/31 18:30
    ارسال دیدگاه
  • اول پست قبلی را بخوانید بعدش بیایید اینجا…

    برای پروژه ی مدار منطقی می خواستم برنامه ی قبلی رو (مبدل کدها) رو بنویسم.خوب نوشتمش.اما یه جورایی ازش خوشم نیومد.بیشتر به درد برنامه نویسی و مخصوصا اسمبلی می خورد.برای همین این برنامه رو نوشتم.

    خوب تو درس مدار منطقی (فصل سوم-کتاب مانور) برای ساده سازی توابع بولین دو راه پیشنهاد شده.یکی استفاده از جدول Karnaugh  که برای توابعی با تعداد متغیر کمتر از 5 تا به درد می خوره. و دومین روش که برنامه اش رو نوشتم،( Quine-McCluskey ) که برای توابعی با تعداد متغییر های زیاد به کار

     می رود.

    خوب قبل از شروع به نوشتن این برنامه یه search کردم تا ببینم قبلا این برنامه نوشته شده یا نه؟

    قبل از من چند نفر این برنامه رو نوشته بودند (به زبان های Delphi و Qbasicو vb)  اما هر کدوم مشکلات و یا محدودیت هایی داشتند.کار با برنامه ای که به زبان Qbasic  نوشته شده بود بسیار مشکل بود و اصلا User friendly  نبود.و فقط توانایی مینیمم کردن توابعی با تعداد متغییر کمتر از 26 را داشت.(به دلیل عدم توانایی اخذ حافظه از سیستم برای توابعی با تعداد متغیر بیشتر)

    برنامه ای که با vb  نوشته شده بود کاملا classified بود و توسط آقای Allaedin Hallak در دانشگاه  Computer Science, University of Science & Technology نوشته شده بود.این برنامه از

     list-link برای اخذ حافظه از سیستم استفاده می کرد و نسبتا برنامه ی خوبی بود.اما یه مشکل بزرگ داشت!! الگوریتمش غلط بود.اولش که این برنامه رو دیدم ناامید شدم و با خودم گفتم که دیگه نوشتن یک برنامه که قبلا نوشته شده فایده ای نداره اما وقتی چند تا عدد (Minterm) به برنامه دادم و دیدم که Error  داد یه جورایی خوشحال شدم.(مشکل برنامه عدم توانای در تشخیص انتخاب های نخستینی که تکرار شده بودند است.) خوب پس با این که برنامه رو خیلی خوب نوشته بود ولی برنامه ای که غلط باشه که به درد نمی خوره!!!! در ضمن در این برنامه برای وارد کردن اعداد راه مناسبی پیش بینی نشده بود،یعنی کاربر برای وارد کردن 2000  مینترم باید همه ی آنها را یکی یکی وارد می کرد (خیلی خسته کننده است! و امکان اشتباه در ورود اعداد بالا می باشد).تازه بالفرض که هر 2000 تاش رو وارد می کردیم و فقط یک عدد رو اشتباهی دو بار وارد می کردیم.حالا تازه برنامه error می داد که عدد تکراری وارد شده،کاربر باید بشینه و همه ی اعدادی رو که وارد کرده رو از اول بینه تا اون عدد تکراری پیدا بشه.خلاصه   اصول مهندسی نرم افزار رعایت نشده بود.

    برنامه ی سوم که به زبان دلفی بود ،مشکل از همه جاش میریخت.اصلا درباره اش هیچی نمینویسم.البته هرسه این برنامه ها رو با برنامه ی خودم Upload کردم.خودتون قضاوت کنید.

    خوب می رسیم به برنامه ی خودم.چیزهایی که این برنامه رو خاص میکنه رو این زیر نوشتم.

    1-توانایی برنامه در اخذ حافظه از سیستم برای توابعی تا 180 متغییر.(فکرش رو کنید برای تابع 180 متغیره باید 2^180=1.5324955408658888583583470271503e54 خانه ی حافظه برای ذخیره ی متغییر ها (مینترم ها) از سیستم اخذ شود.تازه عدد بالا رو باید ضرب در 2 هم کنیم.(برای ذخیره ی هر متغییر از نوع عدد صحیح 2 بایت فضا لازم است.)

    2-توانایی وارد کردم بازه ای از اعداد.برای مثال برای وارد کردن مینترم های 1000 تا 2000 لازم نیست که این اعداد را تک تک وارد کنیم.در این برنامه دو راه برای ورود داده ها پیش بینی شده است.

    3-هوشمند بودن برنامه.این برنامه قابلیت تشخیش و کنترل ورودیها را دارد.کاربر فقط توانایی وارد کردن اعداد در بازه ی مشخص را دارد.همچنین برنامه وارد کردن اعداد تکراری را نمی پذیرد.(امتحان کنید.!)

    امکان وارد کردن کاراکتر های غیر مجاز (مانند حروف الفبا و یا اعداد اعشاری) از کاربر گرفته شده و برنامه اجرازه ی وارد کردن این ورودی ها را نمی دهد.

    نوشتن این برنامه حدود 10 روز زمان برد و 2 روز هم از چشم درد افتاده بودم تو خونه!!

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

     

     

    آخرین ویرایش: 1389/05/20 19:46
    ارسال دیدگاه
  • بعد از 17 روز تمام برنامه نویسی....

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

    در این برنامه کاربر با وارد کردن عدد در مبنای ده می تواند معادل باینری آن را به 7 صورت که در زیر آورده شده است مشاهده کند.این 7 شکل در زیر آورده شده است.

    1-مکمل یک  ((1's complement

    2-مکمل دو (2's complement )

    3-هم طول با مقدار(Variable Length )

    4–شانزده بیتی (صحیح بدون علامت) ( (16 bit

    5-ممیز شناور(Floating-Point)                                     

    6-ممیز ثابت(Fixed-Point)

    7- BCD : Binary Coded Decimal

    همچنین عدد وارد شده در مبنای شانزده نیز به نمایش در خواهد آمد.معادل ASCII ،عددِ در مبنای ده نیز در textbox چهارم نمایش داده می شود.

    کاربر می تواند با انتخاب گزینه های دیگر ( Decimal ,Binary ,Hex , ASCII) به تبدیل بین انواع مختلف به صورت عکس بپردازد.برای مثال با انتخاب گزینه ی  Binary و مشخص کردن نوع آن (یکی از 7 مورد بالا) ، معادل مبنای ده و شانزده و همچنین کد اَسکی آن را دریافت کند.

    این برنامه کاملا به طور هوشمند نوشته شده است و تمامی قوانین حاکم بین اعداد و کدها رعایت شده و به طور اتوماتیک توسط برنامه اجرا می شوند.برای مثال اگر کاربر برای تبدیل عدد باینریی که ممیز شناور است تعدادی کمتر از 32 بایت را وارد کند،خود برنامه طول عدد وارد شده را کنترل می کند و آن را به 32 بیت افزایش می دهد و یا به عنوان مثالی دیگر اگر برای گرفتن معادل باینری عددی به صورت BCD ،عددی منفی در کادر decimal تایپ شود،برنامه به صورت خودکار عدد منفی را تشخیص داده وآن را پس از مثبت نمودن،به BCD تبدیل می کند.(توجه شود که BCD استفاده شده در این برنامه از نوع غیر فشرده می باشد.)

    بحث درباره ی انواع این کدها و خصوصیات هر کدام در پستهای آینده.

    همچنین این برنامه قابلیت کنترل اعداد ورودی را دارد،به این معنی که در کادر های مخصوص ورودی (برای مثال binary) امکان وارد کردن عددی به جز 0 و 1 وجود ندارد.

    در این برنامه از بیش از 150 تابع مختلف استفاده شده است که از این میان 5 تابع از نوع توابع API هستند.(برای دانلود مقاله ای که درباره ی توابع API نوشته بودم اینجا کلیک کنید.) و توابع باقی مانده عموما دارای پارامتر هایی از نوع string  و نوع بازگشتی string  هستند.تا آنجایی که مقدور بوده سعی کردم که از ارسال پارامترها با ارجاع خودداری کنم و به همین دلیل این برنامه کاملا به صورت functional نوشته شده و هیچ روالی در آن به کار برده نشده است.(به جز برای کنترل Active X ها)

    فایل اجرایی نسخه ی ارائه شده ی این برنامه  (version:2.5.7 ) (نسخه ی بتا)  را آپلود کردم و قسمتی از سورس کد آن را به صورت PDF همراه آن آورده ام.هنوز قسمت هایی از برنامه مانند help و قسمت های کوچک کنترل کننده ی بازه ی اعداد باقی مانده که به زودی کامل خواهد شد.سورس کامل برنامه هم همراه نسخه ی کامل ارائه می شود.

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

    توجه: تبدیلات و طول های اعداد باینری در این برنامه بر مبنای میکروپروسسور 8086 می باشد.(طول اعداد مکمل یک و دو در طولهای BYTE,WORD,DWORD آورده شده است.

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

    pic

    آخرین ویرایش: 1390/07/2 22:41
    ارسال دیدگاه
  • چهار برنامه برای درس محاسبات عددی که یکی از اونها (انتگرال به روش سیمپسون) پروژه ی محاسبات خودم بود و سه تای دیگر رو برای دوستام نوشته بودم رو براتون آپلود کردم .

    این چهار برنامه شامل موارد زیراند.

    1-محاسبه ی ریشه به روش دوبخشی

    2-محاسبه ی ریشه به روش نیوتون-رافسون

    3-محاسبه ی ریشه به روش نابجایی

    4-انتگرالگیری ازتابع cos(eX)  به روش سیمپسون

    برای دانلود اینجا کلیک کنید.

    آخرین ویرایش: 1388/10/24 21:57
    ارسال دیدگاه
  • این مطلب رو به درخواست برو بچه های مکانیک و عمران و صنایع و متالوژی دانشگاهمون نوشتم.
    درست که من برقم ولی خوب باید هوای همه رو داشت دیگه!!!
    استاد برنامه نویسی گرو های دیگه ی دانشکده مون چند تا تمرین برای پایان ترم داده بود که حلشون کردم و میتونید از اینجا دانلودش کنید.البته چون نگفتید که با زبان c باشه یا c++ من با انتخاب خودم بعضی تمرین ها رو به یک زبان و برخی رو به زبان دیگه نوشتم.(البته یه printf  و cout که این حرف ها رو نداره!!!)
    آخرین ویرایش: 1388/10/14 15:28
    ارسال دیدگاه
  • این برنامه رو به درخواست یکی از بازدید کنندگان نوشتم.
    من دانشجوی ترم1 کامپیوترم.استادم گفته برنامه ای بنویسم که رشته ای را خوانده و تمام کلمات 4 حرفی آن را با کلمه loveجایگزین کنه.مثلا i hate you بشه i love you  ........

    برای دانلود برنامه اینجا کلیک کنید....
    آخرین ویرایش: 1388/10/14 15:29
    ارسال دیدگاه
  • این برنامه رو طبق درخواست یکی از بازدید کنندگان upload کردم.البته سورس این کد توسط آقای آراز جعفری پور نوشته شده و من هم با رعایت کامل کپی رایت این برنامه رو با اسم ایشون براتون Upload کردم.
    از اینجا دانلود کنید.
    vb
    آخرین ویرایش: 1388/10/14 15:30
    ارسال دیدگاه

  • برنامه ای برای محاسبه ی میدان الکتریکی ناشی از یک بار نقطه ای این برنامه رو طبق خواسته ی یکی از بازدید کنندگان نوشتم.
    خوب می دونیم که میدان الکتریکی در فاصله ی R از یک بار الکتریکی برابراست با : E=kq\R^2 که در آن   k=1\4*PI*epsilon 
      Epsiloneضریب گذردهی خلا در این برنامه با گرفتن فاصله بر حسب میلیمتر و بار بر حسب میکروکولن به محاسبه ی میدان می پردازیم. در ضمن باید به تبدیل واحدها نیز توجه داشته باشیم.
    از اینجا دانلود کنید
    آخرین ویرایش: 1388/08/27 09:44
    ارسال دیدگاه
  • هوراااااااااااااااااا
    بلاخره ویروس 90 رو تمام تمامش کردم . با یک الگوریتم خفن !!  البته این یکی رو هیچ آنتی ویروسی نمی گیره!!! خودم رو سیستم خودم امتحانش کردم
    واقعا جواب داد.البته فعلا ایمیل برنامه ی 90 بسته است و نمی توانم براشون بفرستمش.به زودی میفرستمش.البته نمی تونم براتون بگذارمش اینجا تا خودتون رو ویروسی کنید و ببینید که چه طوریه .آخه دفعه ی قبل که ویروس اسرائیل رو upload  کردم رو پرشین گیگ،حسابمو بستن.
    منتظر باشید.




    آخرین ویرایش: - -
    ارسال دیدگاه
  • مقاله ای رو که گفته بودم بلاخره کامل شد.به همه ی برنامه نویسان عزیز پیشنهاد می کنم که حتما دانلود کننش.به هر حال یه روزی باید از این مقاله استفاده کنند.چیزی که این مقاله رو با مقاله های دیگر متفاوت می کند این موضوع است که همراه هر تابع API که در این مقاله توضیح داده شده ، یک مثال که از این تابع استفاده می کند آورده شده است.از اینجا دانلود کنید.
    آخرین ویرایش: 1388/07/20 19:32
    ارسال دیدگاه
  • این تمرین ها رو من خودم در طول ترمی که برنامه نویسی داشتم حل کردم و در آنها هیچ گونه کپی برداری از جایی انجام نشده است.(البته یک مثال اضافه از کتاب c++ how to programe در آن آورده شده که البته جزو تمرین ها نمی باشد و فقط برای توضیحات درباره ی یکی از مثال ها  است.)

    این تمرین ها کاملا درست  و چک شده اند و بعضی از انها در سطحی بالاتر از سطحی که کتاب خواسته حل شده اند.

    هرگونه استفاده از این جواب ها بدون ذکر منبع مجاز نمی باشد.(البته اگر استفاده کنید هم کاری نمی تونم کنم.مگه نه این که تو کشور ما قوانین کپی و رایت از همه جا بهتر اجرا می شه!!!!)c,c++,turbo c,c#,Vb,Asp.net,…

    از  4sharedدانلود کنید.
    از پرشین گیگ دانلود کنید
    .




    با سلام.

     
    این وبلاگ پست جدیدی نخواهد داشت و مطالب را در وبسایت شخصی ام به آدرس زیر خواهم نوشت.


    وبسایت جدید: www.palinezhad.com

    آخرین ویرایش: 1397/02/25 14:39
    ارسال دیدگاه
  • دیشب داشتم یه نگاهی به نمونه سوال های ریاضی 2 ام می انداختم که یه دفعه تو فصل توابع و میدان های برداری یه سوال جالب دیدم.خوب معلومه دیگه وقتی یه سوال جالبه پس باید برنامه ای بنویسیم که نشونش بده دیگه!!

    حالا سوال چی بود؟این زیر نوشتم....

    "نمونه سوال:دانشگاه صنعتی امیر کبیر/میان ترم اول86-1385)"

    دایرهای به شعاع  bروی دایره ای به شعاع  a بدون لغزش می غلتد.ازحرکت نقطه ی ثابت ‘P’  که روی محیط دایره ی ثابت،غلطان است،منحنی ای به نام "اپی سیکلوید" به دست می آید.مطلوب است معادله ی پارامتری منحنی اپی سیکلواید.

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

    X(θ)=(a+b)*cos θ - b*cos(((a+b)/b)* θ)))

    Y(θ)=(a+b)*sin θ – b * sin(((a+b)/b* θ)))

    a,b از کاربر گرفته می شوند.

    البته یه چیزهایی هم خودم اضافه کردم تا این برنامه  hypo cycloid هم بکشه .

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

    pic

    pic2



    آخرین ویرایش: 1390/07/2 22:46
    ارسال دیدگاه
  • در این مسابقه از نو مسابقه ی کلاسیک لاک پشت و خرگوش را طراحی می کنیم.

    برای طراحی این بازی به یاد ماندنی،از مولد اعداد تصادفی استفاده می کنیم.

    کار یکی از حیوانات شرکت کننده در مسابقه از "خانه 1"از 70 خانه ی موجود شروع می شود.

    هر خانه،یک مکان احتمالی را در طول مسابقه نشان می دهد. خط پایان مسابقه خانه ی 70 است.

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

    ساعتی وجود دارد که هر ثانیه ،یک تیک می کند.با هر تیک ساعت ،برنامه باید موقعیت حیوانات را

     طبق قانون زیر تنظیم کند.

    حیوان

    نوع حرکت

    درصد زمان

    حرکت واقعی

    لاک پشت

    راه پیمایی سریع

    %50

    3 خانه به راست

    لاک پشت

    راه پیمایی نسبتا اهسته

    %20

    6 خانه به چپ

    لاک پشت

    راه پیمایی آهسته

    %30

    1 خانه به راست

    خرگوش

    خواب

    %20

    هیچ حرکتی ندارد

    خرگوش

    جست بزرگ

    %20

    9 خانه به راست

    خرگوش

    جست بزرگ

    %10

    12 خانه به چپ

    خرگوش

    جست کوچک

    %30

    1 خانه به راست

    خرگوش

    جست کوچک

    %20

    2 خانه به چپ


    "راه حل:کد این برنامه را به 3 زبان C++,Visual basic,Qbasicنوشته ام که می توانید آنها را دانلود کنید.

    اما الگوریتم حل این مساله در هر 3 زبان تقریبا یکسان است.

    خوب از چند متغیر برای ذخیره ی موقعیت حیوانات استفاده می کنیم.هر حیوان از شماره ی 1 (یعنی دروازه اول) شروع به حرکت می کند.اگر راه پیمایی حیوانی قبل از خانه ی یک نسبتا کند باشد حرکت را مجدداً از خانه ی یک شروع می کنیم.

    با تولید یک عدد تصادفی صحیح یعنی temp در فاصله ی  1<=temp<=10  در صد های جدول بالا را تولید می کنیم.

    توجه:روش تولید اعداد تصادفی در سه زبان:

    1-c++ : temp= a +rand() % length

    که در آن a’ مقدار انتقال(که برابر اولین عدد در دامنه ی متوالی از اعداد صحیح مورد نظر است) و ‘length’ ضریب تغییر مقیاس است(که برابر طول دامنه ی متوالی از اعداد صحیح مورد نظر است).

    2-Visual basic : temp=INT(RND*length)+a

    که در آن ‘a’  و’length’ همانند زبان c++   هستند ولی نکته ی مهم استفاده ازتابع INT( )   در اینجا است.در c++   به دلیل تبدیل انواع (type conversion)  نیازی به استفاده از این نوع توابع نیست  ،اما در VB  ما باید قبل از ذخیره کردن این مقدار در temp  آن را به نوع صحیح تبدیل کنیم.

    3-در Qbasic  تقریبا تفاوتی با VB ندارد به جز این که در هنگام مقدار دهی اولیه به تابع RANDOMIZE هسته (seed ) را در درون پرانتز قرار نمی دهیم ، پس در Q basic به این صورت

     می نویسیم:RANDOMIZE TIMER

    اما در VB  به این شکل RANDOMIZE (TIMER)

    خوب البته باید به این نکته توجه کنیم که در C++  به جای این عبارت از  srand(time(0))استفاده خواهیم کرد و همچنین باید سرفایل "stdlib.h " را نیز include  کنیم.

    مسابقه را با پیغام زیر شروع می کنیم.

    BANG!!!!AND THEY’RE OFF NOW!!!!!

    برای هر تیک از ساعت (یعنی هر تکرار حلقه)خطی با 70 مکان چاپ می کنیم که حرف ‘T’ را برای مکان لاک پشت (Tortoise ) و حرف ‘H’  را برای مکان خرگوش (Hare ) انتخاب می کنیم.

    گاه گاهی هر دو حیوان به یک خانه می رسند.در این حالت ،لاک پشت ،خرگوش را گاز می گیرد. و برنامه باید پیغام ‘OUCH’ را در آن مکان چاپ کند.تمام مکان های چاپ، غیر از ‘T’ و ‘H’ و یا ‘OUCH’باید فضای خالی باشند.

    پس از چاپ هر خط تحقیق میکنیم که آیا حیوانی به خانه ی 70 رسیده یا از آن رد شدهاست یا خیر.در صورت مثبت بودن جواب برنده را چاپ می کنیم و به شبیه سازی پایان می دهیم.

    اگر لاک پشت برنده بود پیغام Tortoise wins!!!YAY!!! را چاپ می کنیم.اگر خرگوش برنده شد پیغام Hare wins !!!!YAY!!! را در خروجی چاپ می کنیم.اگر هر دو حیوان در یک تیک ساعت به خط پایان برسند پیغام ‘It’s a tie’ (مساوی کردند) را چاپ می کنیم.

    توجه : این مساله با این که بسیار ساده به نظر می رسد اما با کمی دقت متوجه خواهیم شد که این مساله در دام  "تعویف نامعین " (Indefinite postponement ) گرفتار است.به این معنی که به هیچ عنوان از قبل معلوم نیست که چه هنگام از حلقه خارج خوهیم شد.(در چه زمانی و کدام حیوان برنده است؟)


     از اینجا دانلود کنید....

    آخرین ویرایش: 1388/12/23 15:44
    ارسال دیدگاه
  • من هم به نوبه ی خودم خواستم  انزجارخودم رواز جنایات اسرائیل اعلام کنم.

    خوب چه طوری؟

    ویروسی به نام اسرائیل.!!!

    تمام تلاشم را کردم تا قوی  باشه.تا هر کی این ویروس رو گرفت به اسرایئل نفرین بفرسته.

    کل این ویروس رو تو 30 دقیقه نوشتم.کارش درسته!!!ویروسش هم مثل خود رژیمش اشغال گرِ.یعنی شروع می کنه به اشغال کردن درایو C. در ضمن بعد از یک بار خاموش شدن سیستم،دیگر سیستمی در کار نخواهد بود.فایل boot.ini رو حذف می کنه.

    این ویروس رو برای چند تا شرکت از جمله NOD 32 فرستادم تا برن سراغ آنتی  ویروسش.

    اگر می خواهید ویروسی بشید اینجا کلیک کنید.

    آخرین ویرایش: 1388/06/25 11:18
    ارسال دیدگاه
  • اگر تا سوم دبیرستان هم درس خوانده باشید حتما در کتاب فیزیک درباره ی مقاومت ها خوانده اید.اگر یادتان باشد بر روی هر مقاومت 4 خط رنگی وجود دارد که اندازه ی مقاومت آن را نشان می دهند.این برنامه با گرفتن رنگ چهار خط روی مقاومت،اندازه ی مقاومت( و اندازه ی خطای آن) را مشخص می کند.از اینجا دانلود کنید.
    آخرین ویرایش: - -
    ارسال دیدگاه
تعداد صفحات : 2 1 2