- •1Основы алгоритмизации
- •1.1Этапы решения задач на эвм
- •1.2Алгоритм. Свойства алгоритмов
- •1.3 Алгоритмическая конструкция ветвления
- •1.4Алгоритмическая конструкция цикла
- •22. Программирование на Турбо Паскаль
- •2.1Основные конструкции языка Паскаль
- •2.1.1История создания языка.
- •2.1.2Программа на tp.
- •2.1.3 Простые типы данных.
- •2.1.4Константы, переменные и оператор присваивания.
- •2.1.5Операторы ввода/вывода.
- •2.2 Управляющие конструкции языка тп
- •2.2.1Безусловные конструкции.
- •2.2.2Условные конструкции.
- •2.2.3Циклические конструкции.
- •1. Цикл с предусловием.
- •Цикл с постусловием.
- •3. Цикл с параметром.
- •2.3Массивы
- •2.3.1Одномерные массивы
- •2.3.2Сортировка массивов.
- •2.3.3Двумерные массивы
- •2.4Процедуры и функции.
- •2.4.1Использование
- •2.4.2Формальные и фактические параметры
- •2.4.3Описание
- •2.4.4Вызов процедур и функций в основной программе
- •2.4.5Пример
- •2.5Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.
2.3.2Сортировка массивов.
Сортировкой называется процесс расположения элементов массива в порядке убывания (возрастания) их значений.
Пример:
Алгоритм выполнения сортировки называется методом сортировки. К наиболее распространенным методам относятся:
Простым выбором
Пузырьковый метод
На каждом шаге находится минимальный (максимальный) неотсортированной части. Он меняется с первым элементом в неотсортированной части, после чего отсортированная часть увеличивается на один элемент. На первом шаге весь массив считается неотсортированным. Сортировка заканчивается за (n-1) шаг
Пример: 241795
1 шаг: 1 | 42795 2 шаг: 12 | 4795 3 шаг: 124 | 795 4 шаг: 1245 | 97 5 шаг: 124579
На каждом шаге сравниваются все соседние элементы. В случае необходимости они меняются местами. Сортировка считается законченной за nn действий или на шаге, когда не выполнено ни одной перестановки.
-
Пример: 241795
1 шаг: 214795 true 2 шаг: 124579 true 3 шаг: 124579 false
2.3.3Двумерные массивы
Представьте себе таблицу, состоящую из нескольких строк. Каждая строка состоит из нескольких ячеек. Тогда для точного определения положения ячейки нам потребуется знать не одно число (как в случае таблицы линейной), а два: номер строки и номер столбца. Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом. Описать такой массив можно следующим образом:
Var A : Array [1..20,1..30] Of Integer;
Описан двумерный массив, соответствующий таблице, состоящей из 20 строк и 30 столбцов.
Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Сначала указывается номер строки, а затем - номер столбца. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5,6].
Задача ввода элементов двумерного массива:
|
program vvod; const n=5; m=7; var A: array [1..n,1..m] of real; i,j: integer; begin for i:=1 to n do for j:=1 to m do read (A[i,j]); end. |
Для иллюстрации способов работы с двумерными массивами решим задачу: "Задать и распечатать массив 10X10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали".
Главной будем считать диагональ из левого верхнего угла таблицы в правый нижний. При этом получается, что элементы, лежащие на главной диагонали будут иметь одинаковые индексы, а для элементов выше главной диагонали номер столбца будет всегда превышать номер строки. Договоримся также сначала указывать номер строки, а затем - номер столбца.
|
Program M5; Var A : Array[1..10,1..10] Of Integer; I, K : Byte; S : Integer; Begin S:=0; For I:=1 To 10 Do Begin For K:=1 To 10 Do Begin A[I,K]:=Trunc(Random*100)+1; Write(A[I,K]:6); If K>I Then S:=S+A[I,K] End; Writeln End; Writeln('Сумма элементов выше гл. диагонали равна',S) End. |