واضح آرشیو وب فارسی:سایت ریسک: پاسخ به اشکالات در برنامه نویسی ++ c z.ghayoumi 14 خرداد 1386, 21:11با سلام من به چند تا اشکال برخوردم و در مورد اون ها سولاتی دارم .(من یه مبتدی هستم هاااا ) اگردوستان لطف بفرمایند راهنمایی کنند . اما سولات : 1- " تابع (strcmp (s1 ,s2 تابعی برای مقایسه دو رشته . حاصل کار این تابع یک عدد هست که از نتیجه مقایسه دو رشته s1 ,s2 بدست می آید . " ولی من دقیقا متوجه نشدم منظور از مقا یسه دو رشته چیه . . .؟؟ و این عددی که (مثبت ,منفی یا صفر ) برمیگردونه چطوری به دست اومده ؟؟ 2-" توابع viod : توابعی که هیچ مقداری رو برنمی گرداند " این دسته رو خیلی دقیق نفهمیدم . و یه نکته اینکه من چند تا برنامه تقریبا ساده رو که تابع اصلی اون ها viod بود , int main کردم و return 0 هم در انتها برنامه زدم و هیچ مشلی پیش نیومد و باز هم برنامه اجرا می شد . emad_67 14 خرداد 1386, 23:22تابع strcmp رشته اولش یعنی s1 را با s2 مقایسه می کند مثلا فرض کن رشته اول ما "abc" است و رشته دو "abe" تابع strcmp کاراکتر به کاراکتر رشته اول رو با رشته دوم مقایسه میکند و در صورت یکی بودن کاراکترها دو کاراکتربعدی را مقایسه میکند در اینجا ابتدا دو کاراکتر اول یعنی a ها با هم مقایسه شده و چون برابرن سپس b ها با هم مقایسه میشوند و به همین ترتیب تا آخر ادامه پیدا میکند در صورتی که کل رشته اوا با دوم برابر بود مقدار 0 بر میگردد و لی در صورتی که این تابع به اولین کاراکتری که که نابرابر باشند برسد در صورت بزگتربودن کاراکتر رشته اول مقدار 1 و در صورت کوچکتربودن -1 بر میگرده منظور از بزگتر یا کوچکتر بودن اینه که کد اسکی آنها از هم بزرگتریا کوچکتر باشند در نسخه های turbo و borland مفدار برگشتی این تابع اختلاف کد ا*** هاست ولی در visual فقط 0 یا 1 یا -1 بر کیگرده در مورد سوال دومت هم توابع void هیچ مقداری را بر نمیگردوند و اینکه اونو به int main تبدیل کردی و مشکلی پیش نیومده به خاطر اینه که برا main زیاد فرقی نمیکنه ولی ممکنه در توابع دیگه این کار موجب ارور بشه arash_j13 18 خرداد 1386, 06:51در مورد int main همه چی بستی گه به کامپایلر داره مثلا کامپایلر محبوب gcc فقط اجازه می ده که main از نوع Int باشه ولی بورلند اجزه تعریف از هر نوعی رو می ده مقدار برگشتی این تابع به سیستم عامل می رسه و تو برنامه ی شما هیچ نقشی نداره z.ghayoumi 24 خرداد 1386, 20:58با سلام ممنونم از راهنمایی شما دوستان . چند سوال (مبتدی) دیگه هم دارم اگر لطف بفرمایید راهنماییم کنید : 1- اگر ممکنه این کابرد عملی توابع void بگید ، اساسا من نمی دونم دقیقا کجا باید از این نوع تابع استفاده کنم . اصلا این که" مقداری رو برنمی گرداند" رو توضیح بدهید . **در مورد اینکه arash گفته بود : " مقدار برگشتی این تابع به سیستم عامل می رسه و تو برنامه ی شما هیچ نقشی نداره " من دیدم در تعریف بدنه یک تابع (مثلا تابع برای محاسبه مربع یک عدد ) در پایان از ; ( return (a*a استفاده تا مقدار مربع عدد رو بده به برنامه . . ! 2- (شرط) while : من این طوری یاد گرفتم که برای حلقه های while در داخل پرانتز بایدشرط اجرای دستورات داخل حلقه نوشته بشه . خوب این که معلمومه . اما بعضی وقت ها دیدم داخل پرانتز چیزی غیر از شرط نوشته می شه - مثلا فقط یک عدد نوشته می شه . .! ( یعنی اصلا شرط نیست ) ؟ اگر سولاتم خیلی ساده یا اینکه بیخود بود قبلا معذرت می خوام .:) ممنون . emad_67 25 خرداد 1386, 23:071- اگر ممکنه این کابرد عملی توابع void بگید ، اساسا من نمی دونم دقیقا کجا باید از این نوع تابع استفاده کنم . اصلا این که" مقداری رو برنمی گرداند" رو توضیح بدهید . توابع void توابعی اند که هیچ مقداری بر نمیگردونند مثلا فرض کنید یه تابع به نام print دارین که میخواد اعدادی رو چاپ کنه این تابع کارش فقط چاپه یعنی هیچ محاسبه یا عملیاتی رو انجام نمیده که بخواد return کنه بنا براین در این مواقع از void استفاده میکنن **در مورد اینکه arash گفته بود : " مقدار برگشتی این تابع به سیستم عامل می رسه و تو برنامه ی شما هیچ نقشی نداره " من دیدم در تعریف بدنه یک تابع (مثلا تابع برای محاسبه مربع یک عدد ) در پایان از ; ( return (a*a استفاده تا مقدار مربع عدد رو بده به برنامه . . ! این حرف که گفته شده فقط در مورد main هست نه تابع های دیگه 2- (شرط) while : من این طوری یاد گرفتم که برای حلقه های while در داخل پرانتز بایدشرط اجرای دستورات داخل حلقه نوشته بشه . خوب این که معلمومه . اما بعضی وقت ها دیدم داخل پرانتز چیزی غیر از شرط نوشته می شه - مثلا فقط یک عدد نوشته می شه . .! ( یعنی اصلا شرط نیست ) ؟ در این مورد معمولا از while(1) استفاده میشه که یک حلقه بینهایت به وجود میاره زیرا compiler مقدار 1 رو به عنوا یک true میشناسه و قتی تو while 1 قرار میدیم یعنی اینکه یه حقه داریم که همیشه شرط اون درسته arash_j13 26 خرداد 1386, 01:17در ضمن ما توسی مجبور نیستم برای if و while for و.. حتما شرط بزاریم توسی هر چیزی که صفر باشه غلط و بقیه چیز ها درست هست دستورات کنترلی سی بر این اساس کار می کنن
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3606]