- •Содержание
- •Пояснительная записка
- •Раздел 1. Основы программирования
- •Тема 1.1 Понятие алгоритма
- •Понятие алгоритма. Свойства алгоритма
- •Алгоритмический язык
- •Понятие алгоритма. Свойства алгоритма
- •Хорезми
- •2. Алгоритмический язык
- •Тема 1.2 Методы описания алгоритма
- •Виды описания алгоритма
- •Тема 1.3 Типы алгоритмов
- •1.Типы алгоритмов
- •Алгоритм линейной структуры
- •3. Разветвляющийся алгоритм
- •4. Циклический алгоритм
- •5.Виды циклов
- •Цикл с предусловием (цикл пока)
- •2. Цикл с постусловием (цикл до)
- •3. Арифметический цикл (цикл для) – цикл с параметром.
- •Тема 1.4. Алгоритмический ряд.
- •Операторы цикла с условием
- •Операторы ограничения и прерывания цикла
- •Раздел 2. Решение задач на пэвм.
- •Тема 2.1. Основные этапы подготовки задачи к решению на пэвм.
- •Этапы решения задач
- •Тема 2.2 Программа на языке высокого уровня.
- •Тема 2.3. Методика Джексона
- •1. Методика Джексона
- •Шаг объект-действие
- •Раздел 3.Разработка программы на языке Турбо Паскаль
- •Тема 3.1 Основные элементы
- •История и классификация языков программирования
- •Элементы языка Турбо Паскаль
- •Тема 3.2. Типы данных
- •1. Типы данных Типы данных
- •Тема3.3 Программа на языке Турбо Паскаль
- •Структура программы на языке Паскаль
- •4. Вывод данных в тр
- •5. Ввод данных в тр
- •Тема 3.4 Массивы и их обработка
- •Строковый тип данных
- •Процедуры и функции для работы со строками
- •1. Определение массива
- •2 Описание массивов
- •3 Действия над массивами
- •4.Двумерный массив
- •6.Строковый тип данных
- •'Текстовая строка'
- •7. Процедуры и функции для работы со строками
- •Тема 3.5 Встроенные процедуры и функции
- •1. Арифметические процедуры и функции:
- •2. Функции преобразования типов:
- •3. Процедуры и функции для работы со строками:
- •Тема 3.6. Процедуры и функции пользователя
- •Отличия функции от процедур
- •3. Описание процедуры
- •4. Описание функций
- •5. Локальные и глобальные переменные.
- •6. Параметры в процедурах.
- •Тема 3.7. Записи
- •1. Структура записи в тр
- •2. Отличия записи от массива.
- •Тема 3.8 Файлы и их обработка
- •1. Понятие файла
- •2. Чтение и запись информации из файл или в файл
- •3.Доступ к файлам
- •4.Имена файлов
- •5. Связь файла с файловой переменной.
- •6. Открытие и переименование файла.
- •7. Типизированные фалы.
- •8. Нетипизированные файлы.
- •9.Текстовые файлы
- •Раздел 4. Объектно – ориентированная модель программирования
- •Тема 4.1. Основные характеристики ооп. Преимущества.
- •1. Основные характеристики ооп. Преимущества
- •Тема 4.2. Инкапсуляция.
- •Тема 4.3. Наследование.
- •Тема 4.4.Виртуальные методы и полиморфизм.
- •Перечень источников литературы для самостоятельного изучения учебной дисциплины «Основы алгоритмизации и программирования»
Строковый тип данных
Процедуры и функции для работы со строками
1. Определение массива
Простые типы данных позволяют использовать в программе одиночные объекты - числа, символы, строки и т.п. В Турбо Паскале могут использоваться также объекты, содержащие множество однотипных элементов. Это массивы -- формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект -- массив измерений. При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:
var
а: array [1..10] of real;
b: array [0..50] of Char;
с: array [-3..4] of Boolean;
Как видим, при описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квaдрaтныx скобкax указывается тип-диапазон, с помощью которого компилятор oпеределяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива так что массив А состоит из 10 элементов, массив В - из 31, а массив C - из 8 элементов. За словом OF указывается тип элементов, образующих массив. Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа (точнее, выражения порядкового типа), служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером).
2 Описание массивов
Все массивы, обрабатываемые в программе, должны быть обязательно описаны.
1 способ:
TYPE
<Имя типа>= ARRAY [<Тип индекса>] OF <Тип компонента>;
VAR
<Идентификатор>:<Имя типа>;
2 способ:
VAR
<Идентификатор>: ARRAY [<Границы изменения индекса>] OF <Тип компонента>;
ПРИМЕР:
TYPE
Klass=(k1,k2,k3,k4);
Znak=ARRAY [1..225] OF Char;
VAR
M1:Znak;
M2:ARRAY[1..60] OF Real;
M3:ARRAY [1..4] OF Klass;
M4:ARRAY[1..5,1..4] OF Integer;
Если в качестве базового типа взят другой массив, образуется структура, которую принято называть многомерным массивом.
TYPE
Vektor=ARRAY [1..4] OF Integer;
Massiv=ARRAY [1..4] OF Vektor;
VAR
Matr:Massiv;
Если в такой форме описания массива задан один индекс, массив называется одномерным. Если два индекса – двумерным, N- индексов - N- мерным.
Размерность массивов в настоящее время ограничена только объёмом оперативной памяти конкретной ЭВМ.
Для описания массива можно использовать предварительно определённые константы.
CONST
G1=4;
G2=6;
VAR
A:ARRAY [1..G1,1..G2] OF Real;
Элементы массива располагаются в памяти последовательно. Элементы с наименьшим значением индекса хранятся в более низких адресах памяти. Многомерные массивы располагаются таким образом, что самый правый индекс изменяется самым первым. Если
B:ARRAY [1..2,1..3] OF Real;
То, в памяти элементы массива будут размещены по возрастанию адресов
B[1,1] B[1,2] B[1,3] B[2,1] …
Матрица располагается в оперативной памяти по строкам.
Отличительной особенностью Паскаля является то, что для ввода и вывода массивов необходимо организовывать цикл.
Для ввода одномерного массива В из 20 элементов:
WRITELN (‘введи массив В (20)’);
FOR I:= 1 TO 20 DO READ (В[I]);
Для вывода того же массива в виде столбца с пояснительным текстом на экран:
WRITELN (‘ массив В (20)’);
FOR I:= 1 TO 20 DO WRITELN (‘B(‘, I, ‘) = ‘, B[I]: 6:2);
Если этот же массив нужно вывести на печать необходимо («подцепить» в команде USES раздел PRINTER):
WRITELN (LST, ‘массив В (20)’:8);
FOR I:= 1 TO DO WRITELN (LST, ‘B (‘ , I, ‘) =’ , B[I] : 10:2);
Для ввода матрицы М (5,6):
WRITELN (‘ введи матрицу М (5,6);
FOR I: = 1 TO 5 DO
FOR J= 1 TO 6 DO READ (M[I,J]);
Для вывода матрицы на экран, для просмотра в виде матрицы:
WRITELN (‘ матрица М (5,6) ‘: 15);
FOR I:= 1 TO 5 DO BEGIN WRITELN;
FOR J:= 1 TO 6 DO WRITE (M[I,J] :8 :2)
END;
Если нужно вывести эту же матрицу на печать:
WRITELN (LST, ‘ матрица М (5,6) ‘:15 );
FOR I:= 1 TO 5 DO BEGIN WRITELN (LST);
FOR J:= 1 TO 6 DO WRITE (LST, M[I,J] :8:2)
END;
Если в программе используется процедура или функция пользователя и возникает необходимость передать массив в это блок или из него, массивы работают как формальные и фактические параметры, приходится массивы описывать с использованием раздела описания типов.