Выход Ульяновский Государственный Технический Университет Авиационный Филиал Антонов Ю.Н. Вьюшкин И.М. Учебное пособие.

Презентация:



Advertisements
Похожие презентации
1 ESC – ВЫХОД НА СЛЕДУЮЩИЙ миэт цко НА ПРЕДЫДУЩИЙ Алфавит языка Турбо-Паскаль: БУКВЫ И ЦИФРЫ 1. Прописные и строчные буквы латинского алфавита: A B C D.
Advertisements

Тема урока Переменная. Тип данных. Ввод и вывод данных.
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Язык программирования Turbo Pascal. Программирование Программирование – это запись разработанного алгоритма на языке программирования. 4 Автор языка Паскаль.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
turbo.exe основной файл среды Любой язык обладает алфавитом, синтаксисом и семантикой. В алфавит входит набор символов, использующихся в языке с помощью.
Pascal 1 Основы языка Паскаль Информатика и ИКТ Смирнов М.В. МКО ООШ п. Климковка Белохолуницкого района Кировской области.
Познакомиться с основными понятиями языка Pascal 2.
Язык программирования Pascal. Программа это упорядоченный список команд, необходимых для решения некоторой задачи. Языком программирования называют систему.
Тест классы По программированию Pascal.
Знакомство с языком Паскаль. Язык Pascal был создан в начале 70-х годов XX века Никлаусом Виртом. Основой для этого языка послужил широко распространенный.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Среди современных языков программирования одним из самых популярных является язык Паскаль. Этот язык разработан в 1971 году и назван в честь Блеза Паскаля.
Программирование Задания В2, В5. Оператор присваивания в языке программирования Задание В2 – базовый уровень, время – 2 мин.
Программирование на Pascal. Темы Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Курс «Информатика» Лекция 3 Составитель: Иванчева Н.А.
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Транксрипт:

Выход Ульяновский Государственный Технический Университет Авиационный Филиал Антонов Ю.Н. Вьюшкин И.М. Учебное пособие.

Паскаль - Шаг За Шагом. 1. Структура программы на Паскале. 2. Операции, выражения и операторы. 3. Управляющие конструкции в Паскале. 4. Типы данных. 5. Массивы и строки. 6. Процедуры и функции. 7. Указатели и функции.

1. Структура программы на Паскале. Паскаль - шаг за шагом Назначение языков программирования Первая программа на Паскале Структура простой программы Алфавит и служебные слова Простые типы данных.

1. Структура программы на Паскале Назначение языков программирования. Графически это можно представить следующим образом: Если найден один путь решения, то с его помощью решаются многие проблемы! Проблема Нахождение пути решения Нахождение пути решения Решение

1. Структура программы на Паскале Назначение языков программирования. Для того, чтобы компьютер смог получить нужный результат, ему необходимо указать путь решения, то есть задать программу и, возможно, исходные данные. Проблема Нахождение пути решения Нахождение пути решения Программа Решение Данные Машина

1. Структура программы на Паскале Назначение языков программирования. 8A 16 4A FE CA A 16 4A D FE D A A Компьютер способен выполнять только программу, написанную на машинном языке, который представляет последовательность нулей и единиц. Фрагмент программы на таком языке показан на рисунке. Составлять программы на таком языке - дело очень хлопотное и неблагодар- ное. Поэтому были созда- ны языки программиро- вания высокого уровня.

1. Структура программы на Паскале Назначение языков программирования. TITLE XCOM1 COM; для пересылки и сложения CODESG SEGMENT PARA Code ASSUME CS:CODESG, ASSUME DS:CODESG, SS:CODESG, ASSUME ES: CODESG ORG 100H ; начало в конце BEGIN: JMP MAIN ; обход через данные ; FLDA DW 250 ; определение данных FLDB DW 125 FLDC DW ? ; MAIN PROC NEAR MOV AX, FLDA ; переслать 250 в AX ADD AX, FLDB ; прибавить 125 к AX MOV FLDC, AX ; записать AX в FLDC RET ; вернуться в DOS MAIN ENDPG Программа на языке высокого уровня гораздо понятнее человеку, но, вот беда, такую программу не понимает компьютер; ему- то доступен только ма- шинный язык. Для этого существует переводчик называемый компилято- ром, который переводит программу на машин- ный язык.

1. Структура программы на Паскале Назначение языков программирования. Паскаль Ассемблер Sum:=0; mov sum, 0 mov ax, 1 For i:=1 to 10 do loop1: cmp ax jg loop1_end Sum:=sum+i; add sum, ax inc ax jmp loop1 loop1_end: Язык, на котором пишется программа, называется языком программирования. Язык прог- раммирования, так же как и ес- тественный язык, подчиняется определенным правилам. Язык программирования имеет свой алфавит, символы котрого служат для образова- ния допустимых слов. Команды или операторы состоят из сим- волов и слов языка. Как и естественные языки, каждый язык программирова- ния имеет свой стиль и свои правила.

1. Структура программы на Паскале Назначение языков программирования. Паскаль был разработан швейцарским ученым Никлаусом Виртом. Пас- каль считается важнейшим инструментом для обучения методам структур- ного программирования и с 1983 г. введен в учебные курсы во всех шко- лах США для учащихся, которые специализируются в области информати- ки. В дальнейшем язык Паскаль совершенствовался и приобрел новые свой- ства, отличные от авторского варианта. В этом курсе мы расскажем о языке Turbo Pascal, разработанный фир- мой Borland. Далее вы узнаете об основных отличиях между авторской версией фирмы Borland.

1. Структура программы на Паскале Назначение языков программирования. Редакция ОшибкиОшибки Компиляция Выполнение Для ввода текстов в компьютер и их изменения используется програм- ма, называемая редактором. Редактору в принципе язык про- граммирования незнаком, он воспри- нимает исходную программу как текст, который можно дополнять или изменять(то есть редактировать). После создания текста програм- мы она еще не может выполняться машиной. Компилятор представляет собой большую программу, которая пере- водит исходный текст с языка высо- кого уровня на машинный язык, доступный компьютеру. Этот про- цесс называется компиляцией. При компиляции проверяется правильность написания программы. Если ошибок нет, то программа может быть выполнена; в противном случае снова может быть выбран редактор.

1. Структура программы на Паскале Назначение языков программирования. Редакция ОшибкиОшибки Компиляция Выполнение Кроме ошибок выявляемых ком- пилятором могут быть ошибки, вы- полняемые исполнительной систе- мой. Тогда после запуска программы мы снова можем попасть в редактор. При этом как правило, имеется воз- можность использования специаль- ных средств, помогающих выявить ошибки. Такая возможность обес- печивается программой, называемой отладчиком. Весь этот сервис, облег- чающий получение программы на машинном языке, понятном компью- теру, носит название системы прог- раммирования.

1. Структура программы на Паскале Назначение языков программирования. Turbo Pascal - это мощная интегрированная система, со- четающая в себе редактор, компилятор, и отладчик; так называемая интегрированная среда(IDE, от Integrated Deve- lopment Environment). В системе Turbo Pascal вы можете откомпилировать свою программу в оперативную па- мять и сразу выполнить ее. Для этого достаточно нажать комбинацию клавишей Ctrl-F5. Именно эта комбинация ис- пользуется в нашем курсе для запуска программы на выпол- нение. Заметим, что мы будем изучать именно язык Turbo Pascal, а интегрированная среда здесь не рассматрива- ется. отладчик компилятор редактор IDE

Моя первая программа. {Моя первая программа } - комментарий program first; begin writeln(Hello, World!) end. 1. Структура программы на Паскале Первая программа на Паскале. Hello, World! Давайте рассмотрим простейшую программу на Паскале. Далее будут даны пояснения к каждой, но перед тем, как с ними познакомиться, просто взгляните на программу и поп- робуйте догадаться что она делает. В нашей системе программирования запуск программы на выполнение будет осуществляться нажатием ком- бинации клавиш Ctrl-F9. Нажмите клавишу Ctrl, и, не отпуская ее, клавишу F9. Итак, наша программа вывела на экран дисплея одну фразу: Hello,World!. program - начало любой программы на Паскале. Turbo Pascal позволяет опускать это слово. first - имя вашей программы. Выбор имени зави сит только от вас. begin - зарезервированное слово от- мечает последовательности операто- ров, образующих тело программы.

