Skip to content

Решение задач по С++ (кол -во: 45шт ). Обновляемая. ( @WgHost-git )

Notifications You must be signed in to change notification settings

WgHost-git/Task-solution_in_Cpp

Repository files navigation

Решение задач по С++ (кол -во: 45шт )

  1. Folder Task-solution_1 (Задачи по переменным и типам данных);
  2. Folder Task-solution_2 (Задачи по логическим операторам и операторам ветвлений);
  3. Folder Task-solution_3 (Задачи по логическим операторам и операторам ветвлений и по циклам);
  4. Folder Task-solution_4 (Задачи с одномерными массивами);
  5. Folder Task-solution_5 (Задачи с многомерными массивами и по функциям);
  6. Folder Task-solution_6 (Задачи по указателям);
  7. Folder Task-solution_7 (Задачи по строкам);
  8. Folder Task-solution_8 (Задачи многомерным динамическим массивам);
  9. Folder Task-solution_9 (Задачи по структурам);

1. Folder Task-solution_1 (Задачи по переменным и типам данных):

1. Заданы три сопротивлении R1, R2, R3 . Вычислить значение сопротивления  R0 по формуле: 1/R0 = 1/R1+1/R2+1/R3.

2. По заданной длине окружности найти площадь круга по формуле  S =  pi*R2,
    радиус вычислить из формулы длины окружности: L=2*pi *R.
    
3. Вычислить пройденное расстояние при прямолинейном равноускоренном движении по формуле 
    S = v*t + (a*t2) / 2, где v – скорость, t – время, а – ускорение.
    
4. Пользователь вводит с клавиатуры время в секундах. Необходимо написать программу, 
    которая переведет введенные пользователем секунды в часы, минуты, секунды и выводит их на экран.
    
5. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. 
    Например, число 12,5 должно быть преобразовано к виду 12р 50 коп.
    
6. Написать программу, вычисляющую, с какой скоростью бегун пробежал дистанцию. 
    Рекомендуемый вид экрана во время выполнения программы приведен ниже: 
      Вычисление скорости бега; 
      Введите длину дистанции (метров) = 1000; 
      Введите время (мин.сек) = 3.25; Дистанция: 1000м; 
      Время: 3 мин 25 сек = 205 сек Вы бежали со скоростью 17.56 км/ч.
      
7. Пользователь указывает цену одой минуты исходящего звонка с одного мобильного оператора другому, 
    а также продолжительность разговора в минутах и секундах. 
    Необходимо вычислить денежную сумму на которую был произведен звонок.
    
8. Написать программу, которая преобразует введенное пользователем количество дней 
    в количество полных недель и оставшихся дней. Например, пользователь ввел 17 дней, 
    программа должна вывести на экран 2 недели и 3 дня.

2. Folder Task-solution_2 (Задачи по логическим операторам и операторам ветвлений):

1. Пользователь вводит с клавиатуры целое шестизначное число. Написать программу, которая определяет, 
    является ли введенное число – счастливым (Счастливым считается шестизначное число, у которого сумма 
    первых 3 цифр равна сумме вторых трех цифр). Если пользователь ввел не шестизначное число – сообщение об ошибке.
    
2. Пользователь вводит четырехзначное число. Необходимо поменять в этом числе 1 и 2 цифры, а также 3 и 4 цифры.  
    Если пользователь вводит не четырехзначное число – вывести сообщение об ошибке.
    
3. Пользователь вводит с клавиатуры 7 целых чисел. Напишите программу, которая определяет
    максимальное из этих 7 чисел (Подсказка – решение должно быть простым).
    
