Работа по С++ (1021520)
Текст из файла
Варианты заданий выбираются по 2-м последним цифрам зачетной книжки. Например 2 цифры равны 23, а количество вариантов 15, тогда Ваш вариант 23-15=8, если количество вариантов равно 50 Ваш вариант 23, если 2 цифры 00 , то выбирается 1 вариант
Введение
Инкапсуляция - сведение кода и данных воедино в одном объекте, получившим название класс.
Наследование - наличие в языке ООП механизма, позволяющего объектам класса наследовать характеристики более простых и общих типов. Наследование обеспечивает как требуемый уровень общности, так и необходимую специализацию.
Полиморфизм - дословный перевод с греческого "много форм". В С++ полиморфизм реализуется с помощью виртуальных функций, которые позволяют в рамках всей иерархии классов иметь несколько версий одной и той же функции. Решение о том, какая именно версия должна выполняться в данный момент, определяется на этапе выполнения программы и носит название позднего связывания.
Существует несколько реализаций системы, поддерживающих стандарт С++, из которых можно выделить реализации Visual C++ (Microsoft) и Builder C++ (Inprise). Отличия относятся в основном к используемым библиотекам классов и средам разработки. В действительности в С++ программах можно использовать библиотеки языка С, библиотеки классов С++, библиотеки визуальных классов VCL (Builder C++), библиотеку MFC (Visual C++ и Builder C++).
Язык С++ является родоначальником множества объектно-ориентированных языков, таких как Java, C#, PHP и др.
Данное пособие предназначено для начинающих изучение технологии ООП для проектирования систем управления на основе С++.
Работа № 1.
Программирование алгоритмов с использованием динамических массивов
Теоретические сведения
Задание к работе
Варианты заданий
Контрольные вопросы
Цель работы – научиться использовать операции динамического выделения и освобождения памяти на примере работы с одномерными и двумерными массивами, а также косвенное обращение к элементам массива.
Теоретические сведения
Объявление динамического массива
Массивы, создаваемые в динамической памяти, будем называть динамическими (размерность становится известна в процессе выполнения программы). При описании массива после имени в квадратных скобках задается количество его элементов (размерность), например int a[10]. Размерность массива может быть задана только константой или константным выражением.
При описании массив можно инициализировать, то есть присвоить его элементам начальные значения, например:
int а[10] = {1, 1, 2, 2, 5, 100};
Если инициализирующих значений меньше, чем элементов в массиве, остаток массива обнуляется, если больше — лишние значения не используются. Элементы массивов нумеруются с нуля, поэтому максимальный номер элемента всегда на единицу меньше размерности. Номер элемента указывается после его имени в квадратных скобках, например, а[0], а[3].
Если до начала работы программы неизвестно, сколько в массиве элементов, в программе следует использовать динамические массивы. Память под них выделяется с помощью операции new или функции malloc в динамической области памяти во время выполнения программы. Адрес начала массива хранится в переменной, называемой указателем. Например:
int n = 10;
int *mass1 = new int[n];
Во второй строке описан указатель на целую величину, которому присваивается адрес начала непрерывной области динамической памяти, выделенной с помощью операции new. Выделяется столько памяти, сколько необходимо для хранения n величин типа int. Величина n может быть переменной. Инициализировать динамический массив нельзя.
Обращение к элементу динамического массива осуществляется так же, как и к элементу обычного. Если динамический массив в какой-то момент работы программы перестает быть нужным и мы собираемся впоследствии использовать эту память повторно, необходимо освободить ее с помощью операции delete[], например: delete [] a; (размерность массива при этом не указывается).
delete[] mass1;
При необходимости создания многомерных динамических массивов сначала необходимо с помощью операции new выделить память под n указателей (вектор, элемент которого - указатель), при этом все указатели располагаются в памяти последовательно друг за другом. После этого необходимо в цикле каждому указателю присвоить адрес выделенной области памяти размером, равным второй границе массива
mass2=new int*[row]; // mass2 - указатель на массив указателей на одномерные массивы
for(i=0;i<row;i++)
mass2[i]=new int[col]; // каждый элемент массива указывает на одномерный
for (i=0; i<row;i++)
for (j=0;j<col;j++)
Освобождение памяти от двумерного динамического массива:
for(i=0;i<row;i++) //удаление всех одномерных
delete[] mass2[i]; // массивов
delete[] mass2; // удаление массива указателей на одномерные массивы
Задание к работе
Общая постановка. Составить программы - одномерные массивы: задания 1-25, двухмерные массивы: задания 26-50. Массивы создаются в динамической области памяти с использованием операций NEW и DELETE. Ввод исходных данных: реальный размер массивов и их значения. Обращение к элементам массива – через косвенную адресацию.
Варианты заданий
1. Заданы два массива А(5) и В(4). Первым на печать вывести массив, сумма значений которого окажется наименьшей.
2. Заданы два массива А(5) и В(4). Первым на печать вывести массив, произведение значений которого окажется наименьшим.
3. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и прибавить его ко всем элементам массивов. На печать вывести исходные и преобразованные массивы.
4. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и вычесть его из всех элементов массивов. На печать вывести исходные и преобразованные массивы.
5. Заданы два массива А(5) и В(5). В каждом из массивов найти среднее арифметическое всех элементов массивов. На печать вывести исходные массивы и найденные значения.
6. Заданы два массива А(5) и В(4). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его порядковый номер.
7. Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
8. Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
9. Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
10. Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
11. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
12. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
13. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t и первым на печать вывести массив, имеющий наибольшее их количество.
14. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
15. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
16. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
17. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и разделить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
18. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных двум и первым на печать вывести массив, имеющий наибольшее их количество.
19. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных трем и первым на печать вывести массив, имеющий наибольшее их количество.
20. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t и первым на печать вывести массив, имеющий наибольшее их количество.
21. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше 0.
22. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 0.
23. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны двум.
24. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше значения T.
25. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны трем.
26.Дан массив А(n,n).Найти число элементов массива a(i,j)>t и просуммировать все эти элементы.
27.Дан одномерный массив А(n).Сформировать массив B(k),состоящий из a(i) > t. На печать вывести исходный массив, сформированный массив и его размерность.
28.Дан массив A(n,n). Вычислить сумму всех неотрицательных элементов, а также их количество.
29. Дан массив A(n,n). Вычислить сумму всех отрицательных его элементов и их количество.
30. Дан массив A(n,n). Сформировать вектор В(к) из a(i,j) < 0. На печать вывести исходный массив, полученный вектор и его размерность.
31. Дан массив A(n,n). Написать программу его поворота на 900 относительно его центра. На печать вывести исходный и повернутый массивы.
32. Дан массив A(n,n). Написать программу его поворота на 1800 относительно его центра. На печать вывести исходный и повернутый массивы.
33. Дан массив A(n,n). Написать программу его поворота на 2700 относительно его центра. На печать вывести исходный и повернутый массивы.
34. Дан массив A(n,n). Найти сумму всех его элементов, расположенных выше главной диагонали.
35. Дан массив A(n,n). Найти сумму всех его элементов, расположенных ниже главной диагонали.
36. Дан массив A(n,n). Найти сумму всех его элементов, расположенных выше диагонали, противоположной главной.
37. Дан массив A(n,n). Найти сумму всех его элементов, расположенных ниже диагонали, противоположной главной.
38. Задана матрица А(n,n). Найти суммы и произведения элементов, стоящих на главной и противоположной (побочной) диагоналях.
39. Задана матрица А(n,n), состоящая из нулей и единиц. Подсчитать количество нулей и единиц в этой матрице.
40. Задана матрица А(n,n). Переставить местами к-ю и i-ю строки, а эатем l-й и j-й столбцы.
41. Задан массив действительных чисел А(n). Необходимо каждый элемент массива разделить на среднее арифметическое этих элементов. На печать вывести исх. и преобразов. массивы.
42. Задан массив А(n). Получить массив В(к), состоящий из элементов массива А, которые делятся на 3. Подсчитать количество элементов массива В.
43. Задана матрица А(n,n). Получить матрицу В=А^2.Элемент b[I][j] определяется как сумма от поэлементного произведения I-й строки на j-й столбец матрицы А.
44. Вычислить первую норму матрицы А(n,n) , определяемую как , т.е. максимальная сумма из сумм элементов по столбцам
45. Вычислить вторую норму матрицы А(n,n), определяемую как максимальная сумма из сумм элементов по строкам .
46. Задан двухмерный массив целых чисел A размером N на M. Найти сумму элементов, расположенных на главной диагонали.
47. Задан двухмерный массив целых чисел A размером N на M. Найти произведение элементов, расположенных на главной диагонали.
48. Задан двухмерный массив целых чисел A размером N на M. Найти максимальный элемент и поменять его с элементом A[1,1].
49. Задан двухмерный массив целых чисел A размером N на M. Найти минимальный элемент и поменять его с элементом A[1,1].
50. Задан двухмерный массив целых чисел A размером N на M. Найти максимальный элемент и поменять его с последним.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.