- •Вопрос1
- •Понятие информации, виды информации. Ее свойства
- •Что можно делать с информацией
- •Свойства информации
- •Основные сведения о компьютерах
- •Что такое компьютеры?
- •Типы компьютеров
- •Настольные компьютеры
- •Переносной компьютер
- •Карманные компьютеры
- •Планшетные пк
- •1 Общая структура эвм
- •1. Микропроцессор
- •2. Внутренняя память
- •5. Монитор
- •Единицы измерения информации.
- •1.3. Алгоритмы линейной структуры
- •1.4. Алгоритмы разветвленной структуры
- •3.1.2 Условный оператор
- •2.1. Алгоритмы циклической структуры
- •Вопрос 15
- •Вложенные циклы
- •Ввод массива Паскаля
- •Вывод массива Паскаля
- •Двумерные массивы Паскаля – матрицы
- •Описание двумерного массива Паскаля.
- •Основные действия с двумерными массивами Паскаля
- •Ввод двумерного массива Паскаля.
- •Вывод двумерного массива Паскаля на экран.
- •Метод "пузырька"
- •Сортировка вставками
- •Сортировка посредством выбора
- •Объединение разнородных элементов (Запись)
- •Операции над записями Паскаля (это важно!)
- •Общая структура подпрограммы
- •Параметры подпрограмм
- •Открытые параметры-массивы
- •Типы файлов Турбо Паскаль
Сортировка посредством выбора
Идея сортировки с помощью выбора не сложнее двух предыдущих. На j-ом этапе выбирается элемент наименьший среди M[j], M[j+1],. . ., M[N](см. процедуру FindMin) и меняется местами с элементом M[j]. В результате после j-го этапа все элементы M[j], M[j+1],. . ., M[N]будут упорядочены.
Сказанное можно описать следующим образом:
нц для j от 1 до N-1 выбрать среди M[j],. . ., M[N] наименьший элемент и поменять его местами с M[j] кц
Более точно:
begin for j:=1 to N-1 do begin FindMin(j, i); swap(M[j],M[i]) end end; |
В программе, как уже было сказано, используется процедура FindMin, вычисляющая индекс lowindex элемента, наименьшего среди элементов массива с индексами не меньше, чемstartindex:
procedure FindMin(startindex: integer; var lowindex: integer); var lowelem: ...; u: integer; begin lowindex := startindex; lowelem := M[startindex]; for u:=startindex+1 to N do if M[u] < lowelem then begin lowelem := M[u]; lowindex := u end end; |
Оценивая эффективность применения , учтите что в демонстрации сортировки выбором отсутствует пошаговое выполнение этой процедуры.
Вопрос №20
Сортировка массива. Метод прямого выбора
Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке. Например, если имеется массив целых чисел а, то после выполнения сортировки по возрастанию должно выполняться условие
a[l] & а[2] < . . .& a[SIZE]
где SIZE — верхняя граница индекса массива.(Делфи)
Сортировка методом прямого выбора
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Вопрос №21
Метод прямого обмена. Алгоритм схема программа.
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. И так далее до предпоследнего элемента. Ниже представлена программа сортировки массива символов по возрастанию
program sort; uses crt; const SIZE = 7; var a: array[1..SIZE] of char; min: integer; { номер минимального элемента в части массива от i до верхней границы массива } j: integer; { номер элемента, сравниваемого с минимальным } buf: char; { буфер, используемый при обмене элементов массива } i, k: integer; begin clrscr; { ввод массива} for i := 1 to SIZE do begin write('El-t #', i , ': '); readLn (a[i]); {заполняем массив} end; for i := 1 to SIZE - 1 do begin { поиск минимального элемента в части массива от а[1] до a[SIZE]} min := i; for j := i + 1 to SIZE do if a[j] < a[min] then min := j; { поменяем местами a [min] и a[i] } buf := a[i]; a[i] := a[min]; a[min] := buf; { вывод массива } for k := 1 to SIZE do write(a[k], '; '); writeln; end; writeln('Otsortirovan!!!'); readkey; end.
Вопрос №22
Обработка текстовой информации
В Паскале при работе с текстовой информацией существует возможность обработки одиночных символов типа Char и последовательности символов - строк типа String. Символьный тип. Тип Char - это один из базовых типов языка, предназначен для хранения и обработки одного символа.
Множеством его значений есть отдельные символы (буквы, цифры, знаки), упорядоченные в соответствии с расширенным набором символов ASCII-кода. Переменная этого типа занимает 1 байт памяти. Благодаря тому что в памяти машины символы сохраняются в виде кодов (большим считается тот символ, чей код больше), их можно сравнивать. Для символов допустимы все операции сравнения: <, <=, =,>,> =, <>. Описание данных символьного типа: Const Name1 = 'v'; - описание символьной константы, Var Name2: CHAR; - описание символьной переменной. Как правило, значение для символьных переменных и констант задаются в кавычках, например, "f", '1 ',' + '. Также можно задать значение, указав непосредственно числовое значение ASCII-кода, поставив перед этим числовым кодом знак #, например, # 35, # 102. В Паскале для работы с символьной информацией реализованы функции преобразования: CHR (N) - символ с кодом N, ORD (S) - код символа S. Также применяются функции, определяющие SUCC (S) - следующий символ, PRED (S) - предыдущий символ. Для этих функций выполняются следующие зависимости: SUCC (S) = CHR (ORD (S) +1); PRED (S) = CHR (ORD (S) -1). Для латинских букв 'a' .. 'z' выполняется функция UPCASE (S), которая переводит эти литеры в верхний регистр 'A' .. 'Z'. Строковый тип. Тип String - тип данных, предназначенный для хранения и обработки последовательности символов. Строку можно рассматривать как особую форму одномерного символьного массива. Описание данных строчного типа: Const Name1 = 'computer'; - описание строчной константы, Var Name2: STRING; - описание строчной переменной, Name3: STRING [20]; - описание строчной переменной заданной длины, По умолчанию длина строчной переменной равна 255 символам, но можно ограничить длину строки с помощью явного указания длины строки. В Паскале реализовано обработки строк двумя путями: проработка строки как единого целого и как объекта, который создается из отдельных символов. Первый путь позволяет: • присвоение строчной переменной за одну операцию целой строки символов, например, Name2: = 'computer'; Name3: = 'science'; • объединение строк в произвольном порядке с помощью операции «+» (операции связывания, объединения), например, Name3: = 'computer' + 'science'; Name3: = Name2 + Name3; • сравнение строк с помощью операций сравнения: <, <=, =,>,> =, <>, например, If Name3 <> Name2 then write ('no'); Второй путь позволяет в каждый символа строки обращаться за его номером позиции как к элементу массива по индексу, например, Name3: = Name2 [6] + Name2 [2] + Name2 [4]; Элемент с нулевым индексом содержит символ, код которого указывает на действительную длину данной строки. В Паскале реализованы процедуры и функции для обработки строк. Текущую длину строки S можно узнать с помощью функции LENGTH (S). Группа функций и процедур, направленная на проработку фрагментов строки: • функция COPY (S, N, M) - копирование фрагмента строки S длиной M, начинается с позиции N; • функция POS (S1, S) - поиск фрагмента S1 в строке S (получаем позицию, с которой начинается фрагмент S1 в строке S); • функция CONCAT (S1, S2, ...) - объединение строк S1, S2, ...; • процедура INSERT (S1, S2, M) - вставка фрагмента S1 в строку S2 с позиции M; • процедура DELETE (S1, N, M) - изъятие части строки S1 длиной M, начиная с позиции N; • процедура VAL (S, N, Code) - преобразование строки цифровых символов S в число N (параметр Code = 0, если строка S образован не из цифровых символов) • процедура STR (N, S) - преобразование числа N в строку цифровых символов S. Для сортировки символьных строк (например, по алфавиту) целесообразно создать массив символьных строк (массив типа String), что с учетом возможности использования операций сравнения для строк, позволит простым способом применять основные алгоритмы сортировки
Вопрос №23
Записи