מערך חד מימדי1
Download
Report
Transcript מערך חד מימדי1
מערך חד מימדי
חלק ב
מערך כפרמטר
פעולה שמקבלת מערך
• למדנו שפעולה יכולה לקבל פרמטר מסוג שלם,
ממשי או תו
• פעולה יכולה לקבל גם מערך כפרמטר
עמ :20מתרימים
• 2כיתות אוספות תרומות
• קלט:
– מספר תלמידים לכל כיתה
– סכום שאסף כל ילד
• פלט :לכל כיתה
– מספר תלמידים שהתרימו עד לממוצע
– מספר תלמידים שהתרימו מעל לממוצע
פעולה donation
• קלט :מערך תרומות לכל ילד ,מספר הכיתה
• פלט :מספר תלמידים שהתרימו מתחת ומעל
הממוצע
• אלגוריתם:
– סריקת המערך וחישוב הסכום
– חישוב הממוצע
– סריקת המערך בשנית:
• חישוב מספר הילדים שהתרימו מתחת לממוצע
• חישוב מספר הילדים שהתרימו מעל לממוצע
פעולה ראשית
•
•
•
•
•
•
קלט של גודל כיתה 1והגדרת מערך עבור כיתה 1
איתחול מערך כיתה 1מהקלט
קלט של גודל כיתה 2והגדרת מערך עבור כיתה 2
איתחול מערך כיתה 2מהקלט
זימון donationעבור כיתה 1
זימון donationעבור כיתה 2
static void donation (double[] a, int cl)
{
double sum = 0.0, avg;
for (int i = 0 ; i<a.length ; i++)
sum+=a[i];
avg= sum / a.length;
int suma = 0, sumb = 0;
for (int i = 0 ; i<a.length ; i++)
{
if (a[i]<=avg)
suma++;
else
sumb++;
}
System.out.println("Class " + cl + " up to average: " + suma);
System.out.println("Class " + cl + " more than average: " + sumb);
}
System.out.println("Enter number of students in class 1:");
double[] class1 = new double[reader.nextInt()] ;
System.out.println("Enter donation of each student:");
for (int i=0 ; i<class1.length ; i++)
class1[i] = reader.nextDouble();
System.out.println("Enter number of students in class 2:");
double[] class2 = new double[reader.nextInt()] ;
System.out.println("Enter donation of each student:");
for (int i=0 ; i<class2.length ; i++)
class2[i] = reader.nextDouble();
donation(class1, 1);
donation(class2, 2);
עמ : 21ניתוקי שיחות
• קלט:
– מערך ניתוקים ללקוח בחודש 1
– מערך ניתוקים ללקוח בחודש 2
• פלט:
– אם יש שיפור של 255לפחות :הודעה YES
– אחרתNO :
פעולה avg
• קלט :מערך ניתוקי שיחות בחודש מסויים
• פלט :ממוצע עבור אותו חודש
• אלגוריתם:
– סיכום הערכים במערך
– חישוב הממוצע
פעולה ראשית
•
•
•
•
•
•
קליטת מערך ניתוקים בחודש 1
קליטת מערך ניתוקים בחודש 2
חישוב ממוצע ניתוקים בחודש 1
חישוב ממוצע ניתוקים בחודש 2
אם היה שיפור מעל 25%לפחות הודעה YES
אחרת הודעה NO
//
הפעולה מקבלת מערך:טענת כניסה
// הפעולה מחזירה את ממוצע אברי המערך:טענת יציאה
static final int N=31;
static double avg (int [] month)
{
double sum=0.0;
for (int i=0 ; i<N ; i++)
sum+=month[i];
return sum/N;
}
int[] month1= new int[N];
int[] month2 = new int[N];
double avg1, avg2;
System.out.println("Enter data for the first month");
for (int i=0 ; i<N ; i++)
month1[i] = reader.nextInt();
System.out.println("Enter data for the second month");
for (int i=0 ; i<N ; i++)
month2[i] = reader.nextInt();
avg1 = avg(month1);
avg2 = avg(month2);
if (avg2*1.25<=avg1)
System.out.println("yes");
else
System.out.println("no");
עמ 25תר 24
•
•
•
•
•
מערך מכיל ציונים
מורה רוצה להעלות את הציונים ב 10%
פעולה שתקלוט את ציוני הכיתה
פעולה שתחשב ותדפיס את הציונים המעודכנים
פעולה ראשית שתזמן את הפעולות הנ"ל
גודל המערך ומערך ציונים לא מאותחל:קלט
המערך מאותחל אחרי קריאת הציונים מהקלט:פלט
static int readGrades (int Size, int[] arr)
{
System.out.println("Enter grades");
for(i=0 ; i< Size ; i+=2)
arr[i]=in.nextInt();
}
גודל המערך ומערך עם ציונים:קלט
מערך עם ציונים מעודכנים והדפסת הציונים:פלט
static int printByNum (int Size, int[] arr)
{
for(i=0 ; i< Size ; i+=2)
{
arr[i]=1.1*arr[i];
If(arr[i]>100)
arr[i] = 100;
System.out.println(“ “+ arr[i]);
}
}
public static void main(String[] args)
{
int i, num;
System.out.println("Enter number of students");
int N = in.nextInt();
int[] a = new int[N];
readGrades(N,a);
printByNum(N,a);
}
ש "ב
תרגילים 22-27עמ 25-26