نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • در تماس با
  • برنامه نویسی آداپتورهای ویدئویی CGA، EGA و VGA. برای تغییر فیلدهای سند ویرایش شده باید به کدام برگه بروید؟ لازم است که مقادیر محدوده سلول های H7:H21 را به ترتیب نزولی بسازیم

برنامه نویسی آداپتورهای ویدئویی CGA، EGA و VGA. برای تغییر فیلدهای سند ویرایش شده باید به کدام برگه بروید؟ لازم است که مقادیر محدوده سلول های H7:H21 را به ترتیب نزولی بسازیم

تابع MIN برای یافتن حداقل عدد در یک محدوده مشخص استفاده می شود و عدد مربوطه را برمی گرداند.

تابع MINA برای یافتن حداقل مقدار در محدوده داده های مورد مطالعه طراحی شده است و نتیجه مربوطه را برمی گرداند.

نمونه هایی از استفاده از توابع MIN و MIN در اکسل

صفحه گسترده اکسل حاوی اطلاعات مربوط به تاریخ تولد کارکنان اداری است. حداقل سن یک کارمند را تعیین کنید.

دیتاشیت:

برای محاسبات، از فرمول آرایه استفاده می کنیم (نتیجه صحیح فقط زمانی است که ترکیب Ctrl + Shift + Enter را فشار دهید):


تنها آرگومان عبارت YEAR(TODAY())-YEAR(B3:B10) است که آرایه ای از مقادیر عددی را برابر با تفاوت بین سال جاری و سال تولد هر کارمند برمی گرداند. در نتیجه محاسبات بدست می آوریم:


این فرمول به طور خودکار محاسبه می کند که جوان ترین کارمند 27 ساله است.



نحوه محاسبه مجموع حداقل مقادیر غیر منفی در اکسل

جدول اکسل حاوی چندین ستون از داده های عددی است. مجموع حداقل مقادیر غیر منفی موجود در این ستون ها را بیابید. علاوه بر این، کوچکترین عدد موجود در جدول را پیدا کنید.

جدول منبع:


برای تعیین حداقل اعداد غیر منفی، از فرمول آرایه استفاده کنید:

!}

تنها آرگومان تابع IF است که آرایه داده را برای وقوع اعداد مثبت بررسی می کند. اگر شرط درست باشد، تابع MIN آرایه ای را به عنوان آرگومان می گیرد که فقط شامل اعداد مثبت است. به طور مشابه، حداقل مقادیر را برای ستون های باقی مانده پیدا می کنیم. نتیجه حاصل (Ctrl+Shift+Enter):


با استفاده از فرمول کوچکترین عدد را در جدول پیدا کنید:

آرگومان های تابع مقادیری هستند که توسط هر یک از توابع MIN برای بردار داده مشخص شده بازگردانده می شوند. به عنوان فرمول آرایه استفاده کنید. نتیجه (Ctrl+Shift+Enter):


یافتن چندین کوچکترین مقدار در شرایط اکسل

برخی از شرکت ها قبلا با یک تامین کننده محصول کار می کردند. با این حال، مشخص شد که برخی از تامین کنندگان دیگر قیمت های مناسب تری را ارائه می دهند. صفحه گسترده اکسل شامل کدهای محصول و تخفیف های ارائه شده توسط سایر فروشندگان است. در صورت عدم تخفیف مقدار منطقی FALSE نمایش داده می شود و در صورت مثبت بودن عدد قیمت کالا بیشتر می شود. بزرگترین تخفیف را برای اقلام مشابه فقط با قیمت های مختلف از تامین کنندگان مختلف بیابید.

جدول منبع:

فرمول محاسبه (فرمول آرایه):

=0;"بدون تخفیف";MINA(IF(A3:A15=D1;B3:B15;"")))" class="formula"/>

الگوریتم محاسبه:

  1. تابع IF شرط MINA(IF(A3:A15=D1;B3:B15;""))>=0 را آزمایش می کند، که در آن MINA حداقل مقدار تخفیف را برای محصولی که کد آن در سلول D1 مشخص شده است، برمی گرداند.
  2. تابع MINA مقادیر بولی را در نظر می گیرد. این امکان وجود دارد که برای هیچ کالایی تخفیفی وجود نداشته باشد (همه مقادیر FALSE هستند) و نتیجه 0 (صفر) باشد. در این صورت، رشته متنی "بدون تخفیف" برگردانده می شود. اگر همه تخفیف ها فقط اعداد مثبت باشند، رویداد مشابهی رخ خواهد داد.
  3. در صورت عدم رعایت شرط، حداکثر تخفیف (بزرگترین مقدار منفی) برای کد کالای مشخص شده عودت داده می شود.

بیایید بزرگترین تخفیف ها را برای سایر کالاها محاسبه کنیم. در نتیجه، ما (Ctrl+Shift+Enter) را دریافت می کنیم:


ویژگی های استفاده از توابع MIN و MIN در اکسل

تابع MIN دارای نماد نحوی زیر است:

MIN (شماره 1 ;[شماره2]…)

شرح استدلال ها:

  • number1 یک آرگومان اجباری است که اولین عدد را از محدوده ای که می خواهید حداقل مقدار را در آن پیدا کنید مشخص می کند.
  • [number2]… - آرگومان‌های اختیاری دوم و بعدی که اعداد دوم و بعدی را از محدوده مورد مطالعه مشخص می‌کنند.

تابع MINA دارای نماد نحوی زیر است:

MINA (مقدار1، [مقدار2]…)

شرح استدلال ها:

  • value1 یک آرگومان اجباری است که اولین رخداد را در محدوده ای که می خواهید حداقل مقدار را در آن پیدا کنید مشخص می کند.
  • [value2]… - آرگومان‌های اختیاری دوم و بعدی که رخدادهای دوم و بعدی محدوده داده‌های مورد مطالعه را مشخص می‌کنند.

