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
- Найдите и замените вхождение некоторого слова на заданное пользователем слово
- Изменить текст таким образом, чтобы каждое предложение начиналось с большой буквы
- Посчитайте сколько раз каждая буква встречается в тексте
- Посчитайте сколько раз цифры встречаются в тексте
1.
- Написать функцию, добавляющую столбец двухмерному массиву в указанную позицию.
- Написать функцию, удаляющую столбец двухмерного массива по указанному номеру.
- Дана матрица порядка MxN (M строк, N столбцов). Необходимо заполнить ее значениями и
написать функцию, осуществляющую циклический сдвиг строк и/или столбцов массива
указанное количество раз и в указанную сторону.
- Транспонирование матрицы – это операция, после которой столбцы прежней матрицы
становятся строками, а строки столбцами. Напишите функцию транспонирования матрицы.
2. Создайте динамический массив, хранящий в первой строке имя, а во второй - телефон.
Организуйте поиск по имени и по номеру телефона и возможность ввода и изменения данных.
8. Folder Task-solution_9 (Задачи по структурам):
1. Разработайте программу «Библиотека». Создайте структуру «Книга» (название, автор,
издательство, жанр). Создайте массив из 10 книг. Реализуйте для него следующие возможности:
- Редактировать книгу
- Печать всех книг
- Поиск книг по автору
- Поиск книги по названию
- Сортировка массива по названию книг
- Сортировка массива по автору
- Сортировка массива по издательству
2. Реализовать структуру «Машина» (цвет, модель, номер). Номер машины может представлять из
себя или пятизначный номер или слово до 8 символов.Рекомендации: номер реализовать как объединение.
Создать экземпляр структуры «Машина» и реализовать для него следующие функции:
- Заполнение машины
- Печать машины
Создать массив из 10 экземпляров структуры «Машина» и реализовать для него следующиефункции:
- Редактировать машину
- Печать всех машин
- Поиск машины по номеру
3. Разработать структуру «Живая сущность» (скорость передвижения, тип (птица, скот, человек),
цвет, храктеристиака (для птицы – скорость полета, вещественное число, для скота – парнокопытное,
логическая переменная, для человека – уровень IQ, целая переменная).Рекомендации: характеристику
реализовать как объединение, тип реализовать как перечислимый тип данных.
Создать экземпляр структуры «Живая сущность» и реализовать для него следующие функции:
- Ввод информации
Создать массив из 10 экземпляров структуры «Живая сущность» и реализовать для него следующие функции:
- Редактировать данные
- Печать всего списка
- Поиск по характеристике
About
Решение задач по С++ (кол -во: 45шт ). Обновляемая. ( @WgHost-git )