8.5 KiB
اتخاذ تصمیم: پردازش نمرات دانشآموزان
اهداف یادگیری
در این تمرین، مفهومهای تصمیمگیری از این درس را با ساخت برنامهای که نمرات دانشآموزان را از سیستمهای نمرهدهی مختلف پردازش میکند تمرین خواهید کرد. از عبارات if...else، عملگرهای مقایسهای و عملگرهای منطقی استفاده خواهید کرد تا مشخص کنید کدام دانشآموزان در دروس خود قبول شدهاند.
چالش
شما در مدرسهای کار میکنید که اخیراً با مؤسسه دیگری ادغام شده است. اکنون باید نمرات دانشآموزان را از دو سیستم نمرهدهی کاملاً متفاوت پردازش کنید و مشخص کنید کدام دانشآموزان پذیرفته شدهاند. این فرصت مناسبی است تا منطق شرطی را تمرین کنید!
درک سیستمهای نمرهدهی
سیستم اول نمرهدهی (عددی)
- نمرات به صورت اعداد از ۱ تا ۵ داده میشوند
- نمره قبولی: ۳ و بالاتر (۳، ۴ یا ۵)
- نمره مردودی: زیر ۳ (۱ یا ۲)
سیستم دوم نمرهدهی (نمرات حرفی)
- نمرات با حروف داده میشوند:
A،A-،B،B-،C،C- - نمرات قبولی:
A،A-،B،B-،C،C-(تمام نمرات فهرستشده قبولی هستند) - توجه: این سیستم شامل نمرات مردودی مانند
DیاFنیست
وظیفه شما
با توجه به آرایه allStudents که نمایانگر تمام دانشآموزان و نمراتشان است، آرایه جدیدی به نام studentsWhoPass بسازید که شامل تمام دانشآموزانی باشد که بر اساس سیستم نمرهدهی مربوطه قبول شدهاند.
let allStudents = [
'A', // نمره حروفی - قبولی
'B-', // نمره حروفی - قبولی
1, // نمره عددی - مردودی
4, // نمره عددی - قبولی
5, // نمره عددی - قبولی
2 // نمره عددی - مردودی
];
let studentsWhoPass = [];
رویکرد گام به گام
- یک حلقه راهاندازی کنید که از روی هر نمره در آرایه
allStudentsعبور کند - نوع نمره را بررسی کنید (عددی است یا رشته؟)
- قوانین سیستم نمرهدهی مناسب را اعمال کنید:
- برای اعداد: بررسی کنید آیا نمره >= 3 است
- برای رشتهها: بررسی کنید آیا نمره در میان نمرات حرفی قبولی معتبر هست
- نمرات قبولی را به آرایه
studentsWhoPassاضافه کنید
تکنیکهای مفید در کد
از این مفاهیم جاوااسکریپت درس استفاده کنید:
- عملگر typeof:
typeof grade === 'number'برای بررسی عددی بودن نمره - عملگرهای مقایسهای:
>=برای مقایسه نمرات عددی - عملگرهای منطقی:
||برای بررسی چند شرط نمرات حرفی - عبارات if...else: برای مدیریت سیستمهای نمرهدهی متفاوت
- متدهای آرایه:
.push()برای افزودن نمرات قبولی به آرایه جدید
خروجی مورد انتظار
وقتی برنامه خود را اجرا کنید، studentsWhoPass باید شامل موارد زیر باشد: ['A', 'B-', 4, 5]
دلیل قبول شدن این نمرات:
'A'و'B-'نمرات حرفی معتبر هستند (تمام نمرات حرفی در این سیستم قبول محسوب میشوند)4و5نمرات عددی >= 3 هستند1و2مردود هستند چون نمرات عددی < 3 میباشند
تست راهحل شما
کد خود را با سناریوهای مختلف تست کنید:
// آزمایش با ترکیبات مختلف نمرهها
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// راهحل شما باید با هر ترکیب از نمرات معتبر کار کند
چالشهای اضافی
وقتی تمرین پایه را تمام کردید، این توسعهها را امتحان کنید:
- اعتبارسنجی اضافه کنید: بررسی نمرات نامعتبر (مانند اعداد منفی یا حروف نامعتبر)
- شمارش آمار: محاسبه تعداد دانشآموزان قبول شده در مقابل رد شده
- تبدیل نمرات: تبدیل همه نمرات به یک سیستم عددی واحد (مثلاً A=5، B=4، C=3 و غیره)
معیار ارزیابی
| معیار | عالی (4) | خوب (3) | در حال توسعه (2) | مبتدی (1) |
|---|---|---|---|---|
| عملکرد | برنامه به درستی تمام نمرات قبولی هر دو سیستم را شناسایی میکند | برنامه با مشکلات جزئی یا موارد خاص کار میکند | برنامه تا حدی کار میکند اما دارای خطاهای منطقی است | برنامه خطاهای بزرگ دارد یا اجرا نمیشود |
| ساختار کد | کد پاک و مرتب با منطق if...else صحیح | ساختار خوب با دستورات شرطی مناسب | ساختار قابل قبول با برخی مشکلات سازماندهی | ساختار ضعیف، منطق دشوار برای دنبال کردن |
| استفاده از مفاهیم | استفاده مؤثر از عملگرهای مقایسه، منطقی و شرطی | استفاده خوب از مفاهیم درس با نقصهای کوچک | استفاده محدود از مفاهیم درس | استفاده بسیار محدود از مفاهیم درس |
| حل مسئله | درک واضح مشکل و راه حل مناسب را نشان میدهد | رویکرد حل مسئله خوب با منطق محکم | حل مسئله کافی با کمی سردرگمی | رویکرد نامشخص، عدم نشان دادن درک درست |
دستورالعمل ارسال
- کد خود را کاملاً تست کنید با مثالهای ارائه شده
- کامنتگذاری کنید و منطق خود را توضیح دهید، بهویژه در عبارات شرطی
- خروجی را بررسی کنید که با انتظار مطابقت دارد:
['A', 'B-', 4, 5] - موارد خاص را در نظر بگیرید مانند آرایههای خالی یا نوع دادههای غیرمنتظره
💡 نکته حرفهای: ساده شروع کنید! ابتدا عملکرد پایه را درست کنید، سپس ویژگیهای پیشرفتهتر را اضافه کنید. به یاد داشته باشید، هدف تمرین منطق تصمیمگیری با ابزارهایی است که در این درس یاد گرفتهاید.
سلب مسئولیت:
این سند با استفاده از خدمات ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نواقصی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچ گونه سوتفاهم یا تفسیر نادرستی که ناشی از استفاده از این ترجمه باشد، نیستیم.