تالار گفتمان مانشت
بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲ ۳ ۴ ۵
RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - Amoojan - 25 بهمن ۱۳۹۲ ۰۷:۱۴ ب.ظ

طراح تو صورت سوال گفته : ..... اندازه جدول پرش کد مزبور! در چه حدودی است.

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - Riemann - 25 بهمن ۱۳۹۲ ۰۷:۳۱ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۶:۰۹ ب.ظ)hoohoo نوشته شده توسط:  اون سوال جدول پرش والا تو سال ۹۰ کامپایلر سوال اومده و اینجوری حل کرده که اخرین برچسب منهای اولین برچسب بعلاوه ۱ که میشد اینجوری ۱‌+ ۱۱ - ۴۳ میشه که ۳۳ و تو گزینه ها نبود یعنی هیچکدام میشد جواب اگه اشتباه نکنم
منم همینو زدم

اون سوال مریوط به نخ ها من زدم
cal by value, call by result
اون جدول پرش هم میشد ۳۴ که تو گزینه ها نبود که میشه هیچ کدام.

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - Somayeh-h - 25 بهمن ۱۳۹۲ ۰۷:۴۴ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۴:۴۸ ب.ظ)mr_asadi نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۴:۲۷ ب.ظ)Fot30 نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۴:۲۲ ب.ظ)El@he نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۴:۰۵ ب.ظ)mr_asadi نوشته شده توسط:  من زدم اگه از درون تابع مجاز به فراخوانی تابع دیگه ای نباشیم ...
منم اینو زدم

اون یکی هم ۸ و ۵

اون یکی هم value و ref

میشه ۴ و ۸
اگر عجول باشه پارامتر a مقدار یک میگیره و تابع مقدار ۳ برمیگردون و میشه ۱+۳*۱که میشه ۴
تنبل باشه میشه ۲+۳*۲ میشه ۸
نظر من
مشابه اش تو مقسمی هست.

بازخوبه یکی مثه من زده اینو
منم ۴و۸ زدم

منم ۴و۸ زدم

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - itsgu88 - 25 بهمن ۱۳۹۲ ۰۸:۳۸ ب.ظ

بچه ها توی سئوال a*f(x)+a گفت که تابع ۳ رو برمیگردونه و a رو برابر ۲ برمیگردونه در صورتی که ارجاع با مقدار باشه ارجاع با مقدار ک روی مقدار اصلی تاثیر نمیزاره ینی یکی از جواب ها میشه ۴
خب حالا دوتا گزینه ممکنه باشه یا ۴و۸ یا ۴و۵ کدومش؟چرا؟

در مورد نخ هام ک خیلی تابلو بود چون t1 مقدار رو تغییر میداد باید ارجاعی باشه ک متغیر سراسری رو تغییر نده!

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - El@he - 25 بهمن ۱۳۹۲ ۰۸:۴۶ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۷:۳۱ ب.ظ)Riemann نوشته شده توسط:  اون سوال مریوط به نخ ها من زدم
cal by value, call by result

من فکر میکنم چون call by ref سرعت بهتری داره پس بهتره بقیه call by ref باشن، و برای اینکه اولیه مقدار x رو تغییر نده، call by value باشه!

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - itsgu88 - 25 بهمن ۱۳۹۲ ۰۸:۵۳ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۸:۴۶ ب.ظ)El@he نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۷:۳۱ ب.ظ)Riemann نوشته شده توسط:  اون سوال مریوط به نخ ها من زدم
cal by value, call by result

من فکر میکنم چون call by ref سرعت بهتری داره پس بهتره بقیه call by ref باشن، و برای اینکه اولیه مقدار x رو تغییر نده، call by value باشه!

پس سئوال ۹۶ سری سئوال D جواب میشه گزینه ۳ Big Grin هرکی میگه این جواب نیس لطفآ توضیح بده

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - hoohoo - 25 بهمن ۱۳۹۲ ۰۸:۵۸ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۸:۳۸ ب.ظ)itsgu88 نوشته شده توسط:  بچه ها توی سئوال a*f(x)+a گفت که تابع ۳ رو برمیگردونه و a رو برابر ۲ برمیگردونه در صورتی که ارجاع با مقدار باشه ارجاع با مقدار ک روی مقدار اصلی تاثیر نمیزاره ینی یکی از جواب ها میشه ۴
خب حالا دوتا گزینه ممکنه باشه یا ۴و۸ یا ۴و۵ کدومش؟چرا؟

در مورد نخ هام ک خیلی تابلو بود چون t1 مقدار رو تغییر میداد باید ارجاعی باشه ک متغیر سراسری رو تغییر نده!

