loading...
مرجع مهندسی نرم افزار
آخرین ارسال های انجمن
حامد شیرزاد بازدید : 457 پنجشنبه 03 آذر 1390 نظرات (0)
يک نکته مهم که در زمان استفاده از NET Framework. بايد به آن توجه داشت آن است که فضانام (namespace يا نامکده) ها در ساختمان برنامه کاربردی قرار دارند. فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است. اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.

مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:
حامد شیرزاد بازدید : 1847 پنجشنبه 03 آذر 1390 نظرات (0)
fieldset.search {
border: none;
width: 243px;
margin: 0 auto;
background: #222;
}
.search input, .search button {
border: none;
float: left;
}
.search input.box {
color: #fff;
font-size: 1.2em;
width: 190px;
height: 30px;
padding: 8px 5px 0;
background: #616161 url(/statics/images/search/search_bg.gif) no-repeat;
margin-right: 5px;
}
.search input.box:focus {
background: #616161 url(/statics/images/search/search_bg.gif) no-repeat left -38px;
outline: none;
}
.search button.btn {
width: 38px;
height: 38px;
cursor: pointer;
text-indent: -9999px;
background: #fbc900 url(/statics/images/search/search_bg.gif) no-repeat top right;
}
.search button.btn:hover {
background: #fbc900 url(/statics/images/search/search_bg.gif) no-repeat bottom right;
}
#footer {clear:both; padding:20px 20px 40px 20px; font-size:85%;}
#footer p {margin:0;}
حامد شیرزاد بازدید : 449 چهارشنبه 02 آذر 1390 نظرات (0)

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

حامد شیرزاد بازدید : 396 چهارشنبه 02 آذر 1390 نظرات (0)
 

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

حامد شیرزاد بازدید : 473 چهارشنبه 02 آذر 1390 نظرات (0)
 

براي اينكه كاربر نتواند با استفاده از كليدهاي Alt+F4 از برنامه خارج شود بايد از كدي مانند كد زير در برنامه استفاده كنيد:

Procedure TForm1.FormCreate(Sender: TObject);

begin

KeyPreview := true;

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if ((ssAlt in Shift) and (Key = VK_F4)) then

Key := 0;

end;

حامد شیرزاد بازدید : 412 چهارشنبه 02 آذر 1390 نظرات (0)

Get the short file name (8 + 3) from a Win32 long file name

function ShortFileName (const FileName: string): string;
var aTmp: array[0..255] of char;
begin
  if not FileExists (FileName) then
    Result := ''
  else if GetShortPathName (PChar (FileName), aTmp, Sizeof (aTmp) - 1) = 0
  then
    Result:= FileName
  else
    Result:= StrPas (aTmp);
end;
Wikipedia: A name given to a computer file to distinguish it from other files, often containing an extension that classifies it by type.
حامد شیرزاد بازدید : 465 چهارشنبه 02 آذر 1390 نظرات (0)

{***********************************************************************
 Listbox with horizontal scrollbar
 MaxWidth < 0 : adapt automatically to largest item
 MaxWidth >= 0: use value of MaxWidth for width of scrollable area
 ***********************************************************************}
procedure HorScrollBar (ListBox: TListBox; MaxWidth: integer);
var i, w: integer;
begin
  if MaxWidth >= 0 then
    SendMessage(ListBox.Handle, LB_SETHORIZONTALEXTENT, MaxWidth, 0)
  else begin
    { get largest item }
    for i := 0 to ListBox.Items.Count - 1 do with ListBox do begin
      w := Canvas.TextWidth (Items [i]);
      if w > MaxWidth then
        MaxWidth := w;
     end;
    SendMessage(ListBox.Handle, LB_SETHORIZONTALEXTENT,
      MaxWidth + GetSystemMetrics (SM_CXFRAME), 0);
  end;
end;
Wikipedia: with definition: in opposition to.
حامد شیرزاد بازدید : 1411 سه شنبه 01 آذر 1390 نظرات (0)

