PDA

View Full Version : سوال: چطور شروع کنم؟



ma.andishe
شنبه 28 فروردین 1389, 14:07 عصر
سلام
از دوستان عزیز میخواستم مرا کمی راهنمایی کنند من مخواهم زبان c رو کار کنم ولی دقیق نمدونم چطور شروع منم واز چه منابعی استفاده کنم ویا اینکه c++رو کارکنم بهتره ویا....
خلاصه از دوستان عزیز از کسانی که میتونند یک مسیر درست وحسابی ومنبع درست بدن تا بتومنم این زبان رو اصولی یاد بگیرم ممنون میشم

amir_civil
شنبه 28 فروردین 1389, 14:58 عصر
سلام
در کل سی++ از سی بهتره ولی برای چی میخاهی سی یاد بگیری؟
شاید ویژوال سی برات بهترباشه در کل اگه هدفت رو بگی بهتره
برای یاد گیری زبان فارسی هم کتاب جعفرنژاد قمی خوبه
انگلیسی هم کتاب دایتل

ma.andishe
یک شنبه 29 فروردین 1389, 08:48 صبح
سلام
من برنامه نویسی رو با vb.net انجام میدم اما از انجا که من جای که کار میکنم 1 جای صنعتی هست واتوماسیون اون شرکت از دو بخش صنعتی و اداری تشکیل شده که تو بخش اتوماسیون صنعتی برای نوشتن برنامه از زبان c,c++استفاده میکنندومن برای اینکه بتونم از بخش اداری به اتوماسیون صنعتی برم باید این زبان رو به در حد عالی یاد بگیرمبرای همین نیاز به مرجعی دارم که بتونه به مشکل منو حل کنه

moh_mov
یک شنبه 29 فروردین 1389, 10:42 صبح
100 در 100 دایتل و دایتل...البته اگر مبتدی هستی و هیچی از oop و شی گرایی نمی دونی و کلا نمی دونی با جعفر نژاد شروع کن....اما شما یکم می دونید...پس دایتل & دایتل از نظر من....

Salar Ashgi
یک شنبه 29 فروردین 1389, 22:00 عصر
کلا نمی دونی با جعفر نژاد شروع کن


تحت هیچ شرایطی من کتابای ایشون رو پیشنهاد نمی کنم !