یادداشت 1:

  1. تفاوت در نحو بر تفاوت معنایی بین دو تابع تأکید می کند: MIN فقط با مقادیر عددی کار می کند، MINA علاوه بر این، نوع داده بولی را نیز در نظر می گیرد.
  2. اگر فقط رشته های متنی که نمایش متنی اعداد نیستند به عنوان آرگومان به توابع MIN و MIN ارسال شوند، توابع مقدار 0 را برمی گردانند.
  3. تابع MIN که ارجاع به محدوده ای از داده ها را به عنوان آرگومان می گیرد، نه تنها TRUE و FALSE منطقی را نادیده می گیرد، بلکه رشته های متن و سلول های خالی را نیز نادیده می گیرد.
  4. اگر آرگومان MIN یا MINA فرمولی باشد که خطا را برمی گرداند، نتیجه اجرای این توابع نیز یک کد خطا خواهد بود. توصیه می شود که داده ها را با استفاده از تابع IFERROR بررسی کنید.
  5. توابع MIN و MINA دارای توابع آنالوگ منطقی نیستند، به عنوان مثال، در تابع COUNT (COUNTIF) پیاده سازی شده است، بنابراین تأیید داده ها باید زمانی که MIN و MINA اجرا می شوند، با ارسال توابع منطقی (IF، ISERROR، و غیره) انجام شود. ) به عنوان استدلال.

یادداشت 2:

  1. اگر محدوده ارجاع شده به عنوان آرگومان حاوی مقادیر متنی یا نمایش متنی اعداد باشد، تابع MINA 0 (صفر) را برمی گرداند.
  2. هر دو تابع برای یافتن حداقل مقادیر در محدوده ای از مقادیر ارسال شده به عنوان آرگومان استفاده می شوند، اما چند تفاوت بین آنها وجود دارد:
  • اگر یکی از آرگومان های تابع MIN یک مقدار بولی باشد (TRUE یا FALSE که به ترتیب می توان آن را به مقادیر عددی 1 و 0 تبدیل کرد)، این مقدار در محاسبات لحاظ می شود. برای مثال تابع =MIN(100;TRUE;FALSE;10) مقدار 0 را برمی گرداند.
  • اگر ارجاع به محدوده ای حاوی داده های نوع بولی به عنوان آرگومان به تابع MIN ارسال شود، مورد دوم در نظر گرفته نخواهد شد. به عنوان مثال، تابع =MIN(A1:A4) اگر محدوده سلولی A1:A4 حاوی داده های زیر باشد، 10 را برمی گرداند: به ترتیب 100، TRUE، FALSE و 10.
  • برای در نظر گرفتن داده هایی از نوع منطقی در محاسبات، باید از تابع MINA استفاده کنید. به عنوان مثال، ورودی =MINA(A1:A4) مقدار 0 را برمی گرداند (FALSE منطقی معادل عدد 0 است) اگر سلول های A1:A4 حاوی داده هایی مانند پاراگراف قبلی باشد.
14. سوال. چه دستوری را برای قالب بندی سریع پاراگراف پایین به همان فرمت پاراگراف بالا انتخاب می کنید؟

گزینه های پاسخ:

4) 3.
15. سوال. برای تغییر فیلدهای سند ویرایش شده باید به کدام برگه بروید؟


گزینه های پاسخ:

4) 4.
16. سوال. برای دریافت این متن روی کدام دکمه باید کلیک کرد؟


گزینه های پاسخ:

4) 2.
17. سوال. برای قرار دادن شماره صفحه در سند باید به کدام برگه بروید؟


گزینه های پاسخ:

4) 4.
18. سوال. متن حاوی پیوندی به یک منبع خارجی است. برای عبور از آن چه باید بکنم؟


گزینه های پاسخ:

5) کلید SHIFT را نگه دارید و با دکمه سمت چپ ماوس روی لینک کلیک کنید.
19. سوال. اگر روی دکمه مشخص شده کلیک کنید چه اتفاقی می افتد؟

گزینه های پاسخ:

1) یک صفحه خالی در این سند ایجاد می شود.

2) انتقال به حالت "پیش نمایش" وجود خواهد داشت.

3) یک سند جدید Microsoft Word ایجاد خواهد شد.

4) صفحه فعلی چاپ خواهد شد.
20. سوال. می‌خواهید پاراگراف پایینی شبیه پاراگراف بالا باشد. کدام دکمه را باید فشار داد؟


گزینه های پاسخ:

4) 1.
21. سوال. در کدام قسمت از صفحه روی دکمه سمت چپ ماوس دوبار کلیک می کنید تا امکان وارد کردن هدر و پاورقی فراهم شود؟


گزینه های پاسخ:

4) 3.
22. سوال. چگونه محدوده ای از سلول های مشخص شده با رنگ زرد را در یک صفحه انتخاب کنیم؟


گزینه های پاسخ:

1) محدوده سلول های E2:E8 را انتخاب کنید، سپس با نگه داشتن کلید ALT، محدوده H2:H8 را انتخاب کنید.

2) محدوده سلول های E2:E8 را انتخاب کنید، سپس با نگه داشتن کلید CTRL، محدوده H2:H8 را انتخاب کنید.

3) محدوده سلول های E2:E8 را انتخاب کنید، سپس با نگه داشتن کلید SHIFT، محدوده H2:H8 را انتخاب کنید.

4) از قالب بندی شرطی استفاده کنید.
23. سوال. شما تصمیم گرفته اید تعداد افرادی که در سال 1392 در سمت های دولتی و خدمات کشوری در دستگاه های اجرایی و مقننه بوده اند را بشمارید. کدام گزینه این مشکل را حل می کند؟


گزینه های پاسخ:

1) =SUM(H4:H8);

2) =SUM(H4:H5);

3) =SUM(B4:B5);

4) = SUM ($4:$5).
24. سوال. می خواهید با یک کلیک یک برگه جدید را در کتاب کار مایکروسافت اکسل وارد کنید، روی کدام دکمه باید کلیک کنید؟

گزینه های پاسخ:

4) 3.
25. سوال. شما می خواهید کل صفحه یک کتاب کار مایکروسافت اکسل را انتخاب کنید، روی کدام دکمه کلیک کنید؟

گزینه های پاسخ:

4) 4.
26. سوال. آیا می خواهید محدوده ستون های B:H را برای این انتخاب کنید؟


گزینه های پاسخ:

1) با نگه داشتن کلید Ctrl، روی عنوان ستون B (ناحیه 1) کلیک کنید و سپس روی عنوان ستون H (ناحیه 2) کلیک کنید.