پرینترهای امروزی دو مدل ارتباطی دارند. یا مستقیما به کامپیوتر ما متصل می‌گردند که پرینترهای خانگی و بسیاری از پرینترهای موجود از این نوع ارتباط استفاده می‌کنند و یا قابلیت اتصال به شبکه را دارند (بصورت کابلی یا وایرلس). امروز قصد داریم آموزش گام به گامی را ارائه کنیم که بتوانید چاپگر خود را با دیگر کاربران درون شبکه به اشتراک بگذارید؛ به برخی از آنها اجازه استفاده و به برخی این اجازه را ندهید! با ما باشید.

برای به اشتراک گذاری و اتصال پرینتر به شبکه ابتدا آن را روشن کرده و به کامپیوتر متصل نمایید. اگر کامپیوتر دارای پورت شبکه است میتوانید کابل شبکه را به آن اتصال دهید. سپس file and printer sharing را روشن کنید. در ویندوز ۷ داریم:

حامد شیرزاد بازدید : 395 سه شنبه 01 آذر 1390 نظرات (0)

ترفندی که معرفی می‌کنیم ترفند بسیار ساده‌ای است که نیازی به هیچ تنظیماتی ندارد! همه آنچه نیازمندید یک مرورگر گوگل کروم است که برروی سیستم عامل شما نصب شده باشد. برای مشاهده تمام فایل‌ها و پوشه‌ها فقط کافی است در نوار آدرس مرورگر کروم آدرس محل مورد نظر را وارد و اینتر را فشار دهید؛ تمام!

hidden files chrome دسترسی آسان و فوری به فایلها و پوشه های مخفی

حامد شیرزاد بازدید : 518 سه شنبه 01 آذر 1390 نظرات (0)

۱- مقدمه ای بر طرز کار اسکنرهای اثر انگشت (Fingerprint Scanners)
اسکن رایانه ای اثر انگشت انسان ها برای سالیان سال سوژه اصلی فیلم های جاسوسی و هیجان انگیز سینما بود. تا این اواخر، استفاده از تکنولوژی آنها در دنیای واقعی خیلی عجیب و غریب محسوب می شد. اما در چند سال اخیر  استفاده از این اسکنر ها به ظاهر در همه جا آغاز شده- از ایستگاه های پلیس، ساختمان ها و مراکز امنیتی حساس گرفته تا صفحه کلید کامپیوتر. شما می توانید به دلخواه خود یک اسکنر اثر انگشت شخصی که از طریق درگاه (Port) یواس بی به رایانه متصل می شود را با کمتر از 100 دلار خریداری کرده و با استفاده از این تکنولوژی در دسترس، کامپیوتر خود را با یک فناوری پیشرفته بیومتریک محافظت نمایید. به این ترتیب به جای رمزعبور معمول ، برای ورود به رایانه نیاز به اسکن اثر انگشت متمایز هر شخص برای ورود به سیستم می باشد.
در این مقاله ما به اسرار پشت پرده این پیشرفت چشمگیر در بالا بردن امنیت داده ها و امنیت هویت خواهیم پرداخت. همچنین خواهیم دید که اسکنر اثر انگشت نسبت به سیستم های امنیتی معمولی برخوردار از رمزعبور و سیستم های کارت هویت چه مزایا و معایبی دارد و مقایسه ای بین این ها انجام می دهیم، و شرح می دهیم که هر کدام از این سیستم های امنیتی در چه صورت شکست می خورد.

حامد شیرزاد بازدید : 491 سه شنبه 01 آذر 1390 نظرات (0)


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

۱٫ الان وب‌جی‌‍‌ال (WebGL) به صورت پیش‌فرض در گوگل‌کروم فعال است و شما می‌توانید  کارکردهای تری‌دی وب را از گالری گوگل امتحان کنید . بادی بروزر (Body Browser) ، یک گوگل ارس برای بدن انسان ، و همچنین آکواریم وب‌جی‌ال را را ازدست ندهید .