گفتم تو کتاب هر ۳ تا یعنی ۴، ۵ و ۸ را بدست آورده اینجوری که
هر ترم را به ترتیب ارزیابی کنیم یعنی
کد:
۱*۳ + ۲ = ۵
a را یکبار ارزیابی کنیم
کد:
۱*۳ + ۱ = ۴
تابع func را قبل ارزیابی a فراخوانی شود در نحو
کد:
۳ * ۲ + ۲ = ۸
یعنی طراح که این سوال را عینا کپی کرده از روی کتاب مرجع خب جواب را ندیده که هر ۳ تا درست میشه !!!!

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - itsgu88 - 25 بهمن ۱۳۹۲ ۰۹:۲۳ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۸:۵۸ ب.ظ)hoohoo نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۸:۳۸ ب.ظ)itsgu88 نوشته شده توسط:  بچه ها توی سئوال a*f(x)+a گفت که تابع ۳ رو برمیگردونه و a رو برابر ۲ برمیگردونه در صورتی که ارجاع با مقدار باشه ارجاع با مقدار ک روی مقدار اصلی تاثیر نمیزاره ینی یکی از جواب ها میشه ۴
خب حالا دوتا گزینه ممکنه باشه یا ۴و۸ یا ۴و۵ کدومش؟چرا؟

در مورد نخ هام ک خیلی تابلو بود چون t1 مقدار رو تغییر میداد باید ارجاعی باشه ک متغیر سراسری رو تغییر نده!

گفتم تو کتاب هر ۳ تا یعنی ۴، ۵ و ۸ را بدست آورده اینجوری که
هر ترم را به ترتیب ارزیابی کنیم یعنی
کد:
۱*۳ + ۲ = ۵
a را یکبار ارزیابی کنیم
کد:
۱*۳ + ۱ = ۴
تابع func را قبل ارزیابی a فراخوانی شود در نحو
کد:
۳ * ۲ + ۲ = ۸
یعنی طراح که این سوال را عینا کپی کرده از روی کتاب مرجع خب جواب را ندیده که هر ۳ تا درست میشه !!!!

ببین این سئوال ی نکته داره اونم اینه گفته فراخوانی با مقداره ینی هر اتفاقی ک در تابع واسه a بیافته در متغیر سراسری a تاثیر نمیزاره ینی نه ۵ میشه نه ۸ !

(۲۵ بهمن ۱۳۹۲ ۰۹:۰۳ ب.ظ)Riemann نوشته شده توسط:  چون گفته بود که نخ اول مقدار x رو تغییر میده و از طرفی سایر نخ ها به مقدار اولیه x نیاز دارن. خب اگه ما باید واسه نخ اول از result استفاده کنیم که در انتهای کارش بیاد x رو تغییر بده(اگه از ref استفاده کنیم ممکنه نخ اول وسطای کدش مقدار x رو تغییر بده در حالی که هنوز سایر نخ ها کارشون رو شروع نکردن و این یعنی که مقدار اولیه x رو نمیتونن داشته باشن)، و از طرفی چون سایر نخ ها به مقدار اولیه x نیاز دارن و x یه چیز مشترک هست بهتره هر کدوم یه کپی از اونو داشته باشه که اگه تغییرش هم دادن x واسه سایر نخ هایی که شروع نشدن مشکلی پیش نیاد و همون مقدار اولیه x رو داشته باشن.

--------------------------------------
در کل تا کلید نیاد معلوم نیست! شاید رفتیم به عرش شایدم رفتیم سال دیگه.

(۲۵ بهمن ۱۳۹۲ ۰۸:۵۸ ب.ظ)hoohoo نوشته شده توسط:  یعنی طراح که این سوال را عینا کپی کرده از روی کتاب مرجع خب جواب را ندیده که هر ۳ تا درست میشه !!!!
دقیقا یارو خیلی بیشعور بوده!

(۲۵ بهمن ۱۳۹۲ ۰۷:۱۴ ب.ظ)Amoojan نوشته شده توسط:  طراح تو صورت سوال گفته : ..... اندازه جدول پرش کد مزبور! در چه حدودی است.
این سوال من زدم هیچ کدام، مگه فیزیک هست که ۹/۸ رو بگیریم ۰۱؟ جدوله یه اندازه ای داره! که اینم میشد ۳۴ فکر کنم، ۳ بار تا حالا از این سوال اومده، یه بار کامپایلر دو بار هم pl همینه
خب نظر شما برای نخ ها کدوم گزینه است؟

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - ftp024 - 25 بهمن ۱۳۹۲ ۰۹:۲۷ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۴:۰۲ ب.ظ)m.b.a نوشته شده توسط:  a*f(x)+a گزینه ۵و۸ رو زدم
اون یکی هم by valueو by refrenc زدم

