Skip to content

redevicelab/base-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

base-programming

Курс С# Предмент Базовое программирование на C++ Тут сообран весь код по домашним заданиям.

1. Работа с консолью. Ввод-вывод данных.

// 1.Выведите на экран, Вашу фамилию, имя и отчество, каждое слово с новой строки
// 2.Выведите на экран следующую надпись: «Привет программистам» (двойные кавычки так же вывести на печать).
// 3.Вывести на экран следующий текст:
// ************************************************
// *         Это моя классная работа              *
// ************************************************
// 4.Вывести на экран следующий текст:  С:\project\test.doc

2. Переменные и типы данных

// 1.Написать приложение. Пользователь вводит с клавиатуры сумму в тенге и курс доллара.
// Приложение должно посчитать, сколько ЦЕЛЫХ долларов сможет купить пользователь на заданную сумму
// и сколько тенге он получит в качестве сдачи (центы не выдаются!). 
// 2.Пользователь вводит с клавиатуры размер одного фильма в гигабайтах и скорость интернет-соединения в Мегабитах в секунду. 
// Посчитать, за сколько часов, минут и секунд скачается фильм. 
// ПОМНИТЕ. В одном гигабайте 1020 мегабайт, одном мегабайте 8 мегабит. 
// Не забывайте про использование КОНСТАНТ, магические числа ЗАПРЕЩЕНЫ и будут караться снижением баллов!

3. Операции и Функции

// 1.Используя функции, написать программу с нижеследующей функциональностью. 
// Пользователь вводит с клавиатуры диаметр окружности. Посчитать площадь и периметр окружности. 
// Вывести на экран. Для расчёта периметра и площади окружности использовать отдельные функции.
// 2.Используя функции и операцию целочисленного деления, написать программу с нижеследующей функциональностью. 
// Пользователь вводит с клавиатуры время в секундах, прошедшее с начала дня. 
// Вывести на экран текущее время в часах, минутах и секундах. Посчитать, сколько часов, минут и секунд осталось до полуночи.

4. Операторы и арифметические операции

// 1.Используя функции, написать программу с нижеследующей функциональностью. 
// Пользователь вводит цены 10-ти плиток шоколада, 5 литров сока. 
// Программа должна вычислять стоимость: 
//     a.	одной покупки из 3-х плиток шоколада и 21,5 литра сока; 
//     b.	4-х покупок, каждая из 6-ти плиток шоколада и 2-х литров соков.
// 2.Даны три переменные a, b и c.
// Изменить значения этих переменных так, чтобы в a хранилось значение a+b,
// в b хранилась разность старых значений c−a, а в c хранилась сумма старых значений a+b+c.
// Например, a=0, b=2, c=5, тогда новые значения a=2, b=5 и c=7.

5. Массивы и условия

// Написать программу, которая принимает три числа в массив и затем выводит на экран эти первое и последнее введённые числа;
// Написать программу, которая принимает одно число и определяет является ли это число положительным или отрицательным;
// Написать программу, которая принимает 4 числа в массив и затем сравнивает, что больше, 
// сумма первых двух чисел, или сумма двух последних чисел. 
// Обе суммы, обязательно, выводить на экран перед сравнением;
// Напишите программу, которая принимает с клавиатуры число, а затем проверяет является ли введённое число кратным числу 3.
// Написать программу, которая принимает, от пользователя, 
// в массив два числа, а затем меняет местами в массиве эти два числа, 
// т.е. число лежащее в нулевой ячейке переносится в первую ячейку, 
// а число лежащее в первой ячейке переносится в нулевую.
// Написать программу для отбора кандидатов в корпус морской пехоты. Допускаются только совершеннолетние граждане 
// (т.е. старше 18-ти лет), имеющие мужской пол, ростом выше 180 см, с индексом массы тела (ИМТ) в пределах от 20 до 30. 
// ИМТ рассчитывается по формуле:
// I=m/h^2
// m- масса тела в кг
// h- рост в метрах.
// При создании программы, по максимуму использовать функции.

6. rand, логические операции