۲٫ گوگل اینستنت (Google Instant) الان با نوار آدرس کروم یکپارچه شده است ، اما این خصیصه برای همه نیست به این دلیل که صفحات وب را به طور اتوماتیک آن طور که شما تایپ می‌کنید بارگذاری می‌کند . با طور پیش‌فرض غیرفعال است ، بنا برایم شما بایست برای فعال کردن آن گزینه “فعالسازی اینستنت جهت جستجو و بررسی سریعتر” را در قسمت دیالوگ آپشن تیک بزنید .

حامد شیرزاد بازدید : 628 سه شنبه 01 آذر 1390 نظرات (0)


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

این مطلب راهنمای کوتاهی است برای نوشتن یک فرمول مانند آنچه که در شکل بالا مشاهده می کنید.
در Office 2003 برای قرار دادن یک فرمول در متن تان کافیست از منوی Insert بر روی Object کلیک کنید.در زبانه Create New و در قسمت Object type به دنبال Microsoft Equation 3.0 گشته و آن را انتخاب کنید و دکمه OK را بزنید. در صورتی که در لیست شما وجود ندارد، باید خودتان زحمت نصبش را بکشید.روش نصب Microsoft Equation 3.0 در پایین همین پست شرح داده شده است .
اما در Office 2007 به نوار Insert بروید و در سمت راست آن دکمه “Equation” را بیابید.با کلیک بر روی آن خواهید توانست فرمول های خود را بنویسید.

بری نصب Microsoft Equation 3.0 در کلیه نسخه های Microsoft Office مراحل زیر را طی کنید:

حامد شیرزاد بازدید : 459 یکشنبه 29 آبان 1390 نظرات (0)

closetray پرسش و پاسخ: ساخت میانبر Close برای بستن نرم افزاری DVD RWها

یکی از خوانندگان محترم مجله سوالی در زمینه باز و بسته کردن نرم افزاری DVD-RWها و درایوهای نوری کرده بودند و اینکه چطور می‌توانیم در کنار گزینه Eject دکمه یا میانبر نرم افزاری نیز برای بستن درایو داشته باشیم؟ با ما باشید.

همانطور که می‌دانید در ویندوز دکمه Eject نرم افزاری برای درایوهای نوری وجود دارد اما برای بستن درایوها راهی بجز زدن دکمه سخت افزاری درایو وجود ندارد؛ برای ایجاد گزینه Close در کنار Eject هک نرم افزاری آماده کرده‌ایم که توسط ویرایش رجیستری این دکمه را برای شما فعال خواهد کرد تنها کافیست فایل را دانلود کنید و از حالت فشرده خارج نمایید و روی closetray دوبار کلیک کنید تا مانند شکل گزینه Close Tray برای شما فعال شود. اگر دوست داشتید این تغییرات را به حالت اول بازگردانید از کلید رجیستری undo استفاده کنید.

دانلود فایل رجیستری اضافه کردن Close به گزینه های DVD-RW


حامد شیرزاد بازدید : 487 یکشنبه 29 آبان 1390 نظرات (0)
این روزها اگر تلاش کنید رویدادی یا مراسمی  را بدون فراهم آوردن دسترسی به شبکه بیسیم مطمئن برگزار کنید، بسیاری از مخاطبان پیدایشان نمیشود. چه اینکه آن رویداد یک جلسه شغلی، برنامه بازاریابی، یا دیگر موارد باشد، عصر دیجیتال، ارتباط سریع و مطمئن را نه تنها برای کامپیوترها بلکه برای بسیاری از دستگاههای موبایل حیاتی و لازم کرده است

