Программирование

Pascal

Из истории
Алгоритмический язык АЛГОЛ был разработан в 1950-х-60-х годах. Паскаль стал «наследником» АЛГОЛа. Его разработчиком был швейцарский ученый Никлаус Вирт, собиравшийся использовать этот язык для обучения своих студентов методом разработки компиляторов. Время рождения языка Паскаль – начало 70-х годов. По сравнению с АЛГОЛом, Паскаль проще и яснее. У него намного лучше возможности обработки данных и имеются  встроенные процедуры ввода/вывода, которых не было в АГОЛе. Турбо Паскаль фирмы Borland является расширением стандарта языка и содержит, кроме того, интегрированную среду, намного ускоряющую и облегчающую процесс разработки программ. Этот программный продукт прошел через 6 версий, прежде чем появился Турбо Паскаль 7.0. 
Турбо Паскаль, в свою очередь, положил начало новой линии продуктов фирмы Borland – Delphi, системе быстрой разработки приложений для Windows. Используемый в Delphi язык программирования Object Pascal сохранил основные черты Турбо Паскаля, обогатившись новыми возможностями. Имеются и другие реализации языка Паскаль, в том числе предназначенные для работы не на персональных компьютерах (как Турбо Паскаль), а на других компьютерных платформах.

Основные сведения о языках программирования

Язык – система знаков.

Язык ЭВМ (машинный язык) – двоичная знаковая система.

Поэтому, чтобы компьютер мог понять написанную программу, она должна быть переведена на язык, понятный компьютеру. Этот процесс перевода называется трансляцией.

Язык – система знаков.

Язык ЭВМ (машинный язык) – двоичная знаковая система.

Поэтому, чтобы компьютер мог понять написанную программу, она должна быть переведена на язык, понятный компьютеру. Этот процесс перевода называется трансляцией.

Основные средства языка

Символы языка это элементарные знаки, используемые при составлении текстов. 

Алфавит языка - набор таких символов. 

Алфавит языка Turbo Pascal 7.0 включает: все латинские прописные и строчные буквы арабские цифры (0 – 9) символы + * / = <> , . ; : ‘ _ ( ) { } и др. служебные зарезервированные) слова.

Арифметические операции

Операция Описание
+ Сложение
- Вычитание
* Умножение
/ Деление
DIV Целочисленное деление
MOD Остаток целочисленного деления

Логические операции

Not – Инверсия. 

And – Конъюнкция (логическое умножение “И” )
Or – Дизъюнкция (логическое сложение “ИЛИ” )
Xor – Поразрядное логическое исключающее ИЛИ.

 

Операции сравнения

Операция Описание Тип результата
= равно логический
<> не равно логический
< меньше логический
> больше логический
<= меньше или равно логический
>= больше или равно логический

 

Основные математические функции

Функция Описание
Abs(x) Абсолютное «х»
Sqr(x) Возведение х2
Sqrt(x) Извлечение квадратного корня из х
Dec(x,[n]) Процедура, уменьшающая “X” на величину “n”, где “n” по умолчанию рано 1 и ее можно не указывать
Inc(x,[n]) Процедура, увеличивающая “X” на величину “n”, где “n” по умолчанию рано 1 и ее можно не указывать
Random(N) Вернет случайное число из диапазона “0…N1”.
Sin(x) Возвращает синус, угол в радианах
Cos(x) Возвращает косинус, угол в радианах
Arctan(x) Возвращает арктангенс, угол в радианах
Trunc(x) Отбрасывает дробную часть
Round(x) Округляет до ближайшего целого
Exp(x) Возвращает экспоненту
Ln(x) Возвращает логарифм натуральный

 

Основные средства языка

Для записи команд, имен функций, поясняющих терминов Turbo Pascal 7.0 существует набор строго определенных слов, которые называются служебными. 

Служебные слова делятся на три группы: 

  • операторы (READ, WRITELN и др.) 
  • имена функций (SIN, COS и др.)
  • ключевые слова (VAR, BEGIN, END и др.)

 

Основные операторы языка Паскаль

сlrscr – очистка экрана

Оператор присваивания   

Имя переменной := выражение;

При этом тип переменной и тип выражения должны быть одинаковыми.

Например, а:=а+2; b:=true; c:=‘*’; d:=4.5;

Операторы ввода

Ввод информации с клавиатуры осуществляется с помощью оператора READ. Когда в программе встречается оператор READ, то её действие приостанавливается до тех пор, пока не будут введены исходные данные.

read (список переменных);                 

read(a,d);     read(a);       read(d);

READLN применяется, когда исполнение программы желательно задержать до нажатия клавиши ENTER.

readln (список переменных);                

readln(a,d);           readln(a); readln(d);

 

Операторы вывода

WRITE (список выражений);

write(a,d);              write(a:5, d:8:3);

writeln (список выражений);

writeln(a,d);           writeln(a); writeln(d); writeln(‘введите данные’);

writeln(‘получен результат ’, Х);

Пример

Оператор WRITE Вывод на экран
WRITE(2*2) 4
WRITE(‘2*2=‘) 2*2=
WRITE(‘2*2=‘, 2*2) 2*2=4

Структура программы

program my_prog;                  {Заголовок программы}

uses   crt;                             {Список используемых модулей}

label   m1;                            {Описание меток}

const n=10;                          {Описание констант}

type   mytype=set of char;       {Описание типов переменных}

var     a:integer; b:boolean;      {Описание переменных}

           d:real;  c:char; i:2..5; m:mytype;

 - - - - - - - - - - - - - - -           {Описание процедур и функций}

         begin

            {тело программы}       {Раздел операторов}

         end.

 