منم همین دوتا رو جواب دادم چون گفته بود به مقدار اولیه x احتیاج دارن از طرفی هم نخ اول x رو تغییر میداد پس باید کپی رو میفرستادیم پس byvalue - byref میشه
اون یکی سوال رو هم ۸و۵ جواب دادم

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - El@he - 25 بهمن ۱۳۹۲ ۰۹:۳۰ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۹:۰۳ ب.ظ)Riemann نوشته شده توسط:  چون گفته بود که نخ اول مقدار x رو تغییر میده و از طرفی سایر نخ ها به مقدار اولیه x نیاز دارن. خب اگه ما باید واسه نخ اول از result استفاده کنیم که در انتهای کارش بیاد x رو تغییر بده(اگه از ref استفاده کنیم ممکنه نخ اول وسطای کدش مقدار x رو تغییر بده در حالی که هنوز سایر نخ ها کارشون رو شروع نکردن و این یعنی که مقدار اولیه x رو نمیتونن داشته باشن)، و از طرفی چون سایر نخ ها به مقدار اولیه x نیاز دارن و x یه چیز مشترک هست بهتره هر کدوم یه کپی از اونو داشته باشه که اگه تغییرش هم دادن x واسه سایر نخ هایی که شروع نشدن مشکلی پیش نیاد و همون مقدار اولیه x رو داشته باشن.

درسته ولی توی صورت سوال گفته شده t1 مقدار x رو تغییر میده. اگه همه اشون تغییر میدادن لزومی نداشت این یکی رو جدا بگه... یعنی بقیه میتونن رفرنس باشن چون چیزی رو تغییر نمیدن

(۲۵ بهمن ۱۳۹۲ ۰۹:۲۷ ب.ظ)ftp024 نوشته شده توسط:  اون یکی سوال رو هم ۸و۵ جواب دادم

اگر بخوایم اینجوری در نظر بگیریم که اول باید ضرب اتفاق بیفته و جمع، همین میشه. منم همین رو زدم. به نظرم توی صورت سوال وقتی call by result گفته شده، ربطی به عجول و تنبل نداشته باشه.

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - hosseinriasati - 25 بهمن ۱۳۹۲ ۰۹:۳۸ ب.ظ

من جواب ۴ و ۵ رو دادم. استدلالم هم این بود که این عبارت ریاضی توی کامپایلر یا به روش prefix حساب میشه یا postfix. در واقع بستگی به گرامر زبان داره که اولویت با چه عملی باشه.
یا ۱ * ۳ + ۱ = ۴ میشه یا ۱ * ۳ + ۲ = ۵
امیدوارم درست گفته باشم

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - damavand_kellap - 25 بهمن ۱۳۹۲ ۰۹:۴۳ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۹:۳۰ ب.ظ)El@he نوشته شده توسط:  
(25 بهمن ۱۳۹۲ ۰۹:۰۳ ب.ظ)Riemann نوشته شده توسط:  چون گفته بود که نخ اول مقدار x رو تغییر میده و از طرفی سایر نخ ها به مقدار اولیه x نیاز دارن. خب اگه ما باید واسه نخ اول از result استفاده کنیم که در انتهای کارش بیاد x رو تغییر بده(اگه از ref استفاده کنیم ممکنه نخ اول وسطای کدش مقدار x رو تغییر بده در حالی که هنوز سایر نخ ها کارشون رو شروع نکردن و این یعنی که مقدار اولیه x رو نمیتونن داشته باشن)، و از طرفی چون سایر نخ ها به مقدار اولیه x نیاز دارن و x یه چیز مشترک هست بهتره هر کدوم یه کپی از اونو داشته باشه که اگه تغییرش هم دادن x واسه سایر نخ هایی که شروع نشدن مشکلی پیش نیاد و همون مقدار اولیه x رو داشته باشن.

درسته ولی توی صورت سوال گفته شده t1 مقدار x رو تغییر میده. اگه همه اشون تغییر میدادن لزومی نداشت این یکی رو جدا بگه... یعنی بقیه میتونن رفرنس باشن چون چیزی رو تغییر نمیدن

(۲۵ بهمن ۱۳۹۲ ۰۹:۲۷ ب.ظ)ftp024 نوشته شده توسط:  اون یکی سوال رو هم ۸و۵ جواب دادم

اگر بخوایم اینجوری در نظر بگیریم که اول باید ضرب اتفاق بیفته و جمع، همین میشه. منم همین رو زدم. به نظرم توی صورت سوال وقتی call by result گفته شده، ربطی به عجول و تنبل نداشته باشه.
اگه اینطور بخوایم فکر کنیم که شما گفتید هیچکدوم جواب نمیشه چون در هر صورت جواب میشه ۴ اما اینجا گفته a رو تغییر میده توجه کنید که پارامتر ارسالی اینجا x هست نه a و تغییر a از اثرات جانبی برنامست به نظر من ۳ تا جواب داشت یعنی هرکدم از ۴ و ۸ و ۵ میشد بشه من زدم ۵ و ۸

