Engineering Programming A

Similar documents
פתרון מוצע לבחינת מה"ט ב_שפת c מועד אביב תשע"ח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות

קורס תכנות שיעור שני: שימוש במשתנים,

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

מבוא לתכנות ב- JAVA מעבדה 4

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2

קורס תכנות שיעור שישי: מחרוזות, מצביעים

מבוא למדעי המחשב תירגול 3:

תרגול מספר 3: מערכים

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

מבוא למדעי המחשב תרגול 5: לולאות ומערכים

Algorithms. Intro2CS week 5

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

Computer Programming A תרגול 9

Introduction to Programming in C תרגול 8

תרגילים ופתרונות בשפת - C הסתעפויות

מבוא לתכנות ב- JAVA תרגול 7

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C

מבוא לתכנות ב- JAVA מעבדה 2

לאחר הרצת התכנית יופיע בחלון הoutput הפלט הבא: run: ******************************* *****Welcome to Java!***** *******************************

מדעי המחשב 2 יחידות לימוד פתרון בחינת הבגרות פרק א. I x > a. פתרון 2: משפט switch

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

Computer Programming Summer 2017

הפלט אחרי הביצוע של ההוראה :what3(root)

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java

Programming in C תרגול 8

Practical Session - Heap

מצליחה. 1. int fork-bomb() 2. { 3. fork(); 4. fork() && fork() fork(); 5. fork(); printf("bla\n"); 8. return 0; 9. }

מבוא לתכנות ב- JAVA תרגול 5. Ipc161- practical session 5

סטודנטים יקרים הפתרונות מוגשים בסרטוני וידאו המלווים בהסבר קולי, כך שאתם רואים את התהליכים בצורה מובנית, שיטתית ופשוטה, ממש כפי שנעשה בשיעור פרטי.

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }

Practical Session No. 14 Topological sort,amortized Analysis

Amortized Analysis, Union-Find,

שאלה 1 מהו הפלט של התוכנית הבאה:

Programming for Engineers in Python

Programming for Engineers in Python

תוכנה 1 סמסטר א' תשע"א

עמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף :

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h>

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

מבוא לתכנות ב- JAVA מעבדה 3. Ipc161-lab3

ב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א'

פתרון מוצע לבחינה בשפת C של מה"ט מועד אביב תשע"ז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

תכנות מתקדם בשפת C משתנים

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת

תור שימושים בעולם התוכנה

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת

תכנות מונחה עצמים משחקים תשע"ו

גירסה

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים

Exams questions examples

מבוא לתכנות ב- JAVA תרגול 6

תרגול 6 רקורסיה ותכנות מונחה עצמים

3 Dynamic Routing A (RIP and OSPF)

תוכנה 1 * לא בהכרח בסדר הזה

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה

שים לב! אין לכתוב בשוליים. השוליים יחתכו לצורך סריקת המבחן.

SYSC 2006 C Winter String Processing in C. D.L. Bailey, Systems and Computer Engineering, Carleton University

Computer Programming תרגול 6 פונקציות

דף הדרכה ליצירת שרת/ לקוח עם GUI

Chapter 11.2 Linked lists ( )

Tutorial 10. Introduction to C++ שימו

תוכנה 1 תרגול 2: מערכים ומבני בקרה

תרגול 3 מערכים ופונקציות

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp)

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Loop through Arrays. Array Creation and Initialization

מבוא למדעי המחשב תרגול 13: עצים בינאריים

תוכנה 1. תרגול מס' 3 עבודה עם מחרוזות )Strings( מתודות )Methods( העברת פרמטרים

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור &

הוראות לנבחן גמר לבתי ספר לטכנאים ולהנדסאים סמל השאלון: תכנות מערכות ושפת סף ההנחיות בשאלון זה מנוסחות בלשון זכר, אך מכוונות לנבחנות ולנבחנים כאחד.

חוברת תרגילים לתרגול יסודות התכנות

רשימות דילוגים Skip Lists

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Array Creation and Initialization. Loop through Arrays

תוכנה 1 3 תרגול מס' מערכים ומבני בקרה

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter.

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות


תוכנה 1 תרגול מספר 10: תרגיל חזרה חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב

תרגילים ופתרונות בשפת C

רזח יליגרתו םי יראני ב ם

Characters in C consist of any printable or nonprintable character in the computer s character set including lowercase letters, uppercase letters,

הנכות 1 םוכיס לוגרת 13 1

מבני נתונים תכנות מונחה עצמים מבני נתונים. מחלקות אבסטרקטיות חבילות packages סיכום הרשאות גישה wrappers ADT מערך דינמי מחסנית

מבוא לשפת סי סוגי לולאות שבוע שעבר... תוכנייה. לולאת while דוגמא: קליטת מספר חיובי ד'/כסלו/תשע "ב. משפטי if משפטי switch סוגי לולאות בשפת C דוגמאות

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