4. Грузовой самолет должен пролететь с грузом из пункта А в пункт С через пункт В. 
    Емкость бака для топлива у самолета – 300литров. Потребление топлива на 1 км в зависимости 
    от веса груза у самолета следующее: 
        - до 500 кг: 1 литров / км 
        - до 1000 кг: 4 литров / км 
        - до 1500 кг: 7 литров / км 
        - до 2000 кг: 9 литров / км. 
        - более 2000 кг – самолет не поднимает. 
    Пользователь вводит расстояние между пунктами А и В, и расстояние между пунктами В и С, а 
    также вес груза. Программа должна рассчитать какое минимальное количество топлива 
    необходимо для дозаправки самолету в пункте В, чтобы долететь из пункта А в пункт С. В 
    случае невозможности преодолеть любое из расстояний – программа должна вывести 
    сообщение о невозможности полета по введенному маршруту.
    
5. Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо 
    определить и вывести количество дней между этими двумя датами. Для расчетов учитывать 
    високосные года, а также корректное число дней в месяцах (март – 31, сентябрь – 30, февраль 
    не високосного года – 28 и т.д.).
    
6. Зарплата менеджера составляет 200$ + процент от продаж, продажи до 500$ - 3%, от 
    500 до 1000 – 5%, свыше 1000 – 8%. Пользователь вводит с клавиатуры уровень продаж для 
    трех менеджеров. Определить их зарплату, определить лучшего менеджера, начислить ему 
    премию 200$, вывести итоги на экран.

3. Folder Task-solution_3 (Задачи по логическим операторам и операторам ветвлений):

1. Пользователь вводит с клавиатуры символ. Определить, какой это символ: Буква, цифра, знак препинания или другое.

2. Написать программу подсчета стоимости разговора для разных мобильных операторов. Пользователь вводит стоимость 
    разговора и выбирает с какого на какой оператор он звонит. Вывести стоимость на экран.
    
3. Вася работает программистом и получает 50$ за каждые 100 строк кода. За каждое третье опоздание 
    Васю штрафуют на 20$. Реализовать меню: 
        - пользователь вводит желаемый доход Васи и количество опозданий, посчитать, 
            сколько строк кода ему надо написать 
        - пользователь вводит количество строк кода, написанное Васей и желаемый объем зарплаты. 
            Посчитать, сколько раз Вася может опоздать  
        - пользователь вводит количество строк кода и количество опозданий, определить, сколько денег 
            заплатят Васе и заплатят ли вообще.
Задачи по циклам:
4. Напишите программу, которая вычисляет сумму целых чисел от а до 500 (значение a вводится с клавиатуры).

5. Напишите программу, которая запрашивает два целых числа x и y, после чего вычисляет 
    и выводит значение x в степени y.

6. Найти среднее арифметическое всех целых чисел от 1 до 1000.

7. Найти произведение всех целых чисел от a до 20 (значение a вводится с клавиатуры: 1 <=a <= 20).

8. Написать программу, которая выводит на экран таблицу умножения на k, где k – номер варианта. 
    Например, для 7-го варианта: 
        7 x 2 = 14 
        7 x 3 = 21

4. Folder Task-solution_4 (Задачи с одномерными массивами):

1. В одномерном массиве, заполненном случайными числами, определить минимальный и максимальный элементы.

2. Пользователь вводит прибыль фирмы за год (12 месяцев). Затем пользователь вводит диапазон 
    (например, 3 и 6 – поиск между 3-м и 6-м месяцем). Необходимо определить месяц, в котором прибыль 
    была максимальна и месяц, в котором прибыль была минимальна с учетом выбранного диапазона.
    
3. В одномерном массиве, состоящем из N вещественных чисел вычислить: 
    • Сумму отрицательных элементов. 
    • Произведение элементов, находящихся между min и max элементами. 
    • Произведение элементов с четными номерами. 
    • Сумму элементов, находящихся между первым и последним отрицательными элементами.
    
4. Написать программу, копирующую последовательно элементы одного массива размером 10 
элементов в 2 массива размером 5 элементов каждый.

5. Напишите программу, которая выполняет поэлементную сумму двух массивов и результат заносит в третий массив.

5. Folder Task-solution_5 (Задачи с многомерными массивами):