Типы данных

1. Простые типы.

  •    Порядковые типы.
  •    Целые типы: byte, integer, longint.
  •    Логический тип Boolean.
  •    Символьный тип char.
  •    Перечисляемый тип.
  •    Интервальный тип (диапазон).
  •    Вещественные типы: real, double.
  •    Ссылочный тип.

2. Структурированные типы.

  •    Строковый (string).
  •     Регулярный (array).
  •    Комбинированный (record).
  •    Множественный (set).
  •    Файловый (file).

3. Процедурные типы.

 

Geany

Запуск программы

Приложения  → Программирование  → Geany

Окно программы

 
Компиляция программы
После того как текст программы набран, его следует перевести в машинный код. Для этого программу сохраняют и отправляют на компиляцию, выбрав из главного меню меню Сборка пункт Скомпилировать (или F8). Сначала компилятор проверяет, не содержит ли программа синтаксических ошибок. Обнаружив ошибку, останавливает свою работу, устанавливает курсор в то место программы, где найдена ошибка и выводит сообщение жёлтым цветом на красном фоне. Успешная компиляция приводит к появлению сообщения о количестве строк программы и объёме доступной оперативной памяти, появляется надпись "Сборка прошла успешно".
 
Запуск программы
Для того чтобы запустить программу, из главного меню Сборка выбираем пункт Выполнить (или F5). После этого появляется окно, в котором осуществляется диалог с программой. 
 

Условный оператор IF

IF <условие> THEN <оператор 1> 
         ELSE <оператор 2>;
 
При выполнении условия исполняется оператор 1, при невыполнении – оператор 2.
IF <условие> THEN <оператор 1> ELSE <оператор 2>;
 
При выполнении условия исполняется оператор 1, при невыполнении – оператор 2.
 

Оператор варианта case

Если количество разветвлений программы больше двух, то используется оператор вариантов CASE.
Оператор CASE выполняет один из нескольких операторов в зависимости от значения селектора.
Если селектор не совпадает ни с одним из значений, то выполняется оператор после ELSE или следующий после CASE, если ELSE отсутствует.
Селектор может быть целого, символьного, перечисляемого, интервального типа или выражением.
 

Циклы

 
Для организации цикла необходимо выполнить следующие действия:
  1. Задать перед циклом начальное значение параметра цикла;
  2. Изменять параметр перед каждым новым повторением цикла;
  3. Проверять условие повторения цикла;
  4. Управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании

Виды циклов в pascal

 

  • Цикл с параметром – цикл типа FOR (число повторений известно заранее)
  • Цикл с предусловием – цикл типа WHILE (число повторений неизвестно, проверка условия проводится перед циклом
  • Цикл с постусловием – цикл типа REPEAT… UNTIL (число повторений неизвестно, проверка условия проводится после окончания цикла)

 

 

В циклах типов FOR и WHILE тело цикла состоит из одного оператора. Если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки BEGIN.. END, образуя составной оператор.

В цикле типа REPEAT.. UNTIL тело цикла помещается между зарезервированными словами REPEAT и UNTIL, операторные скобки не требуются.

Обработка массивов

 

Массив – структурированный тип данных с элементами одного типа.

Количество элементов определяет размер массива.

Номер элемента массива называется его индексом.

Число индексов называется размерностью массива.

Массив должен быть описан либо в разделе переменных VAR, либо в разделе типов TYPE
 
VAR <имя массива>:<имя типа>;
 
TYPE <имя массива> = ARRAY[t1,t2,…,tn] OF <тип элементов массива>;
 
Например,
Описан массив а действительных чисел, который состоит из 5 элементов
VAR a : array [1..5] of real;
 
Описана матрица b из 3 строк и 4 столбцов, элементы которой являются целыми числами
TYPE t=ARRAY [1..3, 1..4] OF INTEGER;
VAR b : t;
 

Задачи

 
  1. Вывести на экран сообщение «Привет Мир!»
  2. Вывести на экран три числа в порядке, обратном вводу
  3. Вывести на экран квадрат введенного числа
  4. Получить реверсную запись трехзначного числа
  5. Вычислить площадь и периметр  прямоугольника
  6. Вычислить площадь и высоты треугольника
  7. Составить программу, которая при вводе двух целых чисел выведет на экран слово «равны», если числа равны, и слово «неравны» в противном случае.
  8. Если введенное число является четным, то извлечь из него квадратный корень, а если нечетным – возвести в квадрат.
  9. Вычислить наибольшее из значений функций y1=x2+1;  y2=7-x2;  y3=x+1 для любого х.
  10. Решить квадратное уравнение (коэффициенты A, B, C задаются с клавиатуры)
  11. Определим время года по введенному номеру месяца.
  12. Составить программу, расчитывающую количество цифр в целом числе n. Целое число n вводится с клавиатуры.
  13. Определить число n, при котором сумм квадратов натурального ряда чисел от 1 до n не превысит величину к, введенную с клавиатуры.
  14. Составить программу, расчитывающую целую положительную степень действительного основания an.
  15. Вывести на экран кубы чисел от 5 до 11.
  16. Вывести на экран кубы чисел от 11 до 5.
  17. Вычислить сумму чисел от 6 до 10.
  18. Вычислить значение выражения у = 1+1/2+1/3+...+1/20.
  19. Из чисел от 10 до 99 вывести на экран те, сумма цифр которых равна S (0<S<18).
  20. Составить таблицу значений функции y=sin(x) на отрезке [0; 3.14] с шагом 0,1.
  21. Дано натуральное число n. Посчитать количество цифр в числе.
  22. Посчитать сумму  вводимых чисел до первого отрицательного числа.