// Написать приложение, игру, «Лотерея: 2 из 3-х». 
// Программа принимает от пользователя три числа в диапазоне от 0 до 2 (включительно). 
// Затем программа сравнивает каждое введённое, пользователем, число со случайно сгенерированным от 0 до 2 (включительно) числом. 
// Для каждого сравнения генерируется новое случайное число. 
// Если два из введённых пользователем числа совпадают со случайным – пользователь выиграл.
// Написать программу, заполняющую массив из 4-х элементов, случайными целыми значениями от -10 до +10. 
// Вывести содержимое массива на экран. Подсчитать сумму всех чисел в массиве и среднее арифметическое, вывести их на экран. 
// Затем сравнить каждое число массива со средним арифметическим и если оно меньше среднего арифметического, 
// заменить это число на ноль.

7. Цикл FOR

/*1.	Программа, случайным образом, генерирует размер прибыли фирмы за месяц, в диапазоне от 10000 до 20000. Заполнить массив прибыли за 1 год. Вывести информацию о помесячной прибыли на экран.
2.	Дополнение к заданию 1.  Необходимо определить месяц, в котором прибыль была максимальна и месяц, в котором прибыль была минимальна.
3.	Дополнение к заданию 2. Программа позволяет пользователю ввести интересующий его период, статистика с какого по какой месяц его интересует, далее программа выводит информацию за интересующий пользователя период*/.

8. Цикл FOR. Передача массива в функцию через параметры.

// Написать программу, которая будет проверять знание таблицы умножения. Программа должна иметь следующую функциональность:
// Для теста, программа последовательно генерирует задание на умножение (случайные числа от 2 до 9) и ждёт ответа пользователя. 
// После ввода пользователем варианта ответа, программа не выводит результат сразу (верно, или неверно), 
// а задает следующее задание, всего 5 заданий. 
// После ввода ответа на 5-е задание, программа выводит пользователю таблицу, содержащую:
//     a.	заданный пример, 
//     b.	правильный ответ, 
//     c.	ответ пользователя, 
// Ниже таблицы даётся статистика теста: сколько было правильных и сколько не правильных ответов и оценку по 5-ти бальной шкале;
// Распределить всю программу по функциям, учитывайте правило: одна функция – одно дело.

9. Циклы. While и Do... While.

// Пользователь вводит число, сохранить это число в переменной. 
// Определить количество цифр в числе, введённом пользователем, 
// посчитать сумму и среднее арифметическое цифр, в ведённом пользователем числе. 
// Определить количество нулей в этом числе. Оформить красивый интерфейс. 
// (маленькая подсказка: для определения количества цифр в числе, необходимо использовать целочисленное деление, в цикле).

10. Вложенные циклы.

// Написать имитацию кассового аппарата для магазина, торгующего новогодними товарами. Кассир должен:
//     a.	 выбрать товар из списка, 
//     b.	ввести его количество, 
//     c.	затем выбрать следующий товар. 
// По завершению ввода программа должна вывести на экран общую сумму покупки и вычислить сумму НДС равный 12%.
// Предусмотреть наличие скидки. 
// В списке товаров должно быть не меньше 4х товаров, должна отображаться их цена. 
// Предусмотреть обработку неправильно вводимых данных (номер вне списка товаров).
// Реализовать возможность обслуживания нескольких клиентов подряд, 
// т.е. после вывода итоговых данных одного покупателя предложить повторить операцию. 
// Программа должна подсчитывать общую выручку магазина, т.е. складывать сумму покупок всех покупателей.
// По завершении смены, программа должна выдать отчёт за смену, включающий, общую сумму всех покупок за смену, сумму НДС.

11. Многомерные массивы.