Graph Database, think different!

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

מבוא לתכנות מערכות מבחן מועד א' סמסטר חורף

שאלות חזרה 2 האוניברסיטה החליטה לפרסם שמות הסטודנטים המצטיינים בקורס שלנו. סטודנט מצטיין הוא סטודנט שקיבל

Computer Programming: Skills & Concepts (CP) Strings

טבלאות אם נרצה למקם תמונה ומלל זה ליד זה, או רצף של תמונות זו ליד זו כל פריט מיושר לכיוון אחר, נשתמש בטבלאות.

תרגול 3 מערכים ופונקציות

מבוא לתכנות תוכנית שעור מס. 1 1 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.

הנכות 1 םוכיס לוגרת 13 1

Transcription:

Engineering Programming A תרגול 5 25.11.2012

מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1] - יושב ערך שהוא המספר השלם 7 ב arr[7] - יושב ערך שהוא המספר השלם 16

הגדרה ואתחול מבנה הפקודה: ;]>מספר איברים>[ >שם המערך> >טיפוס> int ids[7]; char name[12]; דוגמאות להגדרת מערך: int arr[10] = { 1, 4, 6, 7, 8, 0, 5, 5, 1, 2 ; int arr[10] = { 1, 4 ; int arr[10] = {0; int arr[ ] = {1, 4, 7;

מערכים רב-מימדיים מערך דו מימדי הוא מערך של מערכים, כלומר מטריצה. הגדרתו תתבצע כך: mat[n][m]; int כאשר N הוא מספר השורות ו- M הוא מספר העמודות. ניתן לאתחל מערך דו-מימדי עם הגדרתו בדרכים הבאות: הצבת הנתונים לפי שורות )בכל שורה 3 עמודות, כלומר 3 נתונים(: int mat[4][3]={{1,2,3,{4,5,6,{7,8,9,{10,11,12; ואיפוס שאר התאים שבשורה: int table[4][3] = {{1,2,{4,5,{7,8,{10,11; הצבת שני נתונים בכל שורה, הצבת הנתונים במערך אחד אחרי השני ישנם תאים נוספים(: )לפי סדר השורות( ואיפוס השאר )אם int mat[4][3]={1,2,3,,12; ניתן לא להגדיר את מספר השורות, אך חובה להגדיר את מספר העמודות: int mat[][3]={{1,2,3,{4,5,6,{7,8,9,{10,11,12; int mat[][]={{1,2,3,{4,5,6,{7,8,9,{10,11,12;

סריקה של מערכים סריקה של מערכים מתבצעת בעזרת לולאות מקוננות, כאשר כלל האצבע הוא שכל מימד של המערך דורש לולאה אחת. דוגמא: כתוב תכנית, אשר עבור כל המספרים מ- 0 ועד 10, שומרת לתוך #include <stdio.h> מערך את 10 החזקות הראשונות של כל מספר )מ- 0 ועד 9(. #define NUMS 11 לאחר מכן, התכנית תקלוט שני מספרים x ו- y )בטווח הרלוונטי #define NPOWERS 10 לתרגיל(, ותדפיס את x בחזקת y. void main() { int powers[nums][npowers],i,j,k,res,x,y; for (i=0;i<nums;i++){ powers[i][0]=1; for (j=1;j<npowers;j++) { powers[i][j]= powers[i][j-1] * i; scanf("%d%d",&x,&y); printf("%d",powers[x][y]);

טבלת - ascii

מחרוזות מחרוזת היא מערך של תווים,)chars( שבסופם התו 0\ )התו בעל ערך ה-.)0 ascii מחרוזת קבועה, היא אוסף של תווים בין מרכאות כפולות. דוגמא: המחרוזת hello היא מערך של 6 תווים, שנראים בזיכרון כך: h e l l o \0 a \0 יש הבדל בין a לבין a : a הוא תו יחיד )המייצג את הערך 97(, ו- a היא מחרוזת המורכבת משני תווים: אל התווים השונים במחרוזת ניגש כפי שניגשים לאברי מערך. אם נרצה להדפיס מחרוזת בשלמותה )עד ה 0\ (, או לקלוט מחרוזת שלמה נשתמש בסימן s%.

ההגדרה בדומה למערך: אתחול: הגדרה ואתחול char name[10]; char name[]="sapir"; char name[]={'s','a','p','i','r','\0'; בשני המקרים ששת תווי המחרוזת נמצאים בזיכרון באופן רציף, ו- name הוא שם המחרוזת )המערך(. ניתן גם לאתחל את המחרוזת עם גודל מוכרז. במקרה זה ערך שאר התוים יהיה '0\': char name[10]="sapir";

תרגיל 1 כתוב תכנית הקולטת מהמשתמש את השם שלו, ומדפיסה אותו למסך עם אות ראשונה גדולה,(uppercase) ושאר האותיות קטנות.(lowercase) #include <stdio.h> void main() { char name[10],i; scanf("%s",name); if (name[0]>='a' && name[0]<='z') name[0]=name[0]-('a'-'a'); for (i=1;name[i]!='\0';i++) if (name[i]>='a' && name[i]<='z') name[i]=name[i]+('a'-'a'); printf("%s",name);

gets & puts לפקודה scanf עם s% יש מגבלה היא מפסיקה את קליטת המחרוזת כשמוקלד רווח או,TAB ולכן לא יכולה לקלוט יותר ממילה אחת. הפקודה gets מתגברת על כך - קולטת עד שמוקלד.enter הפקודה puts מדפיסה את המחרוזת כמו,printf ולאחר מכן מדפיסה ירידת שורה. char str[50]; gets(str); puts(str);

תרגיל 2 כתוב תכנית הקולטת משפט שהמילים בו מכילות אותיות קטנות בלבד. התכנית לספור כמה פעמים מופיעה כל אות, ולהדפיס זאת. מגבלה: אסור להשתמש בלולאות מקוננות. על #include <stdio.h> void main() { char words[100]; int i, counters[26]={0; gets(words); for (i=0; words[i]!='\0'; i++) if (words[i]!=' ') counters[words[i]-'a']++; for (i=0;i<26;i++) if (counters[i]>0) printf("%c appeared %d times\n",'a'+i, counters[i]);

פקודות לעבודה עם מחרוזות מהספריה <string.h> strcmp: int strcmp(const char *s1, const char *s2); The function compares successive elements from two strings, s1 and s2, until it finds elements that are not equal. If all elements are equal, the function returns zero. If the differing element from s1 is greater than the element from s2 (both taken as unsigned char), the function returns a positive number. Otherwise, the function returns a negative number. strlen: size_t strlen(const char *s); The function returns the number of characters in the string s, not including its terminating null character.

פקודות לעבודה עם מחרוזות מהספריה <string.h> strcpy: char *strcpy(char *s1, const char *s2); The function copies the string s2, including its terminating null character, to successive elements of the array of char whose first element has the address s1. It returns s1. strcat: char *strcat(char *s1, const char *s2); The function works like strcpy(), only that it copies the string s2 to the END of the string s1, meaning that the functions ADDS s2 to the end of s1. The function finds the end of s1 according to the character \0. gets: char *gets(char *s1); The function works like scanf( %s,...), only that it terminates the input via the key ENTER only. Unlike scanf, it can read the characters SPACE & TAB from the user and insert them to the char array s1.

דוגמא כיצד משתנות המחרוזות בקוד הבא? Str1 str2 result length value length value #include <stdio.h> #include <string.h> void main() { char str1[10]; char str2[]="abcdefg"; int result; unsigned int i; strcpy(str1, str2); result=strcmp(str1, str2); result=strlen(str2); str2[4]='\0'; result=strlen(str2); strcat(str2,"cba"); result=strcmp(str1, str2); 10 unknown 8 [a,b,c,d,e,f,g,\ 0] 10 [a,b,c,d,e,f,g,\0,?,?] 8 [a,b,c,d,e,f,g,\ 0] 10 [a,b,c,d,e,f,g,\0] 8 [a,b,c,d,e,f,g,\ 0] 10 [a,b,c,d,e,f,g,\0] 8 [a,b,c,d,\0,f,g, \0] 10 [a,b,c,d,e,f,g,\0] 8 [a,b,c,d,\0,f,g, \0] 10 [a,b,c,d,e,f,g,\0] 8 [a,b,c,d,c,b,a, \0] 10 [a,b,c,d,e,f,g,\0] 8 [a,b,c,d,c,b,a, \0]? Stands for unknown/uninitialized memory 0 7 7 4 4 >0 (1)

תרגיל 3 #include <stdio.h> #include <string.h> #define MAXLEN 1000 void main() { char word[maxlen]; char longest[maxlen]=""; כתוב תכנית אשר קולטת מילים )אחת אחרי השנייה( מהמשתמש עד אשר מוקלדת המילה,EXIT ולאחר מכן מדפיסה למסך את המילה הארוכה ביותר שהוקלדה )לא כולל.)EXIT אם ישנן כמה מילים באותו האורך, על התוכנית להדפיס רק את המילה שמופיעה ראשונה לפי סדר אלפא-ביתי. לדוגמא עבור הקלט: this is a test תודפס המילה: test scanf("%s",word); while (strcmp(word,"exit")!=0) { if (strlen(word)>strlen(longest) (strlen(word)==strlen(longest) && strcmp(word,longest)<0)) strcpy(longest, word); scanf("%s",word); printf("%s\n", longest);