PASCAL Pascal является широко распространенным языком алгоритмического типа, разработан Никлаусом Виртом в 1968 -1970 годах. Первая версия Turbo-Pascal.

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



Advertisements
Похожие презентации
Основы программирования в Turbo Pascal Язык программирования Паскаль.
Advertisements

Оператор выбора позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости.
Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
Познакомиться с основными понятиями языка Pascal 2.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Основы языка Pasсal.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Язык программирования Pascal Ветвление А. Жидков.
Язык программирования Паскаль (Pascal). Структура программы на Паскале Заголовок программы Соглашения Описание меток Описание констант Описание переменных.
turbo.exe основной файл среды Любой язык обладает алфавитом, синтаксисом и семантикой. В алфавит входит набор символов, использующихся в языке с помощью.
Язык программирования Pascal. Структура программы Pascal Program имя программы; Uses раздел подключения модулей; Const раздел констант; Var раздел описаний.
1 Организация программ разветвляющейся структуры. Организация программ разветвляющейся структуры. Условный оператор.
Программирование на языке Паскаль Введение. Алфавит языка Паскаль Алфавит это фиксированный набор основных символов, из которых состоит любой текст на.
1 ESC – ВЫХОД НА СЛЕДУЮЩИЙ миэт цко НА ПРЕДЫДУЩИЙ Алфавит языка Турбо-Паскаль: БУКВЫ И ЦИФРЫ 1. Прописные и строчные буквы латинского алфавита: A B C D.
Язык программирования Turbo Pascal. Программирование Программирование – это запись разработанного алгоритма на языке программирования. 4 Автор языка Паскаль.
Язык программирования Паскаль. Блез Паскаль ( ) Французский философ. Писатель, математик, физик. Имя Паскаля носит целый ряд фактов, установленных.
Алфавит и словарь языка Паскаль Учитель информатики Абдулзагирова А.И.
Разветвляющиеся алгоритмы if Оператор условия if.
Транксрипт:

PASCAL Pascal является широко распространенным языком алгоритмического типа, разработан Никлаусом Виртом в годах. Первая версия Turbo-Pascal появилась в 1984 году.

Содержание Алфавит языка Паскаль СЛОВА (идентификаторы) Правила именования объектов Структура программы на языке Паскаль Подразделы раздела описаний Типы данных: целый, логическийТипы данных: целый, логический Основные операторы языка PASCALОсновные операторы языка PASCAL Присваивание Операции целочисленной арифметики Ввод данных Вывод данных Ветвление и оператор выбораВетвление оператор выбора

слова Алфавит языка Паскаль Буквы A…Z a…z знак под- черкива- ния: _ Цифры десятичные: 0…9 Специальные символы Знаки ариф- метических операций: +, -, *, /, div, mod Знаки операций сравнения = > < Комбинации символов не равно >= больше или равно

СЛОВА (идентификаторы) - неделимые последовательности знаков алфавита, которые отделяются друг от друга разделителями (пробел, символ конца строки, комментарий и другие) Идентификаторы пользователя применяются для обозначения меток, констант, переменных, процедур и функций, определенных программистом Стандартные идентификаторы служат для обозначения типов данных, процедур или функций (write, read, sin …) Зарезервированные слова имеют строго определенный смысл (for, function, and …)

Структура программы на языке Паскаль Программа - упорядоченная последовательность действий для ЭВМ, реализующая алгоритм решения какой-либо задачи на языке программирования или в машинных кодах Заголовок Раздел описания Раздел операторов Program ;имя Begin { операторы}операторы End. CONST {РАЗДЕЛ ОПИСАНИЯ КОНСТАНТ}; TYPE {РАЗДЕЛ ОПИСАНИЯ ТИПОВ}; VAR {РАЗДЕЛ ОПИСАНИЯ ПЕРЕМЕННЫХ}; LABEL {РАЗДЕЛ ОПИСАНИЯ МЕТОК} FUNCTION... PROCEDURE... {ОПИСАНИЕ ПРОЦЕДУР И ФУНКЦИЙ ПРОГРАММИСТОМ}