2) روی عنوان ستون B (ناحیه 1) کلیک کنید، کلید Ctrl را فشار دهید و در حالی که آن را نگه داشته اید روی عنوان ستون H (ناحیه 2) کلیک کنید.

3) روی عنوان ستون B (ناحیه 1) کلیک کنید، کلید Shift را فشار دهید و در حالی که آن را نگه داشته اید روی عنوان ستون H (ناحیه 2) کلیک کنید.

4) کلید Shift را نگه دارید و روی عنوان ستون B (ناحیه 1) کلیک کنید سپس روی عنوان ستون H (ناحیه 2) کلیک کنید.
27. سوال. آیا می خواهید ردیف های نامرتبط 10 و 20 را برای آن برجسته کنید؟


گزینه های پاسخ:

1) روی عنوان خط 10 (منطقه 1) کلیک کنید و سپس روی عنوان خط 20 (ناحیه 2) کلیک کنید.

2) روی عنوان خط 10 (ناحیه 1) کلیک کنید، کلید Ctrl را فشار دهید و در حالی که آن را نگه داشته اید روی عنوان خط 20 (ناحیه 2) کلیک کنید.

3) روی عنوان خط 10 (ناحیه 1) کلیک کنید، کلید Shift را فشار داده و نگه دارید و روی عنوان خط 20 (ناحیه 2) کلیک کنید.

4) کلید Shift را نگه دارید و روی عنوان خط 10 (ناحیه 1) کلیک کنید و سپس روی عنوان خط 20 (ناحیه 2) کلیک کنید.
28. سوال. در سلول I7، باید مقدار متوسط ​​محدوده سلول های B7:H7 را بدست آورید؟

گزینه های پاسخ:

1) روی سلول I7 کلیک کنید، سپس به تب 1 بروید، از دستور Average استفاده کنید و کلید Enter را فشار دهید.

2) روی سلول I7 کلیک کنید، سپس به تب 2 بروید، از دستور Average استفاده کنید و کلید Enter را فشار دهید.

3) روی سلول I7 کلیک کنید، سپس به تب 3 بروید، از دستور Average استفاده کنید و کلید Enter را فشار دهید.

4) روی سلول I7 کلیک کنید، سپس به تب 4 بروید، از دستور Average استفاده کنید و کلید Enter را فشار دهید.
29. سوال. آیا باید مقادیر محدوده سلول های H7:H21 را به ترتیب نزولی مرتب کنید؟


گزینه های پاسخ:

1) روی دکمه 1 کلیک کنید.

2) روی سلول H6 کلیک کنید و سپس روی دکمه 1 کلیک کنید.

3) روی سلول H6 کلیک کنید و سپس روی دکمه 2 کلیک کنید.

4) روی دکمه 3 کلیک کنید.

30. سوال. آیا نیاز به فرمت محدوده سلول های J8-J22 مانند سلول J7 دارید؟


گزینه های پاسخ:

1) روی سلول J7 کلیک کنید، سپس روی دکمه 1 کلیک کنید و محدوده سلول های J8:J22 را با مکان نما انتخاب کنید.

2) روی عنوان ستون J کلیک کنید (دکمه 2) سپس به تب 4 بروید و از دستور Format Painter استفاده کنید.

3) محدوده سلول های J8:J22 را انتخاب کنید، سپس به تب 3 بروید و از دستور Format Painter استفاده کنید.

4) روی سلول J7 کلیک کنید، سپس به تب 4 بروید و محدوده سلول های J8:J22 را با مکان نما انتخاب کنید.
31. سوال. در نمودار زیر، شما تصمیم گرفته اید که مقیاس محور عمودی را برای وضوح بیشتر تغییر دهید و حداکثر مقدار را روی 5 قرار دهید. به کدام آیتم منو نیاز دارید؟


گزینه های پاسخ:

4) 3.
32. سوال. شما می خواهید که برچسب "خلاصه" در جدول سمت چپ در مرکز انتخاب مانند جدول سمت راست باشد. کدام دکمه را باید فشار داد؟

گزینه های پاسخ:

4) 3.
33. سوال. شما می خواهید برچسب "Summary" در جدول سمت راست همانطور که در جدول سمت چپ است قرار گیرد. کدام دکمه را باید فشار داد؟


گزینه های پاسخ:

4) 3.
34. سوال. اگر تابع =MIN(H4:H8) در آنجا وارد شود چه مقداری در سلول انتخاب شده ظاهر می شود؟

گزینه های پاسخ:

4) 11479.
35. سوال. شما می خواهید که عدد موجود در سلول سمت راست مانند عدد سمت چپ نمایش داده شود. کدام آیتم منو باید انتخاب شود؟


گزینه های پاسخ:

4) 3.
36. سوال. شما می خواهید سلول C19 انتخاب شده بین سلول های A19 - B19 تفاوت داشته باشد. وارد کردن فرمول را از کجا شروع کنم؟

گزینه های پاسخ:

1) با فاصله؛

2) از علامت منفی؛

3) از علامت "برابر"؛

4) با نام سلول.
37. سوال. اگر ناحیه انتخاب شده را با اعداد 1، 2، 3 در گوشه سمت راست پایین و در حالی که دکمه سمت چپ ماوس را نگه داشته اید، بکشید، آیا نتیجه همان قطعه خواهد بود؟

گزینه های پاسخ:

1) ; 2) ;
3) ; 4) .

38. سوال. برای افزودن اسلاید به ارائه خود به کدام برگه باید بروید؟


گزینه های پاسخ:

4) 3.
39. سوال. برای تبدیل متن انتخاب شده از قطعه 1 به لیست گلوله ای، مانند قطعه 2، کدام دکمه را باید فشار داد؟


گزینه های پاسخ:

4) 4.
40. سوال. چه دکمه ای باید فشار داده شود تا متن انتخاب شده از قطعه 1 به همان شکل در قطعه 2 تبدیل شود؟

گزینه های پاسخ:

4) 3.
41. سوال. کدام دکمه را باید فشار داد تا کلمه "سلول" در جدول بالا شبیه به جدول پایین شود؟


گزینه های پاسخ:

42. سوال. چگونه می توانم به حالت نمایش اسلاید سوئیچ کنم؟

گزینه های پاسخ:

4) 3.
43. سوال. مانند تصویر سمت راست کدام آیتم از منو را انتخاب کنید تا نتیجه به دست آید؟


