Make your own free website on Tripod.com

 

 

  1. עקוב אחרי התוכנית וציין מה היא מבצעת.

#include <stdio.h>

#include <string.h>

void main()

{

      char fname[11],lname[11],name[21];

      printf("enter your name:");

      scanf("%s",fname);

      printf("enter family name:");

      scanf("%s",lname);

      strcpy(name,lname);

      name[0]=lname[0];

      name[1]='.';

      name[2]='\0';

      strcat(name,fname);

      printf("Full name is %s",name);

}

 

 

  1. עקוב אחרי התוכנית וציין את הפלט ממנה. (הסבר את משפט ה- if)

#include <stdio.h>

#include <string.h>

void main()

{

  char str1[11],str2[11];

  printf("enter a word:");

  scanf("%s",str1);

  strcpy(str2,str1);

  strrev(str1);

  if (!strcmp(str1,str2))

        printf("your typed word is symmetric");

  else

        printf("your word is not symmetric");

}

 

  1. כתוב תוכנית הקולטת שתי מחרוזות באורך כלשהו(נקבע ב- define). התוכנית תבדוק האם המחרוזת השניה  מהווה ראש של המחרוזת הראשונה. (מופיעה בתחילתה).

 

 

  1. עקוב אחרי התוכנית וציין מה היא מבצעת.

 #include <stdio.h>

#include <string.h>

void main()

{

  char str1[11],str2[11];

  printf("enter a string:");

  scanf("%s",str1);

  strcpy(str2,str1);

  str1[strlen(str1)/2]='\0';

  strrev(str2);

  str2[strlen(str2)/2]='\0';

  strrev(str2);

  if (!strcmp(str1,str2))

        printf("yes");

  else

        printf("No");

}

 

  1.  
    1. כתוב תוכנית הקולטת מחרוזת באורך כלשהו (מוגדר ב- define) , התוכנית תחשב ותדפיס את סכום קודי האסקיי של תווי המחרוזת.
    2. כתוב את התוכנית מסעיף a בעזרת פונקציות. כלומר , פונקציית ה- main תגדיר ותקלוט את המחרוזת , אח"כ תעביר אותה כפרמטר לפונקציה  שאתה תכתוב (נקרא לה GetAsciiSum) שתחזיר את הסכום ל- main ומשם יודפס למסך.
  2.  
    1. כתוב פונקציה בוליאנית המקבלת כפרמטר מחרוזת ובודקת אם כל תוויה ספרות.
    2. כתוב פונקציה המקבלת כפרמטר מחרוזת שכל תוויה ספרות , מחשבת ומחזירה את המספר השלם שמורכב מתווי המחרוזת. אם המחרוזת שווה ל- "123" הפונקציה תחזיר את הערך המספרי 123.
    3. על סמך שתי הפונקציות שכתבת בסעיפים הקודמים כתוב תוכנית (פונקציית main) אשר 10 מחרוזות  מחשבת ומדפיסה את סכום הערכים המספריים של אותן מחרוזות שמכילות רק ספרות.
  3.  
    1. כתוב פונקציה המקבלת כפרמטר מחרוזת  A , תו ch  ומספר שלם n . הפנקציה תכניס את התו ch במחרוזת A במקום ה- n . שימם לב שהפונקציה צריכה לבצע הזזה ולפנות מקום עבור התו לפני הכנסתו. ניתן להניח שיש מספיק מקום במחרוזת.
    2. כתוב תוכנית (main) אשר מגדירה שתי מחרוזות באורך כלשהו . התוכנית תקלוט שתי מחרוזות ותכניס את תווי המחרוזת הראשונה למחרוזת השניה . כל תו במחרוזת הראשונה יוכנס למחרוזת השניה במקום שיחושב באופן אקראי בתחום שבין 0 לאורך העדכני של המחרוזת השניה. כמובן לצורך הכנסת התו במקום מסוים יש להיעזר בפונקציה שנכתבה בסעיף א.
  4. בהנחה שלא קיימת הספריה string.h
    1. כתוב פונקציה בשם MyStrlen המקבלת כפרמטר מחרוזת , מחשבת ומחזירה את אורכה.
    2. כתוב תוכנית (main) אשר קולטת מחרוזת . התוכנית תחשב ותדפיס  את אורכה בעזרת הפונקציה שכתבת בסעיף א.
  5. בהנחה שלא קיימת הספריה string.h
    1. כתוב פונקציה בשם MyStrcpy המקבלת כפרמטרים שתי מחרוזות A,B . הפונקציה תעתיק את A ל- B .
    2. כתוב תוכנית אשר מגדירה שתי מחרוזות str1,str2 . התוכנית תקלוט מחרוזת ל- str1 ותעתיק אותה ל- str2 בעזרת הפונקציה שכתבת בסעיף א.
  6. עקוב אחרי התוכנית וציין את אשר מבצעת.

#include <stdio.h>

#include <string.h>

#include <ctype.h>

void ToUpper(char A[])

{

      int i=0;

      while (A[i])

      {

                  if (isalpha(A[i]))

                  {

                    if (A[i]>='a' && A[i]<='z')

                              A[i]-=32;

                  }

                  else

                              A[i]=32;

                  i++;

      }

}

void ToLower(char A[])

{

      int i=0;

      while (A[i])

      {

                  if (isalpha(A[i]))

                  {

                    if (A[i]>='A' && A[i]<='Z')

                              A[i]+=32;

                  }

                  else

                              A[i]=32;

                  i++;

 

 

      }

}

 

 

void main()

{

  char str1[81],str2[81],str3[81];

  printf("enter a string:");

  gets(str1);

  strcpy(str2,str1);

  ToUpper(str2);

  strcpy(str3,str1);

  ToLower(str3);

  printf("\n%s\n%s\n%s\n",str1,str2,str3);

}

  1. כתוב תוכנית הקולטת משפט , ומדפיסה את המלים שמתחילות ב- R . בין מלה למלה יכולים להיות הרבה רווחים, גם בתחילת המלה וגם בסופה. ניתן להיעזר בתוכנית שהוסברה בכיתה.
  2.  
    1. כתוב פונקציה בשם LeftTrim אשר מקבלת מחרוזת ומוחקת מתחילתה את כל הרווחים במידה ויש.
    2. כתוב פונקציה בשם RightTrim אשר מקבלת כפרמטר מחרוזת ומוחקת מסופה את כל הרווחים.
    3. כתוב תוכנית אשר קולטת מחרוזת ומוחקת מקצוותיה  את כל הרווחים.
  3. עקוב אחרי התוכנית וציין את אשר מבצעת

#include <stdio.h>

#include <string.h>

void main()

{

  char str1[81],str2[81];

  int i,stop;

  printf("enter first string:");

  gets(str1); 

  printf("enter second string:");

  scanf("%s",str2);

  stop=strlen(str2);

  while (strlen(str1)>=stop)

        if (strncmp(str1,str2,strlen(str2))==0)

          break;

        else

        {

                    strrev(str1);

                    str1[strlen(str1)-1]='\0';

                    strrev(str1);

        }

   if (strlen(str1)<stop)

                    printf("No");

   else

                    printf("yes");

}

 

 

עבודה נעימה,

לביא אודי.