|
| 1 | +<div dir="rtl"> |
| 2 | + |
| 3 | +1. استراکچری ای با استفاده از سه متغیر زیر تعریف کنید که حالات زیر را داشته باشد. (راهنمایی: سیستم 32 بیتی می باشد, از کمترین تعداد متغیر استفاده شود) |
| 4 | + |
| 5 | +<div dir="ltr"> |
| 6 | + |
| 7 | +```C |
| 8 | +uint8_t X; |
| 9 | +uint16_t Y; |
| 10 | +uint32_t Z; |
| 11 | +``` |
| 12 | +</div> |
| 13 | + |
| 14 | + |
| 15 | +- ای اشغالی 12 بایت باشد. |
| 16 | +- بای اشغالی 8 بایت باشد. |
| 17 | + |
| 18 | + |
| 19 | +2. استراکچری به اسم Piont تعریف کنید که حاوی 3 متغیر عددی x,y و z از جنس uint32_t بشود که نماینده مختصات یک نقطه در فضای سه بعدی است. |
| 20 | + - تابعی بنویسید که یک Piont دریافت کرده و مقادیر آن را چاپ کند. (Pass structure to function) |
| 21 | + - تابعی بنویسید که یک Piont دریافت کرده و آیتم های داخل آن را با عدد 0 مقدار دهی کند. (Pass reference with pointer) |
| 22 | + - دو سوال قبل را با آرایه ای Piont ها تکرار نمایید. (structure array) |
| 23 | + - تابعی بنویسید که محتویات یک Piont را داخل یک Piont دیگر کپی نماید. |
| 24 | + - تابعی بنویسید که یک Piont دریافت کرده و فاصله مختصات را از مرکز مختصات بازگرداند. |
| 25 | + - تصور کنید که میخواهید Piont را در بستر یک پروتکل سریال مثل UART منتقل کنید. |
| 26 | + - راهنمایی: (نحوه قرار گیری یک آرایه و structure در حافظه یکسان است. صرفا با انتخاب پوینتر مناسب و اشاره به یک حافظه یکسان میتوان تمرین های پیش رو را انجام داد.) |
| 27 | + - تابعی بنویسید که محتویات یک Piont را به آرایه ای uint8_t تبدیل نماید. (serialization) (pointer casting) |
| 28 | + - تابعی بنویسید که آرایه uint8_t ساخته شده را مجددا به Piont تبدیل کند😊. (deserialization) (pointer casting) |
| 29 | + |
| 30 | +3. با استفاده از structure یک لیست از اعداد صحیح بسازید. |
| 31 | +راهنمایی: با استفاده از توابع malloc, alloc, free و ... (متغیر های داینامیک) |
| 32 | + |
| 33 | +- ویژگی های لیست: |
| 34 | + - بتوان به آن آیتم اضافه نمود. |
| 35 | + - بتوان از آن آیتمی را حذف نمود. |
| 36 | + - بتوان تعداد آیتم های موجود آن را دریافت کرد. |
| 37 | + - بتوان کل فضای اشغالی آن را مشاهده نمود. |
| 38 | + - بتوان یک آیتم را در آن جستجو نمود. |
| 39 | + - ... |
| 40 | +4. با استفاده از structure لیست پیوندی یک طرفه بسازید. |
| 41 | +راهنمایی: با استفاده از توابع malloc, alloc, free و ... (متغیر های داینامیک) |
| 42 | + |
| 43 | +5. با استفاده از structure لیست پیوندی دو طرفه بسازید. |
| 44 | +راهنمایی: با استفاده از توابع malloc, alloc, free و ... (متغیر های داینامیک) |
| 45 | + |
| 46 | +</div> |
0 commit comments