Структура программы на языке Паскаль Программа - упорядоченная последовательность действий для ЭВМ, реализующая алгоритм решения какой-либо задачи на языке программирования или в машинных кодах Заголовок Раздел описания Раздел операторов Program ;имя Begin { операторы }операторы End. CONST {РАЗДЕЛ ОПИСАНИЯ КОНСТАНТ}; TYPE {РАЗДЕЛ ОПИСАНИЯ ТИПОВ}; VAR {РАЗДЕЛ ОПИСАНИЯ ПЕРЕМЕННЫХ}; LABEL {РАЗДЕЛ ОПИСАНИЯ МЕТОК} FUNCTION... PROCEDURE...

Оператор присваивания Форма записи: := ; k := k+1.5; chislo := 3.86; rezultat := cos(a*b); аргумент функции; функция; not; *, /, div, mod, and; +, -, or, xor; =,, , =. Обозначение операций и их приоритет : Математические функции

Запишите выражения по правилам Pascal

Операторы ввода данных READ(a1,a2,…,a n ); READLN(a1,a2,…,a n ); где a1,a2,…,a n - список имен переменных, которым последовательно присваиваются вводимые значения. Пример. var a: integer; b,c: real; … begin... readln (a,b,c); … при наборе чисел через пробел переменные получат значения: а 16, b 0.528, c

Операторы вывода данных WRITE(a1,a2,…,a n ); WRITELN(a1,a2,…,a n ); где a1,a2,…,a n - имена переменных, выражения и константы, значения которых будут выведены на экран Пример1. WRITELN (результат вычислений=, rezult); на экране монитора будет выведена строка: результат вычислений= после символа «равно», - значение переменной rezult. Пример2. WRITELN (a+b=, a+b); на экране монитора будет выведена строка: a+b= после символа «равно», - значение выражения а+b.

это алгоритм, содержащий хотя бы одно условие, в результате проверки которого происходит переход на один из двух возможных шагов. Разветвляющийся алгоритм

В блок - схемах начало ветвления оформляется в виде ромба с условием ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ да нет

Ветвление бывает в двух формах: полной Серия действий 2 Серия действий 1 Логическое выражение данет Серия действий Логическое выражение данет и сокращенной

Примеры разветвляющихся алгоритмов 1. Даны значения двух величин; выбрать большее из них. C:=BC:=A A>B данет Вывод C Конец Начало Ввод A,B Начало Ввод A,B C:=A C:=B B>A данет Вывод C Конец

Ветвление (Условный оператор полной формы) IF логическое выражение THEN оператор 1 ELSE оператор 2 ; Оператор1 выполняется, если логическое выражение истинно, иначе - выполняется оператор2. Серия действий 2 Серия действий 1 Лог. выражение данет

Ветвление (Условный оператор сокращенной формы) Серия действий Логическое выражение данет IF логическое выражение THEN оператор ; Оператор выполняется, если логическое выражение истинно, иначе - пропускается.

Примеры разветвляющихся алгоритмов 1. Даны значения двух величин; выбрать большее из них. C:=BC:=A A>B данет Вывод C Конец Начало Ввод A,B Program Bolshee_iz_dvux; var a,b,c:real; begin write('Задайте два числа:'); readln(a,b); if a>b then c:=a else c:=b; writeln ('Большее из них:',c:0:2); readln; end. Первый способ

Примеры разветвляющихся алгоритмов 1. Даны значения двух величин; выбрать большее из них. Второй способ Начало Ввод A,B C:=A C:=B B>A данет Вывод C Конец Program Bolshee_iz_dvux; var a,b,c:real; begin write('Задайте два числа: '); readln(a,b); c:=a; if b>c then c:=b; writeln ('Большее из них: ',c:0:2); readln; end.

Примеры разветвляющихся алгоритмов 2. Даны значения двух величин; упорядочить их значения по возрастанию. Начало Ввод X,Y C:=X X:=Y Y:=C X>Y да нет Вывод X,Y Конец Если на какой-то из ветвей оператора конструкции ветвления находится несколько действий, то их нужно объединить в составной оператор. Для этого их записывают между словами Begin и End Program Sortirovka; var x,y,c:real; begin write('Задайте два числа: '); readln(x,y); if x>y then begin c:=x; x:=y; y:=c end; writeln ('Отсортированы: ',x:0:2,' ', y:0:2); readln end.