گزینه های پاسخ:

4) 3.
44. سوال. از چه میانبری برای راه اندازی مرورگر برای مشاهده صفحات وب استفاده کنم؟

گزینه های پاسخ:

4) 4.
45. سوال. شما باید بلافاصله به سایت www.kremlin.ru بروید. آدرس مورد نظر را در کدام قسمت وارد کنیم؟


گزینه های پاسخ:

4) 4.
46. ​​سوال. بدون بستن برگه های سایت kremlin.ru، می خواهید با باز کردن آن در یک برگه جدید، به پورتال gov.ru بروید. از کدام گزینه باید استفاده کرد؟

گزینه های پاسخ:

4) 4.
47. سوال. اگر روی نماد مشخص شده کلیک کنید چه اتفاقی می افتد؟

گزینه های پاسخ:

1) بارگذاری صفحه را متوقف کنید.

2) بستن مرورگر Microsoft Internet Explorer.

3) رفتن به صفحه قبل؛

4) به روز رسانی صفحه
48. سوال. شما ایمیلی دریافت کرده اید که چندین گیرنده در نسخه آن وجود دارد. اگر روی دکمه "پاسخ" کلیک کنید، چه آدرس هایی در قسمت "به" نامه شما ظاهر می شود؟

گزینه های پاسخ:

1) ایگور ژوراولف؛

2) ایگور ژوراولف، آندری کوروش، الکسی چوماچنکو، پولینا وافینا؛

3) ایگور ژوراولف، پولینا وفینا؛

4) یک ایمیل با یک فیلد خالی "به" ایجاد می شود.
49. سوال. شما ایمیلی دریافت کرده اید که چندین گیرنده در نسخه آن وجود دارد. وقتی روی دکمه Reply All کلیک می کنید چه اتفاقی می افتد؟


گزینه های پاسخ:

1) نامه ای ایجاد می شود که آدرسی که نامه اصلی را از آن دریافت کرده اید در قسمت "به" نشان داده می شود.

2) نامه ای ایجاد می شود که در قسمت های "To" و "Cc" به ترتیب، تمام گیرندگان ذکر شده در نامه اصلی نشان داده می شوند.

3) یک حرف با فیلد خالی "To" ایجاد می شود.

4) نامه ای ایجاد می شود که گیرندگان ذکر شده در نامه اصلی در قسمت "کپی" نشان داده می شوند.
50. سوال. شما یک ایمیل از یک آدرس خاص دریافت کرده اید. چندین آدرس دیگر در قسمت "کپی" وجود دارد. شما می خواهید فقط به شخصی که نامه از آدرس او آمده است پاسخ دهید. کدام دکمه را باید فشار داد؟

گزینه های پاسخ:

1) پاسخ؛

2) به همه پاسخ دهید.

3) ایجاد یک پیام؛

4) به جلو.
51. سوال. دکمه Go To برای چه مواردی استفاده می شود؟


گزینه های پاسخ:

1) ایجاد یک کار؛

2) تهیه پاسخ از طرف مدیر؛

3) به طوری که حرف همیشه خوانده نشده است.

4) ارسال نامه به زیردستان.
52. سوال. کدام عبارت در زیر تعریف شده است؟

گزینه های پاسخ:

1) باز کردن داده ها؛

2) داده های دولتی باز.

3) گذرنامه داده باز.

اطلاعات اولیه
داده منبع می تواند هر مجموعه داده عددی باشد، مانند یک محدوده افقی یا عمودی، یک آرایه دو بعدی، یا حتی محدوده های غیر پیوسته یا سلول های جداگانه. برای راحتی، یک آرایه عمودی یک بعدی A1: A5 گرفتم

برای حل این مشکل می توانید هم از یک ستون اضافی با فرمول میانی و هم از یک فرمول آرایه استفاده کنید

1. راه حل با ستون اضافی

در B1 فرمول را بنویسید

IF(A1<>0;A1;"")


و آن را در محدوده B2:B5 کپی کنید. این فرمول میانی در یک ستون اضافی، صفرها را از داده های اصلی "حذف" می کند و آنها را با یک رشته خالی جایگزین می کند. ""

در C1 فرمول را بنویسید

نتیجه مورد نظر - یک عدد را برمی گرداند 3

IF(A1<>0;A1;"")


شما باید از فرمول استفاده کنید

IF(A1>0;A1;"")


2. راه حل با فرمول آرایه
برای حل این مشکل از فرمول آرایه زیر استفاده کنید:

MIN(IF(A1:A5<>0;A1:A5))



چگونه کار می کند:این بخشی از فرمول است A1: A5<>0 یک آرایه تشکیل می دهد (درست: صحیح: نادرست: نادرست: درست)، سپس با استفاده از تابع IF() آرایه را به شکل زیر تبدیل می کنیم: (5:7:FALSE:FALSE:3). از آنجایی که تابع MIN()متن و مقادیر منطقی را نادیده می گیرد، سپس در پایان عدد مورد نظر را به دست می آوریم 3

اگر اعداد منفی در محدوده وجود دارد، به جای فرمول

MIN(IF(A1:A5<>0;A1:A5))


شما باید از فرمول استفاده کنید

MIN(IF(A1:A5>0,A1:A5))


3. راه حل با یک فرمول ساده
از این فرمول استفاده کنید:

SMALL(A1:A5,COUNTIF(A1:A5,0)+1)



نحوه کار: استفاده از تابع COUNTIFتعداد صفرهای محدوده را می شماریم و با اضافه کردن یک به این عدد اولین کوچکترین عدد بزرگتر از صفر را با استفاده از تابع برمی گردانیم. کمترین

اگر اعداد منفی در محدوده وجود دارد، به جای فرمول

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

تابع چه چیزی را برمی گرداند

کوچکترین مقدار را از طیفی از داده ها برمی گرداند.

نحو

=MIN (شماره 1، , …)- نسخه انگلیسی

=MIN (شماره 1، [شماره 2]،…)- نسخه روسی

آرگومان های تابع

  • شماره 1 (شماره 1)- اولین عدد از محدوده داده ای که باید حداقل مقدار را از آن بدست آوریم.
  • ، … ([شماره 2])- (اختیاری) دومین عدد از محدوده داده که باید حداقل مقدار را از آن بدست آوریم. در مجموع، 255 مقدار عددی را می توان به عنوان آرگومان تابع مشخص کرد.

