Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и языки программирования.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
53.75 Кб
Скачать

3. Описание и виды алгоритмов сортировки. Примеры.

Обычно сортировку подразделяют на два класса: внутреннюю и внешнюю. При внутренней сортировке все элементы хранятся в оперативной памяти, таким образом, как правило, это сортировка массивов. При внешней сортировке — элементы хранятся на внешнем запоминающем устройстве, это сортировка файлов.

Сортировка обменом (пузырьковая). Массив просматривается N-1 раз. При каждом просмотре сравниваются каждые два соседних элемента. Если элемент с меньшим индексом оказывается больше, производится их обмен.

var i, j: byte; vsp : integer;

begin

for i := 1 to n - 1 do

for j := 1 to n - i do

if a[j]>a[j+1] then

begin

vsp:=a[j];

a[j]:=a[j+1];

a[j+1]:=vsp;

end

end;

Сортировка вставками. Пусть часть массива отсортирована. Выбираем в неотсортированной части очередной элемент и вставляем его в отсортированную так, чтобы упорядоченность элементов сохранилась. При поиске места вставки осуществляем сдвиг элементов в сторону возрастания номеров.

var i, j: byte; vsp : integer;

begin

for i := 2 to n do

begin vsp:=a[i];

j:= i-1;

while (a[j]>vsp) and (j>1) do

begin

a[j+1]:=a[j];

j:=j-1

end;

if (a[j]>vsp) and (j=1)

then begin

a[2]:=a[1];

a[1]:= vsp

end

else a[j+1]:=vsp;

end

end;

4. Арифметические операции. Операции отношения. Операции инкремента и декремента в языке программирования с.

В языке С к арифметическим операциям относятся следующие операции:

- вычитание или унарный минус; + сложение; * умножение; / деление; % деление по модулю; ++ увеличение на единицу; -- уменьшение на единицу;

Список операций отношения в языке С.

"<" - меньше. "<=" - меньше или равно. ">" - больше. ">=" - больше или равно. "==" - равно.

"!=" - не равно.

операции инкремента и декремента (или увеличения и уменьшения). Операторы этих операций выглядят соответственно так: ++ и -- . При операции увеличения значение операнда увеличивается на 1, а при операции уменьшения - уменьшается на 1.  Но если вы точно уверены, что переменная ваша будет изменяться в большую или меньшую сторону только на 1, лучше будет использовать инкремент или декремент соответственно. И выглядеть это будет так: х++     или    х—

Если эти  операторы записаны перед переменной, вот так: ++х     или    --х, то это префиксная форма. При этом последовательность действий такая: СНАЧАЛА переменная изменяется на 1; и только после этого используется в выражении.

5. Понятие массивов, векторов, матриц данных. Способы обращения к массивам в языке программирования с.

Массивы представляют из себя множество переменных с определенным типом данных (int,char,float и т.д.) и состоит из двух частей: имени массива и индекса элемента. 

Для создания массива надо написать тип (аналогичен типам переменных) затем имя массива и в квадратных  скобках количество элементов:

int numbers[1000]; // массив на 1000 числовых элементов.

float test[10] // массив на 10 вещественных чисел

А для доступа к n-ому элементу необходимо написать имя массива[номер элемента] и работать с ним как с обычной переменной.

Пример:

numbers[200]=201; //записать в 200 элемент число 201

test[1]=0,5; // в 1 элемент записать 0,5

test[9]=10;  // в 9 элемент записать число 10

int a=5;

numbers[test[9]]=111; /*записать в элемент массива numbers с номером, равным содержимому test[9], число 111*/

test[a]=2; // записать в элемент массива с номером, равным а

Кроме массивов в c++ существуют еще контейнеры, которые позволяют вам немного по другому хранить данные и, вдобавок, применять к ним различные функции (поиск, сортировка и т.д.) Вектор-один из видов контейнеров.

Для создания вектора необходимо подключить <vector>. Затем создание вектора почти ничем не отличается от создания переменной и/или массива:

vector <type> name; //здесть type- тип данных в векторе, а name - имя вектора

Для записи в вектор достаточно набрать имя вектора.push_back(что положить)

vector <int> test;

test.push_back(10);

test.push_back(20);

Обращение к n-ому элементу ничем не отличается от обращения к элементу массива:

test[0]++;

cout<<test[1];

test[1]=222;

Для удаления последнего элемента вектора используется функция pop_back()

test.pop_back();

Ма́трица — математический объект, записываемый в виде прямоугольной таблицы элементов кольца или поля (например, целых или комплексных чисел), которая представляет собой совокупность строк и столбцов, на пересечении которых находятся её элементы. Количество строк и столбцов матрицы задают размер матрицы. 

Матрица Данных - средство представления данных исследования; квадратная таблица,  строки которой предназначены для информации об обследованных объектах, столбцы - для измеряемых переменных: на пересечении строки и столбца указывается значение  переменой для конкретного объекта