1 / 18

Lecture #8

Lecture #8. Arrays. Agenda. Arrays Review previous part Multi-Dimensional Array Array as Argument Strings I/O Functions Initializing Strings Array of Strings String Functions. Chapter 6 :Arrays and strings. ينظر للسلسلة الحرفية على انها مجموعة متراصة من الأحرف. Arrays.

Download Presentation

Lecture #8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture #8 Arrays

  2. Agenda • Arrays • Review previous part • Multi-Dimensional Array • Array as Argument • Strings • I/O Functions • Initializing Strings • Array of Strings • String Functions

  3. Chapter 6 :Arrays and strings • ينظر للسلسلة الحرفية على انها مجموعة متراصة من الأحرف

  4. Arrays • A block of many variables of the same type • Array can be declared for any type • E.g. int A[10] is an array of 10 integers. • Examples: • list of students’ marks • series of numbers entered by user • vectors • matrices

  5. Arrays in Memory • Sequence of variables of specified type • The array variable itself holds the address in memory of beginning of sequence • Example: double S[10]; • The k-th element of array A is specified by A[k-1] (0-based) … 0 1 2 3 4 5 6 7 8 9 … S

  6. Example - reverse #include <stdio.h> int main(void) { inti, A[10]; printf("please enter 10 numbers:\n"); for(i=0; i<10; i++) scanf("%d", &A[i]); printf("numbers in reversed order:\n"); for(i=9; i>=0; i--) printf("%d\n", A[i]); return 0; }

  7. Array Initialization • يمكن تخصيص قيم ابتدائية لعناصر المجموعة المتراصة بطريقتين: • يتم التخصيص خارج دالة ال main() كمثال: • أستخدام static type بداخل الدالة كمثال: int table[5]={50,40,45,55,2}; main() { … } main(){ static inttable[]={50,40,45,55,2}; … }

  8. Array Initialization • في المثال السابق حجم المجموعة محدد بعدد القيم الإبتدائية. • أما اذا كتب الإيعاز علي النحو التالي: • فيتم تحديد قيم ابتدائية لأول اربعة عناصر ويكون العنصر الأخير بقيمة صفر • لا تتم الترجمة أذا كان عدد القيم المعرفة أكبر من حجم المجموعة المتراصة. • Ex_35.c static int table[5]={44,66,54,6};

  9. Multi Dimensional Arrayالمجموعات متعددة الأبعاد • يمكن تعريف المجموعة متعددة الأبعاد كما يلي: • يمكن تخصيص قيم ابتدائية لعناصرها كما يلي: #define ROWS 5 #define COLUMN 10; float matrix[ROWS][COLUMN]; int enemy[5][3] ={{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}};

  10. Example • #include<stdio.h> • int enemy[5][3]={{1,2,3}, • {4,5,6},{7,8,9}, • {10,11,12},{13,14,15}}; • main() • { • int row=5; • intcol=3; • inti,j; • for (i = 0 ; i <row;i++) • { • for(j = 0 ; j <col;j++) • printf("%d\t",enemy[i][j]); • printf("\n"); • } • } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ex_36.c

  11. Example #include<stdio.h> main() { char matrix[5][10]; intx,y; for(y = 0 ; y <5;y++) for( x = 0 ; x <10;x++) matrix[y][x] ='.'; printf("Enter Coordenate in form x,y(4,2),"); printf("use negative number to quit"); while((x >= 0)&&(y>=0)) { for( y = 0 ; y < 5 ;y++) { for( x = 0 ; x <10; x++) printf("%c",matrix[y][x]); printf("\n"); } printf("Coordenates:"); scanf("%d %d",&x,&y); matrix[x][y] = '\xdb'; } } Ex_37.c

  12. Arrays As Argumentsالمجموعات المتراصة كمعاملات إزاحة • اسم المجموعة بدون أقواس يمثل عنوان أول عنصر فيها. • Example: list == &list[0] • يستخدم عنوان المجموعة كمعامل إزاحة عند استدعاء الدالة

  13. #include<stdio.h> #define MAXSIZE 20 max(int list2[],int size2); main() { int list[MAXSIZE]; int size = 0; int num; do { printf("type a number :"); scanf("%d",&list[size]); } while(list[size++] !=0); num = max(list,size); printf("largest number is : %d",num); } max(list2,size2) int list2[];int size2; { intdex,max; max = list2[0]; for( dex = 1; dex<size2; dex++) { if (max <list2[dex]) max = list2[dex]; } return max; } Example type a number :2 type a number :44 type a number :5 type a number :66 type a number :7 type a number :43 type a number :0 largest number is : 66 Ex_38.c

  14. Strings • تعرف بأنها مجموعة متراصة من الأحرف وتتنتهي بالتتابع ‘\0’أي حرف ال NULL • يمكن استخدام scanfأو gets أو puts كدوال ادخال وأخراج لسلسلة الأحرف • تستخدم scanfالمسافة لإنهاء عملية الادخال اما gets أو puts فيستخدمان مفتاح ENTER

  15. Initializing Strings • يمكن تخصيص قيم ابتدائية كما يلي Char name[]={‘c’,’a’,’t’,’\0’}; or Char name[]=“cat”;

  16. Dealing With Strings • We can deal with strings either: • As character by character • As string

  17. Example • #include<stdio.h> • main() • { • char name[81]; • intdex; • puts("Enter your name"); • gets(name); • for(dex = 0 ; dex <strlen(name)+4;dex++) • { • printf("addr = %5u char = '%c' = %3d\n“ ,&name[dex], name[dex], name [dex]); • } • }

  18. Thanks

More Related