Задачи. 3. Составить блок-схему и программу вычисления кусочно-разрывной функции y= 2. Можно ли квадрат поместить в круг. (Д.з. Можно ли круг поместить в квадрат. ) 1. Найти Max из 3-х, введенных с клавиатуры (исп. не более 2-х сравнений.) 5. Составить алгоритм и программу решения квадратного уравнения AX 2 +BX+C=0 8. Составить программу решения линейного уравнения AX+B=0. Учесть, что А и В -любые 6. Даны действительные числа X и Y, неравные друг другу. Меньшее из них заменить квадратом половины их суммы, а большее квадратным корнем их удвоенного произведения. 7. Среди четырех целых, введенных с клавиатуры чисел определить количество кратных Х и найти их сумму. 4. Написать программу решения следующей задачи: Компьютер спрашивает Любите ли вы мороженое? Если ответ положительный, то отвечает: Поедим вместе! В противном случае просит: Отдай мне!

Для продвинутых 1. В небоскребе N этажей и всего один подъезд. На каждом этаже 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира. 2. Дана точка А(x,y). Определить принадлежит ли она треугольнику с вершинами в точках (х 1,у 1 ), (х 2,у 2 ), (х 3,у 3 ). 3. Даны три положительных числа. Определить, можно ли построить треугольник с длинами сторон, равными этим числам. Если можно, то ответить на вопрос, является ли он остроугольным. 4. Заданы координаты вершин прямоугольника: (х 1,у 1 ), (х 2,у 2 ), (х 3,у 3 ), (х 4,у 4 ). Определить площадь части прямоугольника, расположенного в 1-й координатной четверти.

Оператор выбора Позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения (селектора выбора).

Задача 1. «Старояпонский календарь» В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, быка, тигра, кролика, дракона, змеи, лошади, барана, обезьяны, петуха, собаки и кабана. Написать программу, которая по номеру года определяет его название в старояпонском календаре, если известно, что 1996 г. был годом крысы - началом очередного цикла.

Две формы представления алгоритма выбора выбор (неполная) выбор – иначе (полная)... Действие 1 Действие 2 Действие N Условие1 Условие2 Условие N Да Нет... Действие 1 Действие 2 Действие N Условие1 Условие2 Условие N Да Нет Действие N+1

Оператор выбора в языке Паскаль CASE K OF A1:Оператор1; A2:Oператор2;... An:ОператорN; END; CASE K OF A1:Оператор1; A2:Oператор2;... An:ОператорN; ELSE Оператор N+1 END; Здесь K - выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический) А1,…,Аn - константы того же типа, что и селектор, выполняющие роль меток ветвей, которые могут быть заданы списком или интервалом