ممکن است بگویید که ابزاری های ارتباطی 3G در بسیاری مواقع این مشکل را حل می کنند. اما آیا واقعا می توانید به شرکت مخابراتی تان اعتماد کرده و ریسک چنین کاری را بپذیرید؟ آقای لویس آلوارز در واقع نمیتواند به این شرکت ها اطمینان داشته باشد. شرکت ۱۹ نفره او با نام Alvarez Technology Group اخیرا شبکه وای فای موقتی را برای سه روز در فستیوال جاز Monterey راه انداخته است. این شبکه از ۳۵۰۰۰ تماشاچی، کارمند و مجری این برنامه پشتیبانی میکند که هر کدام از این گروهها نیازهای متفاوتی دارند. علاوه بر این، مکان کنفرانس چالشی اساسی را در پی دارد: ارتباط بیسیم ضعیف برای شرکتهای خدمات تلفن همراه شناخته شده.

آقای آلوارز در مصاحبهای میگوید، جایی که فستیوال برپا شده بود همواره به دلیل نقصهای خدماتدهندههای سنتی مخصوصا AT&T و Verizon، کاربران دستگاههای تلفن همراه با مشکلاتی مواجه بودند.

بنابراین آلوارز و گروهش شروع به کار کردند. شرکت او در گذشته انواع مختلفی از شبکههای بیسیم را مجموعههای مسکونی برپا نموده و اداره کرده بود. اما هیچ گاه این کار را برای چنین رویداد کوتاه مدتی و شلوغی انجام نداده بود. آن چیزی که آنها آموختند و آن چیزی که آلوارز به دیگر کسب و کارهای کوچک و متوسط برای راهاندازی شبکههای خود توصیه میکند در زیر آورده شده است:

حامد شیرزاد بازدید : 483 یکشنبه 29 آبان 1390 نظرات (0)

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

طراح: Michael Harbounand, Thomas Chabrier, Antonie Coubronne

حامد شیرزاد بازدید : 369 یکشنبه 29 آبان 1390 نظرات (0)


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


حامد شیرزاد بازدید : 481 یکشنبه 29 آبان 1390 نظرات (0)

00-w400.jpg

اگر جزو کاربرانی هستید که برای انجام کارهایشان به چندین کامپیوتر مختلف نیاز دارند، پس برای همراه داشتن اطلاعات و جابه جایی آنها احتمالا همیشه از فلش های USB استفاده می کنید. از آنجایی که اصولا اطلاعات شغلی، داده هایی مهم و حیاتی هستند، حتما باید حواستان به امنیت آنها نیز باشد.
یکی از برنامه های رمزگذاری اطلاعات کول دیسک یا کامپیوتر که قبلا معرفی کردیم TrueCrypt است. این برنامه را از روی کول دیسک هم می توانید اجرا کنید. اما برای استفاده از آن باید به اکانت ادمین سیستم دسترسی داشته باشید.
از دیگر نرم افزارهای رایگان و مناسب برای حفظ حریم شخصی و امنیت اطلاعات روی کول دیسک، می توان به FreeOTFE اشاره کرد. این برنامه نیز همچون TrueCrypt، اطلاعات را رمزگذاری می کند تا هر فردی امکان دسترسی به آنها را نداشته باشد. یکی از مزایای FreeOTFE نسبت به TrueCrypt این است که برنامه مرورگر فایل ویژه خودش را دارد و برای کار به دسترسی شما به اکانت ادمین کامپیوتری که با آن کار می کنید نیازی نیست.
FreeOTFE، برای اجرا، نیاز به نصب هیچ برنامه خاصی ندارد. اکسپلورر FreeOTFE، نسخه محدود شده FreeOTFE است که به کاربر امکان دسترسی به فایل های .vol را می دهد. اما برای فایل های موردنظر، نام درایو مشخصی تعریف نمی کند. همه فایل های قابل دسترسی در فایل مورد نظر، باید پیش از باز شدن از حالت فشرده خارج شوند.
در این مقاله، به شما یاد خواهیم داد چگونه از برنامه اصلی FreeOTFE استفاده کنید. نرم افزار اکسپلورر FreeOTFE نیز نصب و استفاده بسیار آسانی دارد. این دو برنامه شبیه هم هستند و فقط در یکی دو مورد با هم تفاوت دارند. شما می توانید از هر دو این نرم افزارها به جای یکدیگر استفاده کنید. همه فایل هایی که با پسوند .vol ذخیره می کنید، با هر دو این نرم افزارها قابل باز و اجرا شدن هستند.
در مرحله نخست، باید هر دو نرم افزار FreeOTFE و FreeOTFE Explorer را از freeotfe.org دانلود کنید. سپس، برای اجرای FreeOTFE باید مجوز دسترسی ادمین را داشته باشید. برای این منظور، روی فایل FreeOTFE.exe راست کلیک کرده و گزینه Run as administrator را انتخاب کنید.
نکته: اگر مجوز دسترسی ادمین را برای اجرای FreeOTFE نداشتید از نرم افزار FreeOTFE اکسپلورر استفاده کنید.