Writeln( ) процедура вывода на печать. End - зарезервированное слово которое отмечает конец последовательности операторов, образующих тело прог- раммы. На этом слове выполнение программы завершается и после него ставится. (точка). Все что находится между символами {} игнорируется компилятором. Су- ществует одно исключение: после { нельзя ставить знак $. Комментарии не могут быть вложенными, то есть кон- струкции типа {коммент.1{коммент.2}} не допускаются. Следует обратить внимание на наличие знака ; после заголовка прог- раммы. Точки с запятой служит для разделения операторов. Моя первая программа. {Моя первая программа } - комментарий program first; begin writeln(Hello, World!) end. 1. Структура программы на Паскале Первая программа на Паскале. Hello, World!

1. Структура программы на Паскале. 1.3.Структура простой программы. Всякая программа состоит из опи- сания некоторых действий и обра- ботка этими действиями данных. Программа на Паскале всегда состоит из двух основных частей: раздела описания данных и тела программы. Данные вводятся посредством описания и определяются после за- резервированного слова var описы- вающего переменные, которые ис- пользуются в программе. Например, строка num: integer; - описывает num как переменную целого типа(integer). К понятию переменной мы очень скоро вернемся, а сейчас запомните: любая переменная в Паскале дол- жна быть описана раньше чем она будет использована. Переменные описываются после слова var. Пример программы. Program second; {раздел описания данных} begin {тело прог-} {раммы } end. num:=1; write(Хорошее число, num) Var num: integer;

1. Структура программы на Паскале. 1.3.Структура простой программы. Пример программы. Program second; {раздел описания данных} begin {тело прог-} {раммы } end. Var num: integer; num:=1; write(Хорошее число, num) Тело программы находится между словами bеgin и end. Оно представ- ляет собой набор операторов. Опера- торы разделяются символом ; (точка с запятой), так как после оператора write( ) нет другого оператора ; мож- но не ставить.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Текст Паскаль-программы состоит из строк, состоящих из символов, об- разующих алфавит языка. Строки программы завершаются специаль- ными управляющими символами, не входящими в алфавит. Максимальная длина строки составляет 126 симво- лов. Алфавит языка Turbo Pascal включаетв себя буквы и символ «почеркивание»,который в языке считается буквой. Буквы использу- ются для записи чисел и идентифи- каторов. Двадцать два специаль- ных символа используются для конструирования знаков операций, выражений комментариев, а так же как синтаксические разделители. Алфавит языка Turbo Pascal. Буквы: A, B, C, …, X, Y, Z, a, b, c, …, x, y, z, _ Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Специальные символы: + - * / = >

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Алфавит языка Turbo Pascal. Буквы: A, B, C, …, X, Y, Z, a, b, c, …, x, y, z, _ Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Специальные символы: + - * / = >

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. служебные слова служебные слова Предопределенные идентификаторы Предопределенные идентификаторы Ключевые слова Ключевые слова Ключевые слова - это слу- жебные слова и предопреде- нные идентификаторы.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Паскаль-программа { пример программы } Program second; begin end. Var num: integer; num:=1; write(Хорошее число, num) П редопределенные идентифи- каторы называются так потому, что от программиста не требуется их определения, поскольку они описаны в системной библиотеке. Примером может служить имя стандартного типа integer. Служебные слова - это огра- ниченная группа слов, построен- ных из букв. Смысл этих слов в языке фиксирован.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. зарезервированные слова зарезервированные слова директивы Служебные слова Служебные слова К служебным словам отно- сятся зарезервированные слова и директивы.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Зарезервированные слова. And asm array begin case const constructor destructor div do downto else end export file for function goto if implementation in inherited inline interface label library mod nil not object of or packed procedure program record repeat set shl shr string then to type unit until uses var while with xor Смысл зарезервированных слов фиксирован строго. Их НЕЛЬЗЯ использовать в ка- честве имен, вводимых прог- раммистом. В текстах нашего курса зарезервированные сло- ва, как правило, будут выде- ны белым цветом.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Директивы. Absolute assembler export external far forward index interrupt near private public resident virtual Директивы, в принципе, можно использовать в качест- ве идентификаторов. Однако это крайне нежелательно. Перекрыв предопределен- ный идентификатор, вы, в принципе, еще имеете воз- можность квалифицирован- ного обращения к нему ( об этом мы расскажем в курсе ). Перекрыв директиву, вы без- возвратно теряете некоторые средства языка.

1. Структура программы на Паскале. 1.4.Алфавит и служебные слова. Зарезервированные слова. Turbo Pascal версии 7.0 And asm array begin case const constructor destructor div do downto else end export file for function goto if implementation in inherited inline interface label library mod nil not object of or packed procedure program record repeat set shl shr string then to type unit until uses var while with xor Набор зарезервированных слов может меняться от вер- сии к версии. Происходит это потому, что в каждой новой версии языка появляются до- полнительные возможности, для реализации которых нуж- ны новые зарезервированные слова. В то же время некоторые из старых зарезервированных слов перестают быть таковы- ми. Делается это для лучшей переносимости программ.

1. Структура программы на Паскале Простые типы данных. Простые вычисления. {сумма чисел} program summa; var a, b, c, sum: integer; begin a:=1; b:=3; c:=5; sum:=a+b+c; writeln(1+3+5=, sum) end =9 Наша первая программа была довольно прос- той, и следующий пример ненамного сложнее. Мы вычисляем сумму трех чисел.Что появи- лось нового? С помощью оператора описания VAR мы обьявляем, что будем использовать в программе переменные с именами a, b, c и sum, которые принимают целые (integer) значения. Слово integer служит ключевым словом, определя- ющим один из основных типов данных языка. В языке Паскаль все переменные должны быть объявлены. Это означает, что, во-первых, в начале каждой программы или функции вы должны привести список всех используемых переменных, а во-вторых, тип каждой из них. a:=1 - оператор присваивания. Этот оператор служит для присваивания переменной a значе- ния 1, аналогично, операторы b:=3 и c:=5. Оператор sum:=a+b+c; так же является опе- ратором присваивания. Смысл этого оператора заключается в следующем: взять значение пере- менных a, b, c, просуммировать их и присво- ить результат переменной sum. Обратите внимание на символ :(точка с запятой). Именно этот символ отделяет один оператор от другого.

1. Структура программы на Паскале Простые типы данных. Простые вычисления. {сумма чисел} program summa; var a, b, c, sum: integer; begin a:=1; b:=3; c:=5; sum:=a+b+c; writeln(1+3+5=, sum) end =9 В данном случае обращение к функции writeln( ) позволяет вывести на экран не только текст, но и значение переменной sum. Функции writeln( ) передается два аргумента, заключенные в круг- лые скобки. Первый аргумент содержит симво- лы, которые будут выводиться как обычный текст. Эти символы заключены в апострофы ( ). Вторым аргументом функции является переменная sum, где значение будет выведено на печать.

переменные константы 1. Структура программы на Паскале Простые типы данных. B : = 3 ; Как вы уже заметили в, программа в своей работе имеет дело с данными. Неко- торые данные устанавливаются еще до то- го, как программа начнет выполняться, а после ее запуска сохраняют свои значения неизменными на всем протяжении работы программы. Это константы. Другие данные могут изменяться во время выполнения программы. Они называются переменнны- ми. В операторе присваивания b:=3 3 - это числовая константа, а b - перемен- ная. Различие между переменной и констан- той довольно очевидно: во время выполне- ния программы значение переменной мо- жет быть изменено, а значение константы нет. Понятие переменной так важно, что мы должны хорошо осознать его смысл. данные

1. Структура программы на Паскале Простые типы данных. a b sum 538 Под переменной мы будем понимать ячейку («коробку»), куда компьютер может записывать («складывать») данные. Термин ячейка взят из обихода, однако фактически он совершенно точен. Под ячейкой мы в действительности подразуме- ваем «кусочек памяти» в котором хранится информация. Чтобы воспользоваться информацией, хранящейся в ячейке, нужно, чтобы каждая ячейка имела свое имя или, как часто гово- рят, - идентификатор.

1. Структура программы на Паскале Простые типы данных. Правильные Неправильные имена имена wiggly $a^** cat dont HOT_key HOT-key _grab1 1grab Хорошим стилем является осмысленное обозначение переменных. Имя переменной может содержать любое количество симво- лов, но значащими являютсяя только пер- вые 63. Для образования имени переменной раз- решается использовать строчные и пропис- ные буквы, цифры и символ подчеркива- ния, который в Паскале считается буквой. Первым символом должна быть обязатель- но буква. В Паскале разница между строчными и прописными буквами игнорируется, поэто- му имена NaMe и name одинаковы.

1. Структура программы на Паскале Простые типы данных. Помимо различия между переменными и конс- тантами, существует еще различие между типами данных. В языке Паскаль предусмотрено использование несколько основных типов данных. Тип константы компилятор может узнать по ее виду. Тип пере- менной необходимо объявить явным образом в разделе описания переменных после зарезервиро- ванного слова var.

1. Структура программы на Паскале Простые типы данных. Оператор описания. Erest: integer; response, intable: char; noah, jonah: real; students, players: longint; список имен спецификация переменных типа. Простые типы данных - целый тип и его модификации; - вещественный тип и его модифи- кации; - символьный тип; - булевский тип; Оператор описания состоит из списка имен переменных, разделенных запятой и спецификации типа. В конце обязательно должна стоять точка с запятой. Спецификация типа указывается через двоеточие после списка имен и формирует- ся из ключевого слова. Паскаль имеет развитую и изощренную систему типов. Базовыми в системе типов являются простые типы.

1. Структура программы на Паскале Простые типы данных. Ключевые слова. Shortint integer longint для целых чисел. byte word char для символов. boolean для булевского типа. real single double для вещественных extended типов. comp Первые пять ключевых слов использу- ются для представления целых, т. е. чисел без дробной части. Ключевые слова char предназначено для указания на буквы и некоторые другие сим- волы, такие, как #, $, % и &. Ключевое слово boolean обозначает спе- циальный логический тип. Имеется два зна- чения булевского типа: истина и ложь. Последние пять ключевых слов использу- ются для представления чисел с десятичной точкой.

1. Структура программы на Паскале Простые типы данных. Целые Вещественные числа Е Е Е-5 Целые числа не имеют дробной части, в то время как вещественные числа могут принимать и целые и дробные значения. Вещественные числа дают возможность представлять величины из более широкого диапазона значений, чем целые.

1. Структура программы на Паскале Простые типы данных. Вещественные числа. В форме с фиксированной точкой В форме с плавающей точкой -7.00Е+0 6Е1 0.8Е-2 Вещественные числа могут изображаться: - в форме с фиксированной точкой; - в форме с плавающей точкой. В случае представления числа с фиксиро- ванной точкой целая и дробная части вещественного числа отделяются друг от друга символом -.(точка).

1. Структура программы на Паскале Простые типы данных. Вещественные числа. В форме с фиксированной точкой Правильно: Неправильно: Дробная и целая части числа обязательно должны присуствовать в записи числа.

1. Структура программы на Паскале Простые типы данных. Вещественные числа. В форме с плавающей точкой 6.25 Е -4 мантисса порядок Наиболее общая форма записи вещест- венного числа - в форме с плавающей точ- кой. Вещественное число в форме с плаваю- щей точкой записывается как пара вида: Е такое обозначение понимается как мантис- са умноженная на 10 в степени, равной по- рядку.

1. Структура программы на Паскале Простые типы данных. A B C (byte) (integer) (longint) При объявлении переменной компилятор отводит ей место в памяти в зависимости от ее числа. Типу integer соответствует стандартная длина слова (2 байта). Размер элементов па- мяти, отводимых под данные типа byte и longint, будут соответственно 1 и 4 байта.

1. Структура программы на Паскале Простые типы данных. Целые со знаком: shortint короткое целое integer целое longint длинное целое. Целые без знака: byte короткое целое без знака word целое без знака. Все данные типов integer, shortint и longint являются числами со знаком, т.е. допусти- мыми значениями переменных этих типов могут быть целые числа - положительные, отрицательные и нуль. Данные типов word и byte принимают только положительные значения и нуль.

1. Структура программы на Паскале Простые типы данных. Тип Диапазон shortint integer longint byte word Целые типы различаются также диапазо- ном значений, которые могут принимать значения:

1. Структура программы на Паскале Простые типы данных. Фрагмент таблицы ASCII * +, -. / : ; 60 A B C D E 70 F G H I J K L M N O 80 P Q R S T U V W X Y 90 Z [ \ ] ^ _ ` a b c 100 d e f g h i j k l m Тип данных char используется для кодиро- вания символов в компьютере. Каждому числу в диапазоне от 0 до 255 ставится в соответствие символ из таблицы кодов ASCII. Так, например, числу 65 в таблице ASCII соответствует буква А.

1. Структура программы на Паскале Простые типы данных. Представление символов: * A X Z #42 #65 #88 #90 #96 гудок #7 табуляция #9 ch:=#7 Если символьное значение имеет графи- ческое представление, то оно изображается соответствующим знаком, заключенным в одинарные апострофы ( ). Для изображе- ния символа его надо удвоить. Если символ, который нужно изобразить, не имеет графического представления, то его можно записать в виде: # Заметим, что несмотря на более длинную запись, эти данные являются символьными, и могут без всяких затруднений присваи- ваться переменными типа char:

1. Структура программы на Паскале Простые типы данных. Данные типа char. Program example1; var ch1,ch2:char; begin ch1:=А; ch2:=#65; writeln(ch1=, ch1,ch2=, ch2) end. Следует отметить, что два оператора присваивания: ch:=А и ch:=#65 приводят к одному и то- му же результату - переменным будет прис- воено значение А.

1. Структура программы на Паскале Простые типы данных. Данные типа char. Program example2; var ch:char; i:integer; begin ch1:=А; i:=ord(ch); ch:=chr(i); writeln(символ -, ch,номер -, i) end. В языке Паскаль есть две стандартные функции для работы с символьным и це- лым типом: - функция ord(символ) выдает порядко- вый номер символа; - функция chr(номер символа) выдает сим- вол, чей номер передан ей в качестве аргу- мента. В результате работы программы перемен- ной i будет присвоено значение 65 (поряд- ковый номер символа А). Переменной ch будет присвоено значение А (символ с порядковым номером 65 ).

Паскаль - шаг за шагом. 2. Операции, выражения и операторы Вывод данных как результат работы Операции выражения и операторы Понятие алгоритма. Повторы и сравнения 2.5. Первое знакомство с циклами Стандартные функции.

2.Операции, выражения и операторы Вывод данных как результат работы. {типы данных} Program print; const NEGATIVE=-1; var number:integer; float:real; letter:char; begin number:=1; float:=1.25; letter:=a; write(Это константа: :13, letter); writeln(Это целое:, number :2); writeln(Это вещественное:, float, float :4:1, float :5:2) end. Это константа: -1 Это символ: а Это целое: 1 Это вещественное: Е Первой строкой этой программы является комментарий. Програм- ма на языке Паскаль начиннается с зарезервированного слова program, после которого указывается символическое имя программы. Зарезервированное слово const указывает на начало раздела описания констант. В этом операторе описывается константа по имени NEGATIVE значение которой равно -1. Зарезервированное слово var указывает на начало раздела описания переменных. Ключевое слово integer указывает, что переменная number будет иметь целый тип. Результат арифметических операций (кроме опера- ции деления) с переменными этого типа тоже всегда целый. ВНИ- МАНИЕ! Операция деления / одного числа на другие всегда дает ве- щественный результат. Ключевое слово real указывает, что переменная float может иметь дробную часть. Наличие дробной части характеризует вещественное число.

2.Операции, выражения и операторы Вывод данных как результат работы. {типы данных} Program print; const NEGATIVE=-1; var number:integer; float:real; letter:char; begin number:=1; float:=1.25; letter:=a; write(Это константа: :13, letter); writeln(Это целое:, number :2); writeln(Это вещественное:, float, float :4:1, float :5:2) end. Это константа: -1 Это символ: а Это целое: 1 Это вещественное: Е Letter : char это описание символьной переменной. Каждому символу ставится в соответствии целое положительное число в диапазоне от 0 до 255. В компьютере применяется ASCII код для перевода чисел в символы и обратно. В операторе переменной number присваивается значение, равное 1. Это значение не изменится до тех пор, пока переменная не ока- жется в другой операции присваивания. Оператор присваивания (:=) предназначен для присвоения нового значения некоторой переменной. Элемент слева от знака := - это имя (идентификатор) переменной, а элемент справа - ее новое значение.

{типы данных} Program print; const NEGATIVE=-1; var number:integer; float:real; letter:char; begin number:=1; float:=1.25; letter:=a; write(Это константа: :13, letter); writeln(Это целое:, number :2); writeln(Это вещественное:, float, float :4:1, float :5:2) end. 2.Операции, выражения и операторы Вывод данных как результат работы. Это константа: -1 Это символ: а Это целое: 1 Это вещественное: Е В операторе присваивания float присваивается вещественное число Обратите внимание на появление точки в записи числа. Именно так представляются числа с дробной частью (вещественные числа). В языке Паскаль символы заключаются в апострофы.принято пра- вило, согластно которому значения переменной типа char могут быть одиночные символы. Для вывода результатов работы программы в языке Паскаль имеются стандартные процедуры вывода: write( ) и writeln( ). Раз- личие работы этих процедур заключается в следующем: после вывода данных процедура writeln( ) переводит курсор на следующую строку, в результате чего следующий вывод происходит на новой строке.

{типы данных} Program print; const NEGATIVE=-1; var number:integer; float:real; letter:char; begin number:=1; float:=1.25; letter:=a; write(Это константа: :13, letter); writeln(Это целое:, number :2); writeln(Это вещественное:, float, float :4:1, float :5:2) end. 2.Операции, выражения и операторы Вывод данных как результат работы. Это константа: -1 Это символ: а Это целое: 1 Это вещественное: Е Процедура же write( ) оставляет курсор на той же строке. Стоящие после символа ( : ) цифры управляют выводом соотет- ствующих аргументов. Они указывают, сколько позиций следует отвести для вывода того или иного аргумента. Тело программы начинается зарезервированным словом begin и заканчивается зарезервированным словом end с точкой.

2.Операции, выражения и операторы Вывод данных как результат работы. Процедуры write( ) и writeln( ) Write( Арг1, Арг2, …) Writeln( Арг1, Арг2, …) Пример: write(Радиус=, r, Площадь=, s) Мы уже так часто использовали для вывода результатов работы программы на экран процедуры write( ) и writeln( ), что настало время поговорить об этих процедурах подроб- ней. Процедуры вывода относятся к стандартным процедурам языка Паскаль и имеют опре- деленный формат, который мы опишем ниже. Как уже было сказано различие в их работе в том, что после вывода данных writeln( ) переводит курсор на новую строку, а write( ) нет. При обращении к процедуре вывода writeln( ) ей передается список аргументов. Аргу- менты отделяются друг от друга запятыми. Арг1, Арг2, и т.д. - это печатаемые параметры, которые могут быть переменными, конс- тантами или даже выражениями, вычисляемыми вначале, перед выводом на печать. Аргументы, передаваемые процедурам вывода, могут быть любого простого типа(цело- го, вещественного, символьного или логического). Строки символов, заключенные в апострофы, выводятся как текст. Если в качестве аргумента передается переменная то буде выведено ее значение.

2.Операции, выражения и операторы Вывод данных как результат работы. Использование в программе Вывод результатов writeln(aaa) aaa writeln(aaa:7) aaa i:=123; writeln(i) 123 writeln(i:4) 123 r:=8.25 writeln(r) E+00 writeln(r:4:1) 8.3 writeln(r:5:2) 8.25 Паскаль осуществляет вы- вод данных в зависимости от типа аргументов. Вы можете определить ширину поля вы- вода, указав ее величину через двоеточие после аргумента. Для вещественных чисел вы можете указав так же коли- чество выводимых цифр после десятичной точки. Обратите внимание на изменения точ- ности выводимого числа в за- висимости от количества вы- водимых цифр после десятич- ной точки.

Арифметические операции {Температура по Цельсию и Фаренгейту} program temperature; var fahr, celsius:real: begin fahr:=68.0; celsius:=5.0*(fahr-32.0)/9.0; writeln(fahr:3:0, celsius:5:1) end. 2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Следующая наша программа выполняет вычисления по формуле c=5*(f-32)/9 и печа- тает значения температуры по шкале Фаренгейта и Цельсия. Результатом этой програм- мы будут числа 68 и Напомним, что программа всегда начинается с описания переменных после зарезерви- рованного слова var Далее идет блок программы состоящий из набора операторов и заключенный между за- резервированными словами begin и end. В этой программе вычисления начинаются с оператора присваивания (fahr:=68.0;). Обра- тите внимание на появление тчки в записи числа. Она отделяет дробную часть числа от его целой части. В выражении celsius:=5.0*(fahr-32.0)/9.0; встречаются операции умножения, вычитания, деления. Очевидно, что результат вычислений зависит от порядка вычислений. В языке Паскаль порядок вычислений определяется приоритетом операций.

Арифметические операции {Температура по Цельсию и Фаренгейту} program temperature; var fahr, celsius:real: begin fahr:=68.0; celsius:=5.0*(fahr-32.0)/9.0; writeln(fahr:3:0, celsius:5:1) end. 2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. У опрераций умножения и деления больший приоритет, чем у операций сложения и вычитания, поэтому они вы- полняются первыми. Если же две операции имеют один и тот же приоритет, они выпол- няются в стандартном поряд- ке. Для большинства опера- ций обычный порядок - слева направо. Для изменения обыч- ного порядка вычислений ис- пользуются круглые скобки. В процедуре writeln( ) циф- ры после двоеточия задают ширну поля вывода

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Язык Паскаль имеет широкий набор возможностей для обработки данных. Начнем наше знакомство с этими возможностями с изучения основных арифметических операций: сло- жения, вычитания, умножения и деления.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операция сложения + Примеры: sum:=23+42; i:=i+1; anim:=cats+dogs; Операнд 1 Операнд 2 Выполнение операции + приводит к сложению двух ве- личин, стоящих слева и справа от этого знака. Операция + называется бинарной, так как она имеет дело с двумя операндами. Операции могут быть как переменными, так и констан- тами.

Операция вычитания результат Операция изменения знака: vlm:=-43; invlm:=-vlm; (значение invlm равно 43) Операция Бинарная результат операнда Унарная операнд Сочетание операций -(20-12) -8 2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Выполнение операции вычетания приводит к вычитанию числа, расположенного справа от знака минус из числа, стоящего слева от этого знака. Знак минус используется так же для указа- ния или изменения алгебраического знака не- которой величины. Когда знак минус исполь- зуется подобным образом, данная операция называется унарной.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операция умножения * cm:=2.54* inch; Возведение в степень n 2 n*n n 3 n*n*n n 4 n*n*n*n Операция умножения обозначается знаком *. При выполнении оператора см:=2.54*inch значение переменной inch умножается на 2.54 и результат присваивается переменной cm. В языке Паскаль нет операции, осуществля- ющей возведение в степень. Вместо этого для возведения в целую степень можно использо- вать операцию умножения.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операция деления / five=15.0/3.0 (результат равен 5) Деление результат 7.0/ / / / /5 0.8 В языке Паскаль символ / указывает на опе- рацию деления. Величина стоящая слева от этого знака, делится на величину, расположен- ную справа от него. Заметим, что операция деления всегда дает вещественный результат.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операции над целыми и вещественными значениями. + сложение - вычитание * умножение / деление Операции над целыми значениями. div деление нацело mod взятие остатка от целочисленного деления. Четыре арифметических операции (сложение, вычитание, умножение, де- ление) допустимы как над целыми, так и над вещественными значениями. Над целыми значениями допустимы две дополнительные операции типа де- ления: деление нацело (с отбрасывани- ем дробной части) и взятие остатка от целочисленного деления.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операция деления нацело. (только для целых чисел) div Деление Результат 13 div div div div 60 1 Операция деление нацело использу- ется в целочисленной арифметике. В ре- зультате выполнения этой операции у результата деления целых чисел отбра- сывается дробная часть.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операция взятия остатка от целочисленного деления. (только для целых чисел) mod Деление Результат 13 mod mod mod mod 60 5 Операция деление по модулю исполь- зуется в целочисленной арифметике. Ее результатом является остаток от деле- ния целого числа, стоящего слева от зна- ка операции, на число, расположенное справа от него. Например, 13 mod 3 имеет значение 3, поскольку справедливо равенство 13 равно 2*5+3.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Операции в порядке уменьшения уровня старшинства. Операции * / mod div операции «типа умножения» + - операции «типа сложения» ( ) изменяют порядок операций. После знакомства с основными опера- циями следует рассмотреть порядок вы- полнения операций в выражениях, со- держащих несколько операций. В языке Паскаль каждая операция имеет свой приоритет (уровень стар- шинства). Умножение и деление имеют более высокий уровень, чем сложение и вычитание, поэтому они выполняются первыми. Если же две операции имеют один и тот же уровень старшинства, они выполняются в том порядке, в котором присуствуют в операторе. Обычный порядок - слева направо.

Порядок вычислений vlm := *2/4.0 vlm := /4.0 vlm := vlm := 50.0 vlm := ( *2)/4.0 vlm := ( )/4.0 vlm := 140.0/4.0 vlm := Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Для изменения очередности выполне- ния операций следует использовать круглые скобки. В первую очередь выполняется все, что заключено в круглые скобки; внутри скобок действуют обычные правила.

Примеры выражений a*(b+c)/d b div k j mod 5 2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Объединение операций и операндов представляет собой «выражение». В са- мом общем виде можно сказать, что вы- ражения строятся из операндов, знаков операций и круглых скобок.

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

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Выражения и операторы (a+b)*c - выражение count:=(a+b)*c - оператор выражение count:=2+3 - оператор Оператор является законченной инст- рукцией для компьютера. Что делает инструкцию законченной? Она должна выполнять некоторое дейст- вие полностью. Выражение 2+3 не является закончен- ной инструкцией, а служит лишь указа- нием сложить 2 и 3, но не говорит, что делать с результатом. Count:=2+3 - законченная инструкция, т.к. служит указанием компьютеру по- местить результат (5) в ячейку памяти, помеченную именем count.

Оператор присваивания count:=10 имя переменной := значение 10:=count i:=i+1 2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Простейшим и наиболее часто упот- ребляемым оператором языка является оператор присваивания. С помощью оператора count:=10 пере- менной с имене count присваивается значение 10. Элемент слева от знака := - это имя переменной, а элемент справа - ее значе- ние. Оператор типа 10:=count на языке Паскаль не имеет смысла, поскольку Вы не можете присвоить константе какое-то значение; ее значением является она сама. Поэтому, сидя за клавиатурой, помните, что в левой части оператора присваивания должна быть перемен- ная. При программировании широко используются операторы присваивания следующего вида: i:=i+1; смысл которого заключается в том, что надо: «Взять значение переменной с именем i, прибавить к нему 1, а затем присвоить новое значение переменной с именем i.»

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Одновременное использование вещественных и целых чисел var i:integer; r:real; разрешается r:=i+10.5 запрещается i:=r+10 В операторе присваивания тип перемен- ной слева и тип выражения справа должны быть совместимы по типу. О совместимости типов будет еще сказано, а сейчас отметим следующее правило: В языке Паскаль допускается присвоение вещественным переменным целочисленного значения. Не допускается присвоение веществен- ных значений целым переменным.

2.Операции, выражения и операторы. 2.2.Операции, выражения и операторы. Стандартные функции trunc( ) и round( ) ИСПОЛЬЗОВАНИЕ ЗНАЧЕНИЕ trunc( 6.25 )6 trunc( 7.9 )7 trunc( 5.0 )5 round( )1 round( 5.5 )6 round( 6.76 )7 Для преобразования вещественного зна- чения в целое в языке Паскаль предусмотре- ны две стандартные функции trunc( ) и round( ). С помощью стандартной функции trunc(x) производится преобразование вещественно- го числа в целое путем отбрасывания всех цифр, стоящих после десятичной точки. С помощью стандартной функции round(x) вещественное число округляется до ближай- шего целого.

2.Операции, выражения и операторы. 2.3.Стандартные функции. Стандартные процедуры вывода write(Арг1,Арг2, … ); writeln(Арг1,Арг2, … ); Вы уже знакомы с некоторыми стандарт- ными процедурами и функциями. В пос- ледствии мы расскажем о них подробней, а сейчас скажем лишь несколько слов. Процедура представляет собой «подпрог- рамму», которая выполняет некоторые действия. Например, стандартная процедура write( ) осуществляет вывод результатов ра- боты программы. Вызов процедуры осуществляется путем указания имени процедуры и, если необхо- димо, списка аргументов, которые этой про- цедуре передаются.

2.Операции, выражения и операторы. 2.3.Стандартные функции. Стандартные функции trunc(Арг ) - округление с отбрасыва- нием дробной части round(Арг) - округление до ближайше- го целого chr(Арг) - преобразует номер в символ ord(Арг) - преобразует символ в по- рядковый номер Функции аналогичны процедурам, за исключением одной особенности: функции всегда имеют значение. То есть, при вызове функции вычисляется некоторое значение, которое присваивается данной функции.

2.Операции, выражения и операторы. 2.3.Стандартные функции. Использование функций i:=trunc(1.25)+round(x) ch:=chr(i) *round(x)/125 writeln(trunc(c)=, trunc(c)) Так как функции имеют значение, они могут участвовать в различных выражени- ях, а так же в операторах присваивания.

Стандартные математические функции Математическое Объявление в обозначение Паскале x 2 sqr(x) sqrt(x) sin(x) cos(x) arctan(x) log e (x) ln(x) e x exp(x) 2.Операции, выражения и операторы. 2.3.Стандартные функции. Для увеличения вычислительной мощ- ности в языке Паскаль кроме арифметичес- ких операций предусмотрены стандартные математические функции. Стандартные функции входят в состав языка и имеют строго определенный синтаксис.

2.Операции, выражения и операторы. 2.3.Стандартные функции. Стандартные математические функции program allfunc; var a: real; begin a:=2.0; writeln(sqr(2)=, sqr(a)); writeln(sqrt(2)=, sqrt(a)); writeln( sin(2)=, sin(a)); writeln( cos(2)=, cos(a)); writeln( arctan(2)=, arctan(a)); writeln( ln(2)=, ln(a)); writeln( exp(2)=, exp(a)); end. sqr(2)= E+00 sqrt(2)= E+00 sin(2)= E-01 cos(2)= E-01 arctan(2)= E+00 ln(2)= E-01 exp(2)= E+00 Посмотрим на нашу очередную програм- му. Она иллюстрирует использование различных функций. Не будем глубоко вни- кать в суть этих функций. Те, кто с ними знаком, не будут иметь никаких проблем.

2.Операции, выражения и операторы. 2.4.Понятие алгоритма. Повторы и сравнения. Пограмма - это набор предписаний (инструкций), являющийся руководством к действию. Подобные предписания встречаются нам и в повседневной жизни. Типичным примером является кулинарный рецепт: он описывает последовательность действий (дает инструкции) для получения определенного результата. Омлет с зеленым луком на 3 яйца - по 1 столовой ложке мелко нарезанного лука, растопленного масла и молока. Яйца разбить в кастрюлю и слегка взбить. Мелко нарезанный зеленый лук смешать со взбитыми яйцами, посолить и жарить, как натуральный омлет. В качестве примера возьмем рецепт при- готовления омлета с зеленым луком. Этот рецепт описывает процесс, превра- щающий отдельные ингредиенты в конеч- ный продукт. Мы видим, что в предписани- ях важна правильная последовательность действий. Попробуйте-ка взбить яйца не разбив их. Важным элементом всех рецептов является достижение промежуточной цели. Вот некоторые промежуточные цели при изготовлении омлета: лук нарезан; яйца взби- ты; омлет посолен; омлет готов! Промежуточную цель можно достигнуть либо в качестве единичной операции (омлет посолить), либо путем целенаправленного повторения про- межуточных операций (мелко нарезать лук).

2.Операции, выражения и операторы Понятие алгоритма. Повторы и сравнения. Нарезать порцию лука Еще лука? Яйца слегка взбить Смесь жарить до готовности Лук и яйца смешать Смесь посолить Омлет готов! да нет Полный набор инструкций называется алго- ритмом. Подчеркнем, что алгоритм - это описание пос- ледовательности действийй, направленных на достижение промежуточной или конечной цели. Обратите внимание: для того, чтобы прекра- тить повторяющиеся действия, необходимо узнать, что цель достигнута. В случае рецепта все просто - повар сам сле- дит за количеством нарезанного лука. В лучае повторяющихся действий суть заклю- чается в том, что каждый раз что-то меняется (пе- рерабатывается новая порция лука). Следователь- но, нам надо уметь вовремя определить достиже- ние промежуточной цели (необходимое количест- во лука). Иначе повторения будут безостановочно повторяться по замкнутому кругу.

2.Операции, выражения и операторы. 2.4.Понятие алгоритма. Повторы и сравнения. Алгоритм - это четкая общая инструкция, выполнение которой гарантирует достижение заданной цели. Он состоит из точно описанных отдельных этапов, которые следует выпол- нять в установленной последовательности. Несмотря на повторения, алгоритм должен га- рантировать конец своего выполнения. Как Вы уже вероятно догадались, программа на языке программирования тоже является одним из способов описания алгоритма. В программировании оператор повторения приня- то называть оператором цикла. Теперь осталось только уточнить, как записывается опера- тор цикла на языке Паскаль и можно начинать настоящее программирование. В Паскале есть три оператора цикла различной формы.

2.Операции, выражения и операторы. 2.4.Понятие алгоритма. Повторы и сравнения. Сравнение двух выражений дает хорошую возможность завершить повторение. Есть 6 типов вопросов, которые можно задать с помощью сравнения. А < B - А меньше В ? A > B - А больше В ? A = B - А равно В ? A >= B - А не меньше В ? A

2.Операции, выражения и операторы. 2.5.Первое знакомство с циклами. Использование цикла while do program cycle; var fahr, celsius: real; lower, upper, step: integer; begin lower:=0; upper:=300; step:=50; fahr:=lower; while fahr

2.Операции, выражения и операторы. 2.5.Первое знакомство с циклами. Использование цикла while do program cycle; var fahr, celsius: real; lower, upper, step: integer; begin lower:=0; upper:=300; step:=50; fahr:=lower; while fahr

2.Операции, выражения и операторы Первое знакомство с циклами. Оператор цикла while do Три составные части оператора while do: while условие do оператор Язык Паскаль предлагает несколько способов ре- ализации повторяющихся вычилений. Один из спо- собов называется циклом while do. Оператор while do состоит из трех различных частей: - зарезервированных слов while и do; - проверяемого условия; - тело цикла - оператора, который выполняется в том случае, если условие истинно.

2.Операции, выражения и операторы Первое знакомство с циклами. while условие do оператор Условие истинно? Оператор Да Цикл while do работает следующим образом: - Когда программа в процессе выполнения впервые достигает оператора while, осуществляется провер- ка истинности условия. - Если условие истинно, то выполняется тело цик- ла. После этого происходит возврат к началу фраг- мента while do, где проверка условия осуществля- ется вновь. Таким образом, выполнение тела цикла осущест- вляется до тех пор, пока условие оператора while do истинно. Как только условие становится лож- ным, управление передается на оператор, следую- щий за оператором while do. Отметим, что если при достижении в программе оператора while do условие становится ложным, то тело цикла не выполниться ни разу, а управление передается на оператор, следующий за оператором while do. нет

2.Операции, выражения и операторы Первое знакомство с циклами. Цикл while do { Фрагмент 1} num:=0; while num < 10 do num:=num + 1; writeln(num, num*num); { Фрагмент 2} num:=0; while num < 10 do begin num:=num + 1; writeln(num, num*num) end Тело цикла состоит из одного оператора. Он может быть простым (одиночным), или составным. Составной оператор представляет собой два опера- тора или более, заключенных между словами begin и end; он называется также блоком. В фрагменте 1 в цикл while do включен только один оператор присваивания. Печать данных будет произведена только один раз - после завер- шения цикла. В фрагменте 2 наличие слов begin и end гаран- тирует, что оба оператора являются частью цикла while do, и печать результатов будет произво- диться на каждом шаге работы цикла. Весь составной оператор рассматривается как один оператор, являющийся частью оператора while do. Слова begin и end играют роль своеобразных скобок (операторные скобки). Поэтому после лю- бого begin нам рано или поздно встретится соот- ветствующий ему end.

2.Операции, выражения и операторы Первое знакомство с циклами. Цикл while do { Фрагмент 1} num:=0; while num < 10 do num:=num + 1; writeln(num, num*num); { Фрагмент 2} num:=0; while num < 10 do begin num:=num + 1; writeln(num, num*num) end В заключении отметим, что в приведенных примерах были использованы отступы в строках для выделения тела программы и циклов while do. Для компилятора отступы в строке не имеют никакого значения; для ре- шения вопроса о том, как интерпретировать наши инструкции, он использует синтаксис языка Паскаль. Отступы в строках предназначены для нас, чтобы с первого взгляда можно было понять как устроена программа. Применяйте отступы в строках, чтобы сделать струк- туру программы наглядной.

Паскаль - шаг за шагом. 3. Управляющие конструкции в Паскале Операторы циклов в Паскале Условные и логические выражения Оператор ветвления if-then-else.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Использование оператора while do program temperature; const lower=0; upper=300; var fahr: real; step: integer; begin fahr:=lower; step:=50; while fahr

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Использование оператора while do program temperature; const lower=0; upper=300; var fahr: real; step: integer; begin fahr:=lower; step:=50; while fahr

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. while условие do оператор Условие истинно? Оператор Да нет Оператор while do определяет операторы, которые циклически выполняются до тех пор, пока проверя- емое выражение не станет ложным. Оператор while do - это цикл с предусловием: ре- шение, выполнять ли в очередной раз тело цикла, принимается ПЕРЕД началом его прохождения. Поэтому вполне возможно, что тело цикла не будет выполнено ни разу.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Цикл while do {фрагмент 1} count:=1; while (count < 5) do writeln(Привет!); {фрагмент 2} count:=10; while (count < 5) do begin writeln(Привет!); count:=count + 1; end При построении цикла while do вы должны включить в него какие-то конструкции, изменяющие величину про- веряемого выражения так, что-бы в конце концов оно стало ложным. В противном случае выполнение цикла никогда не завершится. Например в первом фрагменте программы сообщение Привет будет печататься бесконечное число раз, поскольку в цикле отсутствуют конструкции, изменяющие величину переменной count. Не менее важно инициализировать все переменные, участвующие в условном выражении цикла while do. Во втором фрагменте тело цикла не выполнится ни разу, потому что используемое условие с самого начала является ложным.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Операторы цикла {Цикл while do} count:=1; ( 1 этап ) while (count < 5) do (2 этап) begin writeln(Привет); count:=count + 1; (3 этап) end При организации цикла, когда его тело должно быть выполнено фиксированное число раз, осуществляется три операции: инициализация счетчика; ( 1 этап ) сравнение его величины с некоторым граничным зна- чением; ( 2 этап ) увеличение значения счетчика при каждом прохожде- нии тела цикла. ( 3 этап ) Инциализация счетчика осуществляется вне цикла, уго приращение - внутри цикла. Все это увеличивает вероятность ошибки.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Операторы цикла {Цикл for do} for count:=1 to 5 do writeln(Привет!); for count:=5 downto 1 do writeln(Привет!); В операторе цикла с параметром после зарезервированного слова for задается диапазон изменения значений счетчика и направление изменения (возрастание или убывание). Диа- пазон изменения управляющей переменной задается начальным и конечным значением. Зарезервированное слово to указывает на возрастание значения управляющей перемен- ной на единицу. Цикл продолжается до тех пор, пока переменная не достигнет конечного значения. Другая разновидность цикла с параметром с зарезервированным словом downto исполь- зуется для уменьшения значения управляющей переменной от некоторого начального зна- чения до конечного. Значение управляющей переменной уменьшается при каждом повто- рении на единицу. В языке Паскаль предусмотрены циклы с параметра- ми. В этих циклах инициализация, количество повторе- ния тела цикла и направление приращения счетчика собраны в одном месте. Циклы с параметрами обычно используются, когда число повторений цикла может быть определено перед его началом. Кроме того, циклы с параметром позволя- ют задать автоматическое изменение значения управля- ющей переменной от НАЧАЛЬНОГО до КОНЕЧНОГО значения.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Цикл с параметром for переменная := начальное значение to конечное значение do оператор for переменная := начальное значение downto конечное значение do оператор Пример использования for j:=x+2 downto x-2 do оператор Оператор, который содержится в теле цикла for, выполняется один раз для каждого значе- ния в диапазоне между насальным и конечным значением. Оператор, образующий тело цикла, может быть как простым, так и составным. Диапазон значений управляющей перемен- ной может задаваться выражениями, которые вычисляются ОДИН РАЗ перед выполнением цикла. В примере значение переменной j пос- ледовательно уменьшается от начального зна- чения х+2 до конечного х-2.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Цикл с параметром {Цикл, который не выполнится ни разу} for count:=10 to 9 do writeln(Привет); {Цикл, который выполнится один раз} for count:=10 to 10 do writeln(Привет); {Цикл, который не выполнится ни разу} for count:=9 downto 10 do writeln(Привет); {Цикл, который выполнится один раз} for count:=10 downto 10 do writeln(Привет); Для цикла, в котором используется слово to, начальное значение ложно быть меньше или равно конечному значению, в против- ном случае тело цикла не выполнится ни разу. Для цикла с downto наоборот, начальное значение должно быть больше или равно конечному.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Цикл с условием на выходе {Цикл repeat until} count:=1; repeat writeln(Привет!); count:=count+1; until(count > 5); Циклы while и for являются циклами с предус- ловием. Проверка истинности условия осущест- вляется перед началом каждой итерации (шага) цикла. В языке Паскаль имеется также конструкция repeat until - цикла с постусловием (условием на выходе), где истинность условия проверяется после выполнения каждой итерации цикла. Тело цикла repeat until всегда выполняется по крайней мере один раз, поскольку проверка осу- ществляется только после его завершения. Цикл repeat until имеет еще одно существенное отличие от других операторов цикла. Цикл прек- ращается, когда условное выражение становится истинным. (Можно сказать это и по-другому: тело цикла выполняется, пока условное выраже-ние ложно). В приведенном примере тело цикла будет выполнятся ДО ТЕХ ПОР, ПОКА переменная count не станет больше 5.

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Оператор repeat until определяет действия, ко- торые циклически выполняются до тех пор, пока проверяемое выражение не станет истинным. Зарезервированные слова repeat и until сами служат операторными скобками, поэтому тело цикла может состоять из любого числа операто- ров. Операторы Условие ложно? repeat оператор until условие Данет

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Использование оператора for {Пример цикла с параметром} program cycle_for; var i,fahr: integer; begin for i:=1 to 6 do begin fahr:=i*50; writeln(fahr:3, (5.0/9.0)*(fahr-32):6:1); end; end Существует много разных способов для написания одной и той же программы. Рассмотрим другой вариант нашей преды- дущей программы. Оператор цикла for do используется, когда заранее известно число повторений цикла. После зарезервированного слова for определяется диапазон изменения значе- ния управляющей переменной i (от 0 до 6) и одновременно число повторений опера- тора, содержащегося в теле цикла (7 раз). Зарезервированное слово to указывает на возрастание управляющей переменной на единицу от начального до конечного зна- чения. Управляющая переменная может использоваться в теле цикла в различных выражениях. Однако, не рекомендуется яв- ным образом изменять ее значение (напри- мер, в операторе присваивания).

3. Управляющие конструкции в Паскале Операторы циклов в Паскале. Использование оператора for {Пример цикла с параметром} program cycle_for; var i,fahr: integer; begin for i:=1 to 6 do begin fahr:=i*50; writeln(fahr:3, (5.0/9.0)*(fahr-32):6:1); end; end Значение управляющей переменной пос- ле выхода из цикла считается неопреде- ленным, хотя в языке Turbo Pascal оно рав- но тому, которое переменная приняла на последнем шаге цикла (в данном случае 6). Обратите внимание, что здесь вторым ар- гументом функции writeln задано выраже- ние, вычисляющее температуру по Цель- сию, а не отдельная переменная. Такая запись выражения является при- мером более общего правила: везде, где возможно использование значения пере- менной, можно использовать более слож- ное выражение того же типа.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Значение условных выражений {Истина и ложь в Паскале} program truth_and_lie; var truth, lie: boolean; begin truth:=(20>2); lie:=(20=2); writeln(истина, truth); writeln(ложь, lie); end. истина: true ложь: false Что же такое истина? Ответить на этот вопрос, хотя бы в рамках языка Паскаль, позволит рассмотрение очередной программы. Итак, в языке Паскаль истина принимает зна- чение TRUE, а ложь - FALSE. Не останавливаясь на уже знакомых деталях, перейдем к новинкам. В операторе truth, lie: boolean; описывают- ся две переменные булевского (или логи- ческого) типа. Для описания переменных такого типа служит ключевое слово boolean. Переменные булевского типа могут прини- мать только два значения: истина и ложь. Эти значения обозначаются стандартными идентификаторами, TRUE и FALSE, соот- ветственно.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Значение условных выражений {Истина и ложь в Паскале} program truth_and_lie; var truth, lie: boolean; begin truth:=(20>2); lie:=(20=2); writeln(истина, truth); writeln(ложь, lie); end. истина: true ложь: false Оператор присваивания truth:=(20>2); при- мечателен тем, что в нем в качестве выра- жения используется оператор отношения. Условие в круглых скобках истинно и, сле- довательно, его значение равно TRUE. В операторе lie:=(20=2); тоже использу- ется оператор отношения, но условие в нем ложно и, следовательно, его значение равно FALSE.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Операции отношения Операция Смысл < меньше = больше или равно > больше не равно Операции отношения широко использу- ются в Паскале для сравнений. С помощью каждой такой операции величина слева от знака сравнивается с величиной справа от него.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Условные выражения операнд1 операция операнд2 Выражение Значение 3>=4 false 2+a=a false 5.33

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Операции в порядке уменьшения уровня старшинства Операции * / mod div операции типа «умножения» + - операции типа «сложения» = = операции отношения ( ) изменяют порядок операций Приоритет операций отношения мень- ше, чем у операций типа умножения и сложения. Например, значение выражения x>y+2 то же, что и выражение x>(y+2).

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Логические операции a b (x > a) and (x < b) and - логическая операция «и» рис.1 a b (x b) or - логическая операция «или» рис.2 (x =a) not - логическая операция «не» Иногда бывает полезным объеденить два или более условных выражения. Например, определить попадание чисел в заданный интервал (рис.1) или, наоборот, непопадание в заданный интервал (рис.2). Для этого мы можем использо- вать логические выражения. Обычно операндами логических вы- ражений являются условные выражения. Операция NOT имеет один операнд, рас- положенный справа от операции. Осталь- ные операции имеют два операнда: один слева и один справа. AND - логическое И: результат опе- рации имеет значение TRUE (истина), ес- ли оба операнда истинны, и FALSE (ложь) в противном случае.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Логические операции a b (x > a) and (x < b) and - логическая операция «и» рис.1 a b (x b) or - логическая операция «или» рис.2 (x =a) not - логическая операция «не» OR - логическое ИЛИ: результат опера- ции имеет значение TRUE, если один или оба операнда истинны, и FALSE в противном случае. NOT - логическое НЕ: результат имеет значение TRUE, если операнд имеет зна- чение FALSE, и наоборот.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Операции в порядке уменьшения уровня старшинства Операции not * / mod div and операции типа «умножения» + - or операции типа «сложения» = = операции отношения ( ) изменяют порядок операций Операция NOT имеет очень высокий приоритет, он выше чем у операций типа «умножения». Операция AND относится к операциям типа «умножения», а операция OR к опе- рациям типа «сложения». Поэтому прио- ритет операции AND выше, чем у опера- ции OR.

3. Управляющие конструкции в Паскале. 3.2.Условные и логические выражения. Выражение Значение (5>2) and (4>7) false (5>2) or (4>7) true not (4>7) true (5>2) and (3=3) true not (5>2) and (2=3) false В заключение посмотрите на примеры логических выражений и проверьте, по- лучились бы у Вас точно такие же значе- ния этих выражений.

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Использование оператора if-then-else program example; var test: integer; flag: boolean; begin test:=1; if test=1 then writeln(test=1, -это истина) else writeln(test=0, -это не истина); flag:=false; if flag then writeln(flag, -это не ложь) else writeln(flag, -это ложь); if (test>0) and (test0) and (test

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Использование оператора if-then-else program example; var test: integer; flag: boolean; begin test:=1; if test=1 then writeln(test=1, -это истина) else writeln(test=0, -это не истина); flag:=false; if flag then writeln(flag, -это не ложь) else writeln(flag, -это ложь); if (test>0) and (test0) and (test

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Использование оператора if-then-else program example; var test: integer; flag: boolean; begin test:=1; if test=1 then writeln(test=1, -это истина) else writeln(test=0, -это не истина); flag:=false; if flag then writeln(flag, -это не ложь) else writeln(flag, -это ложь); if (test>0) and (test0) and (test

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Использование оператора if-then-else program example; var test: integer; flag: boolean; begin test:=1; if test=1 then writeln(test=1, -это истина) else writeln(test=0, -это не истина); flag:=false; if flag then writeln(flag, -это не ложь) else writeln(flag, -это ложь); if (test>0) and (test0) and (test

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Для создания мощных и эффективных прог- рамм язык программирования должен обес- печивать реализацию трех форм управления процессом выполнения программ: - выполнение последовательности операто- ров; Операторы Простая последовательность

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. - выполнение последовательности операто- ров до тех пор, пока некоторое условие ис- тинно (например, цикл while do); Цикл Оператор Условие истинно? Да нет

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. - использование проверки истинности усло- вия для выбора между различными возмож- ными способами действия (например, опера- тор if-then-else); Разветвление if-then-else Оператор1 Условие истинно? Да нет Оператор2

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Простейшая форма конструкции if-then поз- воляет выполнить оператор в случае истин- ности проверяемого выражения и пропустить его выполнение в случае, если выражение ложно. Обычно под выражением здесь пони- мают любое выражение булевского типа. Оператор, следующим за проверяемым вы- ражением, может быть простым или состав- ным. В любом случае конструкция If выражение then оператор рассматривается как один оператор if-then. If выражение then оператор выражение истинно? Да нет Оператор

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Простая форма оператора if-then позволяет выполнить оператор или пропустить его. Язык Паскаль предоставляет также возмож- ность выбрать любой из двух операторов путем использования конструкции if-then- else. Если выражение истинно, то выполня- ется первый оператор, а если ложно - то второй, следующий за словом else. Разветвление if-then-else Оператор1 Условие истинно? Да нет Оператор2

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Правила языка Паскаль не требуют отсту- па в строке, но это стало обычной практи- кой. Отступ позволяет с первого взгляда заметить те операторы, выполнение кото- рых зависит от проверяемого условия. Оператоы используемые в конструкции if- then-else, могут быть как простыми, так и составными. Но ни смотря ни на что, конструкция if-then-else рассматривается компилятором как один оператор. На месте любого оператора в конструкции if-then- else может стоять другой условный опера- тор if-then-else. В данном случае приведен пример оператора if-then-else, в котором после else находится другой условный опе- ратор. Про второй оператор говорят, что он вложен в первый. Если выражение1 истин-но, то выполня- ется оператор1. Если выражение1 ложно, но выражение2 истинно, то выполняется оператор2. Если же оба выражения ложны, то выполняется выражение3. Конструкция if-then-else if выражение1 then ___оператор1 else ___оператор2 ============================ if выражение1 then оператор1 else if выражение2 then оператор2 else оператор3

3. Управляющие конструкции в Паскале. 3.3.Оператор ветвления if-then-else. Когда в программе имеется несколько конструкций if-then и if-then-else, каким об- разом компилятор решает какому if-then соответствует какой else? Ведь отступы в строке для компилятора ничего не значат. Запомните правило: else соответствует ближайшему if-then, кроме тех случаев, когда операторы входят в состав составного оператора ( то есть на- ходятся между словами begin и end). if выражение then оператор else оператор

Паскаль - шаг за шагом. 4.Типы данных Интервальный тип Определение собственного типа Преобразование типов Ввод данных в программу Работа с битами Еще об управляющих конструкциях...

4. Типы данных. 4.1.Интервальный тип. Ограниченный тип данных program diapazon; var first, second:A..Z; index:1..26; begin first:=A; second:=i ; index:=ord(second)-ord(first); writeln(index,-ая буква в английском); writeln(алфавите -, second); end. Error 76: Constant out of range Эта программа показывает порядковый номер буквы в английском алфавие. Если бы вы работали в реальной систе- ме, то при попытке компиляции компиля- тор выдал бы сообщение в красной рамке. Давайте попробуем разобраться в чем тут дело. Сообщение компилятора говорит о том, что константа выходит за пределы диапа- зона. Курсор находится в той строке прог- раммы, в которой, по мнению компилято- ра, и содержится ошибка. О каком же диа- пазоне идет речь?

4. Типы данных. 4.1.Интервальный тип. Ограниченный тип данных program diapazon; var first, second:A..Z; index:1..26; begin first:=A; second:=i ; index:=ord(second)-ord(first); writeln(index,-ая буква в английском); writeln(алфавите -, second); end. Error 76: Constant out of range В языке Паскаль существует возмож- ность задавать новый тип, указывая только часть значений из уже известного типа. В операторе index:1..26; описана пере- менная целого типа index, которая может принимать значения от 1 до 26 включи- тельно (именно столько букв в английском алфавите). В операторе first, second:A..Z; опи- саны переменные типа char; однако, кроме того, указан диапазон значений, которые эти переменные могут принимать (от A до Z). Оператор присваивания second:=i ; со- держит ошибку, так как происходит по- пытка присвоить переменной интерваль- ного типа значение, которое не входит в указанный диапазон (напомним, что сим- волы i и I совершенно различны). Для исправления ошибки следует вместо символа i в правой части оператора прис- ваивания указать символ I. Осталось ис- править ошибку и запустить программу.

4. Типы данных. 4.1.Интервальный тип. Ограниченный тип данных program diapazon; var first, second:A..Z; index:1..26; begin first:=A; second:=I ; index:=ord(second)-ord(first); writeln(index,-ая буква в английском); writeln(алфавите -, second); end. Отлично! Ошибка исправлена, и на экра- не появился результат работы программы. Так как в таблице ASCII кодов символы имеют последовательные порядковые но- мера, данный оператор позволяет вычис- лить порядковый номер буквы I в английс- ком алфавите. 8-ая буква в английском алфавите - I

4. Типы данных Определение «собственного» типа. Система типов Паскаля Простые типыЦелые типы Вещественные типы Символьный тип Булевский тип Язык Паскаль относится к языкам с сильно развитой структурой типов. Вы уже знакомы с 4-мя стандартными простыми типами. К ним относятся: - целые типы - вещественные типы - символьный тип - булевский тип. На основе стандартных типов Паскаль предоставляет возможность самосто- ятельно образовывать новые типы пе- ременных.

4. Типы данных Определение «собственного» типа. Ограниченные типы : Нач.значение..Кон.значение Пример использования var letter:A..Z; digital:0..9; count:1..10; В Паскале имеется возможность определить новый тип, указывая только часть значений из уже известного типа. Такие типы называются ограниченными или ин- тервальными. Для указания нового ограниченного типа следует указать начальное значение и через две точки конечное значение. Такая возможность предоставлена лишь для некоторых типов, например, для целых типов и для символьного типа, но не для вещественных типов. В приведенных примерах переменные letter и digital имеют тип char, но могут принимать значения только из указанного диапазона. Переменная count имеет целый тип, но принимает значения от 1 до 10. Ограниченные типы нужны прежде всего програм- мисту. Если заранее известно, какие значения могут принимать переменные, то использование ограниченно- го типа повышает наглядность программы и обеспечи- вает дополнительный контроль над ошибками.

4. Типы данных Определение «собственного» типа. Система типов Паскаля Простые типы Стандартные типы Ограниченные типы Перечислимые типы Кроме стандартных и ограниченных типов в Паскале есть возможность са- мостоятельно определять новый тип переменных путем перечисления всех возможных значений переменных. Такие типы данных называются пе- речисленными типами.

4. Типы данных Определение «собственного» типа. Перечислимые типы type =(значение1, зна- чение2,..., значениеN); Зарезервированное слово type служит для указания начала раздела описания типов. После этого слова и следует собственно описание нового типа. Описание типа состоит из имени типа и тех значений, которые могут принимать переменные этого типа. Значения перечисляются в круглых скобках через запятую. В качестве значений можно использовать любые допусти- мые идентификаторы.

4. Типы данных Определение «собственного» типа. Примеры перечислимых типов type animal=(dog,cat,cow); turn=(on,off); var var1:animal; var2:turn; begin var1:=dog; var2:=on; end. После того, как новый тип определен, возможно объя- вить в программе переменные указанного типа. Пере- менные имеющие перечислимый тип, могут принимать только те значения, которые указаны при определении типа.

4. Типы данных Определение «собственного» типа. Примеры перечислимых типов type boolean=(false, true); false

4. Типы данных Определение «собственного» типа. Примеры перечислимых типов type color=(red,green,yellow) значение типа номер по порядку red 0 green 1 yellow 2 Каждому значению в перечислимом типе присвоены соответствующие порядковые номера. Согласно прави- лам, первому значению присваивается значение 0, вто- рому 1 и так далее. Таким образом, можно говорить о предыдущем и последующем элементах типа.

4. Типы данных Определение «собственного» типа. Функции succ( ) и pred( ) type color=(red,green,yellow) использование значение функций succ(red) green succ(green) yellow pred(green) red В языке Паскаль определены две стандартные функ- ции succ( ) и pred( ) для работы с перечисленными ти- пами. В качестве аргумента этим функциям передаются значения перечислимого типа. Функция succ( ) возвра- щает следующий по порядку элемент из списка значе- ний, а функция pred( ) - предыдущий.

4. Типы данных Определение «собственного» типа. Процедуры inc( ) и dec( ) program inc_dec; type color=(red,green,yellow); var i: color; begin i:=red; inc(i,2);{i - yellow} dec(i,1);{i - green} dec(i);{i - yellow} end. В языке Turbo Pascal определены две стандартные процедуры inc( ) и dec( ) для работы с перечисленными типами. Пусть значение переменной i перечислимого типа имеет порядковый номер N. Процедура inc(i,d) присваи- вает переменной i значение с номером N+d, а процедура dec(i,d) - с номером N-d. Значение d можно опустить, тогда будет считаться, что d=1.

4. Типы данных Определение «собственного» типа. Использование перечислимых типов program WORKTIME; type day=(MO,TU,WE,TH,FR,SA,SU); var time: integer; den: day; begin time:=0; for den:=MO to FR do time:=time+8; writeln(В неделе, time, рабочих часов); end. Эта программа демонстрирует ис- пользование перечислимых типов и подсчитывает количество рабочих ча- сов в неделе. Зарезервированное слово type означа- ет начало раздела описания типов. Тип любой переменной должен быть опре- делен до ее описания, поэтому раздел описания типов обычно располагается перед разделом описания переменных. В неделе 40 рабочих часов

4. Типы данных Определение «собственного» типа. Использование перечислимых типов program WORKTIME; type day=(MO,TU,WE,TH,FR,SA,SU); var time: integer; den: day; begin time:=0; for den:=MO to FR do time:=time+8; writeln(В неделе, time, рабочих часов); end. В этом операторе описывается новый тип day. Это перечислимый тип. Значе- ния, которые могут принимать пере- менные этого типа, указаны в круглых скобках. В операторе den: day; описы- вается переменная den, которая имеет тип day. Обратите внимание, что опера- тор описания ничем не отличается от встреченных ранее. В неделе 40 рабочих часов

4. Типы данных Определение «собственного» типа. Использование перечислимых типов program WORKTIME; type day=(MO,TU,WE,TH,FR,SA,SU); var time: integer; den: day; begin time:=0; for den:=MO to FR do time:=time+8; writeln(В неделе, time, рабочих часов); end. Подобный оператор цикла совершен- но правомочен в Паскале. Переменная den последовательно будет приобретать значения от MO до FR. Оператор присваивания time:=time+8; выполнится 5 раз, пока значение переменной den не станет равным FR. В неделе 40 рабочих часов

4. Типы данных Преобразование типов. Базовые типы данных и их размеры { Размер места под Солнцем} program size; begin writeln(Размер данных типа: ); writeln(char =,sizeof(char), байт ); writeln(shorint =,sizeof(shortint), байт ); writeln(integer =,sizeof(integer), байт ); writeln(longint =,sizeof(longint), байт ); writeln(real =,sizeof(real), байт ); writeln(single =,sizeof(single), байт ); writeln(double =,sizeof(double), байт ); end. Как вы уже знаете, переменные раз- ных типов имеют различный размер и, соответственно, занимают разный объем памяти. Приведенная программа демонстрирует размеры данных основ- ных типов для компьютера типа IBM PC. Перед Вами обычная функция выво- да. Здесь она интересна тем, что в ка- честве ее аргумента используется функ- ция sizeof, которая позволяет опреде- лить количество байтов для размеще- ния переменной. Тип переменной ука- зывается в качестве параметра этой функции. Размер данных типа: char = 1 байт shortint = 1 байт integer = 2 байт longint = 4 байт real = 6 байт single = 4 байт double = 8 байт

4. Типы данных Преобразование типов. При работе программа имеет дело с данными. Некоторые данные в программе являются числами (целыми или вещественными - с плавающей точкой), некоторые - символами. Компьютер должен иметь возможность узнавать и обрабатывать правильно данные любого из этих типов. Если величина - константа, то компилятор распознает ее тип по внешнему виду. В случае переменной ее тип должен быть объявлен в операторе описания.

4. Типы данных Преобразование типов. Благодаря объявлению переменной компи- лятор узнает ее тип. ch1: char; count: integer; Ii: longint; Байт ch1 count Ii

4. Типы данных Преобразование типов. Для переменной типа char в памяти отво- дится один байт, который состоит из 8 бит. Поскольку каждый бит может быть равен либо 0, либо 1, всего в байтовом формате можно представить 256 (два в восьмой степени) различных комбинаций из нулей и единиц. Так как каждый символ имеет порядковый номер, байт можно использо- вать для кодирования 256 различных симво- лов. char ch1; 0 Б а й т = 7

Целые без знака byte word Целые со знаком shortint integer -2 млрд 2 млрд longint 4. Типы данных Преобразование типов. Байт При объявлении переменной цело- го типа ей отводится в памяти различное число байт, в зависимости от типа переменной. Переменные типа byte и word могут принимать только неотрицательные значения и занимают соответственно 1 и 2 байта памяти. Допустимыми значениями пере- менных типа shortint, integer и longint могут быть как положительные так и отрицательные числа.

Целые без знака byte word Целые со знаком shortint integer -2 млрд 2 млрд longint 4. Типы данных Преобразование типов. Байт Язык Паскаль представляет поль- зователям возможность выбрать раз- мер элемента памяти для целых чисел, а, следовательно, и диапазон их представления. В IBM PC переменным типа shor- tint отводится 1 байт, и они могут принимать значения от -128 до 127. Переменные типа integer занимают в памяти 2 байта и принимают значе- ния от до Переменные типа longint занимают четыре байта и могут использоваться для перемен- ных, значение которых от -2млрд до 2млрд.