
- •Язык pascal программирование для начинающих Содержание
- •1.Начала программирования
- •2.Процедуры и функции
- •1.Начала программирования Понятия программирования
- •История и особенности языка программирования Паскаль (Pascal)
- •Словарь языка Pascal
- •Компиляция
- •Структура программы на языке Паскаль
- •Пунктуация в программах на Паскале
- •Операторы
- •Оператор присваивания
- •Составной оператор
- •Выражения
- •Ввод и вывод данных
- •Переменные и константы
- •Длина переменных
- •Типы данных
- •Целые типы
- •Вещественные типы
- •Использование константы pi
- •Символьный тип (Char)
- •Перечисляемый тип
- •Ограниченный тип (интервал)
- •Булевы типы. Логические выражения и логические операции
- •Битовая арифметика и операции над битами
- •Условные операторы
- •Оператор case
- •Вложенные конструкции if-else
- •Циклы в Паскале
- •Операторы goto, break и continue Оператор безусловного перехода goto
- •Операторы break и continue
- •Генератор псевдослучайных чисел
- •Эквивалентность и совместимость типов
- •Совместимость типов
- •Функция sizeof
- •2.Процедуры и функции Структурное программирование
- •Стандартные функции языка Pascal
- •Арифметические функции
- •Тригонометрические функции
- •Функции преобразования из вещественного в целый тип
- •Логические функции
- •Функции над дискретными типами Функция ord
- •Функция chr
- •Функции succ и pred
- •Процедуры и функции
- •Формальные параметры
- •Параметры-значения
- •Параметры-переменные
- •Побочные эффекты
- •Процедуры и функции в качестве параметров
- •Локальные и глобальные переменные
- •Рекурсивные функции
- •3.Массивы в Pascal Общее представление о массивах
- •Одномерные массивы
- •Двумерные массивы
- •Открытые массивы
- •4.Графика и псевдографика Модуль Crt
- •Модуль Graph
- •Процедура Line. “Звезды на экране”
- •Процедура Circle. “Разноцветные окружности”
- •Прямоугольники. Процедуры Rectangle, Bar и Setfillstyle
- •5.Строки Строковый тип данных в Паскале
- •Процедуры и функции для работы со строками
- •Строки и массивы символов
- •6.Работа с файлами Работа с файлами в Паскале. Общие сведения
- •Создание файла и запись данных в него
- •Чтение данных
- •Функция ioResult
- •Редактирование файла
- •7.Записи в Pascal Записи (Record)
- •Сравнение записей с массивами
- •Оператор With
- •Запись с вариантами
- •8.Множества Множества (Set)
- •Данные типа set
- •Операции над множествами
- •9.Динамические структуры данных Указатели, или ссылки (Pointer)
- •Ссылочные и динамические переменные
- •Процедура New
- •Операции над указателями
- •Процедура Dispose
- •Стек ("магазин")
- •Очередь
- •Запись новых компонент
- •Нелинейные структуры
- •Решение Задач Содержание
- •1.Линейные алгоритмы
- •2.Условные операторы
- •3.Циклы
- •4.Графика и псевдографика
- •5.Процедуры, функции, рекурсии
- •6.Массивы
- •7.Строки
- •1.Линейные алгоритмы Вычисление площади поверхности цилиндра
- •"Заем". Арифметические выражения, возведение в степень
- •2.Условные операторы Извлечение цифр числа
- •Поразрядное сравнение чисел
- •Перевод шестнадцатеричного числа в десятичное число
- •Перевод десятичного числа в шестнадцатеричное
- •Определение принадлежности даты диапазону времени
- •Программа, определяющая количество дней в месяце
- •Фильтрация данных
- •Поиск максимального элемента среди минимальных элементов столбцов
- •Удаление элементов одномерного массива
- •Выбор элементов массива
- •Процедура вычисления корней квадратного уравнения
- •Программа "Угадай число"
- •Перевод римских чисел в арабские. Пример автоматного распознавателя
- •Определить возможность существования треугольника по сторонам
- •Определение четверти на координатной плоскости
- •Оператор case в задаче выбора
- •Найти максимальное число из трех
- •Вычисление площадей геометрических фигур
- •Вычисление значения функции
- •3.Циклы Определить количество элементов массива, значение которых больше соседних элементов
- •Определить количество простых чисел
- •Сумма элементов различных рядов
- •Поменять слова местами
- •Определение различных цифр, входящих в число
- •Извлечение цифр числа
- •Поразрядное сравнение чисел
- •Использование повторяющихся изображений для создания орнаментов
- •Перенос и анимация геометрических фигур
- •Сумма и произведение цифр числа
- •Окна в crt. Программа для угадывания числа
- •Вычисление средних арифметических массивов
- •Удаление последнего слова в строке
- •Как избавиться от goto
- •Вывод квадратов натуральных чисел
- •Числа Фибоначчи
- •Запись табличных данных в файл и их чтение оттуда
- •Фильтрация данных
- •Поиск максимального элемента среди минимальных элементов столбцов
- •Умножение матриц
- •Удаление элементов одномерного массива
- •Выбор элементов массива
- •Сумма элементов двумерного массива
- •Поиск максимального элемента в массиве
- •Функция, вычисляющая наибольший общий делитель
- •Фильтр строки
- •Заполнение массива и вычисление суммы элементов
- •Возведение числа в степень
- •Вывод на экран таблицы ascii
- •Вычисление суммы ряда чисел
- •Программа "Угадай число"
- •Перевод римских чисел в арабские. Пример автоматного распознавателя Задача:
- •4.Графика и псевдографика Масштабирование фигуры
- •Использование повторяющихся изображений для создания орнаментов
- •Перенос и анимация геометрических фигур
- •Окна в crt. Программа для угадывания числа
- •Вывод строки по диагонали
- •5.Процедуры, функции, рекурсии Вычисление средних арифметических массивов
- •Перевод шестнадцатеричного числа в десятичное число
- •Перевод десятичного числа в шестнадцатеричное
- •Перевод десятичного числа в двоичную или восьмеричную систему счисления.
- •Перевод двоичного числа в десятичное
- •Пример, иллюстрирующий использование интервального типа и манипуляции над множествами
- •Псевдослучайные числа. Функция, возвращающая значение и меняющая параметр
- •Программа решения задачи о ханойской башне
- •Заполнение массива и его вывод на экран
- •Рекурсия. Процедура перевода чисел из десятичной системы счисления в другие
- •Процедура вычисления корней квадратного уравнения
- •Нахождение нод (наибольшего общего делителя) с помощью рекурсивной функции
- •Функция, вычисляющая наибольший общий делитель
- •Функция, вычисляющая наибольший общий делитель
- •Обмен значений переменных
- •Функции вычисления площади геометрических фигур
- •Вычисление площади поверхности цилиндра
- •"Заем". Арифметические выражения, возведение в степень
- •6.Массивы Определить количество элементов массива, значение которых больше соседних элементов
- •Определение различных цифр, входящих в число
- •Поразрядное сравнение чисел
- •Вычисление средних арифметических массивов
- •Использование динамических массивов
- •Копирование данных в обратном порядке
- •Поиск самой длинной заданной последовательности в массиве
- •Поиск максимального элемента среди минимальных элементов столбцов
- •Умножение матриц
- •Алгоритм шифрования данных
- •Выделение слов из строки
- •Сортировка выбором
- •Длина последовательности
- •Слияние двух упорядоченных массивов
- •Удаление элементов одномерного массива
- •Сортировка методом пузырька
- •Исключение одинаковых элементов массива
- •Выбор элементов массива
- •Вставка элемента в массив
- •Сумма элементов двумерного массива
- •Поиск максимального элемента в массиве
- •Сумма и произведение элементов одномерного массива
- •Заполнение массива и его вывод на экран
- •Фильтр строки
- •Заполнение массива и вычисление суммы элементов
- •7.Строки Поменять слова местами
- •Сортировка данных строки
- •Удаление из строки слов заданной длины
- •Удаление последнего слова в строке
- •Добавление пробелов в строку
- •Удаление одинаковых символов
- •Удаление лишних пробелов
- •Вывод строки по диагонали
- •Частота встречаемости символа в строке
- •Палиндром
- •Переворот строки
- •Замена подстроки в строке
- •Вставка подстроки
- •Удаление подстроки
- •Копирование части строки
- •Определение длины строки
- •Замена последовательности символов в строке
- •Перевод двоичного числа в десятичное
- •Выделение слов из строки
- •Фильтр строки
- •8.Файлы Запись данных в бестиповой файл
- •Проверка файла с данными на наличие записи
- •Замена последовательности символов в строке
- •Запись табличных данных в файл и их чтение оттуда
- •Копирование нетипизированного файла
- •Копирование данных в обратном порядке
- •Копирование текстовых файлов
- •Фильтрация данных
- •Запись в типизированный и текстовый файлы
- •9.Записи Пример использования записи с вариантами
- •Фильтрация записей по значению поля
- •Проверка файла с данными на наличие записи
- •Преобразование даты в числовой формат
- •Определение принадлежности даты диапазону времени
- •Программа, определяющая количество дней в месяце
- •10. Множества и интервалы Пример, иллюстрирующий использование интервального типа и манипуляции над множествами
- •11. Динамические структуры Использование динамических массивов
- •Процедуры для работы с динамической структурой спискового типа
- •Процедуры, обслуживающие стек
- •Вставка динамической переменной
- •Примечания:
История и особенности языка программирования Паскаль (Pascal)
Среди множества языком программирования выделяются десятки языков, нашедших широкое применение и распространение в те или иные отрезки компьютерной истории. В эту группу широко распространенных языков входит язык программирования Pascal.
Издавна принято считать, что он хорош для обучения программированию. И действительно. Язык Паскаль был создан в конце 60-х годов Н. Виртом как специальный язык для обучения студентов. Однако вскоре из-за реализации в нем прогрессивных идей того времени получил распространение среди программистов. Было время, когда Паскаль широко использовался для написания прикладных программ и даже как язык системного программирования. Программное обеспечение многих мини- и микрокомпьютеров было написано на Pascal.
При рождении языка программирования на свет должны появиться как его описание, так и транслятор с него в машинный код. После 70-го года язык Pascal развивался и совершенствовался, включал в себя новые возможности. Производились новые трансляторы и среды разработки для Pascal.
Трансляторы с этого языка имелись на наиболее распространенных типах ЭВМ во всем мире. Наличие специальных методик создания трансляторов с Паскаля упростило их разработку и способствовало широкому распространению языка. Трансляторы могли оптимизировать код, и это позволяло создавать эффективные программы. Это как раз и послужило одной из причин использования Паскаля в качестве языка системного программирования.
В 80-х годах компьютерная наука начала входить в массы, появился предмет «Информатика». Поскольку в это время Pascal был особо модным и зарекомендовал себя как учебный языка, то он нашел широкое распространение в школах и вузах. В итоге было написано огромное количество учебных пособий по этому языку.
Среди других достоинств языка программирование Pascal можно отметить следующее:
Простота языка позволяет быстро его освоить и создавать алгоритмически сложные программы.
Развитые средства представления структур данных обеспечивают удобство работы как с числовой, так с символьной и битовой информацией.
В языке Паскаль реализованы идеи структурного программирования, что делает программу наглядной и дает хорошие возможности для разработки и отладки.
Чтобы быть более простым, Pascal имеет некоторые ограничения. Так, Паскаль хорошо «учит» понимать, как хранятся данные в памяти компьютера, но имеет ряд ограничений при работе с ними (чего лишены большинство «настоящих» языков).
Т.к. в свое время Паскаль достаточно активно использовался для решения практических задач, на его основе сформировался язык Object Pascal (который сейчас используется в Delphi).
Словарь языка Pascal
Язык программирования Pascal использует следующий набор символов.
-
Английские и русские буквы, которые могут быть как строчными, так и прописными.
-
Арабские цифры.
-
Знаки операций и знаки, входящие в составное обозначение операций:
+ - * / : = < >
-
Ограничители:
. , ( ) [ ] { } : ; ‘ “
-
Специальные символы:
$ @ # & ^ _ ~ %
Для обеспечения использования ячеек памяти служат переменные.
Переменная – это имя физического участка памяти, в котором в любой момент времени может храниться только одно значение. Для обозначения участков памяти используют идентификаторы (имена).
Идентификаторы (имена переменных, констант программ, модулей, функций, процедур) записываются с помощью допустимых в Pascal символов и должны удовлетворять следующим правилам:
-
имя должно состоять только из английских букв, цифр и символов подчеркивания (в идентификаторах в Паскале прописные и строчные буквы не различаются);
-
имя может начинаться только с английской буквы или символа подчеркивания.
Слова, употребляемые в большинстве языков программирования, в том числе и Pascal, делятся на три группы: зарезервированные (ключевые) слова; предопределенные имена и идентификаторы, определяемые программистом.
Служебные (зарезервированные, ключевые) слова – это слова языка программирования, которые имеют специальное, раз и навсегда закрепленное за ними значение. В программе нельзя использовать идентификаторы, совпадающие по написанию ключевыми словами (например, нельзя обозначить переменную именем begin).
Ключевые слова языка программирования Паскаль: |
|||
and |
end |
nil |
set |
array |
file |
not |
then |
begin |
for |
of |
to |
case |
function |
or |
type |
const |
goto |
packed |
until |
div |
if |
procedure |
var |
do |
in |
program |
while |
downto |
label |
record |
with |
else |
mod |
repeat |
|
Предопределенные (стандартные) имена также имеют специальный (заранее заданный) смысл. Однако программист может обходить закрепленные за ними значения и использовать их в качестве имен, определяемых программистом. Если программист не определит явно, для каких целей применяется то или иное стандартное имя в программе, оно будет восприниматься в присущем данному имени предопределенном смысле (например, предопределенными являются имена Integer, Writeln и др.).
Пользовательские имена определяются программистом и должны быть явно объявлены в программе.
Десятичные числа всегда начинаются с цифры, перед которой может стоять знак числа, + или -.
Действительные числа изображаются в двух форматах. В формате с фиксированной точкой явно указывают положение десятичной точки (например, 4.505, -16.25, +1.0). В формате с плавающей точкой используется десятичный порядок, обозначаемый прописной или строчной буквой E, после которой идет целое число, указывающее значение порядка, например, 8e10, 1.62e-3, 0.8E+3.
В языке Pascal максимально допустимое целое число равняется 2147483647 (оно содержится в предопределенной целой константе MaxLongInt). Чтобы получить это число достаточно выполнить выражение
writeln(maxlongint);
Диапазон целых чисел от -2147483647 до 2147483647. Предопределенная в Паскале целая константа MaxInt содержит в себе значение 32767
writeln(maxint);
Распространенные компиляторы с Pascal позволяют оперировать действительными числами до 38 порядка, а некоторые – до 67 порядка.
Целое число может задаваться не только в десятичной, но и в шестнадцатеричной системе счисления. Шестнадцатеричному числу предшествует знак $.
Текстовым литералом (строкой) в языке Pascal называют последовательность любых допустимых символов, стоящих между апострофами (например, ‘Hello World!’). Если в качестве символа строки необходимо использовать апостроф, то записывают подряд два апострофа
writeln('Don''t do it')
Строку можно задавать также в виде последовательности, образованной из символов # с последующим цифровым кодом требуемого символа (например, запись #72#73#33 эквивалентна строке 'HI!'). В строковых данных прописные и строчные буквы различаются.
Пробелы являются разделителями. Между любыми именами, числами, ключевыми словами должен стоять, по крайней мере, один разделитель, а может их быть и сколько угодно. Но нельзя отделять один символ от другого внутри имени, числа, либо ключевого слова.