1 Программирование на языке Паскаль Типы данных. Оператори. Стандартные функции.
2 Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда – это описание действий, которые должен выполнить компьютер. откуда взять исходные данные? что нужно с ними сделать? 1970 – язык Паскаль (Н. Вирт) Оператор – это команда языка программирования высокого уровня.
3 Структура программы program test; Label {раздел меток} Type {раздел типов} Const {раздел констант} Var {раздел переменных} Procedure {раздел процедур} Function {раздел функций} begin {начало программы} {операторы} end. {конец программы} program test; Label {раздел меток} Type {раздел типов} Const {раздел констант} Var {раздел переменных} Procedure {раздел процедур} Function {раздел функций} begin {начало программы} {операторы} end. {конец программы} название программы описательная часть исполни- тельная часть
4 Оформление текста программы Шапка – комментарий в начале процедур и функций. { Max – максимальное из двух чисел Вход: a, b – исходные числа Выход: максимальное из a и b } function Max(a, b: integer): integer; begin... end; { Max – максимальное из двух чисел Вход: a, b – исходные числа Выход: максимальное из a и b } function Max(a, b: integer): integer; begin... end;
© С.В.Кухта, Оформление текста программы Отступы – тело цикла, условного оператора, оператора выбора и т.п. сдвигается вправо на 2-3 символа. for i:=1 to n do begin j := 0; while j < i do begin j := j + 1; k := k mod N; end; k := k + 1; end; for i:=1 to n do begin j := 0; while j < i do begin j := j + 1; k := k mod N; end; k := k + 1; end; лесенка for i:=1 to n do begin j := 0; while j < i do begin j := j + 1; k := k mod N; end; k := k + 1; end; легче читать текст программы видны блоки begin-end (где начинаются и заканчиваются) Скорость работы программы не меняется! !
6 Оформление текста программы «говорящие» имена функций, процедур, переменных: Sum, ShowMenu, count, speed. пробелы в операторах выделение пустыми строками и комментариями важных блоков if(a
7 Простейшая программа program qq; begin { начало программы } end. { конец программы } program qq; begin { начало программы } end. { конец программы } комментарии в фигурных скобках не обрабатываются Что делает эта программа? ? название программы
8 Вывод текста на экран program qq; begin write('2+'); { без перехода } writeln('2=?'); { на новую строку} writeln('Ответ: 4'); end. program qq; begin write('2+'); { без перехода } writeln('2=?'); { на новую строку} writeln('Ответ: 4'); end. Протокол: 2+2=? Ответ: 4
9 Переменные Задача. Ввести с клавиатуры два числа и найти их сумму. Протокол: Введите два целых числа =55 компьютер пользователь компьютер считает сам! 1.Как ввести числа в память? 2.Где хранить введенные числа? 3.Как вычислить? 4.Как вывести результат? ?
10 Программа program qq; begin { ввести два числа } { вычислить их сумму } { вывести сумму на экран } end. program qq; begin { ввести два числа } { вычислить их сумму } { вывести сумму на экран } end. Псевдокод: алгоритм на русском языке с элементами Паскаля. Компьютер не может исполнить псевдокод! !
11 Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Значение Имя Поместится? ? Другой тип данных В переменной хранятся данные определенного типа! !
12 Имена переменных В именах МОЖНО использовать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные буквы не различаются В именах НЕЛЬЗЯ использовать русские буквы пробелы скобки, знаки +, =, !, ? и др. имя не может начинаться с цифры Какие имена правильные?? AXby R&B 4Wheel Вася PesBarbos TU154 [QuQu] _ABBA A+B
13 Типы данных. Назначение Типы данных определяют: Возможные значения переменных Внутреннюю форму представления числа в памяти PC Операции на данными В языке Паскаль (Делфи) типы данных (переменных) указывают в программе заранее!
© С.В.Кухта, Классификация типов данных Типы данных Скалярные Структурированные Стандартные Типы, определяемые пользователем Вещественный Целый Символьный Логический Адресный Перечисляемый Интервальный Множества Массивы Записи Файлы базовые типы конструируемые типы
15 Типы данных. ИдентификаторДлина (байт) Диапазон значенийОперации integer , -, /, *, Div, Mod, >=,, byte , -, /, *, Div, Mod, >=,, word , -, /, *, Div, Mod, >=,, real62,9x ,7x , -, /, *, >=,, boolean1true, falseNot, And, Or, Xor, >=,, char1все символы кода ASCII +, >=,,
16 Переменные Типы переменных: integer{ целая } real{ вещественная } и другие… Объявление переменных: var a, b, c: integer; d: char; var a, b, c: integer; d: char; Выделение места в памяти variable – переменная тип – целые список имен переменных тип – символьный
17 Как записать значение в переменную? a := 5; Оператор присваивания При записи нового значения старое стирается! ! 5 5 Оператор – это команда языка программирова- ния (инструкция). Оператор присваивания – это команда для записи нового значения в переменную.
18 Переменные. Работа с переменными. Присвоение значение переменной: а) переменная:= значение переменной; b) переменная:= переменная; Значение (или значение переменной) которое ПЕРЕДАЕТСЯ переменной Переменная которой ПРИСВАЕВАЕТСЯ значение
19 Переменные. Примеры Передача переменной числового значения 3: var x:byte; begin x:=3; end. Передача переменной числового значения 54666: var x:string; begin x:=Текс; end.
20 Переменные. Примеры Задача. Увеличить переменную X на единицу var x:byte; begin x:=3; x:=x+1; end. x:=x+1; Старое значение x Новое значение x
21 Переменные. Примеры Задача. Поменять местами значения переменных X и Y: var x,y,c:byte; begin c:=y; y:=x; x:=c end. C C X X Y Y 1 2 3
22 Блок-схема линейного алгоритма начало конец c := a + b; ввод a, b вывод c блок «начало» блок «ввод» блок «процесс» блок «вывод» блок «конец»
23 Как ввести значение с клавиатуры read ( a ); 1.Программа ждет, пока пользователь введет значение и нажмет Enter. 2.Введенное значение записывается в переменную a. ! Оператор ввода 5 5
24 Ввод значений двух переменных через пробел: через Enter: a 25 b 30 a 25 b 30 read ( a, b ); Ввод значений двух переменных (через пробел или Enter).
25 Оператор read. Оператор чтения данных с экрана: Read(x) – читает с экрана и присваевает его переменной х Read(x,y) - читает поочередно с экрана значения и присваивает его переменной х и y соответственно.
26 Оператор вывода { вывод значения переменной a} { вывод значения переменной a и переход на новую строчку} { вывод текста } {вывод текста и значения переменной c} write( a ); writeln( a ); writeln( 'Привет!' ); writeln( 'Ответ: ', c ); writeln ( a, '+', b, '=', c );
27 Сложение двух чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простейшее решение: program qq; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end. program qq; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end. Что плохо? ?
28 Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. Протокол: Введите два целых числа =55 компьютер пользователь
29 Арифметические операции + сложение – вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod остаток от деления var a, b: integer; begin a := 7*3 - 4; { 17 } a := a * 5; { 85 } b := a div 10; { 8 } a := a mod 10; { 5 } end. var a, b: integer; begin a := 7*3 - 4; { 17 } a := a * 5; { 85 } b := a div 10; { 8 } a := a mod 10; { 5 } end.
30 Как изменить значение переменной? program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := b + 1; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := b + 1; end. a ? 5 5 b ? a 5 7*4 28 Пример: b
31 program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x; y := 7,8; b := 2.5; x := 2*(a + y); a := b + x; end. program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x; y := 7,8; b := 2.5; x := 2*(a + y); a := b + x; end. Какие операторы неправильные? имя переменной должно быть слева от знака := целая и дробная часть отделяются точкой нельзя записывать вещественное значение в целую переменную
32 Порядок выполнения операций 1)вычисление выражений в скобках 2)умножение, деление, div, mod слева направо 3)сложение и вычитание слева направо z := (5*a+c)/a*(b-c)/ b; x:=(5*c*c-d*(a+b))/((c+d)*(d-2*a));
33 Ручная прокрутка программы program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ??
34 Вывод целых чисел program qq; var a, b: integer; begin a := 15; b := 45; writeln ( a, b ); writeln ( a:4, b:4 ); end. program qq; var a, b: integer; begin a := 15; b := 45; writeln ( a, b ); writeln ( a:4, b:4 ); end символов на число символов на число
35 Вывод вещественных чисел program qq; var x: real; begin x := ; writeln ( x ); writeln ( x:10 ); writeln ( x:7:2 ); end. program qq; var x: real; begin x := ; writeln ( x ); writeln ( x:10 ); writeln ( x:7:2 ); end всего символов в дробной части 1.23E E+001 1,
36 Стандартные процедуры и функции Abs (x) – абсолютное значение аргумента x; ArcTan (x) – арктангенс x, выраженный в радианах; Cos (x) – косинус x, x задается в радианах; Sin (x) – синус x, x задается в радианах; Sqr (x) – квадрат x; Sqrt (x) – квадратный корень из x; Exp (x) – e x (экспонента); Ln (x) – натуральный логарифм x; Pi – число π (3, …); Frac (x) – дробная часть x; Int (x) – выделяет целую часть x; Round (x) – округляет значение x до ближайшего целого числа; Trunc (x) – выделяет целую часть вещественного числа и преобразует ее к типу longInt; Odd (x) – возвращает true, если x нечетно, и false, если x четно.
37 Математические операции. Примеры. Задача. Возвести в квадрат число введенное с клавиатуры. Вывести результат на экран. Решение 1: var x:integer; begin read(x); x:=x*x; write(x); end. Решение 2: var x:integer; begin read(x); x:=sqr(x); write(x); end.
38 Задания «4»: Вывести на экран текст "лесенкой" Вася пошел гулять «5»: Вывести на экран рисунок из букв Ж ЖЖЖ ЖЖЖЖЖ ЖЖЖЖЖЖЖ HH HH ZZZZZ
39 Задания «4»: Ввести три числа, найти их сумму и произведение. Пример: Введите три числа: =16 4*5*7=140 «5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Введите три числа: =16 4*5*7=140 (4+5+7)/3=5.33