From f96aae24c7f4efa3873fa53051529b721509201c Mon Sep 17 00:00:00 2001 From: Mykola Solianko Date: Sat, 23 Mar 2019 11:55:01 +0200 Subject: [PATCH 1/7] Add homework according third lecture --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b175733..8a79491 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,93 @@ -# homework -Homework +# Домашнее задание +Сделать домашнее задание(кто еще не выполнил) с [прошлого занятия](https://github.com/MykolaSolyanko/homework/tree/homework_second_lecture), то что после квадратного уравнения. +## Счастливый билетик +С клавиатуры вводите 6ти значное число. Необходимо определить счастливый это билет или нет. Счастливым считаеться тот билет у которого сумма трех первых цифр номера равна сумме трех последних. + +Например +621333 - суммы совпадают +662999 - суммы не совпадают +## Обратные числа +Необходимо ввести с клавиатуры 32х разрядное зенаковое число, необходимо сделать reverse(обратное) этого числа +Например +``` +123 +321 +``` + +``` +-123 +-321 +``` + +``` +120 +21 +``` +## Сумма нечетных элементов +На экране необходимо ввести список элемнтов, и необходимо посчитать сумму только нечетных элементов, четные надо отбрасывать. +Требования +Максимальный количество вводимых элементов `1..50` +Каждый элемент должен находиться в диапазоне `-60 <= x <= 90` +``` +Ввод +3 +2 +4 +6 +5 +7 +8 +0 +1 +Вывод +16 --> 3 + 5 + 7 + 1 = 16 +``` +## Установлен ли бит +С клавиатуры вводиться два числа, первое это 32-х разрядное безнаковое целое, а второе число значение проверяющее установлен ли бит в этом числе. На экран должно быть выведено `Yes` или `No` +Пример +``` +25 1 +Yes + +25 8 +No +``` +Пояснения: +``` +25 ---> 0b0000'0000'0000'0000'0000'0000'0001'1001 +``` +## Лучший делитель +Дано положительное число, необходимо найти сумму цифр которая будет больше чем все возможные суммы цифр этого числа +Например +``` +Ввод +12 +Вывод +6 +``` +Пояснение +12 его делители {1,2,3,4,6,12}. Соответственно число 6 есть лучшее +## Построение числа +Вам данно не отрицательные целые числа, вам необходимо попытаться постоить новое число используя все цифры этих чисел, так чтобы новое число делилось на 3. На экран должно быть выведено `Yes` или `No`, т.е. делиться или нет соответственно +``` +1 +9 +Yes + +3 +40 50 90 +Yes + +2 +1 4 +No + +``` + +Пояснение +``` +50 40 90 + +549000 --> делиться на 3 + +``` From b5318b15df0c0b91b9ebf309c4950c0354547318 Mon Sep 17 00:00:00 2001 From: Mykola Solianko Date: Wed, 3 Apr 2019 00:26:24 +0300 Subject: [PATCH 2/7] Add homework on fourth lessons --- README.md | 116 +++++++++++++++++++++--------------------------------- 1 file changed, 44 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 8a79491..d89a79f 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,65 @@ # Домашнее задание -Сделать домашнее задание(кто еще не выполнил) с [прошлого занятия](https://github.com/MykolaSolyanko/homework/tree/homework_second_lecture), то что после квадратного уравнения. -## Счастливый билетик -С клавиатуры вводите 6ти значное число. Необходимо определить счастливый это билет или нет. Счастливым считаеться тот билет у которого сумма трех первых цифр номера равна сумме трех последних. - -Например -621333 - суммы совпадают -662999 - суммы не совпадают -## Обратные числа -Необходимо ввести с клавиатуры 32х разрядное зенаковое число, необходимо сделать reverse(обратное) этого числа +## Проверить являеться ли введеный символ числом(аналог функции is_diget) +С клавиатуры необходимо ввести строку и проверить являеться ли символ числом. Например ``` -123 -321 -``` +abfdc1k4l0 -``` --123 --321 +is diget 1, 4, 0 ``` +## Написать функцию перевода символов в верхний регист(аналог to_upper) +С клавиатуры необходимо ввести строку и перевести строку в верхний регист +Например ``` -120 -21 -``` -## Сумма нечетных элементов -На экране необходимо ввести список элемнтов, и необходимо посчитать сумму только нечетных элементов, четные надо отбрасывать. -Требования -Максимальный количество вводимых элементов `1..50` -Каждый элемент должен находиться в диапазоне `-60 <= x <= 90` -``` -Ввод -3 -2 -4 -6 -5 -7 -8 -0 -1 -Вывод -16 --> 3 + 5 + 7 + 1 = 16 -``` -## Установлен ли бит -С клавиатуры вводиться два числа, первое это 32-х разрядное безнаковое целое, а второе число значение проверяющее установлен ли бит в этом числе. На экран должно быть выведено `Yes` или `No` -Пример -``` -25 1 -Yes +HelloWorld1This -25 8 -No +HELLOWORLD1THIS ``` -Пояснения: + +## Написать функцию перевода символов в верхний регист(аналог to_lower) +С клавиатуры необходимо ввести строку и перевести строку в нижний регист +Например ``` -25 ---> 0b0000'0000'0000'0000'0000'0000'0001'1001 +HelloWorld1This + +helloworld1this ``` -## Лучший делитель -Дано положительное число, необходимо найти сумму цифр которая будет больше чем все возможные суммы цифр этого числа + +## Написать функцию revers для строки +С клавиатуры необходимо ввести строку и переставить ее местами Например ``` -Ввод -12 -Вывод -6 -``` -Пояснение -12 его делители {1,2,3,4,6,12}. Соответственно число 6 есть лучшее -## Построение числа -Вам данно не отрицательные целые числа, вам необходимо попытаться постоить новое число используя все цифры этих чисел, так чтобы новое число делилось на 3. На экран должно быть выведено `Yes` или `No`, т.е. делиться или нет соответственно +HelloWorld + +dlroWolleW ``` -1 -9 -Yes -3 -40 50 90 -Yes +## Написать два алгоритма сортировки один простой сортировка пузырьком, а второй quicksort, и сравнить их производительность по времени выполнения при разных наборах данных. Алгоритм реализовать с помощью указателей. -2 -1 4 -No -``` +##Реализовать текстовый редактор с примитивными операциями +Идея реализовать простой редактор текста +На вход подаеться команда и набор чисел относящийся к команде +Например: +``` +ввод пользователя наш внутрений буфер Положение курсора +print abc -> abc -> 3 +print hello -> abchello -> 8 +select 3 5 -> выделяем hello -> 8 +copy -> abchello -> 8 +paste -> abchellohello -> 13 +move left 5 -> abchellohello -> 8 +print test -> abchellotesthello -> 12 +select 3 5 -> выделяем hello -> 12 +cut -> abctesthello -> 7 -Пояснение +select -> это начиная с какой позиции выделять и сколько +move - перемещение в лево и в право ``` -50 40 90 -549000 --> делиться на 3 +Главное условие не использовать функции стандартной библиотеки, т.е. самим реализовать strlen, strcpy и т.д. Если возникнут трудности то можно использовать и библиотечные функции. -``` +##Написать функцию сложения больших чисел +С клавиатуры происходит ввод двух чисел, и на экран необходимо вывести суму эти двух чисел +Число может быть больше 8 байт. Т.е. необходимо реализовать арифметику для больших чисел From c75499ebca0e8f4418071a91165a7c0e9653a593 Mon Sep 17 00:00:00 2001 From: Mykola Solianko Date: Thu, 13 Jun 2019 14:50:31 +0300 Subject: [PATCH 3/7] Update homework for fourth lecture --- README.md | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/README.md b/README.md index d89a79f..3ee757e 100644 --- a/README.md +++ b/README.md @@ -34,32 +34,3 @@ HelloWorld dlroWolleW ``` - -## Написать два алгоритма сортировки один простой сортировка пузырьком, а второй quicksort, и сравнить их производительность по времени выполнения при разных наборах данных. Алгоритм реализовать с помощью указателей. - - -##Реализовать текстовый редактор с примитивными операциями -Идея реализовать простой редактор текста -На вход подаеться команда и набор чисел относящийся к команде -Например: -``` -ввод пользователя наш внутрений буфер Положение курсора -print abc -> abc -> 3 -print hello -> abchello -> 8 -select 3 5 -> выделяем hello -> 8 -copy -> abchello -> 8 -paste -> abchellohello -> 13 -move left 5 -> abchellohello -> 8 -print test -> abchellotesthello -> 12 -select 3 5 -> выделяем hello -> 12 -cut -> abctesthello -> 7 - -select -> это начиная с какой позиции выделять и сколько -move - перемещение в лево и в право -``` - -Главное условие не использовать функции стандартной библиотеки, т.е. самим реализовать strlen, strcpy и т.д. Если возникнут трудности то можно использовать и библиотечные функции. - -##Написать функцию сложения больших чисел -С клавиатуры происходит ввод двух чисел, и на экран необходимо вывести суму эти двух чисел -Число может быть больше 8 байт. Т.е. необходимо реализовать арифметику для больших чисел From 71c64e6754f9efb0e8e293c39864a4928fbfc258 Mon Sep 17 00:00:00 2001 From: Mykola Solianko Date: Tue, 30 Jul 2019 12:23:59 +0300 Subject: [PATCH 4/7] Change title tasks --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3ee757e..fb184ae 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ abfdc1k4l0 is diget 1, 4, 0 ``` -## Написать функцию перевода символов в верхний регист(аналог to_upper) +## Написать программу перевода символов в верхний регист(аналог функции to_upper) С клавиатуры необходимо ввести строку и перевести строку в верхний регист Например ``` @@ -17,7 +17,7 @@ HelloWorld1This HELLOWORLD1THIS ``` -## Написать функцию перевода символов в верхний регист(аналог to_lower) +## Написать программу перевода символов в верхний регист(аналог функции to_lower) С клавиатуры необходимо ввести строку и перевести строку в нижний регист Например ``` @@ -26,7 +26,7 @@ HelloWorld1This helloworld1this ``` -## Написать функцию revers для строки +## Написать программу revers для строки С клавиатуры необходимо ввести строку и переставить ее местами Например ``` From 50a852abfda07cd55f3766e4dfc4ca78faebcd07 Mon Sep 17 00:00:00 2001 From: Mykola Solyanko Date: Wed, 11 Dec 2019 09:22:10 +0200 Subject: [PATCH 5/7] Provide new tasks --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fb184ae..e436bc9 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,48 @@ # Домашнее задание -## Проверить являеться ли введеный символ числом(аналог функции is_diget) -С клавиатуры необходимо ввести строку и проверить являеться ли символ числом. +## Написать программу revers для строки(частая задача на собеседовании) +С клавиатуры необходимо ввести строку и переставить ее местами Например ``` -abfdc1k4l0 +HelloWorld -is diget 1, 4, 0 +dlroWolleW +``` + +## Написать программу вставки элемента в массив(задача сортировка при вводе элемента) +У вас есть массив фиксированого размера(размер выбираеться опционально). +Пользователь вводит число, ваша задача вставить элемнт в массив в возрастающем порядке, если массив пуст то вставляеться новое число в первый пустой(незаполненый) ячейку массива +Программа продолжаеться до тех пор пока массив не будет заполнен или пользователь не выйдит с программы. +``` +случай массив пустой + +array[0, 0, 0, 0, 0, 0] +> 2 - пользователь вводит число 2 + +так как массив пуст то вы вставляете элемент в начало массива(т.е. первую ячейку) + +array[2, 0, 0, 0, 0, 0] + +> 1 - пользователь вводит число 1 + +вы находите что занчение 1 меньше 2, то вы должны вставить 1 перед 2 + +array[1, 2, 0, 0, 0, 0] + +> 10 - пользователь вводит число 10 + +вы находите что занчение 10 больше 2, то вы должны вставить 10 после 2 +array[1, 2, 10, 0, 0, 0] + +и так пока массив не будет заполнен ``` +**Ниже задачи есть опциональные** + +## Написать программу удаление элемента с массива +У вас есть массив фиксированого размера(размер выбираеться опционально). Значения для массива можно заполнять или вручную используя список инициализации, или случайным образом используя функцию (rand или есть более современные генераторы случайных чисел в библиотеке С++), или предложить пользователю заполнить массив вручную. Кто более знаком с языком С++ может реализовать все три случая +Пользователь вводит число для поиска элемента массива (желательно предложить диапазон чисел), если это число присутсвует в массиве то вы его должны удалить с массива. +Программа продолжаеться до тех пор пока массив не будет пустой или пользователь не выйдит с программы. + ## Написать программу перевода символов в верхний регист(аналог функции to_upper) С клавиатуры необходимо ввести строку и перевести строку в верхний регист Например @@ -17,20 +52,22 @@ HelloWorld1This HELLOWORLD1THIS ``` -## Написать программу перевода символов в верхний регист(аналог функции to_lower) -С клавиатуры необходимо ввести строку и перевести строку в нижний регист +## Проверить являеться ли введеный символ числом(аналог функции is_diget) +С клавиатуры необходимо ввести строку и проверить являеться ли символ числом. Например ``` -HelloWorld1This +abfdc1k4l0 -helloworld1this +is diget 1, 4, 0 ``` -## Написать программу revers для строки -С клавиатуры необходимо ввести строку и переставить ее местами +## Написать программу перевода символов в верхний регист(аналог функции to_lower) +С клавиатуры необходимо ввести строку и перевести строку в нижний регист Например ``` -HelloWorld +HelloWorld1This -dlroWolleW +helloworld1this ``` + +**Важно тот кто более знаком с языком и с понятиям указатели, то может выполнять обход массива и работу с массивами не в привыччной форме индексации, а через указатели** \ No newline at end of file From 19988b6f1443f0c78a7a9d58b0497236b5b4515e Mon Sep 17 00:00:00 2001 From: zlony <80918761+zlony@users.noreply.github.com> Date: Thu, 8 Apr 2021 17:37:16 +0300 Subject: [PATCH 6/7] Create IvanZlobinHomeWork3.cpp --- IvanZlobinHomeWork3.cpp | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 IvanZlobinHomeWork3.cpp diff --git a/IvanZlobinHomeWork3.cpp b/IvanZlobinHomeWork3.cpp new file mode 100644 index 0000000..e7f22fb --- /dev/null +++ b/IvanZlobinHomeWork3.cpp @@ -0,0 +1,52 @@ +//Reverse// +#include +#include +#include + +int main() { + std::string line; + std::cout << "Enter in the line" << std::endl; + std::cin >> line; + int i = line.length() - 1; + do { + std::cout << line[i]; + i--; + } while (i > -1); + return 0; +} + +//Include// +#include + +int main() { + int arrlength; + std::cout << "Enter a length of the array: "; + std::cin >> arrlength; + int *arr = new int[arrlength]; + int f; + int tmp; + + for (int i = 0; i < arrlength; i++) { + std::cout << "Enter a number: "; + std::cin >> f; + if (i == 0) { + arr[i] = f; + } + if (f > arr[i - 1]) { + arr[i] = f; + } else { + tmp = arr[i - 1]; + arr[i - 1] = f; + arr[i] = tmp; + } + + std::cout << "array["; + for (int i = 0; i < arrlength; i++) { + std::cout << arr[i] << ","; + } + std::cout << "]" << std::endl; + } + + delete[] arr; + return 0; +} From 4edbf0f14d1ecfe007ad92e0e5effef8e336b4fd Mon Sep 17 00:00:00 2001 From: zlony <80918761+zlony@users.noreply.github.com> Date: Thu, 8 Apr 2021 17:48:08 +0300 Subject: [PATCH 7/7] HomeWork3 Ivan Zlobin --- IvanZlobinHW3.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 IvanZlobinHW3.cpp diff --git a/IvanZlobinHW3.cpp b/IvanZlobinHW3.cpp new file mode 100644 index 0000000..e7f22fb --- /dev/null +++ b/IvanZlobinHW3.cpp @@ -0,0 +1,52 @@ +//Reverse// +#include +#include +#include + +int main() { + std::string line; + std::cout << "Enter in the line" << std::endl; + std::cin >> line; + int i = line.length() - 1; + do { + std::cout << line[i]; + i--; + } while (i > -1); + return 0; +} + +//Include// +#include + +int main() { + int arrlength; + std::cout << "Enter a length of the array: "; + std::cin >> arrlength; + int *arr = new int[arrlength]; + int f; + int tmp; + + for (int i = 0; i < arrlength; i++) { + std::cout << "Enter a number: "; + std::cin >> f; + if (i == 0) { + arr[i] = f; + } + if (f > arr[i - 1]) { + arr[i] = f; + } else { + tmp = arr[i - 1]; + arr[i - 1] = f; + arr[i] = tmp; + } + + std::cout << "array["; + for (int i = 0; i < arrlength; i++) { + std::cout << arr[i] << ","; + } + std::cout << "]" << std::endl; + } + + delete[] arr; + return 0; +}