First Upload
This commit is contained in:
+1190
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,74 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define N 5
|
||||
#define S 5
|
||||
#define BOOLEAN unsigned short
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define ZERO 0
|
||||
#define ONE 1
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// SumInArray
|
||||
// ----------
|
||||
//
|
||||
// General : Checks if there are two numbers whose sum is equal to
|
||||
// the number entered as "sum".
|
||||
//
|
||||
// Parameters :
|
||||
// array[] - array (int)
|
||||
// size - array size (unsigned int)
|
||||
// sum - The amount required (int)
|
||||
//
|
||||
// Return value : Counter (int).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN SumInArray(int array[], unsigned int size, double sum)
|
||||
{
|
||||
BOOLEAN answer = FALSE;
|
||||
unsigned int temp_size = size,
|
||||
count;
|
||||
double temp_sum;
|
||||
|
||||
for (count = ZERO; count < temp_size && !answer;)
|
||||
{
|
||||
temp_sum = array[count] + array[temp_size];
|
||||
answer = (temp_sum == sum) ? TRUE : FALSE;
|
||||
count += (temp_sum < sum) ? ONE : ZERO;
|
||||
temp_size -= (temp_sum > sum) ? ONE : ZERO;
|
||||
}
|
||||
|
||||
return (answer);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 1
|
||||
// ----------
|
||||
//
|
||||
// General : The program checks whether the required sum of two numbers
|
||||
// is in an ordered array.
|
||||
//
|
||||
// Input : None.
|
||||
//
|
||||
// Process : Uses a function called "SumInArray".
|
||||
//
|
||||
// Output : If the required sum of two numbers is found in an ordered array (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
int sort_numbers[N] = {1,2,3,4,5};
|
||||
BOOLEAN answer = FALSE;
|
||||
answer = SumInArray(sort_numbers, N, S);
|
||||
|
||||
printf("Answer: %hu\n", answer);
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define N 30
|
||||
#define CUBE 6
|
||||
#define INDEX_PlAYER 24
|
||||
#define ZERO 0
|
||||
#define ONE 1
|
||||
#define TWO 2
|
||||
#define ABS(x) (x) * (((2 * (x)) + 1) % 2)
|
||||
#define BOOLEAN unsigned short
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// NumBBiggerThenNumA
|
||||
// ------------------
|
||||
//
|
||||
// General : Checks if the second number (B) is greater than the first number (A).
|
||||
//
|
||||
// Parameters :
|
||||
// number1 - first number (int)
|
||||
// number2 - second number (int)
|
||||
//
|
||||
// Return value : If the second number (B) is greater than the first number (A) (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : None
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN NumBBiggerThenNumA(int a, int b)
|
||||
{
|
||||
int sub = a - b + ONE;
|
||||
BOOLEAN answer = (ONE / (ABS(sub) + (sub) + ONE));
|
||||
return answer;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// ChangeBool
|
||||
// ----------
|
||||
//
|
||||
// General : Boolean variable inverse.
|
||||
//
|
||||
// Parameters :
|
||||
// bool1 - Boolean variable (BOOLEAN)
|
||||
//
|
||||
// Return value : Boolean variable (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : None
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN ChangeBool(BOOLEAN bool1)
|
||||
{
|
||||
BOOLEAN answer = ++bool1 % TWO;
|
||||
return answer;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 2
|
||||
// ----------
|
||||
//
|
||||
// General : The program checks the amount of cube flips for which the player
|
||||
// can advance his tool forward.
|
||||
//
|
||||
// Input : None.
|
||||
//
|
||||
// Process : The program counts the number of zeros on the board to position 6
|
||||
// after the player's position on the board.
|
||||
//
|
||||
// Output : The amount of cube throws for which the player can advance
|
||||
// his tool (unsigned short).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
unsigned short board[N] =
|
||||
{0,1,0,1,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,1,1,0};
|
||||
|
||||
unsigned short sum = ZERO,
|
||||
counter = INDEX_PlAYER,
|
||||
last_step = counter + CUBE;
|
||||
|
||||
for (++counter; NumBBiggerThenNumA(counter, last_step); counter++)
|
||||
{
|
||||
sum += ChangeBool(board[counter]);
|
||||
}
|
||||
|
||||
printf("Sum: %hu\n", sum);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define N 20
|
||||
#define ZERO 0
|
||||
#define ONE 1
|
||||
#define ABS(x) (x) * (((2 * (x)) + 1) % 2)
|
||||
#define BOOLEAN unsigned short
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Equality
|
||||
// --------
|
||||
//
|
||||
// General : Checks whether two numbers are equal in value.
|
||||
//
|
||||
// Parameters :
|
||||
// number1 - first number (int)
|
||||
// number2 - second number (int)
|
||||
//
|
||||
// Return value : If there is an equality between the two numbers (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : None
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN Equality(int number1, int number2)
|
||||
{
|
||||
int sub = number1 - number2;
|
||||
BOOLEAN answer = (ONE / (ABS(sub) + ONE));
|
||||
return answer;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 3
|
||||
// ----------
|
||||
//
|
||||
// General : The program checks the number of neighboring organs whose values are equal.
|
||||
//
|
||||
// Input : None.
|
||||
//
|
||||
// Process : The program checks the number of neighboring organs whose values are equal.
|
||||
//
|
||||
// Output : The number of neighboring organ pairs whose values
|
||||
// are equal (unsigned short).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
unsigned short board[N] =
|
||||
{1,1,3,3,4,5,5,6,7,7,4,3,2,3,1,1,0,1,0,1};
|
||||
|
||||
unsigned short sum = ZERO;
|
||||
unsigned short counter;
|
||||
|
||||
for (counter = ONE; counter < N; counter++)
|
||||
{
|
||||
sum += Equality(board[counter - ONE], board[counter]);
|
||||
}
|
||||
|
||||
printf("Sum: %hu\n", sum);
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define N 20
|
||||
#define ZERO 0
|
||||
#define ONE 1
|
||||
#define TWO 2
|
||||
#define ABS(x) (x) * (((2 * (x)) + 1) % 2)
|
||||
#define BOOLEAN unsigned short
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Equality
|
||||
// --------
|
||||
//
|
||||
// General : Checks whether two numbers are equal in value.
|
||||
//
|
||||
// Parameters :
|
||||
// number1 - first number (int)
|
||||
// number2 - second number (int)
|
||||
//
|
||||
// Return value : If there is an equality between the two numbers (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : None
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN Equality(int number1, int number2)
|
||||
{
|
||||
int sub = number1 - number2;
|
||||
BOOLEAN answer = (ONE / (ABS(sub) + ONE));
|
||||
return answer;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 4
|
||||
// ----------
|
||||
//
|
||||
// General : The program checks several pairs of consecutive characters that are
|
||||
// equal to the last pair of characters in the array.
|
||||
//
|
||||
// Input : 20 chars.
|
||||
//
|
||||
// Process : The program checks several pairs of consecutive characters that are
|
||||
// equal to the last pair of characters in the array.
|
||||
//
|
||||
// Output : The number of consecutive character pairs that equals the last
|
||||
// pair of characters in the array (unsigned short).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
char array[N];
|
||||
unsigned short loop_counter,
|
||||
count = ZERO,
|
||||
new_size_array = N - TWO;
|
||||
printf("Enter char 20 chars: \n");
|
||||
for (loop_counter = ZERO; loop_counter < N; loop_counter++)
|
||||
{
|
||||
scanf("%c", &array[loop_counter]);
|
||||
}
|
||||
|
||||
for (loop_counter = ONE; loop_counter < new_size_array; loop_counter++)
|
||||
{
|
||||
count += Equality((int)array[loop_counter - ONE], (int)array[N - TWO]) *
|
||||
Equality((int)array[loop_counter], (int)array[N - ONE]);
|
||||
}
|
||||
|
||||
printf("Count: %hd\n", count);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define N 25
|
||||
#define ONE 1
|
||||
#define BOOLEAN unsigned short
|
||||
#define ABS(x) (x) * (((2 * (x)) + 1) % 2)
|
||||
#define ZERO 0
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// NumBBiggerThenNumA
|
||||
// ------------------
|
||||
//
|
||||
// General : Checks if the second number (B) is greater than the first number (A).
|
||||
//
|
||||
// Parameters :
|
||||
// number1 - first number (int)
|
||||
// number2 - second number (int)
|
||||
//
|
||||
// Return value : If the second number (B) is greater than the first number (A) (BOOLEAN).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : None
|
||||
// Date : 21.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
BOOLEAN NumBBiggerThenNumA(int a, int b)
|
||||
{
|
||||
int sub = a - b + ONE;
|
||||
BOOLEAN answer = (ONE / (ABS(sub) + (sub) + ONE));
|
||||
return answer;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 5
|
||||
// ----------
|
||||
//
|
||||
// General : The program checks if the tool can move in other rule.
|
||||
//
|
||||
// Input : 25 numbers, index of player(number), cube result(number).
|
||||
//
|
||||
// Process : The program checks the place and the dice roll
|
||||
// and then it checks if it has to go back or can go forward.
|
||||
//
|
||||
// Output : The new place of the tool on the board according to the
|
||||
// cube roll (unsigned short).
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
unsigned short board[N] = { ZERO },
|
||||
start_index_player,
|
||||
cube_result,
|
||||
end_player_index,
|
||||
counter,
|
||||
input;
|
||||
|
||||
for (counter = ZERO; counter < N; counter++)
|
||||
{
|
||||
printf("Enter number for index %ud on borad : ", counter);
|
||||
scanf("%ud", &input);
|
||||
}
|
||||
|
||||
printf("Enter index of player: ");
|
||||
scanf("%ud", &start_index_player);
|
||||
|
||||
printf("Enter cube result: ");
|
||||
scanf("%ud", &cube_result);
|
||||
|
||||
end_player_index = start_index_player + ONE;
|
||||
|
||||
end_player_index -= NumBBiggerThenNumA(board[end_player_index],
|
||||
cube_result) * (cube_result + ONE);
|
||||
|
||||
printf("%hd\n", end_player_index);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define COUNT_CHANNELS 10
|
||||
#define ZERO 0
|
||||
#define ONE 1
|
||||
#define TWO 2
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Exercise 6
|
||||
// ----------
|
||||
//
|
||||
// General : The program counts several channels above the average viewing percentage.
|
||||
//
|
||||
// Input : 40 numbers (0 - 100) (unsigned short).
|
||||
//
|
||||
// Process : The program calculates the average viewing percentage, and counts how
|
||||
// many channels are in the field above average.
|
||||
//
|
||||
// Output : Number of channels above average viewership percentage.
|
||||
//
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Programmer : Cohen Idan
|
||||
// Student No : 211675038
|
||||
// Date : 23.10.2019
|
||||
//---------------------------------------------------------------------------------------
|
||||
void main(void)
|
||||
{
|
||||
unsigned short channels[COUNT_CHANNELS] = { ZERO },
|
||||
counter,
|
||||
percent,
|
||||
sum = ZERO,
|
||||
avg,
|
||||
counter = ZERO;
|
||||
for (counter = ZERO; counter < COUNT_CHANNELS; counter++)
|
||||
{
|
||||
printf("Enter percet of viewers: ");
|
||||
scanf("%hd", &percent);
|
||||
channels[counter] = percent;
|
||||
}
|
||||
|
||||
for (counter = ZERO; counter < COUNT_CHANNELS; counter++)
|
||||
sum += channels[counter];
|
||||
|
||||
// According to the second section "avg" should be changed to 20
|
||||
avg = sum / COUNT_CHANNELS;
|
||||
for (counter = ZERO; channels[counter] > avg; counter++);
|
||||
|
||||
printf("Above avg: %hd\n", counter);
|
||||
}
|
||||
Reference in New Issue
Block a user