HW1.pdf

‫تمرین سری اول‬
‫تاریخ تحویل تمرین ‪ 21‬مهر ‪1392‬‬
‫درس مبانی برنامهسازی‬
‫‪CE153‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2013‬‬
‫‪1‬‬
‫توضیحات اولیه‬
‫‪ ‬از آنجایی که این تمرین کد اجرایی ندارد‪ ،‬استثناً سرکالس به صورت دستی‬
‫توسط استاد تحویل گرفته خواهد شد‪.‬‬
‫‪ ‬زمان تحویل تمرین روز یکشنبه ‪ 21‬مهرماه می باشد و به هیچ عنوان بعد از‬
‫زمان مشخص شده تمرینی تحویل گرفته نخواهد شد‪.‬‬
‫‪ ‬در صورت مشاهده ی هرگونه تقلب ‪ ،‬برای تقلب کننده و تقلب دهنده به میزان‬
‫نمره ی تمرین‪ ،‬نمره ی منقی تعلق خواهد گرفت‪.‬‬
‫‪ ‬سواالت خود را پیرامون تکلیف می توانید در سایت ‪ piazza‬مطرح نمایید‪.‬‬
‫‪2‬‬
‫سواالت‬
‫‪.1‬‬
‫الف)مشخص کنید هر کدام از عملیات زیر در کدام مبنا انجام گرفته اند‪:‬‬
‫‪c)24+17=40 b)54/4=13‬‬
‫‪a)14/2=5‬‬
‫ب)مقدار عبارت زیر را در مبنای ‪ 8‬محاسبه کنید‪:‬‬
‫‪)1010101.11001(2 - )11001.11011( 2‬‬
‫ج)حاصل عبارات زیر را به دست آورید‪:‬‬
‫‪(A54)16+(725)8=( ? )4‬‬
‫‪)639)10+(101101011)2=( ? )16‬‬
‫‪3‬‬
‫‪ .2‬با استفاده از روش مکمل ‪ )2's complement(2‬مقادیر زیر را محاسبه‬
‫کنید‪ .‬در صورتی که جواب باید منفی شود مکمل ‪ 2‬جواب را محاسبه‬
‫کنید و یک عالمت منفی برای آن بگذارید‪ .‬سپس همین عملیات را با‬
‫محاسبه مکمل یک (‪)1's complement‬انجام دهید و جواب های دو‬
‫قسمت را باهم مقایسه کنید و مشخص کنید کدام یک از این دو روش‬
‫مقدار صحیح را نشان میدهد‪(.‬اعداد را ابتدا از مبنای ‪ 10‬به مبنای ‪ 2‬برده‬
‫و طول اعداد را به اندازه تعداد رقمهای عدد بزرگتر در مبنای ‪ 2‬فرض‬
‫کنید)‬
‫‪a)37+251‬‬
‫‪b)-19-10‬‬
‫‪c)48-21‬‬
‫‪d)9-40‬‬
‫‪4‬‬
‫‪ .3‬عبارات زیر را محاسبه کنید‪:‬‬
‫)‪a)~(0^1^0^1)|(1^1^0^1)&(1|1^0‬‬
‫(ابتدا ‪ 116‬از مبنای ‪ 10‬به مبنای ‪ 2‬برده شود))‪b)~( 116 >> 3‬‬
‫)))‪c) ROL2 (~(SHR3 (10111010011‬‬
‫‪5‬‬
‫‪ .4‬هرکدام از قطعه برنامههای زیر را که ایراد دارند‪ ،‬مشخص کرده و ایرادات‬
‫مربوطه را برطرف نمایید‪ .‬همچنین برای همه موارد تعیین کنید خروجی قطعه‬
‫کد صحیح چیست‪.‬‬
‫;)‪a) printf("This is assignment "#%d "\n ", 1‬‬
‫;)"!‪b) printf("Backslash: \\\t‬‬
‫)‪c‬‬
‫در این قسمت فرض کنید شماره دانشجوییتان را به عنوان ورودی به برنامه‬
‫میدهید‬
‫;‪int 92_ID‬‬
‫;)‪scanf("%d",92_ID‬‬
‫;)‪printf("This is your studentID:\n%d \n",92_ID‬‬
‫‪6‬‬
d)
،num_2 ،num_1 ‫ به‬3 ،14 ،7 ‫در این قسمت فرض کنید به ترتیب مقادیر‬
.‫ به عنوان ورودی داده شود‬num_3
int num_1, num_2, num_3;
scanf("%d",&num_1);
scanf("%d",&num_2);
scanf("%d",&num_3);
printf("%d",Num_1+Num_3*Num_2/(Num_1Num_2%Num_3));
7