تمرین شماره 1

include

#include

#include

int main()

{  int *x, *y, s;

  clrscr();

  x = (int *) malloc(sizeof(int));

  if(!x){          printf(“\n allocation failure.”);

     exit(1);  }

  y = (int *) malloc(sizeof(int));

  if(!y){     printf(“\n allocation failure.”);

     exit(1);  }

  printf(“\n enter two integers:”);

  scanf(“%d%d”, x, y);

  s = *x * *x + *y * *y;

  printf(“\n sum of square is:%d”, s);

  free(x);

  free(y);

  getch();

  return 0;}

 

 

 enter two integers:150

200

 sum of square is:-3036

 

 

 

 

 

 

 

 

 

 

 

 

 

 

تمرین شماره 2

#include

#include

void swap(int *, int *);

int main()

{

    int x = 10, y = 20 ;

    clrscr();

    printf("\n first value of x,y are:%d, %d", x, y) ;

    swap(&x, &y);

    printf("\n final value of x, y are:%d, %d", x, y) ;

    getch();

    return 0;

}

 

void swap(int *a, int *b)

{

    int temp ;

    temp=*a ;

    *a=*b ;

    *b=temp ;

}

 

 first value of x,y are:10, 20

 final value of x, y are:20, 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

تمرین شماه 3

#include

#include

void winput(int *, int *);

void rect(int, int, int *, int *);

int main()

{

  int len, wid, area, per;

  clrscr();

  winput(&len, &wid);

  rect(len, wid, &area, &per);

  printf(" length = %d, width = %d", len, wid);

  printf("\n area = %d, perimer = %d", area, per);

  getch();

  return 0;

}

//**************************

void winput(int *p1, int *p2)

{

  printf(" enter length, width :");

  scanf("%d%d", p1, p2);

}

//***************************

void rect(int x, int y, int *a, int *p)

{

  *a = x * y;

  *p = 2 * (x + y);

}

enter length, width :15

20

 length = 15, width = 20

 area = 300, perimer = 70

 

 

 

 

 

 

 

تمرین شماره 4

#include

#include

#include

void check(char *a, char *b, int (*cmp)(const char *, const char *));

//int cmp(char *, char *);

int main()

{

    char s1[80], s2[80] ;

    int (*p)(const char *, const char *);

    clrscr();

    p = strcmp;

    printf(" enter first string :") ;

    gets(s1) ;

    printf(" enter second string :") ;

    gets(s2) ;

    check(s1, s2, p);

    getch();

    return 0;

}

//*********************

void check(char *a, char *b, int (*cmp)(const char *, const char *))

{

   if(!(cmp)(a, b))

       printf(" the strings are equal.");

   else

       printf(" strings are not equal.");

}

 

 

 

 

 

 

 

 

 

 

 

 

 

تمرین شماره 5

 

enter first string :ali

 enter second string :reza

 strings are not equal.

 

#include

#include

int main()

{

     int arr[5] ,i ;

     clrscr();

     printf("\n enter five value :") ;

     for(i=0 ; i<5 ; i++)

       scanf("%d",&arr[i]) ;

     printf("\n the reverse output is :");

     for(i=4 ; i>=0 ; i -- )

          printf("%4d",*(arr+i)) ;

     getch();

     return 0;

}

 

 

 

 enter five value :5

2

3

5

5

 

 the reverse output is :   5   5   3   2   5

 

 

 

 

 

 

 

 

تمرین شماره 6

#include

#include

#include

void pinput(int *, int);

void bubble(int *, int);

void median(int *, int, float *);

void pout(int *, int);

int main()

{

  int n, i;

  int  *p;

  float mead;

  clrscr();

  printf(" enter number of items(n):");

  scanf("%d", &n);

  p = (int *)malloc(n * sizeof(int));

  if(!p){

       printf(" aloocation failure!");

       getch();

       exit(1);

  }

  pinput(p, n);

  bubble(p, n);

  printf("\n sorted data are:");

  pout(p, n);

  median(p, n, &mead);

  printf("\n median = %5.2f", mead);

  getch();

  return 0;

}

