• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

سوالات پايه اي زبان سي و پلاسش

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
>> خوب بطور حتم بايد پلاتفرمي براي اينگونه موارد وجود داشته باشد ، من خودم هنوز به چنين موردي بر نخورده ام ،‌ ام فكر ميكنم كه اين موجود ، براي اين كار وجود دارد

يک بار خود آقا آرش فرمودن که اون پلتفرم هم در نهايت يک جور os ميشه
 

ebrahimj

Registered User
تاریخ عضویت
13 اکتبر 2004
نوشته‌ها
316
لایک‌ها
1
محل سکونت
pp
من هم همچین پلاتفرمی ندیدم و فکر نمی کنم وجود داشته باشه چون این جور برنامه نویسی خیلی شایع نیست که یه شرکت بخواد روش سرمایه گذاری کنه و یه پلاتفرم بسازه مگر اینکه کار هوادارن اپن سورس باشه
مثلا ؛‌ CD هاي بوت ويندوز ، وقتي بايوس براي CD بوت سرچ ميكنه ، مينويسه Press Any Key to continue .

من و بعد و ....

خوب من ميخام بدونم چنين برنامه اي فقط با زبان ماشين نوشته ميشه ؟!

،،،

خيلي وقت پيش‌ ،‌ يه بوت هايي لينوكسي دانلود كرده بودم كه وقتي اجرا ميشد فايل هاي SAM ويندوز رو ميشكوند و پسورد يوزر هارو 0 ميكرد .

طرز كارش اينجور كه فهميدم اين بود كه اول يه لينوكس كوچولو موچولو بالا مياورد ( كلا چند ثانيه طول ميكشيد ) و بعد برنامه اصلي شروع به كار ميكرد ، فكر كنم ايني كه ميگم يكي از اون هايي كه گفتم باشه
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
من يک بار از يکي از استاد ها پرسيدم همچين چيزي جواب داد :
استفاده از بايوس + سکتور 0 همچين چيزي
----
چون بايوس خودش وقفه هاي زيادي ارائه مي ده ، بنا براين ميشه به جاي os نوشتن از اونها استفاده کرد
اما بايد از asm استفاده کرد (يا چيزي که من نميدونم)
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
خيلي وقت پيش‌ ،‌ يه بوت هايي لينوكسي دانلود كرده بودم كه وقتي اجرا ميشد فايل هاي SAM ويندوز رو ميشكوند و پسورد يوزر هارو 0 ميكرد .

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

ebrahimj

Registered User
تاریخ عضویت
13 اکتبر 2004
نوشته‌ها
316
لایک‌ها
1
محل سکونت
pp
وقتی یه لینوکس کوچیک بالا بیاد ما یه سیستم عامل داریم حالا مهم نیست این سیستم عامل سولاریس باشه با همه عظمتش یا یه سیستم عامل کوچیک که یه دانشجو نوشته به هر حال مدیریت سیستم رو بر عهده می گیره لینوکس هم از این قاعده مستثنی نیست من نسخه اولیه از لینوکس رو دارم که فقط رو یه فلاپی جا می گیره و بدون هیچ کنتلر امنیتی وارد خط فرمان می شه (0.02) اما به هر حال یه سیستم عامله مدیریت حافظه و پردازش ها رو داره و مهم تر از همه سیستم رو بوت می کنه
بله ، دقيقا من هم دنبال چنين موردي هستم ، شما اطلاعات بيشتري در اين باره داريد ؟
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
آقا آرش
کمي در مورد عدم وجود STL در زبان هاي ديگه ، و اينکه چطور نياز هاشونو رفع مي کنن
کمي به ما عنايت مي کنيد ؟
سپاس
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
سلام
ببخشید یکم دیر به دیر سر می زنم برنامه کاریم خیلی پره

توی زبان های دیگه ما STL «داریم و نمی تونیم داشته باشیم این به دلیل خصوصیات منحصر به فرد C++ هست که دو تا از مهمترینش تمپلیت ها و اورلود کردن اپراتور ها هست ما تو زبان ها دیگه کتابخانه های بزرگی رو داریم مثلا توی دلفی کتابخانه بزرگ VCL و RTL هست که از نظر حجم کد و تعداد کلاس ها چندین برابر STL هست و اصلا با اون قابل مقایسه نیست ولی STL با همون کوچیکیش خیلی قدرتمند تره مثلا شما می تونید از صف STL برای هر دیتا تایپی استفاده کنید و مدیریت حافظه رو هم به STL واگذار کنید و فقط از صف استفاده کنید بدون هیچ دردسری و لی مثلا توی دلفی شما صفی وجود نداره که هر نوع داده ای رو ساپورت کنه شما مجبور با استفاده از کلاس هایی مثل TList یه صف رو شبیه سازی کنید و بعد تازه نمی تونید هر نوع ابجکتی رو درونش قرار بدید و مدیریت حافظه رو هم به VCL واگذار کنید مگر در موراد خاص که اشیای از نسل خاصی باشن
در کل کارشون به این راحتی و سرعت انجام نمی شه ولی یه کلاس هایی در کتابخانه های بعضی از این زبان ها هست که کارهارو تا حدی راه می ندازه ولی چیزهایی مثل تکرارکننده(iterator) اصلا وجود نداره
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
>> ببخشید یکم دیر به دیر سر می زنم برنامه کاریم خیلی پره
استدعا مي کنم آرش جان
از توضيحات عالي هم متشکرم
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
:D
به نظر شما اينها درستن ؟
اينو خيلي شک دارم !
کد:
	int arr[] = { 0,1,2,3};
    delete [] arr ;

و اين درسته ، اما خوب از اونجايي که پويا هست نميشه استاتيک مقدار اوليه داد
کد:
	int *arr = new int[4];
	delete [] arr ;
	arr=0;
اگر ميشد بين اينها پل زد خوب بود(مقدار اوليه ثابت با type پويا)
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
کد اول غلطه چون نمی شه یه ارایه غیر پویا رو پاک کرد یه قانون کلی هست
شما وضایف خودتون رو انجام بدید و بزارید سی ++ وضایف خودش رو انجام بده

معمولا خطا های حافظه زمانی پیش می یاد که این قانون رو نقص کنید و یا درست انجام ندید

اما راهی برای مقدار دهی اولیه زمان تخصیص حافظه وجود نداره البته می تونید از یه وکتور استفاده کنید ولی اونهم تمام خونه های رو با یه عدد خاص پر می کنه
 
بالا