Program Japan ; Var year: integer; begin write('Ваш год рождения : '); readln(year); case year mod 12 of 0: write(Год обезьяна'); 1: write('Год петуха'); 2: write('Год собаки'); 3: write('Год кабана'); 4: write('Год крысы'); 5: write('Год быка'); 6: write('Год тигра'); 7: write('Год кролика'); 8: write('Год дракона'); 9: write('Год змеи'); 10: write('Год лошади'); 11: write('Год овцы'); end; end. Задача 1. «Старояпонский календарь» Решение. Поскольку цикл является двенадцатилетним поставим в соответствие название года остатку от деления номера этого года на 12. При этом учтем, что остаток от деления 1996 на 12 равен 4.

Задача 2. «Большее среди двух» Найти наибольшее среди двух действительных чисел, используя оператор выбора Program Maximum; var Max, x, y: real; begin write (Введите два неравных числа );readln(x,y); case x > y of true: max:=x; false: max:=y; end; writeln (Максимальное из двух есть, max:0:2); readln; end. Решение. Здесь селектором будет являться логическая величина

Пример2: Case I of 2,3,5,7: WriteLn(I, - простое число'); 4,6,8..10: WriteLn(I, - составное число'); End; Метки ветвей могут быть заданы списком или интервалом. Сформулируйте задачи к приведенным фрагментам программ (здесь переменная Ch должна быть объявлена как переменная типа Char, I - типа Integer) Пример1: Case Ch of 'A'..'Z', 'a'..'z': WriteLn('Letter'); '0'..'9': WriteLn('Digit'); '+', '-', '*', '/': WriteLn('Operator'); Else WriteLn('Special character'); End;

Задачи для самостоятельной работы Написать программу, которая 1) по номеру дня недели (натуральному числу от 1 до 7) выдает в качестве результата его название и количество уроков в вашем классе в этот день. 2) по последней цифре заданного целого числа позволяет определить последнюю цифру его квадрата. 3) по введенному номеру времени года (1- зима, 2- весна, 3- лето, 4- осень) выдавала бы соответствующие этому времени года месяцы, количество дней в каждом из месяцев. 4) Пусть элементами круга являются радиус (первый элемент, диаметр (второй элемент) и длина окружности (третий элемент). Программа по номеру элемента запрашивает его значение и вычисляет площадь круга.

Правила именования объектов, вводимых в программу программистом: имя может состоять из букв, цифр и знака подчеркивания; имя должно начинаться с буквы или знака подчеркивания (за исключением меток, которые могут начинаться и цифрой, и буквой); в качестве имени не могут использоваться зарезервированные слова и не желательно использование стандартных идентификаторов длина имени не ограничена, но различаются они по первым 63 символам. Например : корректные имена: min, i, k1, Dlina_Stroki, _otvet Некорректные имена: goto - использовано служебное слово; m 5 - пробел недопустим в составе имени; 1-й_primer - нельзя начинать с цифры, использовать русский алфавит и знаки разделители.

Данные - информация, представленная в формальном виде, который обеспечивает возможность ее хранения, обработки и передачи. Подразделы раздела описаний Переменная - величина, которая может изменяться, принимая в процессе этого изменения различные значения; объявление переменных : VAR «имя переменной»: тип переменной; Например. Var a,b,sum:integer; chastnoe:real;тип переменной Константа – величина, значение которой не изменяется в период ее существования; Объявление константы: CONST «имя константы»=«значение»; Например. CONST z=5; f=3.5; sl=Для продолжения нажмите Enter ;

Типы данных Простые целый integer вещественныйreal (действительный) логическийboolean символьныйchar перечислимый диапазон Сложные (составные) строки string массивы array записи record файлы file множества set указатели pointer Схема из лекции Тип переменной определяет какие значения она может принимать, сколько байтов в памяти для нее будет зарезервировано и какие действия с ней допустимы.

Целочисленные типы Byte занимает 1 байт памяти, диапазон значений находится в неотрицательной области( ) Integer занимает 2 байта памяти, диапазон значений – до Полученные результаты можно записать в шестнадцатеричной системе счисления: = $8000; = $7FFF; = $8025. Признаком шестнадцатеричного числа является знак доллара $.

Целочисленные типы (продолжение) Word занимает 2 байт памяти, диапазон значений находится в неотрицательной области(0…65535) ShortInt занимает 1 байт памяти, диапазон значений находится в неотрицательной области (-128…127) LongInt занимает 4 байт памяти, диапазон значений находится в неотрицательной области ( )

Арифметические операции: +, -, /, *, div (целочисленное деление), mod (остаток от деления) Операции целочисленной арифметики Операции целочисленной арифметики Div и Mod применимы только к целочисленным операндам. Операция Div дает частное от деления, а Mod остаток от деления одного числа на другое. Примеры: 27 DIV 7 {результат 3} 27 MOD 7 {результат 6} 30 DIV 4 {результат 7} 30 MOD 4 {результат 2} 13 DIV -5 {результат -2} 13 MOD -5 {результат 3} -30 DIV 4 {результат -7} -30 MOD 4 {результат -2} -35 DIV -8 {результат 4} -35 MOD -8 {результат -3}

uses crt; VAR A,B:INTEGER; c:char; BEGIN clrscr; gotoXY(10,2); writeln( 'Вычисление результатов целочисленного деления '); gotoXY(15,3); writeln(' Операции DIV - частное, MOD-остаток'); repeat{повторять до нажатия «е»} write('a=');readln(a); write('b=');readln(b); WRITELN ('Частное=',A DIV B,' Остаток=', A MOD B); readln(c); until c='e'; END. {Пример программы } («Использование Div и Mod»}

Задания 1. Дано целое трехзначное число N. Найти: a) последнюю цифру числа N; b) первую цифру числа N; c) вторую цифру числа N; d) сумму цифр данного числа. Самостоятельно 2. С клавиатуры задается четырехзначное целое число N. Получить целое число М, поменяв в числе N местами цифры десятков и сотен. 3. Х - произвольное целое число типа LONGINT, Х > 999. Определить в нем третью и четвертую цифры с конца. Например, для Х= , третья цифра с конца - 5, четвертая цифра Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части.

