- •Оглавление
- •§1. Первое знакомство с системой программирования Турбо Паскаль
- •§2. Основные элементы языка
- •§3. Команды редактора Команды управления движением курсора
- •§4. Первая программа
- •Пояснения к программе
- •Запуск программы
- •Сохранение программы
- •§5. Управление позициями и цветом вывода
- •§6. Арифметический квадрат.Абсолютная величина
- •§7. Типы данных
- •§8. Целый тип данных
- •Пример 6
- •Пример 7
- •Пример 8
- •§9. Вещественный тип данных
- •Пример 7
- •Пример 8
- •§10. Логический тип данных
- •§11. Условный оператор
- •Пример 1
- •Пример 2
- •Решение
- •§12. Оператор безусловного перехода. Раздел описания меток
- •§13. Вложенные условные операторы
- •Решение
- •Задание
- •Решение задач Задача 1
- •Задача 8
- •Задача 9
- •Задача 10
- •§14. Цикл с параметром
- •Пример 1
- •Пример 2
- •Пример 3
- •§15. Работа с окнами. Метод пошагового выполнения программ
- •§16. Решение задач с использованием цикла с параметром Задача 1
- •Решение
- •Задача 2.
- •§17. Цикл с предусловием
- •Оператор цикла с предусловием
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§18. Цикл с постусловием
- •Пример 1
- •Решение
- •Пример 2
- •§19. Алгоритм Евклида
- •§20. Вложенные циклы Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •Решение
- •Пример 5
- •§21. Решение задач с использованием циклов с условием Задача 1
- •Решение
- •Задача 2
- •§22. Символьный тип данных
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§23. Ограниченный тип данных
- •Var b:3..8; а не просто Vаг b:Integer;
- •Решение
- •§24. Оператор варианта (выбора)
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •§25. Перечисляемый тип данных
- •§26. Описание переменных, констант и типов. Раздел описания констант
- •Раздел описания типов
- •§27. Преобразование типов. Совместимость типов
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение.
- •§28. Процедуры
- •Описание процедуры
- •Решение
- •Begin {основная программа}
- •Пример 2
- •Решение
- •Пример 3
- •§29. Функции
- •Пример 1
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§30. Примеры рекурсивного программирования
- •Задачи с рекурсивной формулировкой
- •Пример 3
- •Задачи, которые можно решить как частный случай обобщенной
- •Задание
- •Задачи, в которых можно использовать характеристику или свойство функции Пример
- •Решение
- •§31. Файловый тип данных Операции для работы с файлами последовательного доступа
- •§32. Обработка файлов Связь переменной файлового типа с файлом на диске
- •Чтение из файла
- •Закрытие файла
- •Признак конца файла
- •Запись в файл
- •§33. Прямой доступ к элементам файла
- •Удаление файлов. Процедура
- •Переименование файлов. Процедура
- •Пример 2
- •§34. Текстовые файлы
- •Обработка текстовых файлов
- •Пример 1
- •Решение
- •Пример 2
- •Нетипизированные файлы
- •§35. Одномерные массивы. Работа с элементами(разбор на примерах) Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Begin {Считываем очередную строку}
- •§36. Работа с элементами массива (разбор на примерах)
- •Пример 2
- •§37. Методы работы с элементами одномерного массива
- •Создание массива
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Работа с несколькими массивами Пример
- •Решение
- •§38. Удаление элементов из одномерного массива Пример 1
- •Решение
- •Begin {Сдвиг элементов на один влево}
- •Пример 2
- •Решение
- •§39. Вставка элементов в одномерный массив
- •Вставка нескольких элементов
- •Решение
- •§40. Перестановки элементов массива
- •§41. Двухмерные массивы Описание. Работа с элементами
- •§42. Найти сумму элементов
- •Решение
- •§43.Нахождение количества элементов с данным свойством
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§44. Работа с несколькими массивами Пример
- •Решение
- •§45. Определить, отвечает ли заданный массив некоторым требованиям Пример 1
- •Решение
- •Пример 2
- •Решение
- •§46. Изменение значений некоторых элементов, обладающих заданным
- •§47. Заполнение двухмерного массива по правилу
- •Пример 2
- •Решение
- •§48. Вставка и удаление элементов Вставка строки
- •Решение
- •Примечания
- •Удаление строки Пример
- •Решение
- •Примечания
- •§49. Перестановка элементов массива Перестановка двух элементов Пример 1
- •Решение
- •Пример 2
- •§50. Строковый тип данных
- •Операции со строками
- •Склеивание
- •Сравнение
- •Примеры
- •Пример 8
- •Пример 9
- •Пример 10
- •§51. Множественный тип данных
- •Операции над множествами
- •Примеры
- •Сравнение множеств
- •Пример 1
- •Пример 2
- •Вопросы для обсуждения
- •Пример 3
- •Вопросы для обсуждения
- •Пример 4
- •Решение
- •Пример 5
- •Решение
- •§52. Комбинированный тип данных (записи)
- •Пример 1
- •Пример 2
- •Пример 3
- •Решение
§6. Арифметический квадрат.Абсолютная величина
Функция SQR(х) возвращает квадрат значения аргумента, то есть SQR(х)=х2=х*х.
Примеры:
sqr(4)=42=16;
при х=13, sqr(х)=sqr(13)=132=169;
npu d=2, e=5, sqr(d+e)=sqr(2+5)=sqr(7)=49;
при x=3, sqr(sqr(x))=sqr(sqr(3))=sqr(9)=81.
Функция ABS(х) возвращает абсолютную величину значения аргумента.
Примеры:
abs(12)=12;
abs(-12)=12;
при х=3, у=-5;
abs(x+y)=abs(3+(-5))=abs(-2)=2;
abs(x)+abs(у)=abs(3)+abs(-5)=3+5=8.
Примечание. В Паскале большие и маленькие буквы в именах (переменных, функциях и пр.) не различаются. Не различаются они и при записи служебных слов.
§7. Типы данных
Использование переменных − основной способ представления информации в процедурном программировании. Любые сложные структуры данных, массивы, указатели, объекты можно рассматривать как разновидности переменных. Основные свойства переменных − это его имя, тип, вид и значение.
Для человека имя переменной − это ее обозначение в программе. Формально выбор имени не имеет значения, но каждому программисту можно посоветовать помнить слова капитана Врунгеля: «Как Вы яхту назовете, так она и поплывет». Удачное имя переменной, соответствующее ее сути, способно облегчить понимание программы.
Для компьютера имя − это место в памяти. Каждой переменной отводится определенное место, и в машинной программе, которая получается после трансляции текста на исходном языке, имена заменяются на обращения к соответствующему адресу.
Тип переменной определяет множество значений, которые может принимать переменная, и множество операций, в которых она может участвовать. Для компьютера тип − это способ интерпретации содержимого памяти. В современных компьютерах для представления информации используется двоичное кодирование. При этом для кодирования различной информации используются разные принципы, но полученный в итоге двоичный код сам по себе не содержит никаких признаков, которые позволили бы определить его природу и отличить, например, числа от текста. Указывая в программе тип переменной, мы сообщаем компьютеру, как следует преобразовывать информацию в соответствующем месте памяти.
Вид переменной − это информационная роль, которую переменная играет в программе. Чаще всего встречаются такие виды, как локальные и глобальные переменные, входные и выходные параметры. Для компьютера вид − это время жизни переменной, он определяет, в какой момент времени будет выделена память для переменной и когда эту память можно освободить.
Переменная в программе может иметь какое−либо значение. Для человека значение − это информационное содержание, а для компьютера − это код в памяти.
Все имеющиеся типы принято делить на группы. Типы, принадлежащие одной группе, имеют определенное сходство. Прежде всего, выделяют простые и структурные типы. Простые типы, в свою очередь подразделяют на порядковые и вещественные типы (см. приложение в конце учебника).
Порядковые типы называются так потому, что их допустимые значения представляют собой множество, состоящее из конечного числа элементов. В этом множестве есть первый и последний элементы. Кроме того, каждый элемент порядкового типа имеет предшествующий ему и следующий за ним элементы. Так, например, у целого значения 12 есть предшественник (значение 11) и преемник (значение 13). Очевидным исключением являются первый (у него нет предшественника) и последний (нет преемника) элементы.
В языке Паскаль имеются стандартные функции, которые позволяют определять предшествующее и последующее значения для заданного значения:
функция Pred(x) определяет значение, предшествующее х;
функция Succ(x) определяет значение, следующее за х;
функция Ord(x) возвращает порядковый номер величины х.
К порядковым типам относятся целый, логический и символьный типы данных.
В отличие от порядковых, вещественные типы представляют вещественные (действительные) числа (числа, имеющие как целую, так и дробную части), а множество вещественных чисел даже из ограниченного диапазона пронумеровать невозможно. Строго говоря, следует учитывать то обстоятельство, что компьютер может оперировать лишь с конечным набором чисел. Это связано с его конечной разрядностью (то есть количеством двоичных разрядов, отводимых под хранение данных). Но для вещественных чисел количество их допустимых значений весьма велико, поэтому не имеет смысла относить их к группе порядковых типов.
К структурным типам данных относятся массив (Array), множество (Set), файл (File) и запись(Record).
Понятие типа есть практически во всех языках программирования. При этом можно выделить два принципиально разных подхода: статические и динамические типы.
В языках со статическими типами тип указывается при описании переменной, он связан с ее именем. Если, например, переменная описана как целая, то в дальнейшем ей нельзя присвоить вещественное или символьное значение. К языкам со статическими типами относятся Паскаль, Си, Бейсик, КуМир.
В языках с динамическими типами тип связывается не с именем, а со значением переменной. В этом случае любой переменной можно присвоить значение любого типа, но текущее значение ограничивает множество допустимых операций. Динамические типы используются в таких языках, как Лого, Перл и др.