درضمن این نکته تو کتاب مقسمی اومده دقیقا همینو مثال زده و هر ۳ تا رو به دست آورده

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - Amoojan - 25 بهمن ۱۳۹۲ ۰۹:۴۸ ب.ظ

(۲۵ بهمن ۱۳۹۲ ۰۹:۰۳ ب.ظ)Riemann نوشته شده توسط:  این سوال من زدم هیچ کدام، مگه فیزیک هست که ۹/۸ رو بگیریم ۰۱؟ جدوله یه اندازه ای داره! که اینم میشد ۳۴ فکر کنم، ۳ بار تا حالا از این سوال اومده، یه بار کامپایلر دو بار هم pl همینه

Big GrinBig Grin
والا من دراوردم ۳۲ یه بنده خدایی هم درآورده بود ۳۳! حالا طراح سوال بر خلاف بقیه سوالا!(Big Grin) اینجا فکر کرده ملت چندتا جواب در بیارن گفته حدودا.
حالا تا کلیدا بیاد ببینیم سنجش چی میگه!Smile

بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - ایزدی - ۲۵ بهمن ۱۳۹۲ ۰۹:۴۹ ب.ظ

دوستان من تو کتاب هربرت چایلد به این چنین سوالی برخورد کردم
بعد رفتم کدشو زدم فکر می کردم جوابی که به عنوان حاصل کد داره ایرادی داره بعد دیدم نه درسته!
و ساعتها روش فکر کردم که چرا این جوری می شه هی کد رو عوض کردم از سال بالاییام پرسیدم اخرشم کشف کردم که چی شد و چند مورد امتحانی زدیم با سال بالاییم که حدسمون درست به نظر می رسید
مطابق جوابی که من اون روزا به دست اوردم (برنامه ی سی + + ) بود
خطوط ریاضی وقتی اولویت یکسان داریم از راست شروع می شن
ما هم اینجا برای سمت راست و چپ عملگر + اولویت یکسان داریم
پس برای ای اول مقدار اولیه صحیحش در نظر گرفته می شه بعد میایم تو عبارت سمت چپ که ضربه و اونو می خوایم انجام بدیم
توش اولویت اگر به تابع اف بدیم که اونم سمت راسته مقدار ای که باید درش ضرب کنیم عوض می شه
و حاصل ۷ به دست میاد

Big Grin یعنی لعنت بر اون روز

حالا می بینم شما می گید ۸ و ۴

به طرز جالی ۵ هم می تونست باشه به شرطی که کامپیالر مودب بود و مثل عادت ما از راست می نوشت مشقاشو

RE: بررسی سوالات زبان های برنامه سازی - کامپیوتر ۹۳ - itsgu88 - 25 بهمن ۱۳۹۲ ۰۹:۵۴ ب.ظ

[/quote]
اگه اینطور بخوایم فکر کنیم که شما گفتید هیچکدوم جواب نمیشه چون در هر صورت جواب میشه ۴ اما اینجا گفته a رو تغییر میده توجه کنید که پارامتر ارسالی اینجا x هست نه a و تغییر a از اثرات جانبی برنامست به نظر من ۳ تا جواب داشت یعنی هرکدم از ۴ و ۸ و ۵ میشد بشه من زدم ۵ و ۸

درضمن این نکته تو کتاب مقسمی اومده دقیقا همینو مثال زده و هر ۳ تا رو به دست آورده
[/quote]
توی کتاب صحبتی از ارجاع با مقدار نکرده برای این مثال!

الان ما دوتا فرض داریم اگه ارجاع با مقدار رو درنظر بگیریم و اینکه در این نوع ارجاع هرگونه تغییر روی متغییر های سراسری به بیرون تابع اثر ندارد پس یکی از جواب ها ۴ حتمآ میشه

و اگه نوع ارجاع رو در نظر نگیریم و بخوایم با توجه به مبحثی ک کتاب در اون بهش اشاره کرده ینی اثررات جانبی این سئوال برسی بشه با توجه به اینکه هیچ صحیتی نکرده ایتدا کدوم اجرا میشه پس باید با فرض کلی عبارات ریاضی ک ابتدا ضرب بعد جمع پیش بریم ک در این صورت ابتدا a در تابع ضرب میشه پس نیاز به فراخوانی تابع داره و a مقدارش برای جمع کردن عوض میشه پس میشه همون ۵