diff options
new
2 files changed, 0 insertions, 156 deletions
| -rw-r--r-- | Sem. 07/BullsAndColls.cpp | 96 | ||||
| -rw-r--r-- | Sem. 07/README.md | 60 |
diff --git a/Sem. 07/BullsAndColls.cpp b/Sem. 07/BullsAndColls.cpp deleted file mode 100644 index 2eb5d3c..0000000 --- a/Sem. 07/BullsAndColls.cpp +++ /dev/null @@ -1,96 +0,0 @@ -#include <iostream> -#include <stdlib.h> -using namespace std; - - -//Бикове и крави. -//Число: 1234 -//Предположение: 4253 - 2 крави (4 и 3) и 1 бик (2). - -bool hasDuplicateDigits(int n) ///1343 -{ - const int DIGITCOUNT = 10; - bool found[DIGITCOUNT]; - for (int i = 0; i < DIGITCOUNT; i++) - found[i] = false; - while (n != 0) - { - int lastDigit = n % 10; - if (found[lastDigit] == true) - return true; - else - found[lastDigit] = true; - n /= 10; - } - return false; -} - -void convertNumberToArr(int n, int arr[]) -{ - - for (int i = 3; i >= 0; i--) - { - arr[i] = n % 10; - n /= 10; - } - -} -int countBulls(int myNumber[], int compNumber[]) -{ - int bullsCount = 0; - for (int i = 0; i <= 3; i++) - { - if (myNumber[i] == compNumber[i]) - bullsCount++; - } - return bullsCount; -} -int countCows(int myNumber[], int compNumber[]) -{ - int cowsCount = 0; - - for (int i = 0; i <= 3; i++) - { - int myDigit = myNumber[i]; - for (int j = 0; j <= 3; j++) - { - if (j == i) // çà äà íå áðîèì áèêîâåòå - continue; - if (myDigit == compNumber[j]) - cowsCount++; - } - } - return cowsCount; -} -int main() -{ - int numberToGuess; - do - { - numberToGuess = 1000 + rand() % 9000; // [1000..9999] - } - while (hasDuplicateDigits(numberToGuess)); - - cout << "Computer has picked a number! Try to guess it!" <<endl; - int numberToGuessArr[4]; - - convertNumberToArr(numberToGuess, numberToGuessArr); - - int bullsCount = 0, cowsCount = 0; - do - { - int myNumber; - cin >> myNumber; - int myNumberArr[4]; - convertNumberToArr(myNumber, myNumberArr); - - bullsCount = countBulls(myNumberArr, numberToGuessArr); - cowsCount = countCows(myNumberArr, numberToGuessArr); - - cout << "Bulls: " << bullsCount << " Cows:" << cowsCount << endl; - - - } while (bullsCount != 4); - - cout << "Success!" << endl; -} diff --git a/Sem. 07/README.md b/Sem. 07/README.md deleted file mode 100644 index bae79b6..0000000 --- a/Sem. 07/README.md +++ /dev/null @@ -1,60 +0,0 @@ - - **Задача 1 (малък проект) :** Реализирайте играта **"Бикове и крави"**. Програмата ще генерира число и потребителят ще трябва да позне числото. - -# Масиви - -**Масивът** е наредена последователност от елементи от един тип. Отделен елемент на масива се достъпва посредством името на масива, последвано от поредния номер (индекс) на елемента в квадратни скоби - - - -## Инициализация на масиви - - ```c++ - int arr[6]; // Създава масив от 6 елемента, всеки от които е цяло число. - int arr2[] = {0, 1, 2, 3, 4, 5}; // Създава масив от 6 елемента. - int arr3[6] = {1,2,3}; //Останалите елементи се запълват с defaut-на стойност. - // Задължително големината на масива трябва да е константа, чиято стойност е ясна преди да - // се компилира програмата -``` - -## Достъп на елемент - - ```c++ - arr[3] = 44; //Присвоява на елементът на индекс 3 стойността 44. - cout << arr[2]; //Отпечатва на стандартния изход елементът на индекс 2 - //Индексацията на масивите в с++ започва от 0! -``` - - -## Извличане на размер на масив - - ```c++ - const int SIZE = 5; - int arr[SIZE]; - cout << sizeof(arr) / sizeof(int); - //Големината на масива я разделяме на големината на една променлива от този тип. -``` - - -## Подаване на масиви във функции - ```c++ - #include <iostream> - using namespace std; - void print(int arr[], int len) - { - for(int i = 0; i < len; i++) - { - cout << arr[i] << " "; - } - } - int main() - { - const int SIZE = 5; - int arr[SIZE] {1,2,3,4}; - - print(arr,SIZE); - - return 0; - } -``` - Масивите се подават във функциите по адрес! Т.е промените, които се правят върху масива във функцията, ще се отразят върху подадения като параметър масив! - |
