Введение в язык(5.11.14).ppt
- Количество слайдов: 26
ММЭ Основы информатики Введение в программирование
ММЭ Языки программирования § Машинно-ориентированные (низкого уровня) – § каждая команда соответствует одной команде процессора (ассемблер) § Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера: l для обучения: Бейсик, ЛОГО, Паскаль l профессиональные: Си, Фортран, Паскаль l для задач искусственного интеллекта: Пролог, ЛИСП l для Интернета: Java. Script, Java, Perl, PHP, ASP
Язык Паскаль ММЭ § 1970 – Никлаус Вирт (Швейцария) язык для обучения студентов разработка программ «сверху вниз» l l Задача Подзадача 1 1. 1 l 1. 2 1. 3 Подзадача 2 2. 1 2. 2 Подзадача 3 2. 3 3. 1 3. 2 разнообразные структуры данных (массивы, структуры, множества) 3. 3
ММЭ Тип данных в Pascal определяет: множество значений, которые может принимать переменная множество операций, допустимых над данной переменной форму внутреннего представления данных
ММЭ Иерархия типов в ТР …
ММЭ Структура программы Программа на ТР Описание данных, с которыми оперируют действия Описание действий
ММЭ Program <имя>; USES <список модулей>; LABEL <список меток>; CONST <описание констант> TYPE <описание пользовательских типов> VAR <описание переменных> PROCEDURE <имя> (формальные параметры); FUNCTION <имя> (формальные параметры); Begin {тело программы – алгоритм решения задачи} <Операторы программы> End.
ММЭ const i 2 = 45; { целое число } pi = 3. 14; { вещественное число } qq = 'Вася'; { строка символов } L = True; { логическая величина }
ММЭ Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Типы переменных: • integer • real • char • string • boolean { целая } { вещественная } { один символ } { символьная строка } { логическая }
ММЭ Стандартные числовые типы и действия с ними. Целые типы. Объявление переменных целых типов. Var a, b: integer; c: byte; k: word;
ММЭ Характеристика целых типов Название типа Короткое целое без знака Короткое целое со знаком Целое без знака Целое со знаком Длинное целое со знаком Память Идентификатор Диапазон значений (в байтах) byte 1 0 -255 shortint 1 -128. . 127 word 2 0. . 65535 integer 2 -32768. . 32767 4 2147483648. . 214748 3647 longint
ММЭ Характеристика вещественных типов Название типа Идентификато р Диапазон значений Значение мантиссы Памя ть (байт ах) Вещественное одинарной точности single 1, 5*10 -45 -3, 4*1038 7. . 8 4 Вещественное real 2, 9 E-39 -1, 7*E 38 11. . 12 6 Вещественное двойной точности double 5, 0*10 -324 -1, 7*10308 15. . 16 8 Вещественное повышенной точности extended 3, 4*10 -4932 -1, 1*104932 19. . 20 10 Целое в формате вещественное (большое целое со знаком, используется в экономических расчетах – денежные суммы в копейках или центах) comp -2*1063+1…+2*1063 -1 8 19. . 20
Математические функции ММЭ Функции Тип аргумента Тип результата Действие Sqr(x) Целое или вещественное Совпадает с типом аргумента x 2 Abs(x) Целое или вещественное │x│ Sqrt(x), x>0 Целое или вещественное real √x Sin(x) Целое или вещественное real sin(x) Cos(x) Целое или вещественное real cos(x) arctan(x) Целое или вещественное real arctg(x) ln(x) Целое или вещественное real ln(x) Exp(x) Целое или вещественное real ℓx Random(x) word случайное число [0; x-1] вещественное [0, 1) Random Odd(x) целые типы Boolean (булевский тип) – true, false t → x – нечет f → ч – иначе Socc(x) любой порядковый Совпадает с типом аргумента следующее значение за x Pred(x) любой порядковый Совпадает с типом аргумента предшествующее x Low(x) любой порядковый Совпадает с типом аргумента наименьшее значение из диапазона x High(x) любой порядковый Совпадает с типом аргумента наибольшее значение из диапазона x
Функции, применимые к вещественным числам ММЭ Функции Тип аргумента Тип результата Действие Trunc(x) Вещественное Целое отбрасывает у вещественного числа дробную часть – Trunc(18. 46)=18 Trunc(19. 6)=19 Round(x) Вещественное Целое Округляет число x до ближайшего целого Round(18. 46)=18 Round(19. 6)=20 Frac(x) Вещественное real Выделяет дробную часть числа х – Frac(18. 46)=0. 46 Int(x) Вещественное real Выделяет целую часть числа x – Int(19. 6)=19. 0
Оператор – это команда языка ММЭ программирования высокого уровня. Оператор присваивания служит для изменения значения переменной. program qq; a 5 ? 5 var a, b: integer; begin b a : = 5; 5+2 ? 7 b : = a + 2; a a : = (a + 2)*(b – 3); 7*4 28 5 end.
ММЭ Типы операторов в ТP Простые § Оператор присваивания § Процедуры вводавывода § Оператор безусловного перехода (go to) § Операторы вызова процедуры § Пустой оператор Структурные § Составной оператор § Условный оператор § Оператор выбора § Операторы цикла
ММЭ 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; 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. a b ? ? 5 7 28 5 3 4 4
ММЭ Порядок выполнения операций • вычисление выражений в скобках • умножение, деление, div, mod слева направо • сложение и вычитание слева направо 2 3 5 4 1 7 8 6 9 z : = (5*a*c+3*(c-d))/a*(b-c)/ b; 2 6 3 4 7 5 1 12 8 11 10 9 x: =(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
ММЭ 1. Процедуры ввода (чтения) данных: оператор ввода read ( a ); { ввод значения переменной a} read ( a, b ); { ввод значений переменных a и b} Как вводить два числа? 25 a 30 b через пробел: 25 30 через Enter: 25 30 25 a 30 b
ММЭ 2. Процедуры вывода данных: оператор ввода write ( a ); { вывод значения переменной a} writeln ( a ); { вывод значения переменной a и переход на новую строчку} writeln ( 'Привет!' ); {вывод текста} writeln ( 'Ответ: ', c ); { вывод текста и значения переменной } writeln ( a, '+', b, '=', c );
ММЭ Форматы вывода program qq; var i: integer; x: real; begin всего i : = 15; символов writeln ( '>', i, '<' ); >15< writeln ( '>', i: 5, '<' ); > 15< x : = 12. 345678; writeln ( '>', x, '<' ); >1. 234568 E+001< writeln ( '>', x: 10, '<' ); > 1. 23 E+001< writeln ( '>', x: 7: 2, '<' ); > 12. 35< end. всего символов в дробной части
ММЭ Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c : = a + b; writeln ( a, '+', b, '=', c ); end. Результат работы программы: это выводит компьютер Введите два целых числа 25 30 это вводит пользователь 25+30=55
ММЭ Что неправильно? if a > b then begin a : = b; end else begin b : = a; end; if a > b then begin a : = b; end begin else b > a begin b : = a; end; if a > b then begin a : = b; end else begin b : = a; end;
ММЭ program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); max : = b; if a? ? ? b then > ? ? ? max : = a; writeln ('Наибольшее число ', max); end.
ММЭ Что неправильно? if a > b then begin a : = b; b else b : = a; if a > b then begin a : = b; end else b : = a; if a > b then b a : = b; else b : = a; end; if a > b then else begin then if b >= a bb: = a; end;