حسین خسروی

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

حسین خسروی

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

حسین خسروی

باتوجه به محدودیتهای صفحه شخصی موجود در سایت دانشگاه، این بلاگ را راه اندازی کردم.
اطلاعیه های مربوط به دروسی که تدریس می کنم و تمرینها در این وبلاگ قرار خواهد گرفت.
برای آگاهی از مطالب مربوط به هر درس، در قاب زیر (طبقه بندی موضوعی) روی نام درس کلیک کنید.

پیوندهای روزانه

۳ مطلب با کلمه‌ی کلیدی «c programming homework» ثبت شده است

  • ۰
  • ۰

1-4 ماشین حساب با استفاده از switch-case

ماشین حساب ساده

می خواهیم شبیه تمرین سری اول، یک ماشین حساب بسازیم به این ترتیب که کاربر یک عملگر ( + - * / %) و دو عدد اعشاری وارد می کند و شما باید با switch-case نتیجه عملیات را نشان دهید. اگر عملگر اشتباه وارد شد، پیام مناسب داده و دوباره داده ها را دریافت کنید. برای شروع، می توانید از تکه کد زیر استفاده کنید:

    char operator;
    printf("Enter an operator (+, -, *, /, %): ");
    scanf("%c", &operator);

-------------------------------------------------------------------------------

2-4 کار با عملگرهای بیتی

bitwise operators - عملگرهای بیتی

برنامه ای بنویسید که یک عدد صحیح 16 بیتی (short) دریافت کرده و عملیات زیر را روی آن انجام دهد:

الف) آن را با اعداد (0x00FF و 0xFF00) AND کند. (عملگر AND بیتی & است)

ب) آن را با اعداد (0x00FF و 0xFF00) OR کند. (عملگر OR بیتی | است)

ج) آن را به اندازه هشت بیت به سمت راست شیفت دهد. (عملگر شیفت به راست << است. البته این عملگر را از اینجا کپی نکنید چون برعکس تایپ شده تا در وبلاگ درست دیده شود!) مثلا برای شیفت عدد y به اندازه 8 بیت به یکی از دو صورت زیر عمل می کنیم:

y = y >> 8;

y >>= 8;

د) آن را به اندازه هشت بیت به سمت چپ شیفت دهد. (عملگر شیفت به چپ >> است.)

ه) در انتها نیبل پایین و نیبل بالای عدد ورودی را به کمک چهار بخش قبلی حساب کرده و نمایش دهید. منظور از نیبل پایین و بالا یعنی 8 بیت کم ارزش و باارزش؛ مثلا برای عدد 0x64E5 نیبل پایین برابر است با E5 و نیبل بالا برابر است با 64


تمام نتایج را ترجیحا در قالب جدول نشان دهید.

موعد تحویل: 6 آذر

  • حسین خسروی
  • ۰
  • ۰

تمرین سری سوم درس مبانی برنامه‌نویسی

الف) برنامه ای بنویسید که درایه های یک ماتریس 3*2 و 2*3 را از کاربر دریافت کند و ماتریس حاصلضرب را نمایش دهد.

ب) برنامه ای بنویسید که اطلاعات n نفر از دانشجویان شامل نام و نام خانوادگی، شماره دانشجویی و معدل را دریافت کند. سپس به صورت جدولی همین اطلاعات را نمایش دهد.

  • عدد n از کاربر دریافت شود.
  • شماره دانشجویی حتما باید 7 رقمی باشد در غیر این صورت پیام خطای مناسب داده شده و دوباره دریافت شود.
  • معدل حتما باید بین 0 و 20 باشد در غیر این صورت پیام خطای مناسب داده شده و دوباره دریافت شود.

نمونه ای از اجرای برنامه ( اطلاعات زرد رنگ توسط کاربر وارد شده و سایر اطلاعات توسط برنامه تولید شده است)

Please enter number of students: 3
Please enter information for 3 students (name, ID, GPA):
Name 1: Hossein Khosravi
ID 1: 78123818
Invalid ID, try again: 7812381
GPA 1: 17.5
-------------------------------
Name 2: Ali Alavi
ID 2: 9225354
GPA 2: 15.5
-------------------------------
Name 3: Fatemeh Dadgar
ID 3: 9215764
GPA 3: 14.25
-------------------------------

