Презентация "Язык Pascal. Основные команды и функции"
Подписи к слайдам:
Автор
Жулин И.И.
ОПЕРАТОР ПРИСВАИВАНИЯ Присваивание – это запись в участок памяти компьютера, отведенной для значения величины M, тех данных, которые хранятся в другом участке памяти компьютера, где записано значение величины N. Обозначение: «:=» переменная := выражение Механизм работы: вычисляется значение выражения в правой части от знака «:=», результат которого необходимо занести в память. Адрес ячейки, куда будут заноситься данные, определяет переменная, находящаяся слева от знака «:=», т.е. переменная ← получаемое выражение. Примеры: A:=b+c/2; b:=n; x:=15; y:=y+3. Особенностью оператора присваивания является и то, что данные, находящиеся по разные стороны знака «:=» («присвоить»), должны принадлежать одному типу, но целочисленное выражение может быть присвоено вещественной переменной, поскольку подмножество целых переменных входит в область дробных. ВВОД И ВЫВОД ДАННЫХ В ЯЗЫКЕ ПАСКАЛЬ Любая программа при вводе исходной информации и выводе результатов взаимодействует с внешними устройствами. Частным случаем обмена данными с внешними устройствами является обмен с консолью. Консоль представляет собой совокупность клавиатуры и экрана монитора. Стандартным устройством ввода является клавиатура, а вывода – монитор. Ввод данных – это процесс передачи исходных данных от внешнего устройства (клавиатура или файл с данными) в оперативную память. Вывод данных – это процесс передачи данных после обработки из оперативной памяти на внешнее устройство (экран, файл, принтер). ВЫВОД ДАННЫХ write (список_вывода); {после выведения последнего элемента списка на экран, курсор останется в той же строке} writeln (список_вывода); {после завершения вывода переводит курсор на следующую строку, если используется без параметров, то курсор просто переводится на следующую строку} Список_вывода – различные выражения (символьные, числовые, логические, переменные или константы), отделённые друг от друга запятыми. Примеры: s := 5 + 10; write ('summa ', '= ' , s); {результат: «summa = 15»} writeln; {просто перевод курсора на следующую строку} ФОРМАТИРОВАННЫЙ ВЫВОД При использовании форматированного вывода можно установить количество позиций на экране, занимаемых выводимой величиной. Обычно такой тип вывода применяется для вещественных чисел. write (a : m); write (a : m : n); {для вещественных чисел} где «a» – то, что мы собираемся вывести (переменная, константа или другое выражение), «m» – ширина поля для вывода «a» (общее количество знакомест), «n» – количество позиций для дробной части «a» (если «a» – вещественной число). Замечание 1: Двоеточие относится к переменной, после которой оно следует. Пример, a := 1; b := 4; c := a + b; write (a, ' + ', b, ' = ', c:3); {результат: «1˽+˽4˽=˽˽˽5», где «˽» - обозначает «пробел»} Замечание 2: Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме (a = 1.280000Е+01). ПЕРВАЯ ПРОГРАММА НА PASCAL program first_progr; {заголовок программы} begin {начало тела программы} write('Hello, World!'); {тело программы} end. {конец тела программы} Пример простейшей программы на языке Pascal, тело которой состоит всего лишь из одного оператора «write». Результат работы программы – отображение на экране монитора «Hello, World!». ВВОД ДАННЫХ read (список_ввода); {после ввода последнего элемента списка на экран, курсор останется в той же строке} readln (список_ввода); {после завершения ввода переводит курсор на следующую строку, если используется без параметров, то курсор просто переводится на следующую строку} Список_ввода – переменные(ая), отделённые друг от друга запятыми. Замечание: После выполнения оператора «read», компьютер переходит в режим ожидания данных. При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку. Типы вводимых значений должны соответствовать типам переменных, указанных в разделе описания переменных. Примеры, read(a); read (b, c, d); readln (m, n); ПРИМЕР ПРОГРАММЫ НА ВВОД-ВЫВОД ДАННЫХ program summa2; {заголовок программы} var {раздел описания переменных} a, b, s: integer; {объявляем 3 переменные целого типа} begin {начало тела программы} read (a, b); {вводим 2 числа: a и b} s := a + b; {сумма чисел a и b} writeln ('Сумма чисел a и b равна: s = ', s); {выводим результат на экран} readln {Ожидание нажатия Enter, после которого программа завершится} end. {конец тела программы} ОПИСАНИЕ ДАННЫХ В PASCAL Общий вид: var [список],[переменная]:[тип]; для строковых переменных: var <переменная>:string[<максимальная длина строки>] При объявлении, однотипные переменные могут группироваться в список и отделяться друг от друга в этом списке запятыми. Примеры: var p: real; {переменная вещественного типа} n, k: integer; {переменные целого типа integer} i: byte; {переменная целого типа byte} a: char; {переменная символьного типа} s1: string[10]; {строковая переменная s1 длиной не более 10 символов} s2: string; {строковая переменная s2 длиной не более 255 символов} f: boolean; {переменная логического типа} СТАНДАРТНЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ ЯЗЫКА PASCAL
Функция |
Запись на Pascal |
Тип аргумента |
Тип результата |
абсолютное значение аргумента |
abs (x) |
real, integer |
совпадает с типом аргумента |
квадрат аргумента |
sqr (x) |
real, integer |
совпадает с типом аргумента |
квадратный корень аргумента |
sqrt (x) |
real, integer |
real |
косинус аргумента |
cos (x) |
real, integer |
real |
синус аргумента |
sin (x) |
real, integer |
real |
арктангенс аргумента |
arctan (x) |
real, integer |
real |
экспонента аргумента (ex) |
exp (x) |
real, integer |
real |
натуральный логарифм |
ln (x) |
real, integer |
real |
целая часть числа |
int (x) |
real, integer |
real |
дробная часть числа |
frac (x) |
real |
real |
число ПИ (3,141592653) |
pi |
нет |
real |
случайное число в интервале [0, 1] |
random |
нет |
real |
случайное число в интервале [0, x] |
random (x) |
integer |
integer |
- вычисляются подвыражения, заключенные в скобки;
- затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
- возведение в степень;
- мультипликативные операции: *, /, div, mod;
- унарные операции: +, -, abs, not;
- аддитивные операции: +, -;
- операции отношения: =, <>, <, >, <=, >=;
- логические операции: and, or, not;
- операции с одинаковым приоритетом выполняются слева направо. Замечание: в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a
Процедура |
Запись на Pascal |
Тип аргумента |
Тип значения |
увеличение "х" на 1 (x := x + 1;) |
inc (x) |
целый |
целый |
уменьшение "х" на 1 (x := x - 1;) |
dec (x) |
целый |
целый |
увеличение "х" на n (x := x + n;) |
inc (x, n) |
целый |
целый |
уменьшение "х" на n (x := x - n;) |
dec (x, n) |
целый |
целый |
Функция |
Запись на Pascal |
Тип аргумента |
Тип результата |
ASCII код символа "x", порядковый номер аргумента "x" |
ord (x) |
char, порядковый |
byte, integer, longint |
округление числа "х" до целого |
round (x) |
real |
integer, longint |
целая часть числа "х" |
trunc (x) |
real |
integer, longint |
проверяет аргумент на нечетность, результат true, если аргумент нечетный, false – если четный |
odd (x) |
integer, longint |
boolean |
символ ASCII кода, соответствующего значению аргумента "х" |
сhr (x) |
byte |
char |
Функция |
Запись на Pascal |
Тип аргумента |
Тип результата |
возвращает символ, соответствующий ASCII-коду числа "x" |
chr (x) |
byte |
char |
возвращает число, соответствующее символу "x" в ASCII-таблице |
ord (x) |
char |
byte |
преобразует символы из строчных букв в прописные, но распространяется только на литеры латинского алфавита (русские буквы просто игнорируются) |
upcase (x) |
char |
char |
возвращает символ, который предшествует в ASCII-таблице символу "x" |
pred (x) |
char |
char |
возвращает символ, который следует в ASCII-таблице за символом "x" |
succ (x) |
char |
char |
- Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений (константы, переменные). Пример: Выражение: 'Turbo' + ' Pascal ' + '7.0' Результат: 'Turbo Pascal 7.0'
- Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). В результате сравнения двух строк получается логическое значение (true или false). Сравнение строк производится слева направо посимвольно до первого несовпадающего символа, большей считается та строка, в которой первый несовпадающий символ имеет больший код в таблице кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше. Строки равны, если они имеют равную длину и соответствующие символы совпадают. Примеры: 'строка' <> 'строки' (верно, т.к. не совпадают последние символы); 'Abc' < 'abc' (верно, т.к. код символа 'A' равен 65, а код 'a' – 97); 'год' > 'век' (верно, т.к. буква 'г' в алфавите стоит после буквы 'в'); 'Иванов' = 'Иванов И.И.' (неверно, т.к. длина второй строки больше).
- copy (s, poz, n) − выделяет из строки s подстроку длиной n символов, начиная с позиции poz. Если poz больше длины строки, то результатом будет пустая строка. Здесь s – любое строковое выражение, poz, n – целочисленные выражения. Пример: s := 'строка символов'; s1 := copy (s,3,3); {результат: s1 = 'рок'}
- concat (s1, s2,..., sn) − выполняет слияние строк s1, s2,...,sn в одну строку в том порядке, в каком они указаны в списке параметров (функция concat выполняет те же действия, что и операция конкатенации). Пример: s := concat ('AA', 'XX', 'Y'); {результат: s = 'AAXXY'}
- length (s) − определяет текущую длину в символах строкового выражения s. Результат – значение целого типа. Пример: n := length ('123-(a+b)*c'); {результат: n=11}
- pos (subs, s) − определяет позицию первого вхождения подстроки subs в строку s. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0. Пример: s := 'Turbo Pascal'; n1 := pos ('Pascal', s); {результат: n1 = 7} n2 := pos ('pascal', s); {результат: n2 = 0 ('pascal' и 'Pascal' − это разные строки)}
- delete (s, poz, n) − удаляет из строки s, начиная с позиции poz, подстроку из n символов. Здесь s – строковая переменная (т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения. Если значение poz больше, чем размер строки, ничего не удаляется. Пример: s := 'abcdefg'; delete (s, 2, 3); {результат: s = 'aefg'}
- insert (subs, s, poz) − вставляет в строку s, начиная с позиции poz, подстроку subs. Здесь subs – любое строковое выражение, s – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение. Пример: s := 'ade'; insert ('bc', s, 2); {результат: s = ‘abcde'}
- str (x, s) − преобразует число x в строковый формат. Здесь x – любое числовое выражение, s – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str (x: 8: 3, s), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой. Если в формате указано недостаточное для вывода количество разрядов, поле вывода расширяется автоматически до нужной длины. Удобно использовать процедуру str для вставки числовых данных в какой-либо текст, т. к. операция конкатенации и процедура insert могут работать только со строковыми данными. Пример: str (3456, s); {результат: s = '3456'}
- val (s, x, kod) − преобразует строку символов s в число x. Здесь s – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке s, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0. Пример: val ('12.34', x, kod); {если x – вещественного типа, результат: x = 12.34, kod = 0} val ('12.34', x, kod); {если y – целого типа, результат: y = 12, kod = 3}
Название логического типа данных |
Значению False соответствует |
Значению True соответствует |
Размер памяти для логического типа данных |
Boolean |
Число 0 |
1 |
1 байт |
ByteBool |
Число 0 |
Любое число, отличное от 0 |
1 байт |
WordBool |
Число 0 в обоих байтах |
2 байта |
|
LongBool |
Число 0 во всех байтах |
4 байта |
Новые логические типы данных были введены для обеспечения совместимости разрабатываемых программ с Windows, в которой значению False соответствует 0, а значению True – любое, отличное от 0, число.
ЛОГИЧЕСКИЕ ОПЕРАЦИИ
x |
y |
not x |
x and y |
x or y |
x xor y |
false |
false |
true |
false |
false |
false |
false |
true |
true |
false |
true |
true |
true |
false |
false |
false |
true |
true |
true |
true |
false |
true |
true |
false |
and − конъюнкция, логическое умножение (И)
or − дизъюнкция, логическое сложение (ИЛИ)
not − инверсия, логическое отрицание (НЕ)
xor − исключающее или
Замечание: Логические операции допустимы только по отношению к операндам (константам, переменным, функциям) логического типа (boolean).
ПРИОРИТЕТ ЛОГИЧЕСКИХ ОПЕРАЦИЙ- выражения в скобках
- логическое отрицание (not)
- логическое умножение (and)
- логическое сложение (or), исключающее или (xor)
- операции отношения (<, <=, =, >, >=, <>) К логическим выражениям также можно применять функции ord, succ, pred, процедуры inc и dec.
Информатика - еще материалы к урокам:
- Образовательная программа дополнительного образования по информатике и ИКТ "Компьютерная грамота"
- Презентация "Основные теги HTML" 9 класс
- Итоговое тестирование за курс 9 класса по информатике в рамках промежуточной аттестации
- Проверочная работа "Изменение ссылок в Excel"
- Контрольная работа "Кодирование графической информации" 7 класс
- Конспект урока "Правила безопасного поведения в сети Интернет" 8 класс