//*****************************

void pinput(int  *p, int n)

{

  int i;

  for(i = 0; i < n; i ++){

     printf("enter number %d:", i + 1);

       scanf("%d", p + i);

  }

}

//*****************************

void bubble(int  *temp, int len)

{

   int i, j, item;

   for(i = len - 1 ; i > 0; i --)

          for(j = 0; j < i ; j++)

            if(*(temp + j) > *(temp + j + 1)) {

               item = *(temp + j);

               *(temp + j) = *(temp + j + 1);

               *(temp + j + 1) = item ;

            }//end of if

}

//*************************

void median(int *x, int n, float *mead)

{  if(n % 2 == 0)

       *mead =(float) (*(x + ((n - 1) / 2)) + *(x + (n / 2))) / 2;

  else

       *mead = *(x + (n - 1) / 2);}

//****************

void pout(int *p, int n)

{  int i;

  for(i = 0; i < n; i ++){

     printf("%3d",*(p+i));  }

  printf("\n");

}

enter number of items(n):10

enter number 1:15

enter number 2:25

enter number 3:62

enter number 4:5

enter number 5:55

enter number 6:52

enter number 7:54

enter number 8:1

enter number 9:4

enter number 10:56

 

 sorted data are:  1  4  5 15 25 52 54 55 56 62

 

 median = 38.50

تمرین شماره 7

#include

#include

int char_count(char *, char);

int main()

{

    char string[40] , ch ;

    int count ;

    clrscr();

    printf(" enter string for search:");

    gets(string) ;

    printf(" enter a character:") ;

    ch = getche() ;

    count = char_count(string, ch) ;

    printf("\n number of occurs of char ") ;

    printf(" <%c> is:%d", ch, count);

    getch();

    return 0;

}

//******************

int char_count(char *s, char letter)

{

    int count=0 ;

    while(*s)

      if(*s++ == letter)

           count ++ ;

     return(count) ;

}

 

enter string for search:ali

 enter a character:a

 number of occurs of char  is:1

 

 

 

 

 

 

 

 

تمرین شماره 8

 

#include

#include

first_dif(char *, char *, int);

int main()

{

      char st1[40], st2[40] ;

      int compcase = 1 ;

      clrscr();

      printf(" enter first string:") ;

      gets(st1) ;

      printf(" enter second string:");

      gets(st2) ;

      first_dif(st1, st2, compcase) ;

      getch();

      return 0;

}

//********************

first_dif(char *s1, char *s2, int ignore_case)

     /* if ignore_case is 1 ,ignore case

          of letter */

{

    int i ;

    char a , b ;

    for(i = 0; *s1 && *s2; s1++, s2++, i++)

      if(*s1 != *s2) {

           if(ignore_case) {

               a = (*s1 >= 'a' && *s1 <= 'z') ? *s1 -= 32 : *s1;

               b = (*s2 >= 'a' && *s2 <= 'z') ? *s2 -= 32 : *s2;

               if(a != b)

                    break ;

           }//end of if

           else

              break;

      }//end of if

      if(*s1 || *s2) {

          printf("\n strings are not equal,");

          printf(" the first difference occurs in :%d", i + 1);

      }

      else

          printf("\n strings are equal .") ;

}

enter first string:ali reza

 enter second string:ebrahim ghomi

 

 strings are not equal, the first difference occurs in :1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

تمرین شماره  9

#include

#include

void ascii_to_int(int *, char *);

int main()

{

   int number ;

   char s[10] ;

   clrscr();

   printf("\n enter numeric string:");

   gets(s) ;

   ascii_to_int(&number, s) ;

   printf(" numeric value is:%d", number) ;

   getch();

   return 0;

}

//**************************

void ascii_to_int(int *value, char *str)

{

  int sign = 1 ;

  *value = 0 ;

  while(*str == ' ') str++ ;

     if(*str== '-' || *str == '+')

             sign = (*str ++ == '-') ? -1 : 1;

     while(*str)

          if((*str >= '0') && (*str <= '9'))

              *value = (*value * 10) + (*str ++ -48) ;

          else {

            printf("Watning :the <%c> is invalid character.\n", *str);

            break ;

          }

     *value *=sign ;

}

 

 enter numeric string:ebrahim ghomi 8705060503

