Programming Arrays.

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.
Advertisements

Selection Statements Selects statements to execute based on the value of an expression The expression is sometimes called the controlling expression Selection.
שאלות ממבחנים. 14 תרגולמבוא למדעי המחשב. כל הזכויות שמורות ©2 תרגיל 1: מטריצות כתבו פונקציהvoid Rotation(int in [N][N], int out [N][N]) אשר מקבלת שני.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות תרגול 9 שבוע : מערכים int a; a=5; int a[10]; a[2] = 5; 5 a a[0] a[1] a[2] a[9]  5 משתנה בודד מערך גישה למשתנה השלישי במערך.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
מבוא למדעי המחשב תרגול 6 - מערכים שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
לולאות 02 יולי יולי יולי 1502 יולי יולי יולי 1502 יולי יולי יולי 15 1 Department of Computer Science-BGU.
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
1 Agenda - Loops while for for & while Nested Loops do-while Misc. & Questions.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Programming Arrays. Question Write a program that reads 3 numbers from the user and print them in ascending order. How many variables do we need to store.
Programming Arrays. Example 1 Write a program that reads 3 numbers from the user and print them in reverse order. How many variables do we need to store.
LAB#7. Insertion sort In the outer for loop, out starts at 1 and moves right. It marks the leftmost unsorted data. In the inner while loop, in starts.
WEEK 4 Class Activities Lecturer’s slides.
Chapter 6: Control Structures Computer Programming Skills Second Term Department of Computer Science Foundation Year Program Umm Alqura.
Dr. Soha S. Zaghloul2 Let arr be an array of 20 integers. Write a complete program that first fills the array with up to 20 input values. Then, the program.
מערכים (arrays) 02 דצמבר דצמבר דצמבר 1502 דצמבר דצמבר דצמבר 1502 דצמבר דצמבר דצמבר 15 1 Department of Computer Science-BGU.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
UNIT 10 Multidimensional Arrays.
WEEK 8 Class Activities Lecturer’s slides.
Computer Programming for Engineers
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 מבוא למדעי המחשב הרצאה 5: פונקציות. 2 מבוא לפונקציות חלוקה של אלגוריתם לתת משימות: משימה - פונקציה: דוגמאות מציאת המקסימלי מבין שני איברים האינדקס של.
1 נתבונן בפונקציה הבאה public static int min(int[] a,int n) { int min = a[0]; for (int i = 1; (i < n ) && (i < a.length) ; i++) if (min > a[i]) min = a[i];
1 More on Arrays. 2 Review: Passing Arrays to Functions Passing an array: what goes on in the memory? Why isn’t it the same as when passing primitives?
Programming Pointers. נדגים היום בעזרת מצביעים העברת משתנים לפונקציה שמשנה אותם  פונקציה שמקבלת מצביעים לסמן תא בזיכרון  פונקציה שמחזירה מצביע מערך.
1 Agenda Arrays: Definition Memory Examples Passing arrays to functions Multi dimensional arrays.
 Recursion  Pointers and Arrays #include void print3(int n){ if (n==0)return; printf ("%d\n",n); print3(n-1); printf ("%d\n",n); } void main(){ print3(5);
Arrays Name, Index, Address. Arrays – Declaration and Initialization int x; y[0] y[1] y[2]
מערכים (arrays) 02 אוקטובר אוקטובר אוקטובר 1602 אוקטובר אוקטובר אוקטובר 1602 אוקטובר אוקטובר אוקטובר 16 Department.
C Programming.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Introduction to Computer Algorithmics and Programming Ceng 113
Functions and Pointers
Strings (מחרוזות).
Functions Dr. Sajib Datta
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Functions Dr. Sajib Datta
מבוא למדעי המחשב סיבוכיות.
מערכים קרן כליף.
תירגול 14: מבני נתונים דינאמיים
Computer Programming תרגול 6 פונקציות
Engineering Programming A
CS1100 Computational Engineering
תרגול 8 תחומי הכרה פונקציות
שאלות מבחינות קודמות יואב ציבין.
Computer Programming Fall 2012 תרגול 6 פונקציות
Arrays Chapter 8 Copyright © 2008 W. W. Norton & Company.
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Functions with arrays.
Incremental operators
Lets Play with arrays Singh Tripty
Exercise Arrays.
Functions Department of Computer Science-BGU יום שישי 26 אפריל 2019.
Programming Strings.
Presentation transcript:

Programming Arrays

Example Write a program that reads 3 numbers from the user and print them in reverse order. How many variables do we need to store the input? How could we cope with 100 numbers? 1000? We need a “variable” that can store a series of values

Example Solution /* get 10 integers from the user and print them in reversed order */ #include <stdio.h> #define ARRAY_SIZE 10 int main(void) { int i = 0; int array[ARRAY_SIZE]; printf("please enter %d numbers:\n", ARRAY_SIZE); for (i = 0; i < ARRAY_SIZE; ++i) scanf("%d", &array[i]); printf("numbers in reversed order:\n"); for (i = ARRAY_SIZE - 1; i >= 0; --i) printf("%d ", array[i]); printf("\n"); return 0; }

Warm-up question Write a program that reads 5 numbers from the user and determines if any number was entered more than once.

Solution #include <stdio.h> #define SIZE 5 int main() { int itr1,itr2,twice=0; int arr[SIZE]; printf("Enter %d numbers:\n",SIZE); for (itr1=0;itr1<SIZE;itr1++) scanf("%d",&arr[itr1]); for (itr2=0;itr2<itr1;itr2++) if (arr[itr1]==arr[itr2]) twice=1; } if (twice) printf("A number was entered more than once\n"); return 0;

Exercise 1– Part A כיתבו פונקציה בעלת המפרט (prototype) הבא: int how_many(int array[], int size, int value);   הפונקציה מקבלת מערך של מספרים שלמים, את גודל המערך, size, ומספר שלם נוסף, value. היא מחזירה את כמות ההופעות של המספר value במערך, כלומר כמה תאים במערך שווים ל-value. לדוגמא, עבור מערך שערכיו הם 1 2 1 2 1 12 והמספר 1 יוחזר 3.

Solution – Part A int how_many(int arr[], int size, int value) { int i, count=0; for(i=0; i<size; i++) if (arr[i]==value) count++; return count; }

Exercise 1– Part B כיתבו פונקציה בעלת המפרט (prototype) הבא: int most_popular(int array[], int size);   הפונקציה מקבלת מערך של מספרים שלמים ואת גודל המערך. עליה להחזיר את המספר הנפוץ ביותר במערך, כלומר המספר שמופיע בו הכי הרבה פעמים (אם יש כמה מספרים עם כמות הופעות זהה, אז יוחזר אחד מהם). לדוגמא, עבור מערך שערכיו הם: 4 1 2 3 4 5 4 3 2 יוחזר 4 (כי הוא מופיע במערך שלוש פעמים, וזה יותר מכל מספר אחר)

Solution – Part B int most_popular(int array[], int size) { int i, count, max_index, max=0; for (i=0; i<size; i++) count=how_many(array, size, array[i]); if (count>max) max=count; max_index=i; } return array[max_index];

Exercise 2 כתבו פונקציה בעלת המפרט הבא: כתבו פונקציה בעלת המפרט הבא:  void merge (int arr1[],int arr2[],int size1,int size2,int result[]);   הפונקציה מקבלת שני מערכים של מספרים שלמים ממוינים arr1 ו-arr2 ושני מספרים שלמים חיוביים שמייצגים את האורכים של arr1 ו-arr2. בנוסף היא מקבלת מערך result שאורכו הוא סכום אורכי arr1 ו-arr2. הפונקציה מעתיקה את איברי arr1 ו-arr2 למערך arr3, באופן כזה שבסיומה הוא יכיל את איברי שני המערכים בסדר עולה. דוגמא: מערכים: 1 4 8 2 5 9 תוצאה: 1 2 4 5 8 9

Solution void merge(int arr1[],int arr2[],int size1,int size2, int result[]) { int idx1,idx2,itr; for (idx1=0,idx2=0,itr=0;idx1<size1 && idx2<size2;itr++) if (arr1[idx1]<arr2[idx2]) result[itr]=arr1[idx1++]; else result[itr]=arr2[idx2++]; } while (idx1<size1) result[itr++]=arr1[idx1++]; while (idx2<size2) result[itr++]=arr2[idx2++]; return;

Exercise 3 Implement the function: int compare_arrays(int arr1[], int arr2[], int size); The function takes two integer arrays and returns true if they are equal, false otherwise Write a program that accepts two arrays of integers from the user and checks for equality using the above function

Solution compare_arrays.c

Exercise 4 Write a program that defines 3 matrices a,b and c of size 3x3 with int elements; initialize the first two matrices (a and b). Compute the matrix multiplication of a and b and store it in c (i.e. c = a*b) Print all the matrices on the screen

Solution mat_mul.c