حامد شیرزاد بازدید : 518 شنبه 28 آبان 1390 نظرات (0)
حامد شیرزاد بازدید : 546 شنبه 28 آبان 1390 نظرات (0)
Mouse Management functions
 
 
#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<process.h>
void main(){
     clrscr();_setcursortype(_NOCURSOR);
     REGS regs;
     //Initializing and showing mouse
     regs.x.ax=0;int86(0x33,®s,®s);
     regs.x.ax=1;int86(0x33,®s,®s);
     //Reading mouse click
     for( ; ; ){
     //Updating mouse motions
     regs.x.ax=3;int86(0x33,®s,®s);
     //Reading mouse click
     if(regs.x.bx==1){
        gotoxy(2,2);textbackground(1);textcolor(15);
        cprintf("Left Button Clicked!");
        delay(100);
        }
     if(regs.x.bx==2){
        gotoxy(2,2);textcolor(15);textbackground(1);
        cprintf("Right Button Clicked!");
        delay(100);
        }
     gotoxy(1,2);textbackground(1);cprintf("                         ");
     //Printing mouse coordinates
     gotoxy(1,1);textcolor(11);textbackground(6);
     cprintf(" Mouse Position:(%3d,%3d)",regs.x.cx,regs.x.dx);
     while(kbhit()){exit(0);}
    }
}
حامد شیرزاد بازدید : 2676 شنبه 28 آبان 1390 نظرات (0)
Binary Search Tree
 
#include<iostream.h>
#include<conio.h>
#include<alloc.h>
 
struct tree
 {
  int data;
  tree *left;
  tree *right;
 }*sptr,*q;
  void rightcheck();
  void leftcheck();
  void search();
 
  int insdata;
  tree *node;
  void main()
   {
    clrscr();
    node=new tree;
    cout<<"   PLEASE  PUT  THE root->>";
    cin>>node->data;
    sptr=node;
    q=sptr;
    node->left=NULL;
    node->right=NULL;
    cout<<"   GIVE THE child->>";
    cin>>insdata;
    search();
    while(insdata!=0)
    {
     if(insdata>sptr->data)
        rightcheck();
     else
        leftcheck();
        cout<<"   GIVE  THE  child->>";
        cin>>insdata;
        search();
        sptr=node;
       }
      getch();
      }
     void rightcheck()
       {
     if(sptr->right==NULL)
       {
        cout<<"    "<<insdata<<" IS THE  RIGHT  child of "<<q->data<<endl;
        sptr->right=new tree;
        sptr=sptr->right;
        sptr->data=insdata;
        sptr->left=NULL;
        sptr->right=NULL;
        q=node;
       }
     else
        {
         if(insdata>sptr->data)
          {
           sptr=sptr->right;
           q=sptr;
           if(insdata>sptr->data)
        rightcheck();
        else
        leftcheck();
         }
         else
          {
        sptr=sptr->left;
        q=sptr;
        leftcheck();
          }
         }
    }
         void leftcheck()
    {
         if(sptr->left==NULL)
          {
           cout<<"   "<<insdata<<" IS THE LEFT child of "<<q->data<<endl;
           sptr->left=new tree;
           sptr=sptr->left;
           sptr->data=insdata;
           sptr->right=NULL;
           sptr->left=NULL;
           q=node;
          }
     else{
         if(insdata<sptr->data)
          {
        sptr=sptr->left;
        q=sptr;
        if(insdata>sptr->data)
        rightcheck();
        else
        leftcheck();
          }
         else
          {
        sptr=sptr->right;
        q=sptr;
        rightcheck();}
          }
    }
 
       void search()
    {
       sptr=node;
       while(sptr!=NULL)
    {
      if(insdata==sptr->data)
        {
        cout<<"This is not insertable.";
        cout<<"nInsert child ";
        cin>>insdata;
        search();
        break;
        }
      else
      {
        if(insdata>sptr->data)
        sptr=sptr->right;
        else
        sptr=sptr->left;
     }
       }
     sptr=node;
 
       }