اما در راهنمایی دوست عزیز ma.andishe (http://barnamenevis.org/forum/member.php?u=119832)


من برای اینکه بتونم از بخش اداری به اتوماسیون صنعتی برم باید این زبان رو به در حد عالی یاد بگیرم


همانطور که همیشه بیان شده ، کتاب دیتل میتونه مناسبترین مرجع برای افراد مبتدی و حتی متوسط به

بالا محسوب بشه .

اگه به این دلیلی که گفتید ، به ++C , C روی آوردید ، همین کتاب دیتل فکر می کنم نیازای شما رو برآورده

میکنه ولی اگه بخواین واسه خودتون کار کنین طبیعتا باید کتابای بیشتری مطالعه نمود .

و در مورد انتخاب بین C++, C ، صد البته ++C مناسبترین و بهترین گزینه است ، چون تو امور تجاری و

صنعتی معمولا باید شی گرا کار نمود که زبان C فاقد شی گرایی است و زبان ++C بخوبی از آن پشتیبانی

میکند .

از لحاظ برنامه نویسی هم :

عملگر ++ عملگر افزایش یک واحدی ، یک متغیر است .

یعنی :

C++ = C+1

البته این یه بیان و توجیهی است که برنامه نویسان بکار میبرند ، وگرنه زبان ++C خیلی بیشتر از یک واحد ،

از زبان C بیشتر و جلوتر است .

موفق و پیروز باشید .

Nima_NF
یک شنبه 29 فروردین 1389, 23:44 عصر
من در مورد کتاب نظری نمی دهم، چون هر کسی برای خودش نظری دارد. در هر حال بنده نتوانستم در هیچ کتابی همه مباحث مورد نیاز را یکجا بیابم، لذا چندین مرجع انتخاب کردم.
پس کار اول انتخاب یکی از همین کتاب های موجود هست (حتما آخرین نسخه را تهیه کنید)

کار دیگری که باید انجام دهید این هست که بررسی کنید شرکت مورد نظر از چه کامپایلری استفاده می کند. همین طور در مورد خود زبان، چون برخی شرکت ها به خاطر سخت افزارهای مورد استفاده، شما را ملزم به استفاده از C به جای ++C می کنند یا همین طور برعکس.
به همین خاطر بهتر و دقیق تر می توانید روی مباحث مورد نیاز وقت بگذارید.

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

JaguarXF
دوشنبه 30 فروردین 1389, 08:18 صبح
C++ from the Ground Up , Herbert Schildt (http://www.amazon.com/Ground-Up-Third-Herbert-Schildt/dp/0072228970)

PC Intern: The Encyclopedia of System Programming (http://www.amazon.com/PC-Intern-Encyclopedia-Programming-Developers/dp/1557553041/ref=sr_1_1?ie=UTF8&s=books&qid=1271650468&sr=1-1)

ma.andishe
دوشنبه 30 فروردین 1389, 10:01 صبح
من از همه دوستان عزیز که راهنمایی کردند خیلی ممنون هستم

Nima_NF
دوشنبه 30 فروردین 1389, 15:30 عصر
بازم گفتید که C فاقد شی گرایی است ؟
آخه من چه طوری بگم که با C هم میشه شی گرایی کرد؟


من همه توصیه هایی که در مورد مقایسه نکردن این چنینی دو زبان به دوستان تذکر دادید را تقریبا قبول دارم، به جز این مورد فوق که مدام تکرار می کنید!

شما توسط C فقط می توانید قابلیت شی گرایی را با struct و امثال آن شبیه سازی کنید، اما type-checked نیست.
این C++‎‎ ، java، objective-C و سایر زبان های مشابه هستند که ذاتا از پایه پشتیبانی OOP را دارند.

مطئمن باشید اگر دقیق تر منابع خود را مطالعه کنید، می بینید که در همه آن ها یا در حال پیاده سازی یا شبیه سازی قابلیت obeject-oriented توسط C هستند، یا در حال استفاده از کامپایلر ++C اما توسط خود زبان C هستند.

Nima_NF
دوشنبه 30 فروردین 1389, 17:52 عصر
نمیدونم که منظور کلی من رو متوجه شدید یا نه.
منظوره من اینه که ++C هم OOP رو شبیه سازی میکنه و کامپایلرش این کار رو به دور از چشم ما انجام میده.
و این طوری نیست که توی زبان ماشین OOP وجود داشته و کسی خبر نداشته و سازنده ی زبان ++C این قابلیت رو کشف کرده باشه !
و کامپایلر ++C فقط این قابلیت و قابلیت های دیگه رو شبیه سازی میکنه.
و شما در C باید خودتون این قابلیت ها رو شبیه سازی کنید.

امیدوارم منظورم رو متوجه بشید.

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

وقتی حرف از OOP در ++C زده می شود مطمئنا در حال صحبت کردن در مورد امکانات پیاده سازی شده آن زبان طبق استانداردها هستیم، قابلیت هایی که اگر در سخت افزار نباشد، توسط قوانین زبان و کامپایلرش پیاده سازی می شود.
مثلا قرار نیست چون با هر زبانی می توانیم OOP را پیاده سازی کنیم، بگویید همه زبان های دنیا OOP را پشتیبانی می کنند!
پس گفتن پشتیبانی از OOP توسط C++ و عدم پشتیانی آن در C حرف اشتباهی نیست، موضوعی که در هر کتابی و هر منبعی می توانید بیابید، فقط به شرط اینکه تفسیر متفاوت از آن نشود.

در کل شما حرف اشتباهی نمی گویید، فقط وقتی شما جایی عبارت "پشتیبانی از OOP" را می شنوید، فکر می کنید که باید چینین قابلیتی در سخت افزار باشد، در حالی که منظور پشتیبانی از مدل برنامه نویسی هست که در خود زبان پیاده سازی شده است و کامپایلر آن کنترل نوع و کنترل خطا را نیز برایش انجام می دهد و این همان چیزی هست که باید ذاتا در خود زبان پیاده سازی شده باشد تا کار برنامه نویس نیز کمتر شود.