- •Конспект лекций по информатике
- •Организация данных в эвм и основы программирования
- •1. Основные понятия языка программирования паскаль
- •1.1. Структурное программирование
- •1.2. Основные символы языка
- •1.3. Элементы языка
- •1.4. Интегрированная среда turbo pascal
- •1.5. Структура программы в turbo pascal
- •1.6. Определение типов
- •1.7. Операторы в программе
- •1.7.1. Операторные скобки
- •1.7.2. Операторы ввода
- •1.7.3. Оператор присваивания
- •1.7.4. Условный оператор
- •1.7.5. Пример простой программы
- •1.7.6. Оперетор безусловного перехода
- •1.8. Организация циклов
- •1.8.1. Использование операторов условного и безусловного перехода
- •1.8.2. Цикл с параметром
- •1.8.3. Цикл с предусловием - цикл while
- •1.8.4. Цикл с постусловием - цикл repeat
- •1.9. Оператор выбора варианта
- •1.10. Расположение операторов в программе
- •1.11. Концепция типов данных
- •2. Стандартные простые типы
- •2.1 Целый тип
- •2.1.1. Операции над данными целого типа:
- •2.2. Действительный тип
- •2.2.1. Операции над данными действительного типа:
- •2.3. Логический тип
- •Var p, q, r : Boolean;
- •2.3.1. Алгебра логики в Паскале
- •2.3.2. Законы алгебры логики в Паскале
- •2.4. Символьный тип
- •2.4.1. Символьные строковые константы
- •3. Нестандартные простые типы (определяемые пользователем)
- •3.1. Перечисляемый тип
- •3.2. Ограниченный тип (диапазон, интервал)
- •4. Процедуры и функции
- •4.1. Описание процедур
- •4.2. Стандартные процедуры
- •4.3. Описание функций
- •4.4. Стандартные функции
- •4.5. Итерация и рекурсия
- •4.6. Побочный эффект рекурсии
- •4.7. Предварительное описание (ссылки вперед)
- •5. Регулярные типы
- •5.1. Одномерный массив, или переменные с индексами
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •2. Сортировка выбором
- •3. Метод Шелла
- •4. Метод Хoopа
- •5.2. Многомерные массивы
- •5.3. Упакованные массивы
- •5.4. Строки
- •6. Множественные типы
- •6.1. Свойства множеств
- •6.2. Операции над множествами
- •7. Комбинированные типы
- •7.1. Описание записей и действия с ними
- •7.2. Оператор присоединения.
- •7.3. Записи с вариантами
- •8. Типизированная константа
- •8.1. Простая типизированная константа
- •8.2. Структурированная (сложная) типизированная константа
- •8.2.1. Типизированная константа массива
- •8.2.2. Типизированная константа записи
- •8.2.3. Типизированная константа множества.
- •9. Преобразование типов
- •9.1. Неявные преобразования типов
- •9.2. Использование стандартных функций для преобразования
- •9.3. Явные преобразования типов
- •9.5. Совместимость типов
- •10. Файловые типы
- •10.1. Определение файлового типа
- •10.2. Структура файла
- •10.3. Имя файла
- •10.4. Описание файлового типа
- •10.5. Файловая переменная
- •10.6. Операции над файлами
- •10.7. Типизированные файлы
- •10.8. Текстовые файлы
- •10.9. Нетипизированные файлы
- •10.10. Стандартные файлы inpuTиOutput
4.2. Стандартные процедуры
Это, в первую очередь, процедуры ввода и вывода Read,readln,write,writeln. С ними вы знакомы.
В циклах Repeat,WhileиForможно использовать еще две процедуры –BreakиContinue. ПроцедураBreakпозволяет досрочно выйти из цикла, не дожидаясь выполнения условий выхода.
Процедура Continueпозволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Пример: В массиве целых чисел найти первое отрицательное число и вывести его на экран.
Фрагмент программы
ForI:=1toNdo{поиск отрицательного числа}
Begin
If A[i]>=0 then
Continiue; {не отр.=> на след. число}
Writeln (‘1-ое отриц. число=’, A[i]);
Break
End;
Процедура Exit служит для досрочного выхода из программы. Дело в том, что безусловный переход с использованием оператора gotoможно осуществлять далеко не из каждого места программы и не в любое место программы. Так, например, нельзя с его помощью перейти из основной программы в подпрограмму или выйти из подпрограммы. Для этой цели используется процедураExit.
Пример: Функция, обращает первое отрицательное число в массиве.
Function Minus
---------------------
Begin
Minus:=0
For i:=1 to N do
If T[i]<0 then
Begin
Minus:=T[i];
Exit{досрочный выход из фун-и}
END
End;
Существует множество стандартных процедур, которые работают с файлами:
Halt(1) - остановка,
Halt(0) - завершение,
Halt=Halt(0).
4.3. Описание функций
Описание функции в основном аналогично описанию процедуры, однако есть и отличия. Результатом работы функции является одно значение. Тип результата задается в заголовке.
Общий вид заголовка функции:
Functionимя функции (список формальных параметров):тип результата.
Если функция изменяет значения формальных параметров – переменных или значения глобальных по отношению к данной функции переменных, то говорят, что функция имеет побочный эффект.
Применение функции с побочным эффектом нарушает структурированность программы, поэтому их использование нежелательно.
Среди входящих в функцию операторов должен обязательно присутствовать хотя бы один оператор присваивания, в левой части которого стоит имя функции. Этот оператор и определяет значение, вырабатываемое функцией. При вызове функции передача фактических параметров производится так же, как и при вызове параметра.
Пример: Найти разность двух факториалов:F=m!-k!
Program P1;
Var F,M,K:Integer;
Function Fact (N:Integer):Integer;
Var P,I:Integer;
Begin
P:=1
For I:=2 to N do
P:=P*I;
Fact:=P
End;
Begin
Writeln (‘Ввод М,К’);
Readln (M,K);
F:=Fact (M) – Fact (K);
Writeln (‘F=’,F:5);
End.
Внутри функции имена N,P,Iявляются локальными. Результат вычисления факториала обозначается именем функцииFact. В основной программе переменныеF,M,Kявляются глобальными. При вычислении значенияFдважды происходит обращение к функцииFact(M) иFact(k) прямо в правой части оператора присваивания. При этом вызов функции м. делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, напримерSin(x).
Пример:вычислить длину гипотенузы.
S=h/tg
Program Dlina;
Const Pi=3.14159;
Var H:Real;
Betta:Real;
Function S(M:Real;Betta:Real):Real;
Var x:Real;
Begin x:=Betta*Pi/180;
S:=H/(sin(x)/cos(x));
End;
Begin x:=Betta*Pi/180;
S:=H/9sin(x)/cos(x));
End;
Begin Write (‘Ввести Betta,H’);
Readln (Betta,H);
Write (‘S=’,s(H,Betta):10:4);
End;
Вызов функции осуществляется непосредственно в операции ввода.