// В двухмерном массиве целых чисел, заполненном случайным образом целыми числами в диапазоне от – 900 до +900,
// посчитать сумму элементов:
//     1) в каждой строке
//     2) в каждом столбце
//     3) всех элементов по всем строкам и всем столбцам. 
// Оформить вывод информации следующим образом:
// 3   5   6   7   |   21
// 12  1   1   1   |   15
// 0   7   12  1   |   20
// ------------------------
// 15  13  19  9   |   56 
// Напишите программу, которая создает двухмерный массив и заполняет его по следующему принципу: 
// пользователь вводит число (например, 3) первый элемент массива принимает значение этого числа,
// последующий элемент массива принимает значение этого числа умноженного на 2 (т.е. 6 для нашего примера), 
// третий элемент массива предыдущий элемент умноженный на 2 (т.е. 6*2=12 для нашего примера). 
// Созданный массив вывести на экран.
// Напишите программу, в которой объявляется массив размером 5х10 и массив размером 5х5. 
// Первый массив заполняется случайными числами, в диапазоне от 0 до 50. 
// Второй массив заполняется по следующему принципу: 
// первый элемент второго массива равен сумме первого и второго элемента первого массива, 
// второй элемент второго массива равен сумму третьего и четвертого элемента первого массива и тд.
// С новым годом! Создать программу, которая выведет на экран треугольник из звёздочек, следующего вида «Ёлочки»:
//         *
//        ***
//       *****
//      *******
//     *********
// Подсчитать количество целых чисел в диапазоне от 100 до 999 у которых есть две одинаковые цифры;
// Подсчитать количество целых чисел в диапазоне от 100 до 999 у которых все цифры разные
// Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все цифры 3 и 6 и вывести обратно на экран; 
// Пользователь вводит любое целое число А. 
// Необходимо вывести все целые числа В, для которых А делиться без остатка на В*В и не делиться без остатка на В*В*В
// Пользователь вводит целое число А. Программа должна определить, что куб суммы цифр этого числа равен А*А;
// Пользователь вводит целое число. Необходимо вывести все целые числа, на которое заданное число делиться без остатка;
// Пользователь вводит два целых числа. Необходимо вывести все целые числа, на которые оба введенных числа делятся без остатка.

12. Switch, enum

//Составить программу, используя оператор switch, которая выводит на экран такое меню
//"Запуск программ: \n"
//	"1 - Блокнот \n"
//	"2 - Офис Ворд \n"
//	"3 - Браузер Мазила \n"
//	"Вернуться в начало - 9 \n"
//	"Выход - 0 \n"
//Пользователь выбирает соотв.пункт и происходит запуск приложения.
//Подсказка
//включите а программу заголовочный файл
//#include <Windows.h>
//и используйте следующую команду
//WinExec("C:\\Program Files (x86)\\Microsoft Office\\Office12\\WINWORD.EXE", 1);
//где в кавычках указан путь к приложению.

13. Сортировка массивов. Бинарный поиск.

// 1.	Необходимо создать массив вещественных чисел, размером  10 элементов, затем
// a.	заполнить массив случайными значениями в диапазоне от -10 до +20, с одним знаком после запятой;
// b.	вывести на экран значения элементов массива;
// c.	отсортировать массив с использованием метода сортировки выбором;
// d.	вывести на экран отсортированный массив;
// e.	получить от пользователя число в диапазоне от -10 до +20, с одним знаком после запятой4;
// f.	найти в массиве индекс введённого пользователем числа, если оно есть в массиве, если нет, сообщить об этом пользователю.
// Поиск осуществлять методом бинарного поиска.

14. Указатели. Часть 1.

/* 
Написать программу определяющую наибольшее из трёх чисел с помощью указателей.
Задание примитивное, поэтому сделайте красиво и аккуратно!
 */

15. Указатели. Часть 2.

/* 
Используя указатель на массив целых чисел, изменить порядок следования элементов массива на противоположный.
Изменить сам массив, а не просто вывести значения массива в обратном порядке.
Для продвижения по массиву, использовать в программе только арифметику указателей, а также оператор разыменования.
 */

** 16. Динамическое выделение памяти.**

// Даны два массива : а[m] и b[n](m и n, т.е.размерности массива генерируются случайно,
// в диапазоне от 10 до 30).Оба массива заполняются случайными, целыми числами в диапазоне
// от 5 до 20. Необходимо создать третий массив, минимально необходимого размера, в котором
// нужно собрать, без повторений, общие значения(общие – это такие значения, которые есть
// в обоих массивах) элементов двух массивов.

17. Строки.

