המצגת נטענת. אנא המתן

המצגת נטענת. אנא המתן

Introduction to Programming in C

מצגות קשורות


מצגת בנושא: "Introduction to Programming in C"— תמליל מצגת:

1 Introduction to Programming in C
תרגול 8 1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel Introduction to C - Fall Amir Menczel

2 מטרת התרגול מצביעים Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

3 דוגמא: Swap הפונקציה הבאה מקבלת מצביעים לשני ערכים ומחליפה בינהם:
void Swap(int * a, int * b) { int temp; temp = *a; *a = *b; *b = temp; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

4 דוגמא 2: אורך מחרוזת הדוגמא הבאה ממחישה את השימוש במצביעים על מחרוזות (או מערכים) ע"י חישוב אורך מחרוזת באמצעות מחרוזת int strlen(char s[]) { int len = -1; // Calc length while (s[++len] != ‘\0’); return len; } באמצעות מצביע int strlen(char * s) { int len; // Calc length for (len = 0; *s != ‘\0’; s++, len++); return len; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

5 חישוב אורך מחרוזת (המשך)
באמצעות מצביע 2 int strlen(char * s) { char * p; // Calc length for (p = s; *p != ‘\0’; p++); return p - s; } באמצעות רקורסיה int strlen(char * s) { if (*s == ‘\0’) return 0; return 1 + strlen(s + 1); } C Programming Intoduction - Fall Erez Sharvit, Amir Menczel

6 תרגיל 1: חיבור מחרוזות כתבו תוכנית אשר קולטת שתי מחרוזות ומחברת בינהם
Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

7 C Programming Intoduction - Fall 2011 - Erez Sharvit, Amir Menczel
#define BUFF_SIZE 256 char *strcat(char * s1, char *s2); void main() { char s1[BUFF_SIZE], s2[BUFF_SIZE]; printf/scanf printf(“%s”, strcat(s1, s2)); } char * strcat(char * s1, char *s2) char * p = s1; for (; *p != '\0'; p++); for (; *p != '\0'; p++, s2++) *p = *s2; *p = '\0'; return s1; C Programming Intoduction - Fall Erez Sharvit, Amir Menczel

8 שאלת מבחן: מה מבצעת התוכנית הבאה?
# include <stdio.h> # include <string.h> void what(char *string){ int i; char ch, *temp1, *temp2, arr[100]; temp1 = string; temp2 = arr; while(*temp2++ = *temp1++){ if(*temp1 >'2' && *temp1 <= '9’){ i = *temp1 - '0' - 1; strcpy(temp2+i, temp1 + 1); puts(arr); for( ch = *(temp1-1); i;temp2++, i--) *temp2 = ch; temp1++; } strcpy(string, arr); void main(){ char st[50]="a3b4ccad3”; what(st); puts(st); Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

9 שאלת מבחן לבית (פתרון בע"מ הבא)
#include <stdio.h> #include <string.h> int what(char *str, char ch){ char *temp; for( temp = str; *str; str++) if(*str != ch) *temp++ = *str; *temp = ‘\0’; return str-temp;  } void main(){ char string[ ]= “xbxbabsxdx”; printf(“result = %d\n”, what(string, ‘x’)); puts(string); } שאלת מבחן לבית (פתרון בע"מ הבא) C Programming Intoduction - Fall Erez Sharvit, Amir Menczel

10 C Programming Intoduction - Fall 2011 - Erez Sharvit, Amir Menczel
תרגיל בית פתרון הפונקציה what בע"מ קודם מקבלת מחרוזת ותו. הפונקציה מסירה מופיעים של התו במחרוזת ומחזירה את מספר המופעים שהוסרו. למסך יודפס 4 כמספר ה-‘x’ שהוסרו וכן המחרוזת ללא מופעי ‘x’ C Programming Intoduction - Fall Erez Sharvit, Amir Menczel


הורד את "ppt "Introduction to Programming in C

מצגות קשורות


מודעות Google