2012 ВВЕДЕНИЕ В ОСНОВЫ ПРОГРАММИРОВАНИЯ «Я только с теми, кто стеная, ищет истину» Блез Паскаль ( ) PASCAL 1
Темы занятия Знакомство со средой Pascal. Алфавит языка. Типы данных. Стандартные функции для целых и вещественных типов данных. Структура программы. Подключение дополнительных модулей Основные операторы. Программы для вычисления арифметических выражений. Часто используемые эффективные алгоритмы. Операции целочисленного деления. Целочисленная арифметика в линейных алгоритмах.
Развитие семейств языков 3 VISUAL BASICС++ Object Pascal Среда Delphi BASIC QBASIC PASCALС VISUAL PASCAL Среда Borland Pascal Среда Free Pascal 3
1. Отвечает требованиям структурного программирования Позволяет строить программу из отдельных блоков. применяются три управляющие конструкции: следование, выбор, повторение; структура программы отражает структуру данных; на первом этапе проводится проектирование программы, а на втором её написание. 2. Строго типизированный язык Содержит полный набор структурных типов данных, а также развитые средства построения из них новых типов данных. Основные достоинства языка Pascal 4 4
Паскаль популярен среди программистов по следующим причинам: Прост для обучения. Отражает фундаментальные идеи алгоритмов в легко воспринимаемой форме. Позволяет четко реализовать идеи структурного программирования и структурной организации данных. Использование простых и гибких структур управления: ветвлений, циклов. Надежность разрабатываемых программ. 5
Среда Free Pascal меню возможных режимов работы справка о назначении основных функциональных клавиш имя файла закрыть текущее окно номер текущего окна 6
Окно просмотра результатов Для выхода из него надо нажать клавишу Esc. 7
Комбинации с клавишами функциональные клавиши F1 – F12 и ALT, CTRL и SHIFT. Alt+ Enter – большой (маленький экран) Ctrl+F9 – запуск программы на выполнение Alt + 0 – список открытых файлов Alt + – быстрый доступ к открытым файлам F8 – для выполнения программы по строкам F9 – компиляция + проверка Ctrl+F9 – запуск 8
Алфавит языка Паскаль. 1.строчные и прописные латинские буквы, 2.арабские цифры, 3._ подчеркивание, 4.знаки операций: символьные + - * / = = буквенные mod, div, not 5.знаки пунктуации:., ' ( ) [ ] (..) { } (* *).. : ; 6.спецификаторы: ^ # $ 7.служебные слова. ПАСКАЛЬ включает следующий набор основных символов:
Идентификатор Идентификатор - это имя любого объекта языка, не должен начинаться с цифры. разделителямпробел комментарий К разделителям относятся, например, пробел и комментарий. комментарии Для пояснений можно делать комментарии, которые не влияют на ход программы. Комментарии Комментарии заключаются в фигурные скобки фигурные скобки { комментарий }, символы Неиспользуемые символы символы (* комментарий *). Неиспользуемые символы – те, которые можно использовать только в комментариях. К ним относятся все русские буквы, а также символы %, &, !.
В ЯП высокого уровня программа - это перечень действий, команд. Команда алгоритма, записанная на ЯП, называется оператором. Константа - это постоянная величина, значение которой не изменяется в процессе работы программы. Переменная – величина, которая в процессе выполнения программы может менять свое значение по необходимости. 11
Объявление идентификаторов Однозначность операций над данными Операции с данными ОПРЕДЕЛЕНИЕ ТИПА ДАННЫХ ИДЕНТИФИКАЦИЯ ПЕРЕМЕННЫХ ПЕРЕМЕННЫХ ЗАДАНИЕЗНАЧЕНИЙ Работа с данными 12 Синтаксис: Var : ; Тип данных это характеристика идентификатора, определяющая множество значений, которые он может принимать (целые или дробные числа, строки и т. д.). Процедура ввода информации с клавиатуры : Read или ReadLn. Оператор присваивания := Var x: byte; readln(a,b,c);
Описание некоторых типов переменных Символьные: Var x: char; для переменных, содержащих 1 символ Строковые: Var x:string; для переменных, содержащих текст Целые числа: Var x: integer; для переменных, содержащих целые числа Вещественные числа: Var x: real; для переменных, содержащих вещественные числа
Простые типы: одна переменная одно значение. Структурированные типы: одна переменная несколько значений. Типы данных 14 Простые Структурированные Логические (boolean) Символьные (char) Перечисляемые Интервальные Строковый (string) Регулярный (array) Комбинированный (record) Множественный (set) byte, shortint, integer, word, longint real, single, double, extended, comp Файловый (file) Целые Вещественные 14
Арифметические операции: +,, * div вычисляет целую часть от частного, дробная откидывается. 10 div 3=3; 2 div 3=0; mod вычисляет остаток, полученный при делении. 11 mod 5 = 1; 14 mod 5 = 4; Операции с целыми переменными 15
Стандартные функции: Pi, Sqrt, Sin, Cos, Abs, Exp, Ln. вычисление дробной части числа Frac(5.67)=0.67 вычисление целой части числа Int(5.67)=5.0E+00 округление вещественного числа до ближайшего целого Round(5.67)=6 отбрасывание дробной части числа Trunc(5.67)=5 Арифметические операции: Sqr, +, -, *, / Операции с вещественными переменными 16 вещественный вещественный: Frac, Int ; вещественный целый: Round, Trunc.
Структура программы. program имя_программы; uses - подключение модулей сonst - раздел описания констант var - раздел описания переменных begin Тело программы end. ОПЕРАТОРНЫЕ СКОБКИ
Имя программы, имена переменных Начинаются с буквы Без пробелов Могут содержать латинские буквы Цифры (начиная со второй позиции) символ подчеркивания (вместо пробелов)
Модуль расширяет возможности программ путём введения дополнительных операторов, стандартных процедур и функций. Пример включения стандартных модулей: uses crt, dos, graph, printer. Очистка текстового экрана. Ожидание нажатия на клавишу. Подключённый модуль с именем CRT. Подключение дополнительных модулей 19
Оператор ввода исходных данных. Происходит с помощью оператора read и readln: Вид команды: read (список переменных); readln (список переменных); Разница между операторами лишь в том, что readln перемещает курсор на начало новой строки, а read нет.
Вывод результатов Происходит с помощью оператора write и writeln: Вид команды: write (список вывода); writeln (список вывода); Разница между операторами лишь в том, что writeln перемещает курсор на начало новой строки, а write нет.
Пример: Writeln('Мне16лет'); На экране появится: Мне 16 лет a:=11; Writeln('Я учусь в ', а,' классе'); На экране появится: Я учусь в 11 классе х:=3;у:=6; Writeln(х+у,' рублей'); На экране появится: 9 рублей 22
Команда присваивания используется для изменения значений переменных, в языке Паскаль эта команда обозначается так: := ; Тип значение выражения должен совпадать с типом переменной. Пример: а:=2; b:=8; S:=а+b; После выполненных последовательно данных трех команд переменная S принимает значение равное 10.
ЗАДАЧА Найти произведение двух целых чисел. Решение: 1.Вводим два целых числа с клавиатуры. 2.Вычисляем их произведение. 3.Выводим результат на экран. Program N2; Var a, b :Integer;p: Longint; Begin Writeln(' Введите два числа '); Readln(а,b); р:=а*b; Writeln (' произведение ', а,' и ', b,' равно', р); Readln; End.
25 Нельзя использовать с целыми типами / Sqrt() 25
26 var x: integer; y: real; begin x:=4; y:=sqrt(x); writeln(y); end. ПРИМЕР На экране: E+000 Если writeln(y:6:0), то на экране: 2 Найти квадратный корень числа 4.
ЗАДАЧА Составить программу, которая запрашивает у пользователя два целых числа и выводит квадрат суммы (а+b) 2 и сумму квадратов а 2 +b 2 этих чисел. Пример работы программы: Введите два числа а=5 b=2 квадрат суммы 3 и 2 равен 25 сумма квадратов 3 и 2 равна 13
ПРОДОЛЖЕНИЕ СЛЕДУЕТ!
Интерфейс включает в себя: Интерфейс среды Pascal 29 многооконный текстовый редактор; компилятор, компоновщик программ; отладчик программ; систему помощи. Турбо Паскаль относится к компиляторным языкам. 29
Теперь попробуем написать и запустить простейшую диалоговую программу. Вывести на экран: Моя первая программа на Паскале! program one; begin write ( 'Моя первая программа на Паскале! '); end. Написать write и writeln посмотреть, что происходит с курсором.
Исправить программу добавив новые операторы: program one; uses crt; подключение модулей begin clrscr; очистка экрана write (' Моя первая программа на Паскале !'); readkey; задержка экрана end
Исправить программу добавив новые операторы: program one; uses crt; подключение модулей Var x: string; begin clrscr; очистка экрана writeln (Я суперкомпьютер! Как тебя зовут?'); Readln(x); write ( Привет,, x); readkey; задержка экрана end.
Конечный набор возможных значений Выход за пределы диапазона приводит к ошибке. Целый и вещественный типы данных 34 Тип Диапазон значений byte 0…255 shortint 128…127 word 0…65535 integer 32768…32767 longint … Тип Диапазон десятичного порядка real 39…+38 single 45…+45 double 324…+308 extended 4932…+4932 comp 263+1…
Меню File-New Для открытия нового окна. 35
Меню File-Open Для открытия существующего файла 36
Меню File-Save и File-Save as Сохранение нового файла или файла после корректировки. 37
Меню File-Exit Для выхода из среды. 38
Меню RunRun Запускает программу. 39
1.Через функцию ReadKey для чтения первого байта из очереди нажатий на клавишу. 2.Через процедуру ввода Read(Ln) 3. Через оператор присваивания :=. Тип переменной должен совпадать с типом вводимых значений для этой переменной. Ввод данных с клавиатуры в текстовом режиме: Ввод данных 40 Ввод данных с клавиатуры непосредственно в программе: 40
:= Для задания значения переменной необходимо воспользоваться оператором присваивания := := ; В переменную (целочисленную) А 3 с именем А заносится значение 3. Синтаксис: Операторы присваивания 41
« Пустой» оператор WriteLn добавляет пустую строку. Вывод информации на монитор обеспечивает процедура вывода: Write или WriteLn. Синтаксис: Write (N1, N2, … Nn); N1, N2, … Nn переменные (целые, вещественные, строковые). WriteLn перемещает курсор на следующую строку. Вывод информации на экран 42
ЗначениеВыражениеРезультат 5671 Write(I,I); (вывод на экран содержимого ячейки I два раза) Write(I:6); (выводит значение I в крайние правые позиции полей шириной равной 6) Write(I+I:3); (cодержимое I удваивается, и результат выводится c 3 позиции) 624 7,154Е+2 Write(I:6:1); (6 задаёт количество позиций под всё число, включая фиксированную точку; 1 задаёт количество позиций под дробную часть числа) Write(Сумма=); (текст обрамляется апострофами) Сумма = Форматы вывода 43
Синтаксис: GotoXY(X,Y:Integer); X, Y координата знако-места на экране. Program My_program; {Подключение модуля} Uses Crt; Begin {Очистка экрана} ClrScr; {Вывод данных} GotoXY(1, 1); write(''); GotoXY(80, 1); write(''); GotoXY(1, 25); write(''); GotoXY(80, 25); write(''); {Задержка экрана} ReadKey; End. Программа выводит по углам экрана символ «» (ASCII-код 177). 80 пикс. 25 пикс. Система координат в текстовом режиме Вывод в произвольное место экрана 44
TextColor(Color); Определяет цвет символов. TextBackground(Color); Определяет цвет знако-места. Program MyProgram; Uses Crt; Begin TextColor(Red); TextBackGround(Blue); Write('На дворе '); TextColor(White); Write('трава, '); TextColor(Green); TextBackGround(Yellow); Write('на траве '); TextBackGround(Magenta); Write('дрова.'); End Вывод в цвете 45 Константы цвета модуля CRT Black– чёрный Blue– синий Green– зелёный Cyan– циановый Red– красный Magenta– сиреневый Brown– коричневый LightGray– светло-серый DarkGray– тёмно-серый LightBlue– голубой LightGreen – светло-зелёный LightCyan – светло-циановый LightRed– розовый LightMagenta– светло-сиреневый Yellow– жёлтый White– белый 45
46