Name                  ID            GPA
----------------      -------       -----
Hossein Khosravi      7812381       17.5
Ali Alavi             9225354       15.5
Fatemeh Dadgar        9215764       14.25


ج) برنامه ای بنویسید که یک رشته ریاضیاتی از کاربر گرفته و نتیجه آن را نمایش دهد. رشته مذکور تنها شامل یک عملگر از چهار عملگر اصلی بوده و دو عملوند دارد:

Please enter a mathematical expression: 42 + 36
ans = 78

روش تهیه و ارسال تمرینها

  • یک فایل word ایجاد کنید و کد نوشته شده به همراه یک نمونه اجرای برنامه را در آن قرار دهید (از خروجی برنامه با فشردن هم‌زمان دکمه‌های Alt و Print Screen عکس بگیرید و داخل فایل word کپی کنید).
  • به پوشه پروژه ای که ایجاد کرده اید رفته و فایلهای با پسوند c, cpp, h, cbp, vcxproj را در پوشه ای با نام خودتان (مثلا HosseinKhosravi) کپی کنید (پوشه‌های Debug و Release و ipch را نباید اضافه کنید).
  • فایل word را هم در همان پوشه کپی کنید و سپس پوشه را zip کنید.
  • اگر مراحل فوق درست انجام شده باشد فایل zip شده باید حجمی کمتر از 200 کیلوبایت داشته باشد. این فایل را به آدرس استاد حل تمرین بفرستید
  • عنوان ایمیل (subject) حتما شامل عبارت C_HW_03 باشد.

 موعد تحویل 17 آبان


  • حسین خسروی
  • ۰
  • ۰

بسم الله الرحمن الرحیم
با سلام خدمت دانشجویان عزیز و آرزوی توفیق

تمرین سری دوم درس مبانی برنامه‌نویسی

1.    برنامه ای بنویسید که 10 عدد اعشاری از کاربر دریافت کرده، میانگین، انحراف معیار، مینیمم و ماکزیمم آنها را حساب کند. همچنین گراف این اعداد را با استفاده از * ترسیم کند. مثلا اگر اعداد 1 تا 10 به ترتیب وارد شده باشند باید اطلاعات زیر چاپ شود:

Average: 5.5
StdDev: 3.0277
Max: 10
Min: 1
*
**
***
****
*****
******
*******
********
*********
**********

2.    برنامه ای بنویسید که 5 رشته از کاربر دریافت کند و تعداد رشته های غیر تکراری را پیدا کند. مثلا اگر رشته های Ali, Abbas, Hossein, Ali, Hossein وارد شد، باید خروجی زیر حاصل شود:
Number of unique strings: 3
Ali, Hossein, Abbas
3.    برنامه ای بنویسید که یک عدد صحیح از کاربر دریافت کند و تعداد ارقام آن را حساب کند.

روش تهیه و ارسال تمرینها

  • یک فایل word ایجاد کنید و کد نوشته شده به همراه یک نمونه اجرای برنامه را در آن قرار دهید (از خروجی برنامه با فشردن هم‌زمان دکمه‌های Alt و Print Screen عکس بگیرید و داخل فایل word کپی کنید).
  • به پوشه پروژه ای که ایجاد کرده اید رفته و فایلهای با پسوند c, cpp, h, cbp, vcxproj را در پوشه ای با نام خودتان (مثلا HosseinKhosravi) کپی کنید (پوشه‌های Debug و Release و ipch را نباید اضافه کنید).
  • فایل word را هم در همان پوشه کپی کنید و سپس پوشه را zip کنید.
  • اگر مراحل فوق درست انجام شده باشد فایل zip شده باید حجمی کمتر از 200 کیلوبایت داشته باشد. این فایل را به آدرس استاد حل تمرین بفرستید
  • عنوان ایمیل (subject) حتما شامل عبارت C_HW_02 باشد.

 موعد تحویل 7 آبان


  • حسین خسروی