Краткий курс PASKAL повторение изученного


Pascal краткий курс ИдентификаторДлина (байт)Диапазон значенийОперацииinteger2-32768..32767+, -, /, *, Div, Mod, >=, <=, =, <>, <, >byte10..255+, -, /, *, Div, Mod, >=, <=, =, <>, <, >word20..65535+, -, /, *, Div, Mod, >=, <=, =, <>, <, >shortint1-128..127+, -, /, *, Div, Mod, >=, <=, =, <>, <, >longint4-2147483648..2147483647+, -, /, *, Div, Mod, >=, <=, =, <>, <, >Целые типы ИдентификаторДлина (байт)Диапазон значенийОперацииreal62,9x10-39 — 1,7x1038+, -, /, *, >=, <=, =, <>, <, >single41,5x10-45 — 3,4x1038+, -, /, *, >=, <=, =, <>, <, >double85x10-324 — 1,7x10308+, -, /, *, >=, <=, =, <>, <, >extended103,4x10-4932 — 1,1x104932+, -, /, *, >=, <=, =, <>, <, >Вещественные типы Логический типИдентификаторДлина (байт)Диапазон значенийОперацииboolean1true, falseNot, And, Or, Xor, >=, <=, =, <>, <, >Символьный типИдентификаторДлина (байт)Диапазон значенийОперацииchar1все символы кода ASCII+, >=, <=, =, <>, <, > Символ операцииНазвание операцииПример*умножение2*3 (результат: 6)/деление30/2 (результат: 15)+сложение2+3 (результат: 5)-вычитание5-3 (результат: 2)divцелочисленное деление5 div 2 (результат: 2)modостаток от деления5 mod 2 (результат: 1)Математические операции. Логические операцииНад логическими аргументами в Паскале определены следующие операции:NOT - логическое отрицание ("НЕ")AND - логическое умножение ("И")OR - логическое сложение ("ИЛИ") Abs(X)Возвращает абсолютное значение числа X.Cos(X), Sin(X)Возвращает косинус (синус) числа X, где X - угол в радианах.Функций тангенс и котангенс в Паскале нет. Для их вычисления используйте выражение sin(x)/cos(x) (или cos(x)/sin(x) для котангенса).ArcTan(X)Возвращает арктангенc числа X.Exp(X)Возвращает число, равное e в степени X.Ln(x)Возвращает число, равное натуральному логарифму от числа X.PiЧисло Пи. Sqr(X)Возвращает число, равное квадрату числа X.Функции возведения в произвольную степень в Паскале нет. Используйте многократное умножение для возведения в целочисленную степень, либо функции Exp и Ln для возведения в вещественную степень.Sqrt(X)Возвращает число, равное квадратному корню из числа X.Trunc(X)Возвращает число, равное целой части числа X. (Происходит отбрасывание дробной части числа X. Результат выполнения имеет тип Longint).Frac(X)Возвращает число, равное дробной части числа X.Int(X)Возвращает число, равное целой части числа X. Результат выполнения функции - real.Round(X)Функция округляет число X. Возвращаемое значение имеет тип Longint.Random(X)Возвращает случайное целое число в диапазоне 0..X. Если аргумент опущен (Random), то возвращается случайное вещественное число от 0 до 1. var i: integer; begin randomize; for i:=1 to 5 do writeln(random(21)-10); end. Ввод данныхДля ввода исходных данных чаще всего используется процедура ReadLn:ReadLn(A1,A2,...AK);Вывод данныхДля вывода результатов работы программы на экран используются процедуры:Write(A1,A2,...AK); WriteLn(A1,A2,...AK); Оператор условного переходаОператор условного перехода в ABC Паскаль имеет вид:if условие then оператор 1 else оператор 2; Оператор выбораcase выражение of вариант : оператор; ... вариант : оператор; end;Примерcase ch of 'A'..'Z', 'a'..'z' : WriteLn('Буква'); '0'..'9' : WriteLn('Цифра'); '+', '-', '*', '/' : WriteLn('Оператор'); else WriteLn('Специальный символ') end; Арифметические циклыСинтаксис:for переменная := значение 1 to значение 2 do операторилиfor переменная := значение 2 downto значение 1 do оператор Пример 1. Квадраты чисел от 2-х до 10-и.for x:=2 to 10 do WriteLn(x*x);Пример 2. Латинский алфавит.for ch:='A' to 'Z' do Writeln(ch); Итерационные циклы с предусловиемСинтаксис:while выражение do операторПример.eps:=0.001; while x > eps do x:=x/2; Итерационные циклы с постусловиемСинтаксис:repeat оператор; оператор; ... оператор until выражениеПример.repeat WriteLn('Введите положительное число'); ReadLn(x); until x>0; МассивыМассивы — это совокупности однотипных элементов. Характеризуются они следующим:каждый компонент массива может быть явно обозначен и к нему имеется прямой доступ;число компонент массива определяется при его описании и в дальнейшем не меняется. Описание типа массива задается следующим образом:type имя типа = array[ список индексов ] of типЗдесь имя типа — правильный идентификатор; список индексов — список одного или нескольких индексных типов, разделенных запятыми; тип — любой тип данных.Вводить и выводить массивы можно только поэлементно. Пример . Ввод и вывод одномерного массива.const n = 5;type mas = array[1..n] of integer; var a,i: integer;begin writeln('введите элементы массива'); for i:=1 to n do readln(a[i]); writeln('вывод элементов массива:'); for i:=1 to n do write(a[i]:5); end. СтрокиСтроковый тип данныхvar s: string; Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:a := 'Turbo'; b := 'Pascal'; c := a + b; Length(s:string):integerФункция возвращает в качестве результата значение текущей длины строки-параметраПример.n := length('Pascal'); {n будет равно 6} Copy(s:string; index:integer; count:integer):stringФункция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.Пример.s := 'Система Turbo Pascal';s2 := copy(s, 1, 7); {s2 будет равно 'Система'} s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'} Delete(var s:string; index,count:integer)Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.Пример.s := 'Система Turbo Pascal'; delete(s,8,6); {s будет равно 'Система Pascal'}Insert(source:string; var s:string;index:integer)Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.Пример.s := 'Система Pascal'; insert('Turbo ',s,9); {s будет равно 'Система Turbo Pascal'} Стандартные процедуры и функцииЛюбые дисковые файлы становятся доступными программе после связывания их с файловой переменной, объявленной в программе. Все операции в программе производятся только с помощью связанной с ним файловой переменной.Assign(f, FileName)Связывает файловую переменную f с физическим файлом, полное имя которого задано в строке FileName. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.Reset(f)Открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.Если f - типизированный файл, то процедурой Reset он открывается для чтения и записи одновременно. Rewrite(f)Открывает для записи файл, с которым связана файловая переменная f. После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются.Close(f)Закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.EOF(f):booleanВозвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.Rename(f, NewName)Позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.Erase(f)Уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт. Запись в файлWrite(f, список переменных);Процедура записывает в файл f всю информацию из списка переменных.Чтение из файлаRead(f, список переменных);Процедура читает из файла f компоненты в указанные переменные. Тип файловых компонент и переменных должны совпадать. Если будет сделана попытка чтения несуществующих компонент, то произойдет ошибочное завершение программы. Необходимо либо точно рассчитывать количество компонент, либо перед каждым чтением данных делать проверку их существования (функция eof).