// 1.	Написать программу, которая примет от пользователя строку, длиною не более 100 символов, 
//затем, примет от пользователя один символ. Программа должна предложить меню:
// a.	Принять строку от пользователя;
// b.	Принять символ от пользователя;
// c.	Вывести на экран принятую от пользователя строку;
// d.	Вывести на экран принятый от пользователя символ;
// e.	Вывести на экран индекс первого вхождения введённого символа в строку 
//(если введённый символ имеется в строке, если отсутствует – сообщить об этом);
// f.	Индекс последнего вхождения символа в строку (если введённый символ 
//имеется в строке, если отсутствует – сообщить об этом);;
// g.	Показать длину введённой строки;
// h.	Завершить программу;
// Программа должна работать в бесконечном цикле, до тех, по, пока пользователь не выберет пункт «Завершить программу»
// Внимание! При работе со строками в цикле, Вы можете столкнуться с тем, 
//что ввод данных «пролетает», для решения этой проблемы, используйте дополнительные функции cin.clear() и cin.ignore();

18. Структуры

/*Реализовать структуру «Автомобиль» (длина, клиренс (высота посадки), 
объем двигателя, мощность двигателя, диаметр колес, цвет, тип коробки передач). 
Для типа тип коробки передач использовать ENUM.  Создайте функции для задания значений, 
отображения значений, поиска значений.*/

19. Перегрузка функций.

/*
1.	Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) и квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений.
ВНИМАНИЕ! Важно, в программе необходимо правильно и уместно применить перегрузку функций.

2.	Подготовка к экзамену:
Создать структуру описывающую квартиру со следующими полями: город, район, общая площадь, полезная площадь, площадь кухни, санузел (раздельный/совмещённый), этаж, этажность дома, отделка (без ремонта, обычная, люкс), цена. Создать и заполнить массив квартир.
1.	Программа должна реализовать меню, позволяющее пользователю:
2.	Добавлять новые квартиры;
3.	Просматривать уже внесённые квартиры;
4.	Поиск квартиры по общей площади (от … до…);
5.	Поиск квартиры по заданному городу;
6.	Сортировка списка квартир по цене;
7.	Выход.*/

20. Многомерные динамические массивы.

// Создать программу, принимающую от пользователя два значения, определяющих количество строк и столбцов двумерного массива.
// Создать динамический двумерный массив вещественных чисел заданных размеров.
// Заполнить созданный массив числами от -10 до +20, с одним знаком после запятой.
// Вывести на экран значения элементов массива.

// Создать программу, принимающую от пользователя три значения, определяющих количество страниц,
// строк и столбцов трёхмерного массива. Создать динамический трёхмерный массив вещественных чисел заданных размеров.
// Заполнить созданный массив числами от -5 до +6, с двумя знаками после запятой. Вывести на экран значения элементов массива.

21. Введение в Объектно Ориентированное Программирование.

/*
1.	Напишите программу, использующую класс «время». Класс должен иметь методы установки часов,
 минут, секунд, по отдельности, а так же, функции добавления секунд, минут. 
 Например, если было установлено время 01:10:15 при вызове метода добавления секунд, добавляется 100 секунд, 
 метод автоматически изменяет время на: 01:11:55 и т.п. 
 Так же, класс должен содержать метод вывода на экран текущего времени в 24-х часовом формате ЧЧ:ММ:СС */

22. Введение в ООП. Конструкторы и деструкторы.

/*
Студент группа факультет классы
*/

23. Указатель this. Конструктор копирования

/*Создать класс «Лекарственный препарат», класс должен содержать следующие поля:
1.	«Наименование» – динамический	 массив символов (размер массива строго соответствует количеству символов в названии);
2.	«Длинна наименования»
Класс должен иметь следующие методы, конструкторы и деструкторы:
1.	Метод установки наименования (сеттер). Этот метод, принимает, в качестве параметра, массив символов – это название препарата. Затем, метод определяет количество символов в названии (переданном через параметр метода), динамически создаёт массив нужного размера и присваивает его полю «Наименование» объекта. Так же, присваивается значение полю «Длинна наименования» объекта.
2.	Метод изменения наименования –  принимает, в качестве параметра, массив символов – это новое название препарата, затем удаляет старый массив с наименованием и динамически создаёт новый массив нужного размера и присваивает его полю «Наименование» объекта.
3.	Предусмотреть конструктор копирования;
4.	Предусмотреть деструктор.
Реализовать программу использующую класс «Лекарственный препарат», программа должна позволять создавать список препаратов без ограничения длинны названия и количества препаратов. В программе должно быть меню, позволяющее добавлять препараты, удалять препараты, а также, просматривать список препаратов.
*/