Watning :the is invalid character.

 numeric value is:0

 

 

تمرین شماره  10

#include

#include

void int_to_ascii(int , char *);

int main()

{

    int number ;

    char s[10] ;

    clrscr();

    printf(" enter a number :");

    scanf("%d", &number) ;

    int_to_ascii(number, s) ;

    printf(" the string value is:%s", s);

    getch();

    return 0;

}

//**********************************

void int_to_ascii(int value, char *str)

{

    int saveval= value ;

    char temp, *savestr = str ;

    if(value < 0)

          value *= -1 ;

    do{

          *str ++ = (value % 10) + 48 ;

          value = value / 10 ;

    } while(value > 0);

    if (saveval < 0)

       *str++ = '-' ;

    *str -- = '\0' ;

    while(savestr < str) {

      temp = *str ;

      *str -- =* savestr ;

      *savestr ++ = temp ;

    }

}

 

 

enter a number :125

 the string value is:125

 

تمرین شماره 11

#include

#include

int main()

{

    char *text="your name is:";

    char name[41];

    clrscr();

    printf("\n enter your name :") ;

    gets(name) ;

    printf(" %s" ,text);

    puts(name) ;

    getch();

    return 0;

}

 

 enter your name :ebrahim ghomi

 your name is:ebrahim ghomi

 

تمرین شماره  12

#include

#include

#include

int main()

{

    int dex;

    const int k = 5;

    char name[21];

    char *list[k]=

                    {"ali",

                     "ahmad",

                     "alireza",

                     "jalal",

                     "mohammad"

                    } ;

    clrscr();

    printf(" enter a name for search:") ;

    gets(name);

    for(dex = 0; dex

      if(!strcmp(list[dex], name))

              break ;

    if(dex == k)

      printf(" name <%s> not exist.", name) ;

     else

      printf(" name <%s> exist.", name);

    getch();

    return 0;

}

 

enter a name for search:ebrahim ghomi

 name not exist.

 

 

 

 

 

 

 

تمرین شماره  13

#include

#include

#include

int main()

{

   char name[30][81];

   char *ptr[30], *temp;

   int in, out, count = 0;

   const int k = 30 ;

   clrscr();

   while(count < k) {

      printf(" enter name of number %d:", count + 1);

      gets(name[count]) ;

      if(!name[count][0])

           break ;

      *(ptr + count ++) = name[count] ;

   }

   for(out = 0; out < count - 1; out ++)

     for(in = out + 1; in < count; in++)

           if(strcmp(*(ptr + out), *(ptr + in)) > 0){

              temp = *(ptr + in) ;

              *(ptr + in) = *(ptr + out) ;

              *(ptr + out) = temp ;

           }

     printf("<< the sorted list is:>>\n");

     for(out = 0 ; out < count ; out ++)

           printf("\n name %d is:%s", out + 1, *(ptr + out));

     getch();

     return 0;

}

 

enter name of number 13:54

 enter name of number 14:24

 enter name of number 15:54

 enter name of number 16:54

 enter name of number 17:24

 enter name of number 18:8

 enter name of number 19:5

 enter name of number 20:54

 enter name of number 21:54

 enter name of number 22:24

 enter name of number 23:54

 enter name of number 24:54

 enter name of number 25:54

 enter name of number 26:54

 enter name of number 27:54

 enter name of number 28:548

 enter name of number 29:4

 enter name of number 30:5

<< the sorted list is:>>

 

 name 1 is:1256

 name 2 is:2

 name 3 is:2

 name 4 is:24

 name 5 is:24

 

 

 

تمرین شماره  14

#include

#include

main()

{

   int x , *p ;

   clrscr();

   x = 10 ;

   *p = x ;

   printf("\n %d", *p) ;

   getch();

   return 0;

}

 

 10

 

ابراهیم قمی اویلی