- •Общая функциональная схема эвм
- •Языки программирования
- •Этапы решения задач на эвм
- •Понятие алгоритма и его свойства
- •Типы алгоритмов
- •Ос эвм. Понятие о файловой системе
- •Команды ms dos
- •Программирование на языке паскаль
- •Структура программы на языке паскаль
- •Описание данных
- •1. Константы
- •2. Переменные
- •Комментарии
- •Операторы языка паскаль
- •Операторы обработки данных
- •1. Операторы ввода
- •2. Операторы вывода
- •3. Вычисление по формулам. Оператор присваивания
- •Линейные программы
- •Управляющие операторы
- •1. Разветвляющиеся алгоритмы. Оператор if (если)
- •2. Пример разветвляющейся программы
- •3. Оператор case
- •Циклические алгоритмы и программы
- •1. Общая схема цикла
- •2. Циклы со счетчиком
- •3. Итерационные циклы
- •3.1. Оператор цикла с пост-условием
- •3.2. Оператор цикла с пред-условием
- •Tипы данных, используемых в паскале
- •1.Представление данных в эвм
- •2. Стандартные функции Паскаля и Турбо Паскаля
- •3. Булевские переменные и выражения
- •4.Функции для работы с символами
- •5. Массивы
- •Примеры программ обработки массивов
- •Особенности алгоритмов и программ с накапливанием
- •Алгоритм нахождения минимума и максимума
- •Задача сортировки
- •Обработка многомерных массивов
- •Итерационные циклы
- •Типовые алгоритмы с итерационными циклами
- •1. Приближенное вычисление функций
- •2. Решение уравнений приближенными методами
- •2.1. Метод Ньютона
- •Программы обработки строк символов (текстов)
- •1. Простейшие алгоритмы и программы обработки строк
- •Типовые программы обработки строк
- •Задача 1 выделения слов из текста (слова разделены одним пробелом)
- •Задача 2 выделения слов из текста (слова разделены несколькими пробелами)
- •Алгоритмы поиска
- •Алгоритм линейного поиска
- •Библиографический список
- •Содержание
3. Вычисление по формулам. Оператор присваивания
Формулы в языках программирования называются выражениями. Выражение – правило для нахождения нового значения.
Вид формулы (выражения) зависит от типа входящих в него переменных. Причем, над каждым типом данных могут выполняться свои, разрешенные, типы операций. Таким образом, выражение должно:
1) содержать данные одного типа (числа или символы, но не числа и символы одновременно);
2) использовать операции, разрешенные для данных этого типа. Так, для данных целого типа разрешены 5 арифметических операций:
Сложение (+),
Вычитание (-),
Умножение (*),
Деление – DIV,
Вычисление остатка – MOD
Пример.
Операция DIV – деление нацело с отбрасыванием остатка.
5 Div 2 è 2 и 7 Div 3 è 2
Операция MOD – дает остаток от деления числа на модуль.
5 Mod 2 è 1, 7 Mod 3 è 1 и 18 Mod 9 è 0.
Для данных вещественного типа разрешены операции: +, -, *, /.
Выражение над числами содержит имена констант и переменных, соединенные знаками разрешенных для них операций и разделенных скобками.
Пример.
Х2 + y/z è X*X + Y DIV Z
При вычислении значения выражения учитывается старшинство (приоритет) операций:
1) *, DIV, MOD – высший;
2) +, - – низший.
Для изменения порядка расставляются скобки. Количество скобок может быть произвольным, но количество открывающихся скобок должно быть равно числу закрывающихся.
Знаки операций в выражениях не опускаются. Операции одного приоритета выполняются слева направо.
Оператор присваивания - позволяет вычислить и запомнить в памяти ЭВМ нового значение переменной или изменить значение уже существующей.
Оператор состоит из 2-х частей, разделенных знаком присваивания ":=" и имеет вид:
имя:= выражение;
Пример.
Y:= X*X + A Mod Z;
Типы переменных Y,X,A, и Z – целые.
К моменту выполнения оператора числовые значения X, A и Z должны быть заданы. Как отмечалось выше, оператор присваивания позволяет изменять значение уже существующей переменной.
Пример.
K:= K + 1; - увеличение K на 1.
Линейные программы
Программы этого типа реализуют линейные алгоритмы и содержат операторы ввода, присваивания и вывода, которые выполняются в естественном порядке (в порядке расположения).
Пример.
Ввести в ЭВМ трёхзначное число и отпечатать его цифры в столбик.
Для выделения и печати десятичных цифр воспользуемся операциями DIV и MOD.
Алгоритм (печать со старшей цифры):
1. Ввести число
2. Выделить и отпечатать цифры
3. Закончить.
Уточняем п.2 и получаем алгоритм:
1. Ввести число
2.1. Ц1 = число div 100; - старшая цифра. Печать Ц1
2.2. Ц2 = (число mod 100) div 10; - средняя. Печать Ц2
2.3. Ц3 = число mod 10; - младшая. Печать Ц3
3. Закончить.
Программа, реализующая алгоритм, будет иметь вид:
Program cifra;
Const
d=10;
s=100;
Var
num, c1, c2, c3: integer;
Begin
Writeln('Введите целое 3-зн. Число');
Read(num);
C1:= num div S;
Writeln ('Цифра1:', С1);
C2:= (num mod S)div d;
Writeln('Цифра2:', С2);
С3:= num mod d;
Writeln('Цифра 3:', С3);
end.
Управляющие операторы
1. Разветвляющиеся алгоритмы. Оператор if (если)
Разветвляющийся алгоритм предполагает выполнение вычислений по одному из возможных направлений в зависимости от исходных данных или промежуточных результатов. Ветвление в таких алгоритмах производится при проверке некоторых условий. Для этой цели в Паскале используется специальный оператор - IF.
Правило записи оператора IF следующее:
IF условие then
оператор1
Else
оператор2;
Схема алгоритма его работы приведена на рис. 5.
Рис.5. Схема алгоритма работы оператора IF.
Пример.
IF X<>0 THEN
Y:= A/X
ELSE
Y:= A;
Вычисление:
Y = A/X, если Х = 0 и
Y = А, если Х = 0
Оператор IF – это один оператор, поэтому ";" после оператора, т.е. перед ELSE, не ставится.
Часть со служебным словом ELSE может отсутствовать. В этом случае выполняется или не выполняется только оператор1 (см. рис.6).
Рис.6. Схема алгоритма работы неполного оператора IF
Пример.
IF x>0 THEN
K:= K+1; {увеличение К на 1 (подсчет
числа положительных Х)}
Если с помощью оператора IF необходимо управлять группой операторов, то эта группа заключается в блок вида:
Begin
операторы
End;
Пример.
IF BIG<LITTL THEN
Begin
A:= BIG; {перестановка чисел местами:}
BIG:= LITTL; {BIG – большее}
LITTL:= A; {LITLL – меньшее}
End;
Операторы 1 и 2 могут быть любыми, в том числе и условными, т.е. допустима вложенность операторов IF друг в друга на любую глубину.
Пример.
IF X>0 THEN
IF Y>0 THEN
Z:= SQRT(X*X+Y*Y)
ELSE
Z:= X*X
ELSE
Z:= Y*Y;
При этом важно не запутаться, какой ELSE к какому THEN относится. Обычно начинают с последнего THEN. Для удобства части оператора располагают лесенкой.
