- Folder Task-solution_1 (Задачи по переменным и типам данных);
- Folder Task-solution_2 (Задачи по логическим операторам и операторам ветвлений);
- Folder Task-solution_3 (Задачи по логическим операторам и операторам ветвлений и по циклам);
- Folder Task-solution_4 (Задачи с одномерными массивами);
- Folder Task-solution_5 (Задачи с многомерными массивами и по функциям);
- Folder Task-solution_6 (Задачи по указателям);
- Folder Task-solution_7 (Задачи по строкам);
- Folder Task-solution_8 (Задачи многомерным динамическим массивам);
- Folder Task-solution_9 (Задачи по структурам);
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 дня.
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$, вывести итоги на экран.
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
1. В одномерном массиве, заполненном случайными числами, определить минимальный и максимальный элементы.
2. Пользователь вводит прибыль фирмы за год (12 месяцев). Затем пользователь вводит диапазон
(например, 3 и 6 – поиск между 3-м и 6-м месяцем). Необходимо определить месяц, в котором прибыль
была максимальна и месяц, в котором прибыль была минимальна с учетом выбранного диапазона.
3. В одномерном массиве, состоящем из N вещественных чисел вычислить:
• Сумму отрицательных элементов.
• Произведение элементов, находящихся между min и max элементами.
• Произведение элементов с четными номерами.
• Сумму элементов, находящихся между первым и последним отрицательными элементами.
4. Написать программу, копирующую последовательно элементы одного массива размером 10
элементов в 2 массива размером 5 элементов каждый.
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. Число называется совершенным, если сумма всех его делителей равна ему самому. Напишите
функцию поиска таких чисел во введенном интервале.
1. Написать следующие функции для работы с динамическим массивом:
- Функция распределения динамической памяти
- Функция инициализации динамического массива
- Функция печати динамического массива
- Функция удаления динамического массива
- Функция добавления элемента в конец массива
- Функция вставки элемента по указанному индексу
- Функция удаления элемента по указанному индексу
2. Написать функцию, которая получает указатель на динамический массив и его размер. Функция
должна удалить из массива все простые числа и вернуть указатель на новый динамический массив.
3. Написать функцию, которая получает указатель на статический массив и его размер. Функция
распределяет положительные, отрицательные и нулевые элементы в отдельные динамические массивы.
4. Написать программу, которая содержит функцию Action, принимающую в качестве аргумента,
указатели на два массива (А и В) и размеры массивов, а также указатель на функцию.
Пользователю отображается меню, в котором он может выбрать max,min,avg. Если выбран max
- передается указатель на функцию, которая ищет максимум,
если выбран min
- передается указатель на функцию, которая ищет минимум,
если выбран avg -
- передается указатель на функцию, которая ищет среднее.
Возвращаемое значение функции Action результат выбора пользователя max, min, avg.
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. Создайте динамический массив, хранящий в первой строке имя, а во второй - телефон.
Организуйте поиск по имени и по номеру телефона и возможность ввода и изменения данных.
1. Разработайте программу «Библиотека». Создайте структуру «Книга» (название, автор,
издательство, жанр). Создайте массив из 10 книг. Реализуйте для него следующие возможности:
- Редактировать книгу
- Печать всех книг
- Поиск книг по автору
- Поиск книги по названию
- Сортировка массива по названию книг
- Сортировка массива по автору
- Сортировка массива по издательству
2. Реализовать структуру «Машина» (цвет, модель, номер). Номер машины может представлять из
себя или пятизначный номер или слово до 8 символов.Рекомендации: номер реализовать как объединение.
Создать экземпляр структуры «Машина» и реализовать для него следующие функции:
- Заполнение машины
- Печать машины
Создать массив из 10 экземпляров структуры «Машина» и реализовать для него следующиефункции:
- Редактировать машину
- Печать всех машин
- Поиск машины по номеру
3. Разработать структуру «Живая сущность» (скорость передвижения, тип (птица, скот, человек),
цвет, храктеристиака (для птицы – скорость полета, вещественное число, для скота – парнокопытное,
логическая переменная, для человека – уровень IQ, целая переменная).Рекомендации: характеристику
реализовать как объединение, тип реализовать как перечислимый тип данных.
Создать экземпляр структуры «Живая сущность» и реализовать для него следующие функции:
- Ввод информации
Создать массив из 10 экземпляров структуры «Живая сущность» и реализовать для него следующие функции:
- Редактировать данные
- Печать всего списка
- Поиск по характеристике