حامد شیرزاد بازدید : 589 شنبه 28 آبان 1390 نظرات (0)

 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
clrscr();
float a,b,c,d,l,m,n,k,p,D,q,r,s,x,y,z;
printf("PROGRAM TO SOLVE THREE VARIABLE LINEAR SIMULTANEOUS
EQUATIONS
 
");
printf("The equations are of the
form:
 
ax+by+cz+d=0
lx+my+nz+k=0
px+qy+rz+s=0
 
");
printf("Enter the coefficients in the order a,b,c,d,l,m,n,k,p,q,r,s
");
scanf("%f%f%f%f%f%f%f%f%f%f%f%f",&a,&b,&c,&d,&l,&m,&n,&k,&p,&q,&r,&s);
printf("
The equations you have input are:
 
");
printf("  %.2f*x + %.2f*y + %.2f*z + %.2f = 0
",a,b,c,d);
printf("  %.2f*x + %.2f*y + %.2f*z + %.2f = 0
",l,m,n,k);
printf("  %.2f*x + %.2f*y + %.2f*z + %.2f = 0
 
",p,q,r,s);
 
 D = (a*m*r+b*p*n+c*l*q)-(a*n*q+b*l*r+c*m*p);
 x = ((b*r*k+c*m*s+d*n*q)-(b*n*s+c*q*k+d*m*r))/D;
 y = ((a*n*s+c*p*k+d*l*r)-(a*r*k+c*l*s+d*n*p))/D;
 z = ((a*q*k+b*l*s+d*m*p)-(a*m*s+b*p*k+d*l*q))/D;
 
printf("The solutions to the above three equations are :
 
");
printf("  x = %5.2f
  y = %5.2f
  z = %5.2f
",x,y,z);
getch();
return 0;
}
حامد شیرزاد بازدید : 1466 شنبه 28 آبان 1390 نظرات (0)
Ultimate sol. to world famous game Sudoku
 
/* SU DOKU */
 
#include <iostream.h>
void main()
{
    int k[9][9],K[9][9];
    int i,j,i1,j1,i2,j2;
    int error,temp;
    int count=0;
 
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
        K[i][j]=0;
 
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
    {
        cin>>K[i][j];
        k[i][j]=K[i][j];
    }
    cout<<"O.K.? (Enter 0 if OK, 1 to update): ";
    cin>>error;
    if(error==0)
        goto matrixvalidation;
 
matrixupdation:
    while(1)
    {
        cout<<"Enter Row, Col, Revised number:(0 to exit) ";
        cin>>i;
        if(i==0)break;
        cin>>j>>temp;
        if(i>0&&j>0&&temp>=0&&i<10&&j<10&&temp<10)
        {
            K[i-1][j-1]=temp;
            k[i-1][j-1]=temp;
        }
        else
            cout<<"Enter row/column 1 to 9 & number 0 to 9 only.
";
    }
 
matrixvalidation:
    cout<<"
Input matrix:
";
    for(i=0;i<9;i++)
    {
        for(j=0;j<9;j++)
            cout<<k[i][j]<<" ";
        cout<<"
";
    }
 
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
        if(k[i][j]<0||k[i][j]>9)
        {
            cout<<"
"<<i+1<<" "<<j+1<<" "<<k[i][j];
            cout<<"
Input matrix error.";
            cout<<"
Numbers should be 1 to 9 only.
 
";
            goto matrixupdation;
        }
 
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
    {
        if(k[i][j]==0)continue;
        error=0;
        for(i1=0;i1<9;i1++)
            if(i!=i1&&k[i][j]==k[i1][j])
            {
                error=1;
                i2=i1;
                j2=j;
            }
        for(j1=0;j1<9;j1++)
            if(j!=j1&&k[i][j]==k[i][j1])
            {
                error=1;
                i2=i;
                j2=j1;
            }
        for(i1=0;i1<9;i1++)
        for(j1=0;j1<9;j1++)
            if((i!=i1||j!=j1)&&i/3==i1/3&&j/3==j1/3&&k[i][j]==k[i1][j1])
            {
                error=1;
                i2=i1;
                j2=j1;
            }
        if(error)
        {
            cout<<"
"<<i+1<<" "<<j+1<<" "<<k[i][j];
            cout<<"
"<<i2+1<<" "<<j2+1<<" "<<k[i2][j2];
            cout<<"
Input matrix error.";
            cout<<"
A number has been repeated in the same row, col or
block.
 
";
            goto matrixupdation;
        }
    }
 
/* Logic starts: */
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
    {
        if(K[i][j]>0) goto chksol;
        for(k[i][j]++;k[i][j]<=9;k[i][j]++)
        {
            error=0;
            for(i1=0;i1<9;i1++)
                if(i!=i1&&k[i][j]==k[i1][j])error=1;
            for(j1=0;j1<9;j1++)
                if(j!=j1&&k[i][j]==k[i][j1])error=1;
            for(i1=0;i1<9;i1++)
            for(j1=0;j1<9;j1++)
                if((i!=i1||j!=j1)&&i/3==i1/3&&j/3==j1/3&&k[i][j]==k[i1][j1])
                    error=1;
            if(error==0)break;
        }
        if(k[i][j]>9)
        {
            k[i][j]=0;
            do
            {
                if(i==0&&j==0)goto nomoresol;
                if(j>0)j--;else{j=8;i--;}
            }while(K[i][j]>0);
            j--;
        }
chksol:    if(i==8&&j==8)
        {
حامد شیرزاد بازدید : 1049 شنبه 28 آبان 1390 نظرات (0)
عزیزانی که درس محاسبات عددی روگذرونده باشند با این روش ها آشنایی دارند. در اینجا کد پیاده سازی این الگوریتم ها رو برای مطالعه بیشتر قرار میدم
Jacobi itterative and gauss seidal method to solve roots
 
this is a program from numerical to calculate the root of
the given system ,it will check its conditions and then perform the
operation on that system,esle it will tell u that system is not diagonally dominent 
,,,,in this program the functions used can be used in other program ,,
 
 
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>
 
float a1[4],a2[4],a3[4];                       /* Array declaration */
void show();                                   /* function declaration 
*/
void getdata(float [],float [],float []);      /*    //   //    //    
*/
void display(float [],float [],float []);      /*    //   //    //    
*/
int diagonally();
void swap(float [],float []);                  /*    //   //    //    
*/
void jacobi(float [],float [],float []);       /*    //   //    //    
*/
void gauss(float [],float [],float []);
void answer();
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
/
/*....................MAIN FUNCTION OF METHOD............*/
void main()                              /* main function definition   
*/
  {
      int  count=4;                           /* { main function body} 
*/
      clrscr();
 
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^"<<endl;
      cout<<"..................THIS IS VALID ONLY FOR JACOBI ITTERATIVE
METHOD............."<<endl;
 
cout<<"___________________________________________________________________
___________"<<endl;
      show();                            /*  function calling  */
      getdata(a1,a2,a3);                 /*  function calling  */
      clrscr();
      cout<<endl<<endl;
      display(a1,a2,a3);                    /*  function calling  */
      count=diagonally();                   /*  function calling  */
      switch (count)
     {
      case 0:
           {
        answer();        /*  function calling */
        break;
           }
      case 2:
           {display(a1,a2,a3);
        answer();       /*  function calling */
        break;
           }
      default:
           {
        cout<<"SORRY;YOUR SYSTEM IS NOT DIAGONALLY DOMINENT";
        break;
           }
     }
 getch();
  }
////////////////////////Function To Check
Diagonality////////////////////////
int diagonally()
  {
     int f=4,g=4 ,h=4;
     int count=0;
     float temp[4];
     if(fabs(a1[0])<(fabs(a1[1])+fabs(a1[2])))
    {count++;  f=1;}
     if(fabs(a2[1])<(fabs(a2[0])+fabs(a2[2])))
    {count++;  g=2;}
     if(fabs(a3[2])<(fabs(a3[0])+fabs(a3[1])))
    {count++;  h=3;}
     if(f==1&&g==2&&h==4)
    swap(a1,a2);                           /*  function calling  */
     if(f==1&&h==3&&g==4)
    swap(a1,a3);                           /*  function calling  */
     if(g==2&&h==3&&f==4)
    swap(a2,a3);                           /*  function calling  */
 
   return(count);
  }
////////////////////////////Function for jacobi itterative
method/////////////////////////
void jacobi(float a[],float b[],float c[]) /*function definition */
  {
     float temp[3];
     long float j1,j2,j3;
     cout<<endl<<"please enter the initial guess:"<<endl;
     cout<<endl<<"X(1) =";
     cin>>j1;
     cout<<endl<<"X(2) =";
     cin>>j2;
     cout<<endl<<"X(3) =";
     cin>>j3;
 
cout<<"-------------------------------------------------------------------
----";
 
cout<<":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::";
 
cout<<"___________________________________________________________________
____";
     cout<<endl<<endl<<"iterrations #"<<"  "<<"  X(1)"<<"
X(2)"<<"           X(3)";
     cout<<endl<<"   0"<<setw(17)<<j1<<setw(15)<<j2<<setw(14)<<j3;
     cout<<endl;
 
     for(int s=1;s<=20;s++)
     {
      temp[0]=j1;temp[1]=j2;temp[2]=j3;
      j1=(a[3]-a[1]*temp[1]-a[2]*temp[2])/a[0];
      j2=(b[3]-b[0]*temp[0]-b[2]*temp[2])/b[1];
      j3=(c[3]-c[0]*temp[0]-c[1]*temp[1])/c[2];
      cout<<"   "<<s<<setw(17)<<j1<<setw(15)<<j2<<setw(14)<<j3<<endl;
      if(j1==temp[0]&&j2==temp[1]&&j3==temp[2])
         break;
     }
  }
//////////////////////////Function Of
Swaping////////////////////////////////////
void swap(float a[],float b[])          /*  function definition   */
  {
   float temp[4];
 
cout<<"-------------------------------------------------------------------
-------------"<<endl;

تعداد صفحات : 15

درباره ما
به نام آنکه جان را فکرت آموخت در این وبلاگ سعی می شود به صورت تخصصی به مباحث مربوط به مهندسی نرم افزار به خصوص برنامه نویسی کامپیوتری پرداخته شود. مدیر وبلاگ : حامد شیرزاد
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 431
  • کل نظرات : 9
  • افراد آنلاین : 3
  • تعداد اعضا : 109
  • آی پی امروز : 20
  • آی پی دیروز : 46
  • بازدید امروز : 98
  • باردید دیروز : 99
  • گوگل امروز : 0
  • گوگل دیروز : 1
  • بازدید هفته : 1,512
  • بازدید ماه : 5,436
  • بازدید سال : 33,456
  • بازدید کلی : 698,631
  • کدهای اختصاصی

    قالب وبلاگ