24. Указатель this. Конструктор копирования

/*Создать класс «Предмет», класс должен содержать следующие поля:
1.	«Наименование» – динамический	 массив символов (размер массива строго соответствует количеству символов в названии);
2.	«ФИО преподавателя» – динамический	 массив символов (размер массива строго соответствует количеству символов в названии);
Класс должен иметь следующие методы, конструкторы и деструкторы:
1.	Метод установки наименования (сеттер). Этот метод, принимает, в качестве параметра, массив символов – это название предмета. Затем, метод определяет количество символов в названии (переданном через параметр метода), динамически создаёт массив нужного размера и присваивает его полю «Наименование» предмета. 
2.	Метод изменения наименования –  принимает, в качестве параметра, массив символов – это новое название предмета, затем удаляет старый массив с наименованием и динамически создаёт новый массив нужного размера и присваивает его полю «Наименование» объекта.
3.	Предусмотреть конструктор копирования;
4.	Предусмотреть деструктор.
*/

25. This. Перегрузка операторов.

/*Создайте класс Date, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операции: 
1.	разности двух дат (результат в виде количества дней между датами, например, операция: 4.01.2019 – 15.01.2019 должна дать результат 11 дней.), 
2.	увеличения даты на определенное количество дней, например, операция: 4.01.2019 + 3, должна дать ответ 7.01.2019.
Учитывайте, что в месяце может быть 30 или 31 день. Так и быть високосность года можете не учитывать, хотя если учтёте будет большой респект и хорошая карма.
*/

26. Пространство имён. Перегрузка инкремента и [ ]

/*Создайте класс динамического массива, в котором реализована проверка выхода за границы массива.  
Перегрузите операторы: [ ], =, +, -,++ (добавление Элемента  (пустого) в конец массива), -- (удаление элемента (пустого)  из конца массива).
*/

Практическое задание

//1.	Используя цикл, написать программу, которая выведет на экран 10 символов «звёздочка» - *, в одну строку;
/*2.	Написать программу, которая заполняет массив из 20 элементов случайными, 
целыми числами в диапазоне от -3 до 5. 
Вывести на экран, в одну строку, через запятую, значения всех элементов массива.*/
/*3.	Дополнение к  задаче 2. Вывести на экран, в один ряд, через запятую, 
все отрицательные значения массива. 
Во второй ряд, вывести на экран, через запятую, 
все положительные элементы массива. Программа должна иметь следующий вид. */
/* 4.	Дополнение к задаче 2. Посчитать среднее арифметическое значение всех элементов,
 имеющих чётные индексы и, отдельно, среднее арифметическое значение всех элементов имеющих не чётные индексы.
Сравнить, какой из этих средних арифметических больше.*/
/*5.	Дополнение к задаче 2. Принять от пользователя число, найти в массиве и вывести на экран,
индексы элементов, имеющих значение равное введённому пользователем числу; */
/* 6.	Дополнение к задаче 5. Посчитать, значение скольких элементов массива равно введённому пользователем значению.*/
/* 7.	Дополнение к задаче 2. Найти наибольшее значение массива*/
/* 8.	Дополнение к задаче 2. Найти наименьшее значение массива;*/
/* 9.	Дополнение к задаче 5. Проверить содержимое массива, если буд��т найдено значение элемента массива равное 
0 – вывести на экран символ «звёздочка», если найдено значение равное 
1 – вывести на экран символ «тире», 
во всех остальных случаях выводить на экран символ «пробел».*/
/* 10.	 Программа, случайным образом, генерирует размер прибыли фирмы за месяц, в диапазоне от 10000 до 20000. 
Заполнить массив прибыли за 1 год. Вывести информацию о помесячной прибыли на экран.
11.	Дополнение к заданию 10.  Необходимо определить месяц, в котором прибыль была максимальна и месяц, 
в котором прибыль была минимальна.
12.	Дополнение к заданию 11. Программа позволяет пользователю ввести интересующий его период, 
статистика с какого по какой месяц его интересует, далее программа выводит информацию за интересующий пользователя период.
*/

About

itstep homework base programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages