
- •Информатика основы
- •Предисловие
- •Введение
- •Программы
- •1.1. Элементы языка
- •Список основных ключевых слов
- •Типы числовых данных
- •Разделители
- •Основные бинарные операции
- •Математические функции
- •1.2. Структура программы
- •1.3. Выполнение программы
- •Контрольные вопросы
- •2.1. Загрузка и настройка системы программирования
- •2.2. Создание и работа с проектом
- •Условные графические обозначения основных блоков схем алгоритмов
- •Словесно-формульный алгоритм
- •Листинг 2.1. Lin_prog.Cpp
- •Результат выполнения программы
- •3.2. Логический тип данных и базовые логические операции
- •Операции сравнения
- •Логические операции
- •При решении задач с множеством логических условий программа существенно упрощается, если эти условия удается объединить с помощью операций и, или, не в более крупные выражения.
- •Словесно-формульный алгоритм
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Области определения функции z (X,y)
- •Контрольные вопросы
- •4. Организация циклов
- •4.1. Организация программ с циклами
- •For (инициализация; условие; модификация) операторы
- •4.2. Инкремент, декремент и составные операции
- •Составные операции присваивания
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •5.Составление программ с массивами
- •5.1. Организация программ с массивами
- •Тип имя_массива [n];
- •Имя_массива [индекс]
- •Тип имя_массива [размер_1] [размер_2]
- •5.2. Манипуляторы и форматирование ввода-вывода
- •Манипуляторы
- •Результат выполнения программы
- •Результат выполнения программы
- •Контрольные вопросы
- •Дайте определение массива.
- •6. Составление программ с использованием функций
- •6.1. Описание, объявление и вызов функций
- •Механизм возврата из функции реализуется оператором
- •Тип имя_функции (тип размерность, тип имя_массива[ ]) ,
- •6.2. Глобальные и локальные переменные
- •Результат выполнения программы
- •6.3. Перегруженные функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •7. Программирование с использованием указателей
- •7.1. Общие сведения об указателях
- •7.2. Динамические массивы
- •Результат выполнения программы
- •Результат выполнения программы
- •7.3. Указатели и функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •8. Программирование с использованием структур
- •8.1. Определение структур
- •8.2. Организация программ с использованием структур
- •Имя_структуры . Имя_элемента_структуры
- •Список товаров
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Основные бинарные операции
- •Операции сравнения
- •Составные операции присваивания
- •Логические операции
- •Типы числовых данных
- •Константы, используемые в математических выражениях
- •Математические функции
- •Типовые сообщения об ошибках
- •Оглавление
5.Составление программ с массивами
Массив представляет собой конечный упорядоченный набор однотипных объектов, имеющих общее имя. Элементы массива занимают один непрерывный участок памяти компьютера и располагаются последовательно друг за другом.
Массив состоит из элементов, являющихся данными одного типа (возможно структурированного), имеетразмерность– количество элементов, которое содержит массив. Элементы массива имеютиндексы– порядковые номера, которые приписываются элементам для того, чтобы отличать их друг от друга.
5.1. Организация программ с массивами
Описание одномерного массива имеет следующий формат:
Тип имя_массива [n];
где n–размерность(количество элементов) массива является в общем случае константным выражением.
Такие одномерные массивы часто называютвекторами.
Например:
intdays[12]; //массивdaysиз 12 целых чисел
doublemass[50]; //массивmassиз 50 вещественных чисел
Для доступак элементу массива используется имя массива и его индекс в диапазоне от0доn-1, заключенный в квадратные скобки:
Имя_массива [индекс]
Например:
mass[0] = 37.5; . . .mass[49] = 36.6;
Массивы можно инициализировать списком значений или выражений, отделенных запятой в фигурных скобках.
Например:
intdays[12] = {27,15,11,5,28,9,14,31,21,15,19,27};
Если список значений короче длины массива, то инициализации подвергаются первые элементы массива, а остальным присваивается нулевое значение.
Например:
int a[5] = {3,12,4}; //a[0]=3, a[1]=12, a[2]=4, a[3]=0, a[4]=0
Массивы могут инициализироваться без указания индекса. В этом случае размерность определяется числом элементов в фигурных скобках.
Например:
intnumbers[ ] = {1,2,3,4}; //размерность равна четырем
В практических задачах часто используются двумерные массивы, т.е. массивы с двумя индексами. Они описываются следующим образом:
Тип имя_массива [размер_1] [размер_2]
С помощью таких массивов обычно отображаются матрицы.
Например:
const int k=5, r=3;
longm[k][k]; //матрица целых чисел размерности 5х5
floatd[k][r]; //матрица целых чисел размерности 5х3
Инициализация двумерного массива осуществляется двумя способами:
представлением массива из массивов с заключением каждого массива-строки в свои фигурные скобки (в этом случае размерности можно не указывать);
заданием общего списка элементов в том порядке, в котором они располагаются в памяти.
Например:
intmatr[ ][ ] = {{3,-4},{25,0},{-1,4}};
intmatr[3][2] = {3,-4,25,0,-1,4};
Как и в одномерных массивах при инициализации двухмерных массивов можно присваивать значения не всем элементам.
Пример. Формирование треугольной матрицы.
intx[5][4] = {{11},{25,4},{-3,18,14},{2,17,9,15}};
что эквивалентно отображению матрицы:
При работе с массивами широко используются операторы цикла, особенно, for. Примером может служить задачасортировкимассива с помощью "пузырькового" метода.
#include <iostream.h>
#include <math.h>
voidmain()
{
constintm=5; //Размерность массива чисел
doublez[m];//Тип чисел массива z
for(inti=0;i<m;i++)//Ввод элементов массива
{ cout<<"z["<<i<<"]=";cin>>z[i];}
for(inti=0;i<m-1;i++)//Начало алгоритма сортировки
{ double a;
for(int j=i+1;j<m;j++)
if(z[j]<z[i])//'<'- сортировка по возрастанию
{a=z[i];z[i]=z[j];z[j]=a;}
} //Конец алгоритма сортировки
cout<<"z["<<m<<"]={";
for(int i=0;i<m;i++)
cout<<z[i]<<" ";cout<<"}";//Вывод элементов массива
}