Skip to content

Commit e02ec98

Browse files
committed
update structure questions
1 parent 7fce68e commit e02ec98

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

Questions/Structer.docx

-13.5 KB
Binary file not shown.

Questions/Structure.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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

Comments
 (0)