1. Напишите программу, которая создает двухмерный массив и заполняет его по следующему 
    принципу: пользователь вводит число (например, 3) первый элемент массива принимает 
    значение этого числа, последующий элемент массива принимает значение этого числа 
    умноженного на 2 (т.е. 6 для нашего примера), третий элемент массива предыдущий элемент 
    умноженный на 2 (т.е. 6*2=12 для нашего примера). Созданный массив вывести на экран.

2. Напишите программу, которая создает двухмерный массив и заполняет его по следующему 
    принципу: пользователь вводит число (например, 3) первый элемент массива принимает 
    значение этого числа, последующий элемент массива принимает значение этого числа + 1 (т.е. 4 
    для нашего примера), третий элемент массива предыдущий элемент + 1 (т.е. 5 для нашего 
    примера). Созданный массив вывести на экран.

3. Создайте двухмерный массив. Заполните его случайными числами и покажите на экран. 
    Пользователь выбирает количество сдвигов и положение (влево, вправо, вверх, вниз). 
    Выполнить сдвиг массива и показать на экран полученный результат. Сдвиг циклический.  
        Например, если мы имеем следующий массив 
              1 2 0 4 5 3 
              4 5 3 9 0 1 
              и пользователь выбрал сдвиг на 2 разряда вправо, то мы получим 
              5 3 1 2 0 4 
              0 1 4 5 3 9 
Задачи по функциям:
4. Написать функцию, которая принимает два параметра: основание степени и показатель 
    степени, и вычисляет степень числа на основе полученных данных. 
    
5. Написать функцию, которая получает в качестве параметров 2 целых числа и возвращает сумму 
чисел из диапазона между ними.

6. Число называется совершенным, если сумма всех его делителей равна ему самому. Напишите 
функцию поиска таких чисел во введенном интервале.

6. Folder Task-solution_6 (Задачи по указателям):

1. Написать следующие функции для работы с динамическим массивом: 
    - Функция распределения динамической памяти 
    - Функция инициализации динамического массива 
    - Функция печати динамического массива 
    - Функция удаления динамического массива 
    - Функция добавления элемента в конец массива 
    - Функция вставки элемента по указанному индексу 
    - Функция удаления элемента по указанному индексу

2. Написать функцию, которая получает указатель на динамический массив и его размер. Функция 
    должна удалить из массива все простые числа и вернуть указатель на новый динамический массив.

3. Написать функцию, которая получает указатель на статический массив и его размер. Функция 
    распределяет положительные, отрицательные и нулевые элементы в отдельные динамические массивы.
    
4.  Написать программу, которая содержит функцию Action, принимающую в качестве аргумента, 
    указатели на два массива (А и В) и размеры массивов, а также указатель на функцию. 
    Пользователю отображается меню, в котором он может выбрать max,min,avg. Если выбран max 
        - передается указатель на функцию, которая ищет максимум,  
    если выбран min 
        - передается указатель на функцию, которая ищет минимум, 
    если выбран avg - 
        - передается указатель на функцию, которая ищет среднее. 
    Возвращаемое значение функции Action результат выбора пользователя max, min, avg.  

7. Folder Task-solution_7 (Задачи по строкам):

1. 
- Написать функцию, которая удаляет из строки символ с заданным номером.   
- Написать функцию, которая удаляет из строки все вхождения в нее заданного символа. 
- Написать функцию, которая вставляет в строку в указанную позицию заданный символ. 
- Написать программу, которая заменяет все символы точки "." в строке, введенной пользователем, 
    на символы восклицательного знака "!".   
- Пользователь вводит строку символов и искомый символ, посчитать сколько раз он встречается в строке. 
- Пользователь вводит строку. Определить количество букв, количество цифр и количество 
    остальных символов, присутствующих в строке. 
        Рекомендации: 
            Для проверки, что символ является числом, не обязательно сравнивать его со всеми 10-ю 
            цифрами, достаточно сравнить код символа с диапазоном кодов цифр. Код символа 0 – 48, 1 – 
            49, 2 – 50 …. 9 – 57

