- •Введение
- •Требования к выполнению и оформлению лабораторных работ
- •Все проекты должны быть сохранены!!!
- •Лабораторная работа 1
- •Теоретическая часть
- •Задание к лабораторной работе
- •Типы данных языка с
- •Вещественные типы данных языка с
- •Спецификаторы формата функции printf()
- •Спецификаторы формата функции scanf()
- •Продолжение таблицы 2.6. – Спецификаторы формата функции scanf()
- •Практическая часть.
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 3
- •Теоретическая часть
- •3.1. Оператор if
- •3.2. Конструкция if–else
- •3.3. Конструкция if–else if–else if–...–else
- •3.4. Оператор switch
- •3.5. Условный оператор
- •3.6. Оператор break (от английского – прерывать)
- •3.7. Оператор continue (от английского – продолжать)
- •3.8. Оператор goto
- •Операторы отношения языка программирования с
- •Практическая часть.
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 4
- •Теоретическая часть
- •4.1. Оператор while
- •4.2. Оператор for
- •4.3. Оператор do–while
- •Практическая часть
- •Блок-схема к заданию
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 5
- •Теоретическая часть
- •5.1. Одномерные массивы
- •5.2. Инициализация массива
- •Практическая часть
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 6 Понятие многомерного массива. Обработка элементов матриц. Теоретическая часть
- •6.1. Двухмерные массивы, матрицы
- •6.2. Многомерные массивы
- •6.3. Инициализация массивов
- •Практическая часть.
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 7 Построение графика функции Теоретическая часть
- •Практическая часть
- •Индивидуальные задания
- •Контрольные вопросы
- •Лабораторная работа 8
- •Теоретическая часть
- •Функции файловой системы языка с
- •Допустимые значения режима функции fopen()
- •Практическая часть
- •Индивидуальные задания
- •Контрольные вопросы
- •Самостоятельная работа Обработка элементов диагоналей квадратных матриц Теоретическая часть
- •1. Сортировка выбором
- •2. Сортировка методом пузырька
- •Практическая часть.
- •Блок-схема к программе
- •Индивидуальные задания
- •Контрольные вопросы
Самостоятельная работа Обработка элементов диагоналей квадратных матриц Теоретическая часть
Для доступа к элементу массива следует указать имя массива с последующим числом (индексом), заключенном в квадратные скобки.
Элементы массива можно использовать в любом выражении точно также как и значение константы или переменной.
Например:
a[0][0]=11.2;
a[1][2]=10.2;
a[3][1]=22.1;
a[4][2]=1.1; Y = 2*a[0][1] – a[1][0];
Селективная обработка массива – это выделение из массивов элементов, удовлетворяющих условию, и обработка выделенных фрагментов. Часто из выделенных фрагментов формируют новый (рабочий) массив, который далее и обрабатывают.
Наиболее часто встречаются такие условия обработки элементов массива:
– четные A[i] %2 ==0
– нечетные A[i] %2 !=0
– кратные k A[i] % k ==0
– не кратные k A[i] % k !=0
– стоящие на четных местах i % 2==0
– стоящие на нечетных местах i % 2!=0
– положительные A[i] >0
– отрицательные A[i] <0
– в интервале (x1,x2) (A[i]>x1) && (A[i]<x2)
При обработке двумерных массивов возникает необходимость вычисления суммы, произведения, количества, среднего арифметического, максимума, минимума элементов каждой строки или каждого столбца, заданной строки или заданного столбца. В таком случае, при обработке массивов нужна организация вложенных циклов.
Цикл, который содержит другой цикл называют внешним циклом, а цикл, содержащийся в теле другого цикла, называют внутренним. Все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла.
Поэтому, если за счетчик внешнего цикла взять индекс строки, а за счетчик внутреннего – номер столбца, то обработка двухмерного массива будет идти по строкам, а если наоборот, то по столбцам.
При обработке двумерных массивов часто приходится выделять элементы:
– k – й строки A[i][j], где i==k, j=1, …, М
– k – го столбца A[i][j], где i=1, …, N; j==k
а для квадратных матриц (M=N) также:
– главной диагонали A[i][i], где i=1, …, N
– побочной диагонали A[i][N+1-i], где i=1, …, N
– наддиагональные A[i][j], где i>j
– поддиагональные A[i][j], где i<j
Существует множество алгоритмов для сортировки массивов. Ниже рассмотрены два из них: сортировка выбором и методом пузырька.
1. Сортировка выбором
Суть этого метода очень проста и может быть описана так:
1. В последовательности из n элементов выбирается наименьший (наибольший) элемент;
2. Меняется местом с первым;
3. Далее процесс повторяется с оставшимися n-1 элементами, затем с оставшимися n-2 элементами и т.д., до тех пор пока не останется один самый большой (маленький) элемент.
Для реализации этого алгоритма необходимо использовать два вложенных цикла с параметром For. Внешний цикл (по i) предназначен для последовательного фиксирования элементов массива, внутренний (по j) - осуществляет поиск минимального (максимального) и его позиции в неотсортированной части массива. После выхода из внутреннего цикла следует перестановка элементов. Последний элемент во внешнем цикле не рассматривается: он сам встанет на свое место.