
- •Лабораторная работа 1
- •Порядок проведения работы
- •Работа с файлами.
- •- В меню File выбрать опцию Save As, ввести имя файла для сохранения. (использовать расширение .Cpp)
- •- Выделить в меню Run опцию Run.
- •Работа с help.
- •2 Содержание отчета
- •3 Индивидуальные задания
- •4 Вопросы к лабораторной работе
- •Breakpoints - показать
- •Лабораторная работа 2 структура программы на языке си программа ввода-вывода
- •1 Порядок проведения работы
- •2 Содержание отчета
- •3. Индивидуальные задания
- •4. Вопросы к лабораторной работе
- •Лабораторная работа 3
- •1. Порядок выполнения работы
- •2. Содержание отчета
- •3. Индивидуальное задание
- •4. Вопросы к лабораторной работе
- •Лабораторная работа 4 использование математических функций из math.H для вычислений
- •1. Порядок выполнения работы
- •2. Содержание отчета
- •3. Индивидуальное задание
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 5 организация структуры программы. Операторы управления вычислительным процессом
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 6 классы памяти
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 7 указатели и массивы
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 8 структуры
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание заданий
- •4. Содержание отчета
- •5. Вопросы по лабораторной работе
- •Лабораторная работа 9 работа с файлами
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 10 динамические структуры данных
- •1. Индивидуальные задания
- •2. Содержание отчета
- •3. Вопросы по лабораторной работе
- •Приложение
- •Однонаправленные связные списки
- •Двунаправленные связные списки
- •Список рекомендуемой литературы
- •Содержание
2. Индивидуальные задания
1. Определить максимальный элемент в квадратной матрице
размером 5х5 выше главной диагонали.
2. Поменять местами блоки в матрице размером 7х7 следующим
образом: верхний левый квадрант с правым нижним квадрантом; верхний
правый квадрант с левым нижним квадрантом.
3. Получить матрицу порядка 7, элементы которой расположены по
спирали от 1 до 49.
4. Дана матрица размером mxn. Найти максимальный элемент матрицы
и преобразовать по следующему правилу: строку к с максимальным элементом
сделать столбцом к, а столбец к строкой к.
5.Составить свою функцию сравнения двух строк символов, по-
лучающую в качестве параметров указатели на строки и возвращаю-
щую 1, если строки одинаковы, или 0, если строки различны.
6.Составить свою функцию выделения подстроки, получающую
указатель на строку, номера символов начала и конца подстроки.
7.Составить свою функцию для выделения n правых символов
из подстроки, получающую указатель на строку и число выделяемых
символов.
8.Составить свою функцию для выделения n левых символов из
подстроки, получающую указатель на строку и число выделяемых сим-
волов.
9.Составить свою функцию для поиска подстроки в строке, по-
лучающую указатель на строку и указатель на подстроку. Возвра-
щается указатель на начало найденной подстроки или 0, если под-
строка не найдена.
10.Составить свою функцию для копирования строки. Передает-
ся указатель на строку-источник и указатель на строку-результат.
11.Мистер Браун, человек со странностями, всегда читает
справо налево.Составить функцию, облегчающую диалог с мистером
Брауном, для которой передается указатель на введенную строку и
которая возвращает указатель на строку, обратную к введенной.
Например: ввод "Галина", вывод "анилаГ".
12. Задан массив вещественных чисел размерностью 100. Осу-
ществить сортировку массива по возрастанию по любому известному
алгоритму.
13. Задана матрица размерностью 5х7. Осуществить поиск наи-
больших элементов в каждом столбце матрицы и записать их в одно-
мерный массив.
3. Содержание отчета
1. Результаты работы программы 1 и двух ее модификаций.
2. Измененные тексты программы 2 в соответствии с п.1.2 и
п.1.3. Результаты pаботы трех версий пpогpаммы. Нарисовать побайтно взаиморасположение объектов во всех трех версиях.
3. Нарисовать побайтно взаиморасположение объектов в двух
версиях программы 3.
4. Дополнения к тексту программы 4 и полученные суммы.
5. Индивидуальное задание.
4. Вопросы по лабораторной работе
1. Описать работу программы 1.
2. Описать работу программы 2.
3. Описать работу программы 3.
4. Описать работу программы 4.
5. Массивы. (Приложение 1).
6. Указатели. (Приложение 2).
ПРИЛОЖЕHИЕ 1
1. Массив - последовательно расположенные в памяти элемен-
ты одного типа, обращение к которым осуществляется по индексу.
Многомерные массивы расположены в памяти так, что последний ин-
декс изменяется быстрее всего.
Скалярные переменные можно инициализировать в описании ти-
па (например, int a=1). Массивы в классах памяти extern и static
(auto и register) инициализировать можно (НЕЛЬЗЯ).
Имя массива определяет его первый элемент, т.е. если ma[]
массив, то ma==&ma[0] и обе части равенства определяют АДРЕС пер-
вого элемента массива. Оба обозначения являются КОНСТАНТАМИ типа
указатель, поскольку они не изменяются на протяжении всей прог-
раммы. Однако их можно присваивать (как значения) ПЕРЕМЕННОЙ ти-
па указатель и изменять значение этой переменной.
Операторы описания int pa[]; и int *pa; идентичны по дей-
ствию: оба объявляют pa как указатель.
Текстовые строки являются одномерными массивами типа char и
заканчиваются символом '\0'.
ПРИЛОЖЕНИЕ 2
1. Указатель - переменная, хранящая адрес другой перемен-
ной.
int *pi; // объявляет указатель на целое и тогда pi - АДРЕС
объекта типа int (указатель), а
*pi - СОДЕРЖИМОЕ ячеки памяти, адрес которой хранится
в pi (сам объект типа int).
Если pi объявлен как указатель на массив типа
int A[]={10,20,30}, то
pi указывает на A[0] *pi равно 10;
pi+1 указывает на A[1] *(pi+1) равно 20;
pi+2 указывает на A[2] *(pi+2) равно 30.
Результатом унарной операции &<идентификатор> (взятие
адреса) является адрес объекта <идентификатор> в памяти.
2. Программа 3 демонстрирует 5 основных операций, которые
можно выполнять над переменными типа указатель:
строка А1 - присваивание значения ;
строка А2 - определение значения *ptr;
строка А3 - получение адреса указателя &ptr;
строка А4 - увеличение показателя ;
строка А5 - разность (двух указателей) (чтобы определить,
на каком расстоянии друг от друга находятся элементы).