מערך חד מימדי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‬‬