
- •Глава 1. Основы программирования Программа
- •Этапы разработки программы
- •Спецификация
- •Разработка алгоритма
- •Алгоритм и программа
- •Компиляция
- •Язык программирования Delphi
- •Тип данных
- •Целый тип
- •Вещественный тип
- •Символьный тип
- •Строковый тип
- •Логический тип
- •Переменная
- •Константы
- •Числовые константы
- •Строковые и символьные константы
- •Логические константы
- •Именованная константа
- •Инструкция присваивания
- •Выражение
- •Тип выражения
- •Выполнение инструкции присваивания
- •Стандартные функции
- •Математические функции
- •Функции преобразования
- •Использование функций
- •Ввод данных
- •Ввод из окна ввода
- •Ввод из поля редактирования
- •Вывод результатов
- •Вывод в окно сообщения
- •Процедуры и функции
- •Структура процедуры
- •Структура функции
- •Запись инструкций программы
- •Стиль программирования
- •Глава 2. Управляющие структуры языка Delphi
- •Условие
- •Инструкция if
- •Листинг 2.1. Вычисление стоимости телефонного разговора
- •Листинг 2.2.Контроль веса
- •Инструкция case
- •Листинг 2.3. Пересчет веса из фунтов в килограммы
- •Листинг 2.4. Формирование поясняющего текста
- •Листинг 2.5. Вычисление даты следующего дня (фрагмент)
- •Инструкция for
- •Инструкция while
- •Листинг 2. 6. Вычисление числа я
- •Инструкция repeat
- •Листинг 2.7. Простое число
- •Инструкция goto
- •Листинг 2.8. Простое число (использование инструкции goto)
- •Глава 3. Символы и строки
- •Символы
- •Листинг 3.1. Таблица символов
- •Операции со строками
- •Функция length
- •Процедура delete
- •Функция роs
- •Функция сору
- •Глава 4. Консольное приложение
- •Глава 5. Массивы
- •Объявление массива
- •Операции с массивами
- •Вывод массива
- •Листинг 5.1. Инициализация и вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Листинг 5.2. Ввод и обработка массива целых чисел
- •Листинг 5.3. Процедура обработки события OnKeyPress
- •Листинг 5.4. Ввод и обработка массива дробных чисел
- •Использование компонента Memo
- •Листинг 5.5. Ввод массива строк из компонента Memo
- •Поиск минимального (максимального) элемента массива
- •Листинг 5.6. Поиск минимального элемента массива
- •Поиск в массиве заданного элемента
- •Алгоритм простого перебора
- •Листинг 5.7. Поиск в массиве
- •Метод бинарного поиска
- •Листинг 5.8. Бинарный поиск в массиве
- •Сортировка массива
- •Листинг 5.9. Сортировка массива простым выбором
- •Сортировка методом обмена
- •Листинг 5.10. Сортировка массива методом обмена
- •Многомерные массивы
- •Листинг 5.11. Инициализация таблицы
- •Листинг 5.12. Обработка двумерного массива
- •Ошибки при использовании массивов
Операции со строками
В языке Delphi есть несколько полезных при работе со строками функций и процедур. Ниже приведено их краткое описание и примеры использования.
Функция length
Функция length возвращает длину строки. У этой функции один параметр — выражение строкового типа. Значением функции length (целое число) является количество символов, из которых состоит строка.
Например, в результате выполнения инструкций
n:=length('Иванов');
m:=length(' Невский проспект ');
значение переменных n и m будет равно 6 и 20.
Процедура delete
Процедура delete позволяет удалить часть строки. В общем виде обращение к этой процедуре выглядит так:
delete(Строка, р, п)
где:
Строка — переменная или константа строкового типа;
р — номер символа, с которого начинается удаляемая подстрока;
п — длина удаляемой подстроки.
Например, в результате выполнения инструкций
p:='Город Санкт-Петербург';
delete(s,7,6);
значением переменной s будет строка ' город Петербург'.
Функция роs
Функция роs позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так:
pos (Подстрока,Строка) ;
где Подстрока — строковая константа или переменная, которую надо найти в строковой константе или переменной строка.
Например, в результате выполнения инструкции
р := pos('Пе','Санкт-Петербург');
значение переменной р будет равно 7. Если в строке нет искомой подстроки, то значение функции роз будет равно нулю.
Ниже приведена инструкция while, в результате выполнения которой удаляются начальные пробелы из строки st.
while(pos(' ',st) = 1) and(length(st) > 0) do delete (st,1,1);
Пробелы удаляет инструкция delete (st, i, i), которая выполняется в цикле до тех пор, пока первым символом строки является пробел (в этом случае значение роs (' ',st) равно единице). Необходимость проверки условия length (st) > 0 объясняется возможностью того, что введенная строка состоит только из пробелов.
Функция сору
Функция сору позволяет выделить фрагмент строки. В общем виде обращение к функции сору выглядит так:
сору( Строка, р, п ) где:
строка — выражение строкового типа, содержащее строку, фрагмент которой надо получить;
р — номер первого символа, с которого начинается выделяемая подстрока;
n — длина выделяемой подстроки. Например, в результате выполнения инструкций
st:= 'Инженер Иванов'; fam:=copy(st, 9, 6) ;
значением переменной fam будет строка 'Иванов1.
Глава 4. Консольное приложение
Хотя данная книга посвящена программированию в Windows, нельзя обойти вниманием так называемые консольные приложения. Консоль — это монитор и клавиатура, рассматриваемые как единое устройство. Консольное приложение — программа, предназначенная для работы в операционной системе MS-DOS (или в окне DOS), для которой устройством ввода является клавиатура, а устройством вывода — монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).
Консольные приложения удобны как иллюстрации при рассмотрении общих вопросов программирования, когда надо сосредоточиться на сути проблемы, а также как небольшие утилиты "для внутреннего потребления".
Перед тем как приступить к созданию консольного приложения, рассмотрим инструкции, обеспечивающие вывод информации на экран и ввод данных с клавиатуры.