Логический тип данных Логический тип Boolean состоит из двух значений: True (истина) и False (ложь). Слова True и False определены в языке и являются, по сути, логическими константами. Регистр в записи не существенен: FALSE=False. Значения этого типа участвуют во всевозможных условных операторах, с ними связаны различные операции, связанные с алгеброй высказываний. Boolean занимает 1 байт памяти, хотя для кодирования двух состояний достаточно было бы 1 бита. Объявление переменной логического типа: Var R :Boolean;

Логические выражения Логические выражения обычно используются в операторах управления с условием (If, While, Repeat … Until), либо при вычислении логических переменных. Логическое выражение состоит из логических элементов и логических операций. Логический элемент может быть одним из следующих: логическая константа (TRUE или FALSE); логическая переменная; выражение отношения. Результатом логического выражения может быть TRUE или FALSE. Вычисление значения логического выражения происходит по старшинству операций.старшинству операций

Логические выражения (продолжение) Логическое выражение можно представить в виде простого и составного условия Простое условие это обычно два арифметических выражения, связанных между собой операцией отношения Например. x3;L+Z = abs(x-cos(y)); Если возникает необходимость проверить выполнение двух или более простых условий, из них образуют составное условие, используя логические операции. В языке Паскаль введены четыре логических операции, результат которых всегда имеет тип Boolean и может иметь только одно из двух значений (True 1 (истинно) или False 0 (ложно))

Логические операции в Паскале Где А и В логические элементы; Р логическая переменная A and B, A or B, A xor B, not B логические выражения

Примеры логических выражений Рассмотрим пример вычисления логического выражения L:=(а * b + с = x + у) and (k * b > t). Пусть а = 3.0, b = 4.1, с = 4, x = 2.5, у = 5, k = 3, t = 10, тогда логическое выражение вычисляется в следующем порядке: 1) а * b + с равно 16.3; 2) х + у равно 7.5; 3) k * b равно 12.3; 4) (16.3 = 7.5) равно false; 5) (12.3> 10) равно true; 6) false and true равно false. Таким образом, результатом вычисления всего выражения будет false.

Записать логическое выражение 1)Записать логическое выражение a) А В b)А кратно N c)X [A,B] d)Y (A,B] e)Z [A,B] f) X=Y и [A,B] 2)Построить логическое выражение, которое определяет принадлежность точки с координатами (Х,Y) заштрихованной области a) б)

Записать логическое выражение ( принадлежность точки с координатами (Х,Y) заштрихованной области ) в) г) д) е)

Записать логическое выражение ( принадлежность точки с координатами (Х,Y) заштрихованной области ) ж) з) и) к)

Задания Определите результат работы следующей программы program Logika; uses crt; var a,b:boolean; begin clrscr; writeln(' A B A and B'); a:=false;b:=false; writeln (a:6,b:6,a and b:6); a:=false;b:=true; writeln (a:6,b:6,a and b:6); a:=true;b:=false; writeln (a:6,b:6,a and b:6); a:=true;b:=true; writeln (a:6,b:6,a and b:6); readln; end. Дополнить программу так, чтобы она формировала таблицы истинности и других логических операций

Домашнее задание Из математической логики вам известны функции следования, или импликация (А=>B) и эквивалентность (А~B). Сформируйте на экране таблицы истинности для импликации, используя равносильность А=>B= ¬А v B; и эквивалентности А~B = (¬А v B)^ (А v ¬B)