چرا وقتي سيستم را با ويندوز پارتيشن بندي مي کنم هميشه 8 مگابايت فضا در پايان اضافه مي ماند و به هيچ
پاسخ :
در دو وضعيت شما با يک فضاي 7/8 مگابايت اختصاص نيافته بر روي درايو ديسک سخت خود برخورد خواهيد کرد:
1- يک فضاي اختصاص نيافته به ميزان 1 تا 7/8 مگابايت در انتهاي درايو ديسک سخت. اين ناحيه توسط سيستم عامل هاي ويندوز براي مقاصد ايجاد ساختارهاي ديسک ديناميک مورد استفاده قرار مي گيرد. اين فضاي اختصاص نيافته توسط Windows Disk Manager نمايش داده نمي شود. با اين حال، بعضي از نرم افزارهاي پارتيشن بندي مانند پارتيشن مجيک، پاراگون پارتيشن منجير و يا آکرونيس ديسک دايرکتور از قابليت تشخيص و اضافه کردن آن به يک پارتيشن مجاور برخوردارند. بايد توجه داشته باشيد که انجام اين کار مي تواند مشکلاتي را در زمينه ايجاد ساختارهاي ديسک ديناميک به وجود آورد.
2- يک فضاي دقيقاً 7/8 مگابايتي در ابتداي درايو ديسک سخت به صورت اختصاص نيافته باقي مانده است. به طور معمول، اين وضعيت به معناي آن است که هيچ پارتيشن اصلي( Primary) بر روي ديسک وجود ندارد و درايو ديسک سخت شما تنها حاوي يک پارتيشن Extended است. در اين گونه موارد، ويندوز حداقل فضاي مورد نياز براي ايجاد يک پارتيشن (7/8 مگابايت) را رزرو مي کند تا بتواند تنها پارتيشن Extended موجود بر روي درايو را به طور صحيح اداره کند. حتي با وجود آن که از نظر تکنيکي امکان ادغام اين فضا با پارتيشن Extended وجود دارد، اما انجام اين کار مي تواند باعث شود که توانايي دسترسي به داده هاي ذخيره شده در پارتيشن Extended را از دست بدهيد.
منبع: نشریه عصر شبکه، شماره 112.
منبع: http://i-os.ir
اگر خواهان این هستید که لینوکس را در کنار مک تجربه کنید بهترین راه نصب مجازی لینوکس است . که این کار به کمک برنامه VirtualBox امکان پذیر است . در زیر قصد داریم آموزش نصب لینوکس نسخه Ubuntu را در اختیار شما قرار دهیم .
۱) برای شروع کار شما احتیاج به آخرین نسخه Ubuntu و همچنین برنامه VirtualBox دارید که از زیر می توانید آنها را دریافت کنید :
الف) دانلود نسخه 64-bit سیستم عامل Ubuntu
ب) دانلود برنامه VirtualBox
۲) بعد از دریافت فایل های مورد نیاز برنامه VirtualBox را نصب کنید :
۳) پس از به اتمام رسیدن مراحل نصب , برنامه را اجرا کنید و گزینه New را انتخاب کنید :
۴) در قسمت Name اسم مورد نظر خود را وارد کنید و همچنین در قسمت Operating System گزینه “Linux” و ورژن “Ubuntu” را انتخاب کنید :
۵) میزان حافظه که قصد داریم به لینوکس اختصاص دهید را مشخص کنید پشنهاد می کنم بین 512MB تا 1GB باشد :
۶) گزینه Create a new virtual hard disk را انتخاب کنید :
۷) گزینه VDI را انتخاب کنید و بر روی Continue کلیک کنید :
۸) مقدار فضای که قصد دارید به لینوکس اخصاص دهید را مشخص کنید :
۹) حال یک پیش نمایش از اطلاعاتی که وارد کردید را مشاهده خواهید کرد که صورد صحت آن بر روی گزینه “Create” کلیک کنید :
۱۰) حال مشاهده خواهید کرد که درایو مجازی با اطلاعاتی مورد نظر شما ساخته شده است :
۱۱) بر روی گزینه “Settings” کلیک کنید :
۱۲) از میان گزینه های بالا “Storage” را انتخاب کنید و بر روی “IDE Controller” کلیک کنید , از پایین صحفه گزینه + را انتخاب کرده و گزینه Add CD/ DVD را انتخاب کنید :
۱۳) گزینه را انتخاب کرده و سپس سیستم عامل Ubuntu که با پسوند Iso را دانلود کردید را انتخاب کنید :
۱۴) حال شما تمامی تنظیمات را انجام داده و فقط مرحله نصب سیستم عامل باقی مانده که برای شروع گزینه “Start” کلیک کنید . مراحل نصب حدود ۲۰ تا ۳۰ دقیقه زمان می برد :
۱۵) بعد سپری شدن این مدت زمان شما می توانید سیستم عامل لینوکس را تجربه کنید :
موفق باشید
برای حمایت از نویسنده روی عکس تبلیغاتی زیر کلیک کنید
منبع: http://nazari2642hadi.persianblog.ir
ورود اطلاعات و تابع scanf()
تابع scanf() برای ورود اطلاعات از طریق صفحه کلید مورد استفاده قرار می کیره. این تابع توی فایل stdio.h قرار داره و به صورت زیر کار می کنه:
scanf("عبارت1",عبارت2);
عبارت2 آدرس متغیرهایی هست که باید از ورودی خونده بشن و عبارت1 مشخص می کنه که مقادیر ورودی چگونه باید خونده بشن و در متغیرهایی که آدرس اونها توی عبارت2 مشخص شده قرار بگیرن.
برای درک بهتر تابع scanf() بهتره اونو توی چندتا مثال توضیح بدم.قسمت آبی رنگ کد برنامه هست و قسمت سیاه نتیجه ی اجرای برنامه هست.
مثال1:
برنامه ای که طول و عرض مستطیل رو بگیره بعد مساحت و محیط اونو حساب کنه.
ورودی برنامه طول و عرض مستطیل هست که اونا رو a و b نامگذاری می کنیم. خروجی هم مساحت و محیط هست که اونارو میذاریم s و p .
#include
int main()
{
int a,b,s,p;
printf("Enter length and width:");
scanf("%d%d", &a, &b);
s=a*b;
p=2*(a+b);
printf("s=%d p=%d",s,p);
return 0;
}
Enter length and width:3 5
s=15 p=16
نکته
توی تابع scanf() وقتی می خوایم داده ها رو توی یک متغیر بریزیم کنار متغیر علامت & رو بکار می بریم.
همچنین می تونیم با یک دستور scanf() چند تا داده رو دریافت کنیم و اونا رو توی متغیر های مختلف بریزیم که باید برای هر متغیر که استفاده می کنیم مشخص کنیم که نوع اون متغیر چیه مثلا توی مثال بالا متغیر از نوع صحیح هست پس از %d استفاده کردیم.
در واقع دستور scanf("%d%d", &a, &b); ورودی ها رو توی متغیر های a و b میریزه که از نوع صحیح هستن.
توی مثال قبل وقتی برنامه رو اجرا میکنیم اول باید یک عدد رو وارد کنیم که اونو داخل a میریزه بعد space میزنیم و عدد دوم رو وارد می کنیم که اونو توی b می ریزه. بعدش هم enter می زنیم و برنامه مقدار مساحت و محیط رو برای ما حساب و چاپ می کنه. (من اعداد 3 و 5 رو وارد کردم )
مثال2:
برنامه ای که 3 عدد از ورودی بگیره و میانگین اونارو حساب کنه و اونو چاپ کنه.
توی این برنامه اعدادمون رو با دستور scanf("%d%d%d", &a, &b, &c); توی متغیرهای a و b و c می ریزیم و بعد ازشون میانگین می گیریم. فقط اینجا یک نکته هست که وقتی ما اعدادمون را از نوع صحیح می دیم میانگین ممکنه اعشاری باشه ولی وقتی این 3 تا عدد رو با هم جمع کنیم بعدش به 3 تقسیم کنیم مقداری که به ما میده عدد صحیح است به خاطر همین ما باید جمع این 3 عدد رو از صحیح به اعشاری تبدیل کنیم که برای این کار از دستور (float)(a+b+c) استفاده می کنیم.
#include
int main()
{
int a,b,c;
float ave;
printf("Enter 3 numbers:");
scanf("%d%d%d", &a, &b, &c);
ave= (float)(a+b+c)/3;
printf("ave=%f",ave);
return 0;
}
Enter 3 number:7 11 13
ave=10.333333
دستور خروجی c
- دستور ()printf : شکل کلی دستور بصورت زیر است:
printf(“پیغام و کاراکترهای کنترلی”) ;
printf(“پیغام و کاراکترهای کنترلی و کارامترهای فرمت”,نام متغیرها یا مقادیر داده ها);
فرم اول دستور بیشتر برای چاپ پیغام به کار میرود. برای مثال دستور زیر پیغام Hello world! را نشان میدهد.
printf(“Hello world!”);
فرم دوم این دستور مواقعی به کار می رود که میخواهیم مقادیر متغیرها را نیز همراه پیغام چاپ کنیم. منظور از کاراکترهای کنترلی و کاراکترهای فرمت را در جدول زیر نشان داده ام. توجه کنید که این کاراکترها را باید در داخل کوتیشن به کار برید.
|
|
کاراکترهای فرمت را موقعی به کار میبریم که میخواهیم یک متغیر از نوع خاصی را در خروجی نشان دهیم. بری این کار ابتدا نوع کاراکتر را در داخل کوتیشن با استفاده از کاراکترهای فرمت مشخص میکنیم و سپس بیرون از کوتیشن نام متغیر را ذکر میکنیم. به مثال زیر توجه کنید:
printf(“your average is:%f”, ave);
این دستور ابتدا پیغام your average is: را نشان میدهد و سپس به یک کاراکتر فرمت که یک متغیر از نوع اعشاری را بیان میکند برخورد میکند و در خارج از کوتیشن متغیر متناظر با %f را میابد که در این مثال متغیر ave می باشد. ave بصورت float ave; تعریف شده است. اگر یک دستور printf() دیگر بعد از این دستور قرار دهیم پیغام بلافاصله بعد از آن چاپ خواهد شد اگر بخواهیم پیغام در سر خط بعد ظاهر شود از کاراکتر کنترلی \n استفاده میکنیم. برای این کار می توانیم به دو روش عمل کنیم یا در آخر دستور قبل کاراکتر کنترلی را قرار دهیم یعنی دستور بالا بصورت زیر باشد:
printf(“your average is:%f \n”, ave);
برای حمایت از نویسنده روی عکس تبلیغاتی زیر کلیک کنید
در حالت معمول هنگامی که شما یک برنامه در زبانی مانند سی می نویسید سیستم عامل کد شما را خط به خط اجرا می کند و اجرای بخش های بعدی وابسته به اجرا شدن قسمت های قبلی است. اما در برخی شرایط شما نیاز دارید تا برنامه ای بنویسید تا چند عمل را به صورت موازی انجام دهد. یک مثال معمول می تواند یک سرور وب باشد. هنگامی که یک کلاینت یک صفحه را از یک سرور وب درخواست می کند اگر سرور پاسخ آن کلاینت را بدهد و سپس به پاسخ کلاینت دیگری گوش دهد ، در آن فاصله زمانی بسیاری از درخواست ها به سرور بی پاسخ مانده و شکست می خورند. بنابراین اگر سرور بتواند هر درخواستی که دریافت می کند را به شکل موازی با درخواست های دیگر پاسخ دهد می تواند بسیار کارا تر عمل کند و در یک زمان به تعداد بیشتری کلاینت سرویس دهی کند.
کاربرد تابع fork دقیقا همین موضوع می باشد. هنگامی که برنامه شما این تابع را صدا کند سیستم عامل برنامه شما را که در قالب یک پروسه اجرا می شود به دو پروسه دقیقا همانند هم تبدیل می کند که به طور موازی اجرا می شوند. ( یک چنگال را تصور کنید! ) خروجی تابع یا صفر است و یا یک عدد. برنامه شما می تواند با بررسی خروجی این تابع متوجه شود که الان کدام پروسه می باشد و با توجه به این موضوع به کاری متفاوت بپردازد. مثلا پروسه سرور وقتی یک درخواست از یک کلاینت دریافت می کند تابع fork را صدا می کند. حال برنامه شما در دو پروسه اجرا می شود. اکنون با بررسی مقدار خروجی تابع fork میتوان فهمید که پروسه جاری پروسه فرزند است یا والد . اگر پروسه والد بود که یعنی همان سرور است و دوباره به درخواست های کلاینت ها پاسخ می دهد. اما اگر پروسه فرزند بود حال ازکلاینت اطلاعات بیشتری می گیرد و صفحه وب مورد نظر را برای کلاینت می فرستد.
به این ترتیب یک برنامه می تواند در تعداد زیادی نسخه به شکل موازی اجرا شود که هرکدام کار متفاوتی را انجام می دهند.
برای حمایت از نویسنده روی عکس تبلیغاتی زیر کلیک کنید
برای نصب اندروید 4.1.1 سایت های مختلف همه یک روش گفتن که باز همشون از یک مطلب کپی گرفتن
اما چند نکته داره که من اینجا میگم:
-این رام احتیاج به کرنل مخصوص خودش داره که باید با نرم افزار flashtool گوشی رو فلش کنید تا آنلاک بشه و بعد کرنل جدید روی سیستم نصب بشه
روش انجام این کار در اینجا گفته شده که من نکته هاشو اضافه میکنم...
این مطلبی که سایت گذاشته
Install:
- Backup
- Unlock your bootloader as described here: http://forum.xda-developers.com/show...77&postcount=3 or here: http://forum.xda-developers.com/show....php?t=1254225
- Download the kernel ftf file from here and move it to Flashtool\firmwares so that Flashtool can pick it up
- Flash the kernel via Flashtool
- Reboot and you should see the kernel boot animation
- (First time only) Get into recovery and format /system /cache and /data manually
و نکاتش اینه:
1- بعد از اینکه فایل FTF کرنل مخصوص گوشی خودتون رو دانلود کردید باید فایل رو توی فولدر firmeare از محل نصب flash tool کپی کنید...
حالا
همه سایت ها الان میگن دکمه فلش رو بزنید اما باید به روش زیر عمل کنید:
2- از منوی plugin دکمه رو میزنید که بوت لودر رو آنلاک کنید.
3-الان میگه که گوشی باید خاموش بشه و بعد روش وصل کردن دوباره اون رو میگه
4-الان داره کار رو انجام میده (به شرطی که گوشی روت باشه)
5-توی این مرحله باید گوشی رو جدا کرد (نکته مهم اینجاست که) الان نباید flash tool رو ببندید باید گوشی رو روشن کنید بعد وصلش کنید تا بقیه کار انجام بشه!
6-بعد از این کار تازه باید روی flash کلیک کنید (اگه این مراحل قبلی اجرا نشن اخطار قرمز رنگ میده)
7-بعد از زدن روی فلش و روشن کردن گوشی دیگه به جای آرم شرکت یه عکس دیگه میاد...
8-بعد از مراحل قبلی باید با ریختن رام دانلود شده در گوشی و رفتن به محیط ریکاوری رام رو نصب کنید.
9-تمام...
برای حمایت از نویسنده روی عکس تبلیغاتی زیر کلیک کنید
float یا شناوری این امکان را به یک عنصر می دهد تا شناور شود و به سمت چپ یا راست حرکت کند . وقتی به یک عنصر خاصیت float به سمت چپ یا راست داده میشود ، عنصر مورد نظر به آن سمت حرکت کرده و بقیه عناصری که بعد از عنصر float شده آمده اند و float ندارند به سمت مخالف رانده شده و اطراف عنصر مورد نظر را می گیرند .
توانایی float CSS نقش مهمی را در طراحی ساختار وب سایت با استفاده از لایه ها ، خواهد داشت . به طور مثال در ساده ترین حالت از این خاصیت برای حرکت تصاویر در متن استفاده می شود.
برای توضیح مناسب این خصوصیت به مثال زیر توجه کنید
یک تصویر بدون خاصیت CSS float در بین متن قرار گرفته است
1
2
3
4
5
|
example text example text example text example text example text example text example text example text example text example text example text example text example text |
یک تصویر همراه با خاصیت CSS float در بین متن قرار گرفته است
1
2
3
4
5
6
7
8
9
10
|
example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text example text |
با توجه به شکل بالا متوجه خواهید شد که تصاویر با استفاده از خصوصیت CSS float (float:left , float:right ) درون متن شناور شده اند و متن این عناصر را احاطه کرده است. اجزاء دارای خصوصیت CSS float بر روی اجزاء و عناصر کناری خود نیز تاثیر گزار خواهند بود . به طوری که در مثال بالا ملاحظه می نمائید متن در کنار تصاویر بعد از اضافه شدن خصوصیت CSS float به سمت مخالف جهت float حرکت کرده و همچنین تصویر را احاطه می کنند.
به این نکته توجه داشته باشید که خصوصیت CSS float تفاوتهای با خصوصیت position absolute دارد . یک عنصر با خصوصیت position absolute از جریان چینش صفحه جدا خواهد شد . در صورتی که در خاصیت CSS float عنصر از جریان صفحه پیروی خواهد کرد و با توجه به چینش و وضعیت اطراف خود تغییر موقعیت خواهد داد .
یک عنصر چگونه به وسیله CSS float شناور می شود
با استفاده از خصوصیت float میتوانید اکثر اجزاء را در یک چینش وب سایت شناور کنید . مقدار این خصوصیت میتواند ( left , right , both , none , Inherit ) باشد.
همه عناصر به صورت پیش فرض دارای خصوصیت float:none هستند . خصوصیت Inherit مشخص کننده این است که این عنصر از عنصر بالادستی خود پیروی خواهد کرد ( parent element )
1
|
.sideBar { float:left } |
عناصر دارای خصوصیت float از قوانین و شرایط خاصی پیروی خواهند کرد که در زیر به چند مورد اشاره خواهد شد .
- عناصر فقط در جهت افقی شناور خواهند شد . یه این معنا که عناصر فقط به سمت چپ و راست ( left , right ) شناور می شوند و حرکتی به سمت بالا و پایین نخواهند داشت .
- عناصر تا جایی به سمت چپ یا راست حرکت می کنند که اجازه و فضای حرکت داشته باشند
- عناصر بعد از یک عنصر با خصوصیت float تغییر حالت خواهند داد
- عناصر قبل از یک عنصر با خصوصیت float تغییر حالت نخواهند داد
- یک عنصر با خصوصیت float به اندازه محتوای داخل عنصر تغییر اندازه خواهد داد . این در صورتی است که به صورت پیش فرض اندازه ای برای این عنصر در نظر نگرفته شده باشد
در چه زمانی از خاصیت CSS float استفاده میکنیم ؟
CSS float کاربرد های بسیار زیادی در چینش ساختار صفحات وب سایت دارد . از ساده ترین چینش ( شناور شدن تصویر در متن در مثال بالا ) تا چینش ساختار صفحات . درک این خصوصیت و عکس العمل های اجزاء بعد از استفاده از این خصوصیت در طراحی و چینش صفحات وب نقش بسیار بزرگی را خواهد داشت . مرورگرهای متفاوت در مواردی خاص عکس العملهای متفاوتی در برابر استفاده از این خصوصیت دارند ( به طور مشخص IE ) و تشخیص و رفع این تفاوت ها می تواند یک امتیاز در طراحی وب سایت شما باشد و کمک کند وب سایت در تمامی مرورگرها به درستی نمایش داده شود .
چینش صفحات با استفاده از CSS float
Css float میتواند یک ابزار مناسب در محتوا و عناصر کوچک نیز باشد
صفحه قبل 1 صفحه بعد