Понятие вложенных циклов, одномерных и двумерных массивов в программировании. Матрицы и основные действия с ними. Иерархические записи, понятие дерева. Операции с двоичными деревьями, рекурсия, включение и удаление узла. Алгоритм поиска по дереву.
Аннотация к работе
Существует возможность организовать цикл внутри тела другого цикла. Такой цикл будет называться вложенным циклом. Вложенный цикл по отношению к циклу в тело которого он вложен будет именоваться внутренним циклом, и наоборот цикл в теле которого существует вложенный цикл будет именоваться внешним по отношению к вложенному. Внутри вложенного цикла в свою очередь может быть вложен еще один цикл, образуя следующий уровень вложенности и так далее. Во многих языках программирования есть оператор досрочного завершения цикла (break в Си, exit в Турбо Паскале, last в Perl и т. п.), но он, как правило, обеспечивает выход только из цикла того уровня, откуда вызван.Например, следующий оператор объявляет массив month_days, имеющий тип "массив элементов типа int": int roonth_days[]; Хотя это объявление утверждает, что month_days - массив переменных, в действительности никакого массива еще не существует. Чтобы связать month_days с реальным физическим массивом целочисленных значений, необходимо с помощью операции new распределить память и присвоить ее массиву month_days. тип определяет тип данных, для которых резервируется память, размер указывает количество элементов в массиве, а переменная_массива - переменная массива, связанная с массивом. Следующий оператор резервирует память для 12-элементного массива целых значений и связывает их с массивом month_days. month_days = new int[12];Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента: Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел - номера строки, в которой находится элемент, и номера столбца. Мы уже умеем описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами. Т.е., если в программе у нас описаны две матрицы одного типа, например, type matrix= array [1..5, 1..10] of integer; Это означает, что если массив состоит из целых чисел, то над его элементами можно выполнять операции, определенные для целых чисел, если же массив состоит из символов, то к ним применимы операции, определенные для работы с символами.Дерево - это совокупность элементов, называемых узлами (один из которых определен как корень), и отношений («родительских»), образующих иерархическую структуру узлов. Формально дерево (tree ) определяется как конечное множество T одного или более узлов со следующими свойствами: • Существует один выделенный узел, а именно - корень (root ) данного дерева; Каждый узел имеет уровень, который определяется следующим образом: уровень корня дерева равен нулю, а уровень любого другого узла на единицу выше, чем уровень корня ближайшего поддерева, содержащего данный узел. Путем из узла n 1 в узел n k называется последовательность узлов n 1 , n 2 , … n k , где для всех i , 1? i ? k , узел n i является родителем узла n i 1 . Длиной путиназывается число, на единицу меньшее числа узлов, составляющего этот путь. Если существует путь из узла a в узел b , то в этом случае узел a называется предком узла b , а узел b - потомком узла a .Дан массив размера N.Mas1 integer array-32768.. 32767 n integer Размер массива-32768.. 32767 min integer Минимальное число-32768.. 32767 max integer Максимальное число-32768.. 32767 i integer Переменная для цикла-32768.. 32767razm,i,max,min:integer; begin clrscr; writeln(‘введите размер массива’);Дан массив размера N.Идентификатор Тип Назначение Размер a integer array-32768.. 32767 f boolian Правда лож 1uses crt; var count,i,n:integer; begin count:=0; if (a[i]>a[i 1]) and f then begin inc(count);Дана целочисленная матрица размера M x N.Идентификатор Тип Назначение Размерbegin clrscr; writeln(‘введите кол во строк массива"); writeln(‘введите кол во столбцов массива"); for i:=1 to n do begin for j:=1 to m do begin gotoxy(x,y); for i:=1 to n do begin for j:=1 to m do begin if mas2[i,j]>max then begin str:=i;Дано число k и матрица размера 4 x 10. Удалить строку1|столбец2 матрицы с номером k.J Переменная для цикла i Переменная для цикла k Переменная для цикла while w Переменная для casebegin clrscr; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=random(20); repeat writeln("Выберите действие 1-удалить строку 2-удалить столбец"); 1:begin repeat write("Введите номер строки для удаления от 1 до ",m," k="); 2:begin repeat write("Введите номер столбца для удаления от 1 до ",n," k=");Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы "." (точка).Идентификатор Тип Назначение Размер s String Переменная для строки-32768.. 32767 n Integer Номер буквы-32768.. 32767 i integer Переменная для цикла-32768.. 32767begin write ("s="); if leng
План
СОДЕРЖАНИЕ
Введение
1 Общая часть
1.1 Вложенные циклы
1.2 Одномерные массивы
1.3 Матица
1.3.1 Двумерные массивы
1.3.2 Комбинированные типы данных
1.4 Иерархические записи
1.5 Оператор выбора
1.6 Циклы с параметрами
1.7 Циклы с предусловием
1.8 Циклы с постусловием
2 Специальная часть
2.1 Постановка задачи № 1
2.1.1 Таблица идентификаторов
2.1.2 Блок-схема алгоритма № 1
2.1.3 Контрольный пример № 1
2.1.4 Листинг программы № 1
2.2 Постановка задачи № 2
2.2.1 Таблица идентификаторов
2.2.2 Блок-схема алгоритма № 2
2.2.3 Контрольный пример № 2
2.2.4 Листинг программы № 2
2.3 Постановка задачи № 3
2.3.1 Таблица идентификаторов
2.3.2 Блок-схема алгоритма № 3
2.3.3 Контрольный пример № 3
2.3.4 Листинг программы № 3
2.4 Постановка задачи № 4
2.4.1 Таблица идентификаторов
2.4.2 Блок-схема алгоритма № 4
2.4.3 Контрольный пример № 4
2.4.4 Листинг программы № 4
2.5 Постановка задачи № 5
2.5.2 Блок-схема алгоритма № 5
2.5.3 Контрольный пример № 5
2.5.4 Листинг программы № 5
2.6 Постановка задачи № 6
2.6.1 Таблица идентификаторов
2.6.2 Блок-схема алгоритма № 6
2.6.3 Контрольный пример № 6
2.6.4 Листинг программы № 6
Заключение
Список литературы
1.Общая часть
1.1 Вложенные циклы
Вывод
За эту практику я научился использовать массивы, изучил строковой тип данных,циклы (с параметром, с постусловием, с предусловием).