2. Дополните свою библиотеку функций реализациями нижеследующих функций 
    - int mystrcmp (const char * str1, const char * str2); - функция сравнивает две строки, и, если строки 
        равны возвращает 0, если первая строка больше второй, то возвращает 1, иначе -1. 
    - int StringToNumber( char * str); - функция конвертирует строку в число и возвращает это число. 
    - char * NumberToString ( int number); - функция конвертирует число в строку и возвращает 
        указатель на эту строку. 
    - char * Uppercase (char * str1); - функция преобразует строку в верхний регистр. 
    - char * Lowercase (char * str1); - функция преобразует строку в нижний регистр. 
    - char * mystrrev (char * str); - функция реверсирует строку и возвращает указатель на новую строку.
    
3. Есть некоторый текст. Используя стандартные строковые функции из библиотеки языка C  
    - Найдите и замените вхождение некоторого слова на заданное пользователем слово 
    - Изменить текст таким образом, чтобы каждое предложение начиналось с большой буквы 
    - Посчитайте сколько раз каждая буква встречается в тексте 
    - Посчитайте сколько раз цифры встречаются в тексте     

8. Folder Task-solution_8 (Задачи многомерным динамическим массивам):

1.
    - Написать функцию, добавляющую столбец двухмерному массиву в указанную позицию.
    - Написать функцию, удаляющую столбец двухмерного массива по указанному номеру.
    - Дана матрица порядка MxN (M строк, N столбцов). Необходимо заполнить ее значениями и 
            написать функцию, осуществляющую циклический сдвиг строк и/или столбцов массива 
            указанное количество раз и в указанную сторону.
    - Транспонирование матрицы – это операция, после которой столбцы прежней матрицы 
            становятся строками, а строки столбцами. Напишите функцию транспонирования матрицы.
            
2.  Создайте динамический массив, хранящий в первой строке имя, а во второй - телефон. 
        Организуйте поиск по имени и по номеру телефона и возможность ввода и изменения данных.

8. Folder Task-solution_9 (Задачи по структурам):

1.     Разработайте программу «Библиотека». Создайте структуру «Книга» (название, автор, 
    издательство, жанр). Создайте массив из 10 книг. Реализуйте для него следующие возможности: 
        - Редактировать книгу 
        - Печать всех книг 
        - Поиск книг по автору 
        - Поиск книги по названию 
        - Сортировка массива по названию книг 
        - Сортировка массива по автору 
        - Сортировка массива по издательству
2.     Реализовать структуру «Машина» (цвет, модель, номер). Номер машины может представлять из
    себя или пятизначный номер или слово до 8 символов.Рекомендации: номер реализовать как объединение.
    Создать экземпляр структуры «Машина» и реализовать для него следующие функции:
        - Заполнение машины
        - Печать машины
    Создать массив из 10 экземпляров структуры «Машина» и реализовать для него следующиефункции:
        - Редактировать машину
        - Печать всех машин
        - Поиск машины по номеру
3.    Разработать структуру «Живая сущность» (скорость передвижения, тип (птица, скот, человек),
    цвет, храктеристиака (для птицы – скорость полета, вещественное число, для скота – парнокопытное, 
    логическая переменная, для человека – уровень IQ, целая переменная).Рекомендации: характеристику
    реализовать как объединение, тип реализовать как перечислимый тип данных.
    Создать экземпляр структуры «Живая сущность» и реализовать для него следующие функции:
        - Ввод информации
    Создать массив из 10 экземпляров структуры «Живая сущность» и реализовать для него следующие функции:
        - Редактировать данные
        - Печать всего списка
        - Поиск по характеристике

About

Решение задач по С++ (кол -во: 45шт ). Обновляемая. ( @WgHost-git )

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages