שאלה מספר 10
א. בחירת משתנים עיקריים, הגדרת טיפוסיהם ותפקידם:
קבועים
מספר החברים בקורס: Max
טיפוסים
1. MemberType = recordרשומה המייצגת חבר בקור:
Age : integer;
Sex : char;
Month : integer;
end
2. מערך רשומות מטיפוס Member לשמירת נתוני כל חברי הקורס.
MemberArray = array[1..Max] of Member
3. מערך מספרים מטיפוס integer לשמירת מספר ימי ההולדת בכל חודש.
IntArray = array[1..12] integer
משתנים
1. Members - מערך מטיפוס MemberArrayלקליטת הנתונים עבור כל החברים.
2. Birthdays - מערך מטיפוס IntArray למניית ימי ההולדת בכל חודש.
3. Boys - מערך מטיפוס IntArray למניית ימי ההולדת של הבנים בכל חודש.
4. Girls- מערך מטיפוס IntArray למניית ימי ההולדת של הבנות בכל חודש.
1. קליטת הנתונים לכל המדריכים.
2. בדיקה אם קבוצת הגיל 18 מאוזנת.
3. איפוס מערך מונים.
4. יצירת מערך מונים מטיפוס שלם למניית מספרי ימי ההולדת בכל חודש.
5. מציאת החודשים בהם חל המספר הקטן ביותר של ימי ההולדת.
6. יצירת מערכי מונים מטיפוס שלם למניית מספרי ימי ההולדת עבור בנים ובנות בנפרד.
7. מציאת החודשים בהם יש יותר ימי הולדת לבנים מאשר לבנות.
כותרות הפרוצדורות/פונקציות
א. קליטת הנתונים לכל המדריכים.
procedure GetInfo ( var Members : MemberArray);
{טענת יציאה: הפרוצדורה קולטת את נתוני החברים }
ב. בדיקה אם קבוצת הגיל 18 מאוזנת.
function Balance ( Members : MemberArray ) : boolean;
{ טענת כניסה: הפונקציה מקבלת את מערך נתוני החברים }
{טענת יציאה: הפונקציה מחזירה ערך true אם קבוצת הגיל 18 מאוזנת, false - אחרת }
ג. איפוס מערך מונים
procedure Init( var Birthdays:IntArray);
{ טענת כניסה: הפרוצדורה מקבלת מערך מונים }
{טענת יציאה: הפרוצדורה מאפסת את אברי המערך }
ד. יצירת מערך מונים מטיפוס שלם למניית מספרי ימי ההולדת בכל חודש.
Procedure Birth (Members : MemberArray ; var Birthdays:IntArray );
{טענת כניסה: הפרוצדורה מקבלת את מערך נתוני החברים }
{טענת יציאה: הפרוצדורה יוצרת מערך מניה עבור מספר ימי ההולדת בכל חודש }
ה מציאת החודשים בהם חל המספר הקטן ביותר של ימי ההולדת.
procedure MinBirth (Members : MemberArray ; Birthdays : IntArray );
{טענת כניסה: הפרוצדורה מקבלת את מערך נתוני החבדים ואת מערך מוני החודשים }
{ טענת יציאה: הפרוצדורה פולטת את מספרי החודשים בהם חל המספר הקטן ביותר של ימי } { הולדת. }
ו יצירת מערך מונים מטיפוס שלם למניית מספרי ימי ההולדת עבור בנים ובנות בנפרד.
Procedure BirthBySex (Members : MemberArray; Sex:char ; var Mem:IntArray );
{טענת כניסה: הפרוצדורה מקבלת את מערך נתוני החברים, וסוג מין מבוקש ( b/g ) }
{ טענת יציאה: הפרוצדורה יוצרת מערך מנייה עבור החברים בעלי המין Sex }
ז. מציאת החודשים בהם יש יותר ימי הולדת לבנים מאשר לבנות.
procedure MoreBoys ( Members : MemberArray ; Birthdays : IntArray );
{טענת כניסה: הפרוצדורה מקבלת את מערך נתוני התלמידים ואת מערך מוני החודשים }
{טענת יציאה: הפרוצדורה מוצאת את מספרי החודשים בהם יש יוצר ימי הולדת לבנים מאשר } { לבנות