اطلاعات تکمیلی

  • سلول‌های خالی، عبارات بولی، متن یا پیوندها نادیده گرفته می‌شوند.
  • اگر آرگومان‌ها حاوی سلول‌هایی با خطا یا متن باشند که نمی‌توانند به مقدار عددی تبدیل شوند، تابع یک خطا برمی‌گرداند.
  • آرگومان های تابع همچنین می توانند نام ها، آرایه ها یا مراجعی باشند که حاوی مقادیر عددی هستند.
  • مقادیر بولی و مقادیر متنی اعدادی که مستقیماً در لیست آرگومان وارد می کنید در نظر گرفته می شوند.
  • اگر آرگومان آرایه یا مرجع باشد، تابع فقط اعداد را در نظر می گیرد. سلول های خالی، بولی ها، یا متن در یک آرایه یا مرجع نادیده گرفته می شوند.
  • اگر هیچ مقدار عددی در آرگومان های تابع مشخص نشده باشد، تابع مقدار "0" (صفر) را برمی گرداند.
  • 8.12. تنظیم پالت رنگ (حالت های 4،5،6) - عملکرد 0Bh
  • 8.15. نوشتن کاراکتر در حالت TTY - تابع 0Eh
  • تمام عملکردهای اصلی BIOS که برای کار با آداپتورهای ویدئویی طراحی شده اند، به تفصیل شرح داده شده اند. عملکردهای اصلی BIOS بر روی تمام رایانه های سری IBM PC/XT/AT، PS/2 اجرا می شوند. برای هر گروه از توابع، این فصل شامل مثال های برنامه است.

    استفاده از توابع BIOS به رجیسترهای برنامه نویسی ارجح است، ایمن تر و قابل اعتمادتر است، زیرا یک بایوس ویدئویی ویژه روی برد آداپتور نصب شده است. این بایوس عملکرد صحیح رجیسترها را تضمین می کند و آسیب های احتمالی به آداپتور و CRT را از بین می برد.

    8.1. انتخاب حالت عملیاتی - عملکرد 00h

    عملکرد 00h وقفه 10h به شما امکان می دهد هر حالت عملکرد آداپتور ویدئو را تنظیم کنید:

    ورودی: AH = 00h; AL = تعداد حالت عملکرد آداپتور ویدیویی که باید تنظیم شود، اگر بیت D7 = 1 باشد، پس از تنظیم حالت، حافظه ویدیو پاک نمی شود. خروجی: استفاده نشده

    در اینجا نمونه ای از انتخاب حالت آداپتور ویدئو آورده شده است:

    mov ah,0 ; عملکرد برای انتخاب حالت عملکرد آداپتور ویدئویی mov al, mode ; حالت را انتخاب کنید int 10h ;

    8.2. تغییر شکل مکان نما - عملکرد 01h

    تابع 01h به شما این امکان را می دهد که با تنظیم مرزهای بالا و پایین مکان نما، ابعاد عمودی مکان نما را تغییر دهید (شکل 9.1 را ببینید). ابعاد افقی مکان نما همیشه یکسان و برابر با عرض یک کاراکتر است.

    در ورودی: AH = 00h - تغییر اندازه مکان نما. CH = حد بالایی مکان نما: حد بالایی مکان نما D3-D0 D5-D4 00b ​​- مکان نما معمولی 01b - مکان نما نامرئی 10b - مکان نما چشمک زن 11b - مکان نما سریع چشمک زن D7-D6 استفاده نشده است. CL = حد پایین نشانگر (0-31). خروجی: استفاده نشده

    مکان نما فقط در حالت های متنی آداپتور ویدیویی نمایش داده می شود.

    هنگامی که حالت آداپتور ویدئویی را انتخاب می کنید، BIOS مقادیر زیر را برای مرزهای مکان نما بالا و پایین تنظیم می کند:

    • برای نمایشگرهای تک رنگ و رنگی پیشرفته، حد بالا 11 ساعت و حد پایین 12 ساعت است.
    • برای نمایش رنگی، حد بالایی = 6h و حد پایینی = 7h.

    شکل 9.1 تغییر موقعیت مکان نما.

    8.3. تغییر موقعیت مکان نما - عملکرد 02h

    تابع 02h موقعیت فعلی مکان نما را روی صفحه نمایش تنظیم می کند.

    اگر حافظه ویدئویی به چندین صفحه تقسیم شود، هر یک از آنها مکان نما خود را دارد که مختصات آن را می توان جداگانه تنظیم کرد.

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

    در ورودی: AH = 02h - تنظیم موقعیت مکان نما. BH = شماره صفحه حافظه ویدیویی. DH = شماره خط (0-24)؛ DL = شماره ستون (0-79). خروجی: استفاده نشده

    8.4. تعیین موقعیت و شکل مکان نما - تابع 03h

    تابع 03h به شما امکان می دهد اندازه و مختصات فعلی مکان نما را برای هر صفحه حافظه ویدیویی پیدا کنید:

    در ورودی: AH = 03h - تعریف اندازه و مختصات مکان نما BH = شماره صفحه حافظه ویدئویی. خروجی: CH = حد بالای مکان نما. CL = مرز پایین مکان نما. DH = موقعیت خط مکان نما فعلی. DL = موقعیت ستون مکان نما فعلی.

    8.5. با استفاده از قلم نور - عملکرد 04h

    عملکرد 04h به شما امکان می دهد تعیین کنید که آیا قلم نور متصل است یا خیر. در صورت اتصال، می توانید مختصات آن را تعیین کنید. این عملکرد به شما امکان می دهد موقعیت قلم نور را هم در مختصات نوشتاری و هم گرافیکی پیدا کنید.

    توجه داشته باشید که نرم افزار قلم نور EGA به طور کامل با CGA سازگار نیست، در نتیجه برنامه هایی که از قابلیت استفاده از قلم نور برای آداپتور ویدئویی CGA پشتیبانی می کنند، با آداپتور ویدئویی EGA به درستی کار نمی کنند. آداپتور ویدئویی VGA قلم نوری ندارد.

    در ورودی: AH = 04h. در خروجی: AH = 0 - قلم نور متصل نیست (همه رجیسترهای دیگر حاوی اطلاعات مفید نیستند). AH = 1 - قلم نور متصل است. CH = مختصات موقعیت عمودی مکان نما در پیکسل (حالت های گرافیکی با وضوح پایین). CX = مختصات موقعیت عمودی مکان نما در پیکسل (حالت های گرافیکی با وضوح بالا). BX = مختصات موقعیت افقی مکان نما بر حسب پیکسل. DH = مختصات موقعیت عمودی مکان نما در اعداد خط. DL = مختصات موقعیت افقی مکان نما در اعداد ستون.

    در اینجا مثالی از استفاده از این تابع آورده شده است:

    mov ah,4 int 10h ; تعیین موقعیت قلم نور cmp ah,0 ; پرش به label not_pen اگر jz not_pen ; قلم متصل نیست mov light_pen_col,dl ; ذخیره مختصات قلم نوری mov light_pen_row,dh

    8.6. تغییر صفحه حافظه ویدیویی فعال - عملکرد 05h

    عملکرد 05h به شما امکان می دهد صفحه حافظه ویدیویی فعال را تغییر دهید. صفحه فعال حافظه ویدئویی روی صفحه نمایش داده می شود.

    در ورودی: AH = 05h - انتخاب صفحه حافظه ویدیویی فعال. AL = شماره صفحه حافظه ویدیویی که فعال می شود. خروجی: استفاده نشده

    8.7. جمع کردن جعبه متن بالا - ویژگی 06h

    با استفاده از عملکرد 06h می توانید پنجره فعال صفحه نمایش را به سمت بالا (هنگام کار در حالت متنی) به حداقل برسانید. پنجره با مختصات گوشه سمت چپ بالا و پایین سمت راست مشخص می شود. هنگامی که پنجره به حداقل می رسد، خطوط خالی جدید (خطوط پر از فاصله) در پایین ظاهر می شود و خطوط بالایی ناپدید می شوند. ناحیه صفحه نمایش خارج از پنجره تغییر نمی کند.

    در ورودی: AH = 06h - پنجره رول کردن. AL = تعداد خطوط قابل پیمایش، اگر برابر با صفر باشد، کل پنجره اسکرول می شود. BH = ویژگی مورد استفاده برای خطوط ظاهر شده در پایین پنجره. CH = شماره خط گوشه سمت چپ بالای پنجره. CL = شماره ستون گوشه سمت چپ بالای پنجره. DH = شماره خط گوشه سمت راست پایین پنجره. DL = شماره ستون گوشه سمت راست پایین پنجره. خروجی: استفاده نشده

    این واقعیت که وقتی به حداقل می رسد، خطوط خالی در پایین پنجره ظاهر می شود که متعاقباً کل پنجره را پر می کند، می تواند برای پاک کردن سریع صفحه استفاده شود. برای این کار کافی است اندازه پنجره را برابر با اندازه صفحه تنظیم کنید و آن را 25 یا 0 خط به بالا اسکرول کنید. در اینجا یک قطعه برنامه به زبان اسمبلی است که می تواند برای پاک کردن صفحه نمایش استفاده شود:

    هل می دهد؛ ذخیره محتویات رجیستر es xor ax,ax ; ثبات es را روی صفر mov es,ax قرار دهید. بخش حافظه mov ah,6 ; عملکرد جمع شدن صفحه نمایش mov al,0 ; پاک کردن کل پنجره mov bh,7 ; تنظیم ویژگی عادی xor cx,cx ; گوشه سمت چپ بالای پنجره را روی (0,0) قرار دهید. از محتویات متغیرها برای تعیین ابعاد صفحه استفاده می شود. ویژگی های ویدئویی بایوس محل حافظه واقع در آدرس 0000:0484 ; شامل یک عدد یک کمتر از تعداد خطوط روی صفحه است. ; در آدرس 0000:044A متغیری است که تعداد کاراکترها را مشخص می کند. در صف در جزئیات بیشتر، متغیرهای تابع ویدیوی BIOS عبارتند از: بعدا بررسی شد mov dh,es: ; تعیین تعداد خطوط در این حالت mov dl,es: ; تعیین تعداد کاراکترهای رشته dec dl int 10h ; کال اسکرین roll up pop es ; Restore register es

    8.8. کوچک کردن جعبه متن به پایین - تابع 07h

    با استفاده از عملکرد 07h می توانید پنجره فعال صفحه را (هنگام کار در حالت متنی) به حداقل برسانید. پنجره با مختصات گوشه سمت چپ بالا و پایین سمت راست مشخص می شود. همانطور که پیمایش می کنید، خطوط خالی جدید (خطوط پر از فاصله) در بالای پنجره ظاهر می شوند و خطوط پایین ناپدید می شوند. ناحیه صفحه نمایش خارج از پنجره تغییر نمی کند.

    در ورودی: AH = 07h - پنجره رول می شود. AL = تعداد خطوط قابل پیمایش، اگر برابر با صفر باشد، کل پنجره اسکرول می شود. BH = ویژگی مورد استفاده برای ردیف هایی که در بالای پنجره ظاهر می شوند. CH = شماره خط گوشه سمت چپ بالای پنجره. CL = شماره ستون گوشه سمت چپ بالای پنجره. DH = شماره خط گوشه سمت راست پایین پنجره. DL = شماره ستون گوشه سمت راست پایین پنجره. خروجی: استفاده نشده

    از این تابع می توان برای پاک کردن پنجره مانند تابع 06h استفاده کرد.

    8.9. خواندن نماد و ویژگی های آن - تابع 08h

    در ورودی: AH = 08h - خواندن نماد و ویژگی های آن. BH = شماره صفحه حافظه ویدیویی. خروجی: AL = کد کاراکتر ASCII; AH = بایت صفت کاراکتر.

    پیرمر زیر کاراکتر و ویژگی آن را از موقعیت مکان نما فعلی در صفحه می خواند:

    ... mov ah,8 ; خواندن کاراکتر و ویژگی های آن mov bh,page ; صفحه صفحه حافظه ویدیویی را انتخاب کنید int 10h ; خواندن کاراکتر و ویژگی آن mov char,al ; کد کاراکتر اسکی حاصل را ذخیره کنید mov attr,ah ; و ویژگی آن ...

    8.10. نوشتن کاراکتر با ویژگی ها در موقعیت مکان نما - تابع 09h

    این تابع به شما امکان می دهد یک یا چند کاراکتر یکسان را با ویژگی ها در موقعیت مکان نما بنویسید. در این حالت، ضبط می تواند هم در صفحات فعال و هم در صفحات غیرفعال حافظه ویدیویی رخ دهد. پس از انجام عملیات نوشتن، موقعیت مکان نما تغییر نمی کند. کاراکترهای کنترلی مانند carriage return و line feed هیچ تاثیری ندارند و به صورت کاراکترهای معمولی نوشته می شوند. این تابع در دو حالت متنی و گرافیکی کار می کند.

    در ورودی: AH = 09h - ورود کاراکتر با یک ویژگی. AL = کد اسکی کاراکتر در حال نوشتن. BH = شماره صفحه حافظه ویدیویی. BL = ویژگی (برای حالت متن) یا رنگ (برای حالت گرافیکی). CX = تعداد کاراکترهایی که باید بنویسید. خروجی: استفاده نشده

    در زیر مثالی با استفاده از عملکردهای بایوس مورد بحث برای انتخاب حالت عملکرد آداپتور ویدئو، انتخاب صفحه حافظه فعال ویدئویی، تغییر شکل و مختصات مکان نما و نمایش کاراکترها در صفحه نمایش داده شده است:

    TITLE BIOS_FUNCTION .MODEL tiny DOSSEG .STACK 100h .Data message DB "INT 10h", 0 video_page DB 2 .CODE .STARTUP ; حالت آداپتور ویدیویی را انتخاب کنید 0 xor ah,ah xor al,al int 10h ; تغییر شکل مکان نما mov ah,1 ; شروع مکان نما - خط 0 ; انتهای مکان نما - خط 7 mov ch,0 mov cl,7 int 10h ; صفحه حافظه ویدیویی را انتخاب کنید - video_page mov ah,5 mov al,video_page int 10h ; اسکرول پنجره صفحه نمایش mov ah,6 xor al,al ; کل پنجره را اسکرول کنید mov bh,0FFh . از ویژگی 0FFh mov cl,10 استفاده کنید. گوشه سمت چپ بالای پنجره mov ch,5 mov dl,30 ; گوشه سمت راست پایین پنجره mov dh,15 int 10h را تنظیم کنید. تنظیم مختصات مکان نما mov ah,2 mov bh,video_page ; انتخاب صفحه video_page mov dh,12 ; line 12 mov dl,20 ; ستون 20 int 10h ;نمایش پیام رشته در صفحه فعال صفحه mov si,OFFSET پیام تماس WriteString .EXIT 0 ; رویه WriteString رشته ای را نشان می دهد که دارای; افست si در بخش ds WriteString PROC ; تعیین صفحه نمایش فعال فعلی mov ah,0Fh int 10h ; شماره صفحه فعال در ثبت bh ; دریافت مختصات مکان نما در dx mov ah,3 int 10h ; در یک حلقه، کاراکترهای رشته next_char را نمایش می دهیم: mov ah,9 lodsb cmp al,0 ; انتهای خط را پیدا کنید je exit_proc ; اگر به انتهای رشته رسید، رویه mov bl,8 را خاتمه دهید. برای نمایش کاراکترها از ویژگی 8 mov cx,1 استفاده کنید. کاراکترهای رشته بدون تکرار int 10h خروجی می شوند. حرکت مکان نما به موقعیت خط بعدی mov ah,2 inc dl int 10h jmp next_char exit_proc: ret WriteString ENDP END

    8.11. نوشتن کاراکتر در موقعیت مکان نما - تابع 0Ah

    این تابع به شما امکان می دهد یک کاراکتر را در موقعیت مکان نما فعلی در هر صفحه حافظه ویدیویی بنویسید. مانند عملکرد قبلی، می توانید چندین کاراکتر یکسان را به طور همزمان بنویسید. ویژگی‌های کاراکتر تنظیم نشده‌اند، اما از مقادیر قدیمی آنها از عملیات نوشتن قبلی استفاده می‌شود. بعد از عملیات نوشتن، موقعیت مکان نما تغییر نمی کند. کاراکترهای کنترلی مانند carriage return و line feed هیچ تاثیری ندارند و به صورت کاراکترهای معمولی نوشته می شوند.

    در ورودی: AH = 10h - ورود کاراکتر بدون ویژگی. AL = کد اسکی کاراکتر در حال نوشتن. BH = شماره صفحه حافظه ویدیویی. BL = رنگ (برای حالت گرافیکی)؛ CX = تعداد کاراکترهایی که باید بنویسید. خروجی: استفاده نشده

    اگر یک کاراکتر روی آداپتور ویدئویی EGA در حالت گرافیکی نوشته شده باشد و بیت D7 از رجیستر BL حاوی یک کاراکتر باشد، آنگاه نویسه جدید بر اساس منطق عملیات EXCLUSIVE OR Boolean روی محتوای صفحه فعلی قرار می گیرد.

    8.12. تنظیم پالت رنگ (حالت های 4،5،6) - عملکرد 0Bh

    این تابع به شما امکان می دهد یکی از دو پالت رنگ استاندارد را انتخاب کنید (جدول 9.1 را ببینید). این عملکرد برای اطمینان از سازگاری با آداپتور ویدئویی CGA استفاده می شود.

    جدول 9.1 پالت های رنگ استاندارد در حالت های 4،5،6.

    تابع 0Bh فرمت تماس زیر را دارد:

    در ورودی: AH = 0Bh - تنظیم پالت رنگ. BH = 0، سپس BL = رنگ پس زمینه و قاب (برای حالت گرافیکی) یا رنگ قاب (برای حالت متن) BH = 1، سپس BL = شماره پالت (0 یا 1). خروجی: استفاده نشده

    8.13. خروجی پیکسل - عملکرد 0Ch

    استفاده از توابع BIOS برای ایجاد تصاویر، به ویژه برای نمایش پیکسل های منفرد، اگرچه کندتر از برنامه نویسی مستقیم حافظه ویدئویی و ثبت نام است، اما از نظر سازگاری با حالت های مختلف و آداپتورهای ویدئویی قابل اعتمادتر است.

    این تابع در حالت های گرافیکی برای نوشتن یک پیکسل با رنگ مشخص در هر صفحه از حافظه ویدیویی استفاده می شود. لازم به ذکر است که آداپتور ویدئویی CGA تنها یک صفحه حافظه ویدئویی دارد که در حالت های گرافیکی تعریف شده است. مقادیر رنگی که می توان در حالت های مختلف استفاده کرد در جدول 9.2 فهرست شده است:

    رنگ های مربوط به اعداد رنگ در جدول را می توان در فصل "حالت های عملکرد آداپتور ویدئو" مشاهده کرد.

    جدول 9.2 مقادیر ممکن اعداد رنگ برای حالت های مختلف.

    فرمت فراخوانی تابع 0Ch در زیر نشان داده شده است:

    در ورودی: AH = 0Ch - رکورد پیکسل. AL = شماره رنگ. BH = شماره صفحه (برای CGA استفاده نمی شود). مختصات CX = X; DX = مختصات Y خروجی: استفاده نشده است.

    اگر بیت D7 رجیستر AL شامل یک بیت باشد، پیکسل جدید بر اساس منطق عملیات EXCLUSIVE OR Boolean روی محتوای صفحه فعلی قرار می گیرد.

    توجه داشته باشید که مبدا سیستم مختصات در گوشه سمت چپ بالای صفحه است و محورهای مختصات به صورت زیر است: محور X به سمت راست، محور Y پایین است. علاوه بر این، مگر اینکه غیر از این مشخص شده باشد، ما همیشه از این سیستم مختصات استفاده خواهیم کرد.

    // نمایش توابع - انتخاب یک پالت رنگ و خروجی // یک پیکسل. #عبارتند از #عبارتند از void main(void); void main(void) ( union REGS inregs, outregs; unsigned char i, j; // تنظیم حالت آداپتور ویدیو 4 // (گرافیک - 320x200، 4 رنگ) inregs.h.ah = 0x0؛ inregs.h.al = 0x4 ؛ int86(0x10، &inregs، &outregs)؛ // تنظیم رنگ پس‌زمینه inregs.h.ah = 0x0B؛ inregs.h.bh = 0x0؛ //تنظیم رنگ پس‌زمینه inregs.h.bl = 0x6؛ //تعداد رنگ پس‌زمینه برای تنظیم int86 (0x10، &inregs، &outregs); for(i = 0; i< 2; i++) { // устанавливаем цветовую палитру inregs.h.ah = 0x0B; inregs.h.bh = 0x1; // установка палитры inregs.h.bl = i; // номер палитры int86(0x10, &inregs, &outregs); // выводим массив точек for(j = 0; j < 64; j++) { // выводим на экран дисплея точку inregs.h.ah = 0x0C; inregs.h.al = (unsigned char)(j / 16);// номер цвета inregs.x.cx = 0x10 + j; // x-координата точки inregs.x.dx = 0x10 + j; // y-координата точки int86(0x10, &inregs, &outregs); } getch(); } }

    8.14. خواندن پیکسل - عملکرد 0Dh

    این تابع به شما امکان می دهد رنگ هر پیکسل روی صفحه را با مختصات آن تعیین کنید. این عملکرد فقط در حالت های گرافیکی آداپتورهای ویدئویی استفاده می شود.

    در ورودی: AH = 0Dh - تعریف رنگ پیکسل. BH = شماره صفحه (برای CGA استفاده نمی شود). مختصات CX = X; DX = مختصات Y; خروجی: AL = عدد رنگ پیکسل.

    در اینجا یک قطعه برنامه وجود دارد که تعداد رنگ پیکسلی را که دارای مختصات x_pos و y_pos است را تعیین می کند:

    mov ah,0Dh mov cx,x_pos mov dx,y_pos int 10h ; مقدار به دست آمده mov color_number را ذخیره کنید

    8.15. نوشتن کاراکتر در حالت TTY - تابع 0Eh

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

    این تابع نویسه‌های کنترلی زیر را کنترل می‌کند: بوق (BELL)، مکان‌نما را یک موقعیت به عقب برمی‌گرداند (BACKSPACE)، بازگشت بار (CARRIAGE RETURN)، و تغذیه خط (LINEFEED).

    در حالت‌های متنی، کاراکترها با ویژگی‌هایی که قبلاً استفاده شده‌اند نمایش داده می‌شوند. در حالت های گرافیکی امکان تنظیم رنگ نماد نمایش داده شده وجود دارد.

    فرمت فراخوانی تابع زیر است:

    در ورودی: AH = 0Eh - نوشتن کاراکتر در حالت تله تایپ. AL = کد اسکی کاراکتر در حال نوشتن. BH = تعداد صفحه حافظه ویدیویی (فقط در حالت های متنی)؟ BL = رنگ کاراکتر (در حالت های گرافیکی). خروجی: استفاده نشده

    در اینجا متن رویه WriteStringT آمده است که رشته را با offset si در بخش ds با استفاده از تابع وقفه 0Eh INT 10h نمایش می دهد:

    WriteStringT PROC; تعیین صفحه نمایش فعال فعلی mov ah,0Fh int 10h ; شماره صفحه فعال در ثبت bh ; در یک حلقه، کاراکترهای رشته next_char را نمایش می دهیم: mov ah,0Eh lodsb ; کاراکتر بعدی رشته cmp al,0 را دریافت کنید. انتهای خط را پیدا کنید je exit_proc ; اگر به انتهای رشته رسید، روش را خاتمه دهید int 10h jmp next_char exit_proc: ret WriteStringT ENDP

    8.16. تعیین حالت عملکرد فعلی آداپتور ویدیو - عملکرد 0Fh

    این عملکرد به شما امکان می دهد تعداد حالت فعلی عملکرد آداپتور ویدئویی، تعداد صفحه فعال و تعداد کاراکترها در هر خط صفحه را تعیین کنید. لیست حالت های مختلف در جدول 3.1 آورده شده است. فرمت تابع به شرح زیر است:

    در ورودی: AH = 0Fh - تعیین حالت فعلی آداپتور ویدئو. خروجی: AH = تعداد کاراکترها در هر خط. AL = شماره حالت فعلی. BH = شماره صفحه ویدیوی فعال.

    برترین مقالات مرتبط