You are on page 1of 6

:

" : , (
: ) . " " , ,

" .
:
.
"" ?
" ," "" "" .....
?
( : == || ==) .
:
! = 1 2 3 1
5! = 1 2 3 4 5 = 120
?How are we going to calculate factorial via recursion
>#include <stdio.h
)int factorial(int n
{
)if(n<0
{
;)"!printf("Error, negative number
;)exit(1
}
)if(n==0
;return 1
else
;)return n*factorial(n-1
}
)(int main
{
;int i, answer
printf("please insert one positive number to calc the
;)"factorial\n
;)scanf("%d",&i
;)answer=factorial(i
;)printf("the factorial of %d is %d\n",i,answer
;return 0
}

Avshalom Elmalech 83120

':
9
34

8
21

7
13

6
8

5
5

4
3

3
2

2
1

0
1
0
1
Blue = index
Red = value

>#include <stdio.h
)int fibonacci (int n
{
;)if (n <= 1) return (n
;))else return ( fibonacci(n-1) + fibonacci(n-2
}
)(int main
{
;int i, answer
;)"printf("please insert index\n
;)scanf("%d",&i
;)answer=fibonacci(i
;)printf("the fibonacci value of index %d is %d\n",i,answer
;return 0
}

:
("")
. , ,
.
, :
- .
.

Avshalom Elmalech 83120

???
!!!! :
: n ,
-
: n .
: n+1 :
n+1 , n
- ,
, n
, .
?????
! :
n , n-1,
n-1
n-1 .
n '
' .
>#include <stdio.h
)int hanoi (int n
{
)if (n == 1
;return 1
else
;)return ( 2*hanoi(n-1) + 1
}
)(int main
{
;int i, answer
printf("please insert one positive number to calc the
;)"hanoi\n
;)scanf("%d",&i
;)answer=hanoi(i
printf("the number of moving to move %d disks is
;)%d\n",i,answer
;return 0
}

Avshalom Elmalech 83120

:
:30
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define INIT_SEED
#define MULTIPLIER
#define INCREMENT
13849
#define MODULUS
#define FLOATING_MODULUS
#define LIMIT

17
25173
65536
65536.0
333

int random();
void main()
{
int i;
for( i = 0; i < LIMIT; ++i)
printf("%i \n", random());
}
int random()
{
static int seed = INIT_SEED;
seed = (MULTIPLIER * seed + INCREMENT )
return (seed);
}

MODULUS;

(b)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define LIMIT
double

333

rand_float( double a, double b);

void main()
{
int i;
//srand(time(0));
for( i = 0; i < LIMIT; ++i)
{
printf("%f \n", rand_float(0, 3.0));
}
}

double rand_float( double a, double b)


{
return ( ( (double) rand()/RAND_MAX) * (b-a) + a );
}

Avshalom Elmalech 83120

:

.
. " H .
:
. C.

:
:
int add(int a, int b);

//decleration

int triple(int x)
{
return add(x, add(x, x));
}
int add(int a, int b)
{
return a + b;
}
:
We'll create a file name func.h and we will write inside it:
#ifndef ADD_H_GUARD
#define ADD_H_GUARD
int add(int a, int b);
#endif
And in the source file (can be main.c / func.c) we will write:
#include "add.h"
int triple(int x)
{
return add(x,add(x,x));
}

Avshalom Elmalech 83120

MakeFile:
Syntax:
Target: "stuff" we need in order to create Target
--tab--- once we got the "stuff" we do the action to create the Target.
Example
func.h

func.c

main.c

#include "func.h"

#include "func.h"

a.out: func.o main.o


gcc func.o main.o o a.out
func.o: func.c
gcc c func.c
main.o: main.c
gcc c main.c

Avshalom Elmalech 83120

You might also like