Содержание
- 2. 2 Алгоритмизация и введение в программирование 50 Блок-схема отличается следующим: каждому действию соответствует определенный вид фигуры
- 3. 2 Алгоритмизация и введение в программирование 51 пример блок-схемы
- 4. 2 Алгоритмизация и введение в программирование 52 В 1977 году математики Бем и Якопини доказали, что
- 5. 2 Алгоритмизация и введение в программирование 53 Условные операторы в наших примерах звучат как: если то
- 6. 2 Алгоритмизация и введение в программирование 54 В зависимости от последовательности выполнения действий в алгоритме выделяют
- 7. 2 Алгоритмизация и введение в программирование 55 В алгоритмах разветвленной структуры в зависимости от выполнения или
- 8. 2 Алгоритмизация и введение в программирование 56 В алгоритмах циклической структуры в зависимости от выполнения или
- 9. 2 Алгоритмизация и введение в программирование 57 Цикл со счетчиком
- 10. 2 Алгоритмизация и введение в программирование 58 2.4 Понятие алгоритмического языка Языки программирования (алгоритмические языки) –
- 11. 2 Алгоритмизация и введение в программирование 59 Языки программирования высокого уровня машинно-независимы, т.к. они ориентированы не
- 12. 2 Алгоритмизация и введение в программирование 60 Еще один вид классификации языков программирования определяется существующей методологией
- 13. 2 Алгоритмизация и введение в программирование 61 2.5 Основные понятия императивного языка программирования Обычный разговорный язык
- 14. 2 Алгоритмизация и введение в программирование 62 Методология императивного программирования – это исторически первая поддерживаемая аппаратно
- 15. 2 Алгоритмизация и введение в программирование 63 ::= | ::= | ::= | | ::= :=
- 16. 3 Основы программирования на языке Паскаль 64 Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль.
- 17. 3 Основы программирования на языке Паскаль 65 Структура программы Программа на Borland Pascal состоит из трех
- 18. 3 Основы программирования на языке Паскаль 66 Program example; {заголовок программы} {раздел описаний} Var a,b :
- 19. 3 Основы программирования на языке Паскаль 67 Программы на языке Паскаль имеют блочную структуру: 1. Блок
- 20. 3 Основы программирования на языке Паскаль 68 Алфавит языка программирования TURBO Pascal 7.0 включает: строчные и
- 21. 3 Основы программирования на языке Паскаль 69 служебные слова (эти сочетания считаются единым целым и их
- 22. 3 Основы программирования на языке Паскаль 70 Константы и переменные. Типы переменных Все данные, с которыми
- 23. 3 Основы программирования на языке Паскаль 71 Например, 'А', либо в виде соответствующих кодов по таблице
- 24. 3 Основы программирования на языке Паскаль 72 Константы используются в трех формах: как литералы, как поименованные
- 25. 3 Основы программирования на языке Паскаль 73 типизированные константы представляют собой переменные, объявленные в разделе Const
- 26. Простые Стандартные Действительный (вещественный) Целый Символьный Логический Нестандартные (переменные) Перечисляемый Ограниченный структурные Массив Запись Множество Типы
- 27. 3 Основы программирования на языке Паскаль 75 Простые (скалярные) типы описывают упорядоченные наборы значений. Они делятся
- 28. 3 Основы программирования на языке Паскаль 76 Таблица 1 – Целые типы данных
- 29. 3 Основы программирования на языке Паскаль 78 Перечисляемый тип формируется из значений, определенных программистом при объявлении
- 30. 3 Основы программирования на языке Паскаль 79 Вещественные типы используют для представления чисел, содержащих дробную часть.
- 31. Простые типы (стандартные) Таблица 2 - Вещественные типы данных Real, Single, Double тип диапазон значений требования
- 32. 3 Основы программирования на языке Паскаль 81 Компьютер, по умолчанию, представляет действительные числа в виде чисел
- 33. 3 Основы программирования на языке Паскаль 82 Строковый тип (string) Значением строковой величины является строка переменной
- 34. 3 Основы программирования на языке Паскаль 83 Пример программы с описаниями данных различных типов: Program TipDann;
- 35. 3 Основы программирования на языке Паскаль 84 Выражения Все вычисления и другие преобразования данных в программе
- 36. 3 Основы программирования на языке Паскаль 85 логические операции: and (и), or (или), хог (исключающее или),
- 37. 3 Основы программирования на языке Паскаль 86 Таблица 3 – Приоритеты операций
- 38. 3 Основы программирования на языке Паскаль 87 Для изменения порядка выполнения операций в выражении используют круглые
- 39. 3 Основы программирования на языке Паскаль 88 Для получения при делении целых значений результата с точностью
- 40. 3 Основы программирования на языке Паскаль 89 I Арифметические функции 1) Abs(x), где аргумент и результат
- 41. 3 Основы программирования на языке Паскаль 90 II Функции преобразования типов 1) Chr(x), где аргумент типа
- 42. 3 Основы программирования на языке Паскаль 91 IV Процедуры для порядковых типов 1) Dec(x), где аргумент
- 43. 3 Основы программирования на языке Паскаль 92 Примеры записи формул
- 44. 3 Основы программирования на языке Паскаль 93 Комментарии к примерам 1) Из-за отсутствия операции возведения в
- 45. 3 Основы программирования на языке Паскаль 94 Оператор присваивания a := b; С помощью оператора присваивания
- 46. 3 Основы программирования на языке Паскаль 95 При несовпадении типов правой и левой частей оператора присваивания
- 47. 3 Основы программирования на языке Паскаль 96 Операторы Write и WriteLn Мы уже использовали операторы Write
- 48. 3 Основы программирования на языке Паскаль 97 Операторы Read и ReadLn Вспомним, что основное назначение ЭВМ
- 49. 3 Основы программирования на языке Паскаль 98 Блок-схема к примеру 1 Блок-схема к примеру 2
- 50. 3 Основы программирования на языке Паскаль 100 Программа для примера 1 Program primer_1; Uses Crt; Var
- 51. 3 Основы программирования на языке Паскаль 99 Программа для примера 2 Program primer_2; Uses Crt; Const
- 53. Скачать презентацию
2 Алгоритмизация и введение в программирование 50
Блок-схема отличается следующим:
каждому действию
2 Алгоритмизация и введение в программирование 50
Блок-схема отличается следующим:
каждому действию
внутри фигур записываются формулы или краткая инструкция;
фигуры соединяются линиями со стрелками, которые называются линиями потока и указывают направления перехода от одной операции к другой. Причем, если выбирается направление вниз или вправо, то стрелки можно не ставить;
фигуры или блоки в блок-схемах могут иметь номера, проставляемые слева в разрыве верхней линии;
линии потока не должны пересекаться, поэтому при необходимости используются соединители – элементы с буквой или цифрой внутри.
Конфигурация элементов схем определена
ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем»
2 Алгоритмизация и введение в программирование 51 пример блок-схемы
2 Алгоритмизация и введение в программирование 51 пример блок-схемы
2 Алгоритмизация и введение в программирование 52
В 1977 году математики
2 Алгоритмизация и введение в программирование 52
В 1977 году математики
Последовательное выполнение операций - следование;
Ветвление алгоритма на группы операций в зависимости от выполнения некоторых условий - ветвление;
Циклическое многократное выполнение группы операций до выполнения некоторого условия, формируемого в процессе вычислений - цикл.
Соответствующие операторы в записи алгоритмов называются условными операторами и операторами циклов (следование не имеет специального оператора и выражается просто последовательной записью инструкций вычисления, ввода, вывода).
2 Алгоритмизация и введение в программирование 53
Условные операторы в наших
2 Алгоритмизация и введение в программирование 53
Условные операторы в наших
если <условие выполнено> то последовательность операций иначе другая последовательность операций.
Операторы циклов в описаниях на естественном языке мы формулируем словами:
1. "Пока истинно некоторое условие - повторять заданные действия" (цикл с предусловием);
2. "Повторять заданные действия пока ложно некоторое условие" (цикл с постусловием);
3. "Повторять заданные действия N раз" (цикл со счетчиком).
2 Алгоритмизация и введение в программирование 54
В зависимости от последовательности
2 Алгоритмизация и введение в программирование 54
В зависимости от последовательности
В алгоритмах линейной структуры действия выполняются последовательно одно за другим:
2 Алгоритмизация и введение в программирование 55
В алгоритмах разветвленной структуры
2 Алгоритмизация и введение в программирование 55
В алгоритмах разветвленной структуры
2 Алгоритмизация и введение в программирование 56
В алгоритмах циклической структуры
2 Алгоритмизация и введение в программирование 56
В алгоритмах циклической структуры
2 Алгоритмизация и введение в программирование 57
Цикл со счетчиком
2 Алгоритмизация и введение в программирование 57
Цикл со счетчиком
2 Алгоритмизация и введение в программирование 58
2.4 Понятие алгоритмического языка
Языки
2 Алгоритмизация и введение в программирование 58
2.4 Понятие алгоритмического языка
Языки
Наиболее общей классификацией языков программирования является по степени зависимости от машинного языка:
Машинно-зависимые – машинные, машинно-ориентированные – низкий уровень
Машинно-независимые – процедурные, проблемные – высокий уровень
Машинно-зависимые языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, адресности, структуры памяти и т.д.).
Машинный язык – это система команд компьютера. Программы, написанные на машинном языке не требуют компиляции. Пример фрагмента программы для трехадресной ЭВМ:
код операции адрес 1-го операнда адрес 2-го операнда адрес результата
001 0 0 1 1 0 1 1 0 0 1 0 1
Машинно-ориентированные языки - языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена, например:
ADD 1, B
2 Алгоритмизация и введение в программирование 59
Языки программирования высокого уровня
2 Алгоритмизация и введение в программирование 59
Языки программирования высокого уровня
В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.
Проблемно-ориентированные языки предназначены для пользователей-непрограммистов и направлены для решения узкого круга задач. На них определяется что делать, а не как это делать.
К непроцедурному программированию относятся функциональные и логические языки
2 Алгоритмизация и введение в программирование 60
Еще один вид классификации
2 Алгоритмизация и введение в программирование 60
Еще один вид классификации
методология императивного программирования
языки программирования: FORTRAN (1954), ALGOL (1960) , PASCAL (1972) , C (1974)
методология объектно-ориентированного программирования
языки программирования: Simula (1962), Smalltalk (1972), C++ (1983), Object Pascal (1984), Java (1995), C# (2000)
методология функционального программирования
языки программирования: LISP (1958), Refal (1968), Miranda (1985), F# (2008)
методология логического программирования
языки программирования: PROLOG (1971)
методология программирования в ограничениях
языки программирования: УТОПИСТ (1980), IDEAL (1981), OPS5 (1987)
Ядра методологий определяются способом описания алгоритма.
2 Алгоритмизация и введение в программирование 61
2.5 Основные понятия императивного
2 Алгоритмизация и введение в программирование 61
2.5 Основные понятия императивного
Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания - выражениями, предложения - операторами. Алгоритмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
Синтаксис - правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
Семантика - система правил толкования конструкций языка.
Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики.
2 Алгоритмизация и введение в программирование 62
Методология императивного программирования –
2 Алгоритмизация и введение в программирование 62
Методология императивного программирования –
Основным синтаксическим понятием является оператор. Первая группа – атомарные или простые операторы, у которых никакая их часть не является самостоятельным оператором, например оператор присваивания, оператор перехода, оператор вызова процедуры.
Вторая группа – структурные (составные) операторы, объединяющие другие операторы в новый, более крупный оператор, например, составной оператор, оператор цикла, операторы выбора.
Для описания синтаксиса языка программирования будет использована расширенная система обозначений Бэкуса-Наура. В ней одни понятия определяются через другие последовательно. Основные понятия заключаются в угловые скобки.
Символ ::= означает «определяется как»
Символ | означает «или»
Символ * означает «произвольное количество повторений (в том числе ноль раз) того символа, за которым он указан»
Символы, указанные в квадратных скобках, являются необязательными.
2 Алгоритмизация и введение в программирование 63
<оператор>::= <простой оператор> |
2 Алгоритмизация и введение в программирование 63
<оператор>::= <простой оператор> |
<простой оператор> ::= <оператор присваивания>|
<оператор вызова >
<структурный оператор> ::= <оператор последовательного исполнения>| <оператор ветвления>|<оператор цикла>
<оператор присваивания> ::= <переменная>:=<выражение>
<оператор вызова > ::= <имя подпрограммы>[(<параметр> * )]
<оператор последовательного исполнения> ::= begin <оператор> * end
<оператор ветвления> ::= if <логическое выражение> then <оператор>* [ else <оператор> *]
<оператор цикла> ::= while <логическое выражение> do <оператор>
3 Основы программирования на языке Паскаль 64
Язык программирования Паскаль. Знакомство
3 Основы программирования на языке Паскаль 64
Язык программирования Паскаль. Знакомство
Паскаль – язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан в 1968–1971 гг. Никлаусом Виртом. Первоначально был разработан для обучения, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.
Турбо Паскаль – это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования – это отражение торговой марки фирмы-разработчика Borland International (США).
Систему программирования Турбо Паскаль называют интегрированной (integration – объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности.
Основные файлы Турбо Паскаля:
Turbo.exe – исполняемый файл интегрированной среды программирования;
Turbo.hlp – файл, содержащий данные для помощи;
Turbo.tp – файл конфигурации системы;
Turbo.tpl – библиотека стандартных модулей, в которых содержатся встроенные процедуры и функции (SYSTEM, CRT, DOS, PRINTER, GRAPH, TURBO3, GRAPH3).
3 Основы программирования на языке Паскаль 65
Структура программы
Программа на
3 Основы программирования на языке Паскаль 65
Структура программы
Программа на
заголовка,
раздела описаний,
раздела операторов.
Заголовок программы не является обязательным, он состоит из служебного
слова program и идентификатора - имени программы.
Р а з д е л о п и с а н и й содержит описания всех используемых программой
ресурсов (полей данных, подпрограмм и т.д.).
Р а з д е л о п е р а т о р о в заключается в так называемые операторные
скобки begin ...end и заканчивается точкой.
Между операторными скобками записывают управляющие операторы программы, которые разделяют специальным знаком - точкой с запятой «;». Если точка с запятой стоит перед end, то считается, что после точки с запятой стоит «пустой» оператор.
В тексте программы возможны комментарии, которые помещают в
фигурные скобки.
Посмотрим, как выглядит Pascal программа, которая реализует алгоритм Евклида для определения наибольшего общего делителя двух чисел а и в:
3 Основы программирования на языке Паскаль 66
Program example; {заголовок программы}
{раздел
3 Основы программирования на языке Паскаль 66
Program example; {заголовок программы}
{раздел
Var a,b : integer; {объявление переменных}
{раздел операторов}
Begin
Write ('Введите два натуральных числа:') ;
{запрашиваем ввод данных}
Readln(a,b); {вводим значения}
while a<>b do {цикл-пока а ≠b}
if a>b then a:=a - b {если a>b, тогда a:=a-b} else b:= b - a;
{иначе b:=b-a}
Writeln(‘Hauбoльшuй общий делитель равен ‘,a);
{выводим результат}
End. {конец программы}
3 Основы программирования на языке Паскаль 67
Программы на языке Паскаль
3 Основы программирования на языке Паскаль 67
Программы на языке Паскаль
1. Блок типа PROGRAM – имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.
2. Блок описаний состоит в общем случае из 7 разделов:
раздел описания модулей (uses);
раздел описания меток (label);
раздел описания констант (const);
раздел описания типов данных (type);
раздел описания переменных (var);
раздел описания процедур и функций;
3. Операторный блок, который содержит раздел описания операторов.
Общая структура программы на языке Паскаль следующая:
Рrogram ИМЯ..; {заголовок программы}
Uses ...; {раздел описания модулей}
Var ..; {раздел объявления переменных}
...
Begin {начало исполнительной части программы}
... {последовательность
... операторов}
End. {конец программы}
3 Основы программирования на языке Паскаль 68
Алфавит языка программирования TURBO
3 Основы программирования на языке Паскаль 68
Алфавит языка программирования TURBO
строчные и прописные буквы латинского алфавита (a..z, A..Z) и знак подчеркивания ( _ ), который также во многих случаях считается буквой;
цифры (0...9);
специальные знаки, состоящие из одного и более символов:
знаки арифметических операций : + - * / mod div
служебные знаки: = : < > [ ] $ # ; { } ( ) ‘ @ := (* *) . ,
знаки операций отношения: <= >= = > < <>
знаки логических операций: not and or xor
3 Основы программирования на языке Паскаль 69
служебные слова (эти сочетания считаются
3 Основы программирования на языке Паскаль 69
служебные слова (эти сочетания считаются
3 Основы программирования на языке Паскаль 70
Константы и переменные. Типы
3 Основы программирования на языке Паскаль 70
Константы и переменные. Типы
Все данные, с которыми оперирует программа на Pascal, должны быть описаны.
Все объекты программы – переменные, константы, функции, процедуры, типы, модули имеют имена, которые называются идентификаторами.
Идентификаторы образуются из букв и цифр (к буквам относится и знак подчеркивания). Первый символ – обязательно буква.
Запоминаются первые 63 символа. Регистр символа не имеет значения.
Поэтому SUMMA, summa, Summa – это одно и тоже имя.
Данные в программе могут присутствовать в виде констант и переменных.
Константы.
Константы определяются один раз и не изменяются во время
выполнения программы. Используют следующие типы констант :
целые и вещественные десятичные числа, например, 25, 6.12,
0.125е10 (см. примечание);
шестнадцатеричные числа - должны начинаться со знака «$»,
например, $64;
логические константы - true (истина) и false (ложь);
символьные константы - записываются либо в апострофах,
3 Основы программирования на языке Паскаль 71
Например, 'А', либо в
3 Основы программирования на языке Паскаль 71
Например, 'А', либо в
строки символов - записываются в апострофах, например 'ABCD';
конструкторы множеств [3,6,8] ;
«нулевой» адрес - nil
Примечания. 1. В программировании принято при записи вещественных чисел вместо запятой для разделения целой и дробной частей числа использовать точку.
2. Обычно при записи в программе или выполнении операций ввода-вывода вещественные числа записывают в так называемом формате с фиксированной точкой, указывая в начале целую часть числа, а затем, после точки, дробную, например: 0.5, -3.85 . Но иногда бывает удобно задавать числа в формате с плавающей точкой, т.е. в виде мантиссы и порядка. При этом мантиссу записывают перед порядком и отделяют от него строчной или прописной латинской буквой «е»,
например: запись 1.5е-10 соответствует значению 1,5 х 10 ^ (-10), а запись 0.5Е23 соответствует значению 0,5x10^23.
3 Основы программирования на языке Паскаль 72
Константы используются в трех
3 Основы программирования на языке Паскаль 72
Константы используются в трех
Литерал представляет собой значение константы, записанное непосредственно в программе (например, в выражении
2+5.1*х использованы два литерала «2» и «5.1»).
Поименованные константы объявляются в инструкции раздела описаний const. Обращение к ним осуществляется по имени (идентификатору).
Например;
Const min=23; мах=45; {десятичные константы}
a16=$А0; {шестнадцатеричная константа}
Ch1 = #94; ch2 = ‘a’; {символьные константы}
stroka= ‘end’ ; {строковая константа}
V=[3,6,8..9]; {конструктор множества}
3 Основы программирования на языке Паскаль 73
типизированные константы представляют собой
3 Основы программирования на языке Паскаль 73
типизированные константы представляют собой
Const k : integer = 10;
a : array[1..4] of real=(2.5, -7.96, 7.54, 32.89);
Переменные. Переменные - поименованные объекты программы, которые могут изменяться в процессе выполнения программы.
Их объявление также выполняют в разделе описаний программы, причем при этом указывается не только идентификатор переменной, но и ее тип. Обращение к переменным также осуществляют по идентификатору.
Тип переменной определяет возможный набор значений данной переменной, размер ее внутреннего представления и множество операций, которые могут выполняться над переменной.
На рисунке показана классификация типов
Простые
Стандартные
Действительный
(вещественный)
Целый
Символьный
Логический
Нестандартные
(переменные)
Перечисляемый
Ограниченный
структурные
Массив
Запись
Множество
Типы данных
Файл
3 Основы программирования на языке Паскаль 74
Классификация типов
Простые
Стандартные
Действительный
(вещественный)
Целый
Символьный
Логический
Нестандартные
(переменные)
Перечисляемый
Ограниченный
структурные
Массив
Запись
Множество
Типы данных
Файл
3 Основы программирования на языке Паскаль 74
Классификация типов
3 Основы программирования на языке Паскаль 75
Простые (скалярные) типы описывают
3 Основы программирования на языке Паскаль 75
Простые (скалярные) типы описывают
Группа порядковых типов объединяет типы переменных, набор значений которых конечен, группа вещественных типов - типы с условно бесконечным набором значений.
Порядковые типы переменных делятся на стандартные, перечисляемые и диапазоны. Стандартно заданы следующие типы:
целые типы (представлены в табл. 1);
булевский тип Boolean включает только два значения - false (0) и true (1), но в памяти значения данного типа занимают целый байт. Логический тип данных часто называют булевым по имени английского математика Д. Буля, создателя математической логики. В языке Паскаль имеются две логические константы TRUE и FALSE. Логическая переменная принимает одно из этих значений и имеет тип Boolean. Для сравнения данных предусмотрены следующие операции отношений: <, <=, =, <>, >, >=. А также существуют специфичные для этого типа логические операции OR - или; AND - и; NOT - не. При проверке некоторых условий результат операции может быть истинным или ложным. Например, 3>5 ложь.
символьный тип Char Значениями данного типа является множество всех символов по таблице ASCII : русская или латинская большая или маленькая буква, цифра, знак препинания, специальный знак (например, "+", "-", "*", "/", "", "=" и др.) или пробел " ". Каждый из символов имеет уникальный номер от 0 до 255, т. е. внутренний код, который возвращает функция ORD. Символьная константа или символьная переменная - любой символ языка, заключённый в апострофы. Например,
Var Simvol : char;
Нестандартные порядковые типы необходимо описывать при объявлении переменных: перечисляемый и диапазон.
3 Основы программирования на языке Паскаль 76
Таблица 1 – Целые типы
3 Основы программирования на языке Паскаль 76 Таблица 1 – Целые типы
3 Основы программирования на языке Паскаль 78
Перечисляемый тип формируется из
3 Основы программирования на языке Паскаль 78
Перечисляемый тип формируется из
при объявлении типа. Перечень значений задают, через запятую в круглых скобках, например:
Var D : (Mon, The, Wed, Thu, Fr, Set, Sun); ...{переменная D может принимать только указанные значения}
Примечание. Во внутреннем представлении значения перечисляемого типа кодируются целыми числами, начиная с нуля. Tак, идентификатору Моn будет соответствовать О, The – 1 и т. д.
Объявляя переменную перечисляемого типа, можно сначала определить новый тип, а затем уже переменную этого типа, например:
Туре Day=(Mon, The, Wed, Thu, Fr, Set, Sun); {объявление нового типа}
Var D: Day;.., {объявление переменной данного типа}
Тип переменной диапазон определяется как диапазон значений некоторого уже определенного ранее или стандартного порядкового типа. При его описании также можно использовать конструкцию объявления типа, например:
Туре Data=1..31; {диапазон одного из целых типов}
Var DataN : Data;..,
или, не описывая тип отдельно, ту же переменную можно объявить следующим образом:
Var DataN :1..31; letter : ‘A’ .. ‘K’ ;
3 Основы программирования на языке Паскаль 79
Вещественные типы используют для
3 Основы программирования на языке Паскаль 79
Вещественные типы используют для
Количество разрядов для записи порядка числа определяет диапазон чисел, для представления которых можно использовать разрядную сетку данного типа. В табл. 2 приведены характеристики вещественных типов Turbo Pascal.
Простые типы (стандартные)
Таблица 2 - Вещественные типы данных Real, Single, Double
тип
Простые типы (стандартные)
Таблица 2 - Вещественные типы данных Real, Single, Double
тип
в байтах
Real ± 2.9*10-39 – ± 1.7*1038 6
Single ± 1.5*10-45 – ± 3.4*1038 4
Double ± 5.0*10-324 – ± 1.7*10308 8
3 Основы программирования на языке Паскаль 80
3 Основы программирования на языке Паскаль 81
Компьютер, по умолчанию, представляет
3 Основы программирования на языке Паскаль 81
Компьютер, по умолчанию, представляет
R:m:n, где R – действительное число, m – количество позиций, отводимых для всего числа, n – количество позиций, отводимых для дробной части.
Например, если мы хотим вывести на экран число Chislo с фиксированной точкой, причем знаем, что для вывода этого числа достаточно 7 мест, а вывод дробной части ограничим сотыми, то мы запишем вывод так:
Write (Chislo:7:2);
3 Основы программирования на языке Паскаль 82
Строковый тип (string)
Значением строковой
3 Основы программирования на языке Паскаль 82
Строковый тип (string)
Значением строковой
Var Stroka : string[20];
3 Основы программирования на языке Паскаль 83
Пример программы с описаниями
3 Основы программирования на языке Паскаль 83
Пример программы с описаниями
Program TipDann;
Uses Crt
Var
Chislo1 : Integer;
Chislo2 : Real;
Simvol : Char;
Stroka : String;
Logika : Boolean;
Begin
ClrScr;
Chislo1 : =12;
Chislo2 : =Chislo1*2;
Chislo2 : =Chislo2/5;
Simvol : =‘d’;
Stroka : =‘Строчка’;
Logika : = Chislo1> Chislo2;
WriteLn (‘Вывод значений:’);
WriteLn (‘Значение переменной Chislo1 : ’,Chislo1);
WriteLn (‘Значение переменной Chislo2 : ’,Chislo2:5:2);
WriteLn (‘Значение переменной Simvol : ’,Simvol);
WriteLn (‘Значение переменной Stroka : ’,Stroka);
WriteLn (‘Значение переменной Logika : ’,Logika);
End.
3 Основы программирования на языке Паскаль 84
Выражения
Все вычисления и другие
3 Основы программирования на языке Паскаль 84
Выражения
Все вычисления и другие
арифметические операции: + (сложение), - (вычитание), * (умножение), / (деление вещественное) - эти операции применяют к вещественным и целым числам, результат - также число;
div (деление целочисленное), mod (остаток целочисленного деления) - эти операции применяют к целым числам, результат - также целое число;
операции отношения: > (больше), < (меньше), = (равно),<> (не равно), >= (не меньше), <= (не больше) - эти операции применяют к числам, символам, символьным строкам и некоторым другим типам данных, результат - значение логического типа;
3 Основы программирования на языке Паскаль 85
логические операции: and
3 Основы программирования на языке Паскаль 85
логические операции: and
поразрядные операции: and (и), or (или), хог (исключающее или), not
shr (сдвиг вправо), shl (сдвиг влево) - эти операции выполняют с целыми числами, результат - целое число;
строковая операция: + (сцепление строк) - выполняется над символами и строками, результат - строка;
операции над множествами: + (объединение), - (дополнение), * (пересечение), результат - множество; in (определение принадлежности элемента множеству), результат ~ значение логического типа ;
операция над указателями: @ (определение адреса программного объекта), результат - адрес
3 Основы программирования на языке Паскаль 86
Таблица 3 – Приоритеты операций
3 Основы программирования на языке Паскаль 86
Таблица 3 – Приоритеты операций
3 Основы программирования на языке Паскаль 87
Для изменения порядка выполнения
3 Основы программирования на языке Паскаль 87
Для изменения порядка выполнения
Арифметические выражения
Арифметические выражения формируются из констант, переменных, функций, знаков операций и круглых скобок.
Запись выражений, содержащих арифметические операции, выполняется «в строку», порядок выполнения операций определяется скобками. Особенно внимательно следует программировать выражения, включающие операции различных приоритетов. Например:
1) запись а+Ь/с предполагает, что вначале выполняется операция деления,
а затем сложения;
2) запись (a+b)/c*d предполагает, что сумма а+Ь делится на с, а затем умножается (!) на d.
При программировании арифметических выражений также следует учитывать
правила выполнения операций, перечисленные ниже.
1. Операции «целочисленное деление» и «определение остатка от деления» применимы только к операндам целых типов, например: 6 div 4 =1, а
6 mod 4 = 2. Если в операции участвуют переменные, то они должны быть
объявлены как целые.
3 Основы программирования на языке Паскаль 88
Для получения при делении
3 Основы программирования на языке Паскаль 88
Для получения при делении
2. При выполнении арифметических операций над числами различных
типов выполняется неявное преобразование типов:
а) если один операнд целого типа, а другой - вещественного, то переменная целого типа преобразуется к вещественному типу; результат операции - значение вещественного типа;
б) если в качестве операндов использованы вещественные или целые переменные различных типов, то их значения преобразуются к типу с наибольшей разрядной сеткой; результат операции того же типа. Так, если в выражении есть переменные integer и longint, то значения будут преобразованы в тип longint и того же типа будет полученный результат.
Порядок выполнения операций при вычислении арифметических выражений можно регулировать при помощи скобок по обычным правилам. Там, где скобки отсутствуют, ЭВМ выполняет операции в следующем порядке:
вычисляет значение всех функций, определенных программистом и стандартных функций;
выполняет слева направо все операции умножения и деления;
выполняет слева направо все операции сложения и вычитания.
3 Основы программирования на языке Паскаль 89
I Арифметические функции
1)
3 Основы программирования на языке Паскаль 89
I Арифметические функции
1)
2) cos(x), где аргумент и результат являются переменными вещественного типа – вычисляет косинус х;
3) Sin(x), где аргумент и результат являются переменными вещественного типа – вычисляет синус х;
4) Frac(x), где аргумент и результат являются переменными вещественного типа – выделяет дробную часть числа х;
5) Int(x), где аргумент и результат являются переменными вещественного типа – выделяет целую часть числа х;
6) Pi, где результат является переменной вещественного типа – вычисляет значение
π= 3.4157….
7) Random(x), где аргумент и результат являются переменными целого типа – генерирует случайное число в пределах от 0 до х включительно. Если параметр х не задан, то формируется вещественное число от 0 до 1. Перед использованием данной функции нужно инициализировать генератор случайных чисел при помощи процедуры Randomize (см. ниже);
8) Sqr(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет x2;
9) Sqrt(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет √x.
10) ln(x), где где аргумент и результат являются переменными вещественного типа – вычисляет логарифм натуральный х;
11) exp(x), где аргумент и результат являются переменными вещественного типа – вычисляет экспоненту х (ex) ;
3 Основы программирования на языке Паскаль 90
II Функции преобразования типов
3 Основы программирования на языке Паскаль 90
II Функции преобразования типов
2) Ord(x), где аргумент может быть любого порядкового типа, а результат типа LongInt – возвращает порядковый номер значения х при начале нумерации с нуля;
3) Round(x), где аргумент вещественного типа, результат типа Longint – округляет число х до ближайшего целого;
4) Trunc(x), где аргумент вещественного типа, результат типа Longint – выделяет целую часть числа х.
III Функции для порядковых типов
1) Odd(x), где аргумент типа Longint, а результат логического типа – определяет, является ли число четным (результат false) или нечетным (результат true);
2) Pred(x), где аргумент и результат любого порядкового типа – получает предшествующее значение;
3) Succ(x), где аргумент и результат любого порядкового типа – получает последующее значение;
4) Upcase(x), где аргумент и результат типа Char – преобразует букву латинского алфавита в соответствующую ей заглавную (буква х может быть как строчной, так и заглавной).
3 Основы программирования на языке Паскаль 91
IV Процедуры для порядковых
3 Основы программирования на языке Паскаль 91
IV Процедуры для порядковых
1) Dec(x), где аргумент любого порядкового типа – уменьшает значение переменной х на 1;
2) Dec(x,n), где х любого порядкового типа, а n типа LongInt – уменьшает значение переменной х на n;
3) Inc(x), где аргумент любого порядкового типа – увеличивает значение переменной х на 1;
4) Inc(x,n), где х любого порядкового типа, а n типа LongInt – увеличивает значение переменной х на n;
5) Randomize – инициализирует генератор случайных чисел.
Правила применения функций:
чтобы воспользоваться функцией, нужно указать ее в правой части оператора присваивания;
при обращении к функции необходимо в круглых скобках указать ее аргументы;
в разделе описания переменных правильно указывайте типы переменных, которые хотите употребить в качестве аргумента или результата функции;
в одном выражении можно обратиться к нескольким функциям.
Правила применения процедур:
для выполнения процедуры ее надо вызвать в программе в виде оператора;
в разделе описания переменных правильно указывайте тип переменной, которую хотите употребить в качестве аргумента процедуры.
3 Основы программирования на языке Паскаль 92 Примеры записи формул
3 Основы программирования на языке Паскаль 92 Примеры записи формул
3 Основы программирования на языке Паскаль 93
Комментарии к примерам
1) Из-за
3 Основы программирования на языке Паскаль 93
Комментарии к примерам
1) Из-за
Возведение в целую положительную степень заменяется умножением (пример 2)
Возведение в целую отрицательную степень заменяется делением на произведение сомнохителей (пример 2)
Для четных положительных степеней использовать функцию sqr (примеры 1,3)
Во всех других случаях (xa ) возведение в степень вычисляется как экспонента от показателя степени, умноженного на натуральный логарифм основания (exp(a * ln(x)) (примеры 5,6,8)
2) Отсутствие функций tg, ctg приводит к усложнению выражений (примеры 2,3,4,8). Если аргумент у функции tg или ctg достаточно сложное выражение (примеры 4,8), рекомендуется ввести новую переменную для обозначения аргумента, например:
……………………..
t := cos(exp(1/5*ln(x/y)));
z := sin(t) /cos(t);
………………………………….
3 Основы программирования на языке Паскаль 94
Оператор присваивания
a :=
3 Основы программирования на языке Паскаль 94
Оператор присваивания
a :=
С помощью оператора присваивания в программе записываются действия, связанные с изменением значений переменных. При выполнении этого оператора вычисляется выражение b , приведенное в правой части, и его результат заносится в переменную a, имя которой указано слева. Если оператор присваивания записывается в последовательности операторов, то после него ставится точка с запятой.
Например:
а) Var a,b,c:real;
Begin ...
c:=(a*a - sin(b))/(a+25.1); ...
б) Var v: boolean; a: integer; b:real;
Begin a:=8;b:=5.1;
v: =(a>5) and (b> =8); {v получит значение false}...
Для корректного выполнения операции присваивания результат выражения и переменная, записанная в правой части оператора присваивания, должны иметь одинаковые или совместимые типы.
Совместимыми считаются:
• все целые типы;
• все вещественные типы;
• диапазон некоторого базового типа и базовый тип;
• два диапазона одного базового типа;
• символ и строка.
Если тип переменной и выражения несовместимы, то возникает синтаксическая ошибка:
Type mismatch
3 Основы программирования на языке Паскаль 95
При несовпадении типов правой
3 Основы программирования на языке Паскаль 95
При несовпадении типов правой
для совместимых типов происходит неявное преобразование результата выражения
к типу переменной, указанной в правой части. Например:
Var
s1, s2 :string; {переменные типа string}
k : char {переменные типа char}
I,j : integer {переменные типа integer}
x,y:real; {переменные типа real}
Begin
................
X:=sqrt(y);
x:=sqrt(i);
Y:=sin(j);
i:= cos(x);
X:= trunc(y);
i:= I / j;
S1:=s2 + k;
S2:= s1 + x;
I: = j * round(x);
……….
Какой из этих операторов присваивания вызовет ошибку несоответствия типов?
3 Основы программирования на языке Паскаль 96
Операторы Write и WriteLn
Мы
3 Основы программирования на языке Паскаль 96
Операторы Write и WriteLn
Мы
Write (англ. писать) – оператор, который используется для вывода информации на экран. Оператор WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln (line - англ. линия, строка), то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.
Общий вид:
Write (список выражений);
WriteLn (список выражений);
Процедуры Write и WriteLn используются не только для вывода результата, но и для вывода различных сообщений или запросов. Это позволяет вести диалог с пользователем, сообщать ему, когда ему нужно ввести значения , когда он получает результат, когда он ошибся и др. Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.
3 Основы программирования на языке Паскаль 97
Операторы Read и ReadLn
Вспомним,
3 Основы программирования на языке Паскаль 97
Операторы Read и ReadLn
Вспомним,
Общий вид:
Read(переменная, переменная...)
ReadLn(переменная, переменная...)
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a, b) переменной а будет присвоено число 53, а переменной Х – буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. После выполнения оператора ReadLкурсор переходит на новую строку и следующий оператор чтения считывает данные с новой строки.
Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу
3 Основы программирования на языке Паскаль 98
Блок-схема к примеру 1
3 Основы программирования на языке Паскаль 98
Блок-схема к примеру 1
3 Основы программирования на языке Паскаль 100
Программа для примера 1
Program
3 Основы программирования на языке Паскаль 100
Программа для примера 1
Program
Uses Crt;
Var
a, b, c, p , s : Real;
Begin
ClrScr; {процедура очистки экрана, входящая в модуль CRT}
write(‘введите через пробел значения сторон треугольника a,b,c,’);
readln(a,b,c );
p : =(a + b + c) / 2;
S : = sqrt ((p * (p – a)*(p – b)*(p – c));
WriteLn (‘Значение площади s = ’,s :8:2, ‘ кв.см.’);
readln; {задержка}
End.
3 Основы программирования на языке Паскаль 99
Программа для примера 2
Program
3 Основы программирования на языке Паскаль 99
Программа для примера 2
Program
Uses Crt;
Const k=3.75;
Var
a,b,c,x,t,p,y,z,s : Real;
Begin
ClrScr; {процедура очистки экрана, входящая в модуль CRT}
write(‘введите через пробел значения a, b, c, x’);
readln (a, b, c, x );
t : =a+b; p : = c * x;
y : =(t * t* t - sin (p) / (a – k);
z: =ln (p) – exp (1/3 * ln ((t + k) / a);
S : = y + z;
WriteLn (‘Значение переменной y = ’,y :8:2);
readln; {задержка}
End.