عنوان | پاسخ | بازدید | توسط |
دانلود جزوه ی سیستم عامل پیشرفته استاد برومند نیا | 0 | 2860 | admin |
دانلود نمونه سوالات درس طراحی الگوریتم پیشرفته | 0 | 1722 | admin |
دانلود نمونه سوالات درس سیستم عامل پیشرفته | 0 | 3772 | admin |
دانلود جزوه سیستم عامل پیشرفته - استاد زیاری | 0 | 2081 | admin |
اسلاید های درس سیستم عامل پیشرفته :: دکتر برومند نیا | 0 | 1871 | admin |
مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:
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;}
function is_valid_email($email)
{
if(preg_match("/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/", $email) > 0)
return true;
else
return false;
}
لازمه ی استفاده از این 20 قانون این است که آمادگی داشته باشید تا هر تغییر لازم را بپذیرید. آمادگی انجام اشتباهات زیاد را داشته باشید و از آنها درس بگیرید و پیش بروید.
ادیسون در سنین پیری پس از کشف لامپ، یکی از ثروتمندان آمریکا به
شمار میرفت و درآمد سرشارش را تمام و کمال در آزمایشگاه مجهزش که ساختمان بزرگی بود
هزینه می کرد… این آزمایشگاه، بزرگترین عشق پیرمرد بود. هر روز اختراعی جدید در آن
شکل می گرفت تا آماده بهینه سازی و ورود به بازار شود.
در همین روزها بود که
نیمه های شب از اداره آتش نشانی به پسر ادیسون اطلاع دادند، آزمایشگاه پدرش در آتش
می سوزد و حقیقتا کاری از دست کسی بر نمی آید و تمام تلاش ماموان فقط برای جلوگیری
از گسترش آتش به سایر ساختمانها است! آنها تقاضا داشتند که موضوع به نحو قابل قبولی
به اطلاع پیرمرد رسانده شود…
پسر با خود اندیشید که احتمالا پیرمرد با شنیدن
این خبر سکته می کند و لذا از بیدار کردن او منصرف شد و خودش را به محل حادثه رساند
و با کمال تعجب دید که پیرمرد در مقابل ساختمان آزمایشگاه روی یک صندلی نشسته است و
سوختن حاصل تمام عمرش را نظاره می کند!!!
براي اينكه كاربر نتواند با استفاده از كليدهاي 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;
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;
{*********************************************************************** 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;
procedure CenterForm (AForm: TForm); var ALeft, ATop: integer; begin ALeft := (Screen.Width - AForm.Width) div 2; ATop := (Screen.Height - AForm.Height) div 2; { prevents form being twice repainted! } AForm.SetBounds (ALeft, ATop, AForm.Width, AForm.Height); end;
پرینترهای امروزی دو مدل ارتباطی دارند. یا مستقیما به کامپیوتر ما متصل میگردند که پرینترهای خانگی و بسیاری از پرینترهای موجود از این نوع ارتباط استفاده میکنند و یا قابلیت اتصال به شبکه را دارند (بصورت کابلی یا وایرلس). امروز قصد داریم آموزش گام به گامی را ارائه کنیم که بتوانید چاپگر خود را با دیگر کاربران درون شبکه به اشتراک بگذارید؛ به برخی از آنها اجازه استفاده و به برخی این اجازه را ندهید! با ما باشید.
برای به اشتراک گذاری و اتصال پرینتر به شبکه ابتدا آن را روشن کرده و به کامپیوتر متصل نمایید. اگر کامپیوتر دارای پورت شبکه است میتوانید کابل شبکه را به آن اتصال دهید. سپس file and printer sharing را روشن کنید. در ویندوز ۷ داریم:
۱- مقدمه ای بر طرز کار اسکنرهای اثر انگشت (Fingerprint Scanners)
اسکن رایانه ای اثر انگشت انسان ها برای سالیان سال سوژه اصلی فیلم های
جاسوسی و هیجان انگیز سینما بود. تا این اواخر، استفاده از تکنولوژی آنها
در دنیای واقعی خیلی عجیب و غریب محسوب می شد. اما در چند سال اخیر
استفاده از این اسکنر ها به ظاهر در همه جا آغاز شده- از ایستگاه های پلیس،
ساختمان ها و مراکز امنیتی حساس گرفته تا صفحه کلید کامپیوتر. شما می
توانید به دلخواه خود یک اسکنر اثر انگشت شخصی که از طریق درگاه (Port)
یواس بی به رایانه متصل می شود را با کمتر از 100 دلار خریداری کرده و با
استفاده از این تکنولوژی در دسترس، کامپیوتر خود را با یک فناوری پیشرفته
بیومتریک محافظت نمایید. به این ترتیب به جای رمزعبور معمول ، برای ورود به
رایانه نیاز به اسکن اثر انگشت متمایز هر شخص برای ورود به سیستم می باشد.
در این مقاله ما به اسرار پشت پرده این پیشرفت چشمگیر در بالا بردن امنیت
داده ها و امنیت هویت خواهیم پرداخت. همچنین خواهیم دید که اسکنر اثر انگشت
نسبت به سیستم های امنیتی معمولی برخوردار از رمزعبور و سیستم های کارت
هویت چه مزایا و معایبی دارد و مقایسه ای بین این ها انجام می دهیم، و شرح
می دهیم که هر کدام از این سیستم های امنیتی در چه صورت شکست می خورد.
گوگل کروم ۹ همینک در دسترس میباشد ، دو ماه بعد از عرضه قبلی و دو هفته بعد از ضرب الاجل خود گوگل . اینجا ۹ خصیصه وجود دارد که شما باید در این نسخه امتحان کنید :
۱٫ الان وبجیال (WebGL) به صورت پیشفرض در گوگلکروم فعال است و شما میتوانید کارکردهای تریدی وب را از گالری گوگل امتحان کنید . بادی بروزر (Body Browser) ، یک گوگل ارس برای بدن انسان ، و همچنین آکواریم وبجیال را را ازدست ندهید .
۲٫ گوگل اینستنت (Google Instant) الان با نوار آدرس کروم یکپارچه شده است
، اما این خصیصه برای همه نیست به این دلیل که صفحات وب را به طور
اتوماتیک آن طور که شما تایپ میکنید بارگذاری میکند . با طور پیشفرض
غیرفعال است ، بنا برایم شما بایست برای فعال کردن آن گزینه “فعالسازی
اینستنت جهت جستجو و بررسی سریعتر” را در قسمت دیالوگ آپشن تیک بزنید .
اگر دانشجوی یکی از رشته های فنی-مهندسی بوده باشید حتما گذرتان به نوشتن فرمول ها و معادلات ریاضی در گزارش های کار ، تحقیق ها و یا پروژه هایتان افتاده است.نوشتن فرمول های ریاضی چندان سخت نیست اما هر چقدر هم که سخت باشد گاهی مجبور می شوید از این قابلیت استفاده کنید.البته مگر اینکه بخواهید فرمول ها را با دست خط مبارک خودتان بنویسید !!!
این مطلب راهنمای کوتاهی است برای نوشتن یک فرمول مانند آنچه که در شکل بالا مشاهده می کنید.
در 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 مراحل زیر را طی کنید:
یکی از خوانندگان محترم مجله سوالی در زمینه باز و بسته کردن نرم افزاری DVD-RWها و درایوهای نوری کرده بودند و اینکه چطور میتوانیم در کنار گزینه Eject دکمه یا میانبر نرم افزاری نیز برای بستن درایو داشته باشیم؟ با ما باشید.
همانطور که میدانید در ویندوز دکمه Eject نرم افزاری برای درایوهای نوری وجود دارد اما برای بستن درایوها راهی بجز زدن دکمه سخت افزاری درایو وجود ندارد؛ برای ایجاد گزینه Close در کنار Eject هک نرم افزاری آماده کردهایم که توسط ویرایش رجیستری این دکمه را برای شما فعال خواهد کرد تنها کافیست فایل را دانلود کنید و از حالت فشرده خارج نمایید و روی closetray دوبار کلیک کنید تا مانند شکل گزینه Close Tray برای شما فعال شود. اگر دوست داشتید این تغییرات را به حالت اول بازگردانید از کلید رجیستری undo استفاده کنید.
دانلود فایل رجیستری اضافه کردن Close به گزینه های DVD-RW
ممکن است بگویید که ابزاری های ارتباطی 3G در بسیاری مواقع این مشکل را حل می کنند. اما آیا واقعا می توانید به شرکت مخابراتی تان اعتماد کرده و ریسک چنین کاری را بپذیرید؟ آقای لویس آلوارز در واقع نمیتواند به این شرکت ها اطمینان داشته باشد. شرکت ۱۹ نفره او با نام Alvarez Technology Group اخیرا شبکه وای فای موقتی را برای سه روز در فستیوال جاز Monterey راه انداخته است. این شبکه از ۳۵۰۰۰ تماشاچی، کارمند و مجری این برنامه پشتیبانی میکند که هر کدام از این گروهها نیازهای متفاوتی دارند. علاوه بر این، مکان کنفرانس چالشی اساسی را در پی دارد: ارتباط بیسیم ضعیف برای شرکتهای خدمات تلفن همراه شناخته شده.
آقای آلوارز در مصاحبهای میگوید، جایی که فستیوال برپا شده بود همواره به دلیل نقصهای خدمات دهندههای سنتی مخصوصا AT&T و Verizon، کاربران دستگاههای تلفن همراه با مشکلاتی مواجه بودند.
بنابراین آلوارز و گروهش شروع به کار کردند. شرکت او در گذشته انواع مختلفی از شبکههای بیسیم را مجموعههای مسکونی برپا نموده و اداره کرده بود. اما هیچ گاه این کار را برای چنین رویداد کوتاه مدتی و شلوغی انجام نداده بود. آن چیزی که آنها آموختند و آن چیزی که آلوارز به دیگر کسب و کارهای کوچک و متوسط برای راهاندازی شبکههای خود توصیه میکند در زیر آورده شده است:
اگر شما هم یکی از افرادی هستید، که از هدست بلوتوثی استفاده می کنید، حتما از دردسرهای اتصال و قرار دادن آن بر روی گوش مخصوصا زمانی که سریع می خواهید پاسخگوی تلفن باشید با خبر هستید، بلوتوث زیر یک ابتکار جالب از طراح و استفاده از یک زاویه کشویی برای قرار گرفتن بلوتوث بالای تلفن همراه است! هدست بلوتوثی خود را بعد از استفاده به صورت کشویی به بالای تلفن همراه خود متصل کنید! یک نکته جالب اینکه لایه میانی این هدست بلوتوثی شارژر است و می توانید از آن برای شارژ تلفن همراه استفاده کنید.
طراح: Michael Harbounand, Thomas Chabrier, Antonie Coubronne
همگی
ما کاربران رایانه هستیم و تا حدی با روندهای جاری آن آشنا هستیم اما گاهی
خطاهایی ساده مرتکب می شویم که هزینه آنها اغلب بالا است. با هم برخی از
این موارد را می بینیم.
اگر جزو کاربرانی هستید که برای انجام کارهایشان به چندین کامپیوتر مختلف
نیاز دارند، پس برای همراه داشتن اطلاعات و جابه جایی آنها احتمالا همیشه
از فلش های 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 اکسپلورر استفاده کنید.
- abort()
- abs()
- acos()
- asin()
- atan()
- atexit()
- atof()
- atoi()
- atol()
- ceil()
- clock()
- cosh()
- ctime()
- div()
- exit()
- fabs()
- floor()
- fmod()
- getchar()
- getenv()
- isalnum()
- isalpha()
- isdigit()
- isgraph()
- ispunct()
- isspace()
- isupper()
- kbhit()
- log10()
- log2()
- log()
- memcmp()
- modf()
- pow()
- putchar()
- putenv()
- puts()
- rand()
- remove()
- rename()
- sinh()
- sqrt()
- srand()
- strcat()
- strcmp()
- strerror()
- time()
- tolower()
- toupper()
MessageBox.Show( "Monitor Size:" +
SystemInformation.PrimaryMonitorSize );
using Microsoft.Win32;
...
RegistryKey masterKey = Registry.LocalMachine.CreateSubKey
("SOFTWARE\\Test\\Preferences");
if (masterKey == null)
{
Console.WriteLine ("Null Masterkey!");
}
else
{
try
{
masterKey.SetValue ("MyKey", "MyValue");
}
catch (Exception ex)
{
Console.WriteLine (ex.Message);
}
finally
{
masterKey.Close();
}
}
using Microsoft.Win32;
...
RegistryKey masterKey = Registry.LocalMachine.CreateSubKey
("SOFTWARE\Test\Preferences");
if (masterKey == null)
{
Console.WriteLine ("Null Masterkey!");
}
else
{
Console.WriteLine ("MyKey = {0}", masterKey.GetValue ("MyKey"));
}
masterKey.Close();
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);}
}
}
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;
}
#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;
}
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)
{
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