- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ
- •1. ЯЗЫК ПРОГРАММИРОВАНИЯ C++
- •1.1. Нововведения C++ в сравнении с C
- •1.3. Технический обзор
- •2. ЛАБОРАТОРНАЯ РАБОТА № 1 «Знакомство с языком C++. Основные функции»
- •2.1. Методические указания
- •2.1.1. Алфавит C++
- •2.1.2. Этапы создания исполняемой программы
- •2.1.3. Типы данных C++
- •2.1.3.1. Концепция типа данных
- •2.1.3.2. Простые типы данных
- •2.1.4. Структура программы на языке C++
- •2.1.5. Директивы препроцессора
- •2.1.5.1. Директива #include
- •2.1.5.2. Директива #define
- •2.1.6. Предварительные замечания о функциях ввода/вывода
- •2.1.7. Переменные и выражения
- •2.1.7.1. Переменные
- •2.1.7.2. Операции
- •2.1.7.3. Выражения
- •2.1.8. Основные функции
- •2.1.8.1. Математические функции
- •2.1.8.2. Функции обработки сигналов
- •2.1.8.3. Функции ввода-вывода в стиле C
- •2.1.8.4. Функция работы с датой и временем
- •2.1.8.5. Функции локализации
- •2.1.8.6. Функции классификации и преобразования символов
- •2.1.8.7. Функции управления программой
- •2.1.8.8. Различные функции в стиле C
- •2.2. Примеры программ для выполнения лабораторной работы № 1
- •2.3. Вопросы для самоконтроля
- •3. ЛАБОРАТОРНАЯ РАБОТА № 2 «Программирование с использованием основных операторов языка C++. Работа с массивами»
- •3.1. Методические указания
- •3.1.1. Основные операторы языка С++
- •3.1.1.1. Базовые конструкции структурного программирования
- •3.1.1.2. Составные операторы
- •3.1.1.3. Операторы выбора
- •3.1.1.4. Операторы циклов
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Цикл с параметром (for)
- •3.1.1.5. Операторы передачи управления
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •3.1.2. Одномерные массивы
- •3.1.2.1. Описание массива в C/C++
- •3.1.2.2. Обработка одномерных массивов
- •3.1.2.3. Перебор массива по одному элементу
- •3.1.2.4. Датчика случайных чисел для формирования массива.
- •3.1.3. Многомерные массивы
- •3.2. Примеры программ для лабораторной работы № 2
- •3.3. Вопросы для самоконтроля
- •3.4. Варианты заданий к лабораторной работе № 2
- •4. КУРСОВАЯ РАБОТА «Создание собственной функции»
- •4.1. Методические указания
- •4.1.1. Объявление и определение функций
- •Глобальные переменные
- •Возвращаемое значение
- •4.1.2. Параметры функции
- •4.2. Вопросы для самоконтроля
- •4.3. Варианты заданий курсовой работы
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Список литературы
- •Направление – _____________________________________________
- •Кафедра –
- •Выполнил студент гр. _______ __________ _______ ______________
- •Направление – ________________________________________________
- •Выполнил студент гр. _______ __________ _______ __________
void main()
{
int a[100]; int n;
cout<<"\nEnter the size of array:"; cin>>n;
for(int I=0;I<n;I++)
{
a[I]=rand()%100; cout<<a[I]<<" ";
}
int max=a[0]; for(int I=1;I<n;I++)
if (a[I]>max)max=a[I]; cout<<"\nMax="<<max; getch();
}
В программе, представленной в примере 35 также используется перебор массива по одному элементу слева направо с шагом 1.
3.1.3. Многомерные массивы
Многомерные массивы задаются указанием каждого измерения в квадратных скобках, например, оператор int matr [6][8]; задает
описание двумерного массива из 6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно. Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс [4].
Для доступа к элементу многомерного массива указываются все его индексы, например, matr[i][j].
Пример 36. Инициализация многомерного массива:
int mass2 [][]={ {1, 1}, {0, 2}, {1, 0} }; int mass2 [3][2]={1, 1, 0, 2, 1, 0};
На рис. 13 представлены блок-схемы алгоритмов двумерных масси-
вов
75
а б
Рис. 13. Представление алгоритмов двумерных массивов в блок-схемах
а – блок-схема циклов for; б – блок-схема циклов while
Матрица – это таблица чисел. Матрицу или двумерный массив, как и одномерный массив, необходимо объявлять. При объявлении матрица
может быть инициализирована, например, int a [3][4] = {1, 2, 3, 4,
5, -5, 7, 24, 0, 8, 12, -34};
Если матрица инициализирована при объявлении, ее левый верхний элемент имеет адрес (0,0). При заполнении массивов можно использовать генератор случайных величин с помощью функции random(x), при этом генерируются числа от 0 до х. Перед использованием генератора случайных величин его необходимо инициализировать с помощью функции randomize (), в текст программы включить заголовочный файл с именем <stdlib.h>
76
Пример 37. Программа определяет в целочисленной матрице номер строки, которая содержит наибольшее количество элементов, рав-
ных нулю.
#include <stdio.h> int main()
{
const int nstr = 4, nstb = 5;//Размерности
int b[nstr][nstb]; |
//массива |
|
|
int i, j; |
//Ввод массива |
for (i = 0; i<nstr; i++) |
|
for (j = 0; j<nstb; j++) |
|
scanf("%d", &b[i][j]); |
|
int istr = -1, MaxKol = 0; |
|
for (i=0; i<nstr; i++) |
|
{
//Просмотр массива по строкам int Kol = 0ж
for (j = 0; j<nstb; j++)if (b[i] [j]==0)Kol++;
if (Kol>MaxKol)
{
istr = i; MaxKol = Kol;
}
}
printf(" Исходный массив:\n"); for (i = 0; i<nstr; i++)
{
for (j = 0; j<nstb; j++) printf("%d ", b[i][j]); printf("\n");
}
if (-1 == istr) printf("Нулевых элементов нет");
else printf("Номер строки: %d", istr); return 0;
}
77