- •Общая функциональная схема эвм
- •Языки программирования
- •Этапы решения задач на эвм
- •Понятие алгоритма и его свойства
- •Типы алгоритмов
- •Ос эвм. Понятие о файловой системе
- •Команды 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 выделения слов из текста (слова разделены несколькими пробелами)
- •Алгоритмы поиска
- •Алгоритм линейного поиска
- •Библиографический список
- •Содержание
2. Пример разветвляющейся программы
Условие. Ввести в ЭВМ 3 целых числа. Расположить их в порядке возрастания.
План
1. Ввести числа
2. Расположить по порядку
3. Вывести числа
Уточняем п. 2.
2.1. Если первое число больше второго, то поменять их местами.
2.2. Если второе больше третьего, то - перестановка.
2.3. Если первое больше второго, то перестановка.
Проверка:
Пусть введены числа: 125 67 3
В п.1 125 67 3
В п.2.1: 67 125 3
В п.2.2: 67 3 125
В п.2.3: 3 67 125
Программа будет иметь вид:
PROGRAM Order;
Var
A,B,C: Integer; {основные переменные}
X: Integer; {вспомогательная (рабочая) переменная}
BEGIN
Writeln('Введите 3 целых числа');
Read(А,В,С);
{п. 2.1}
IF A>B Then
Begin {перестановка}
X:= A;
A:= B;
B:= X;
End;
{п. 2.2}
IF A>B Then
Begin
X:= B;
B:= D;
D:= X;
End;
{п. 2.3}
IF A>B Then
Begin
X:= A;
A:= B;
B:= X;
End;
Writeln('РЕЗУЛЬТАТ:', A,B,C);
END.
3. Оператор case
Оператор IF позволяет выбрать один из двух возможных путей решения. В ряде случаев таких путей бывает гораздо больше. При этом также необходимо выбрать один из них. Применение оператора IF для таких задач очень неэффективно.
В Паскале для выбора одного из нескольких путей решения используется оператор CASE – обобщение условного оператора. В общем виде этот оператор записывается так:
CASE выражение OF
(случай) (из)
значения1:оператор1;
значения2:оператор2;
. . . . . . . . . .
значенияN: операторN;
END; (конец списка выбора)
Выражение записывается относительно специальной переменной выбора (селектора), которая может быть любого перечислимого типа (Integer, Char).
Значения1, . . . , Значения N – значения выражения, при которых выполняются оператор1, . . . , оператор N соответственно.
Если селектор принял значение, не принадлежащее ни одному из перечисленных, то оператор CASE пропускается и выполняется следующий за ним оператор (как для неполного IF).
Пример.
CASE NUM mod 2 OF
0: WRITELN('четное');
1: WRITELN('нечетное')
END;
или
CASE MONTH OF
1,2,3: WRITELN('Первый квартал');
4,5,6: WRITELN('Второй квартал');
7,8,9: WRITELN('Третий квартал');
10,11,12: WRITELN('Четвертый квартал');
END;
Если после Значений i необходимо выполнять несколько операторов, они заключаются в блок:
Значения i: BEGIN
операторы i
END;
Оператор CASE можно использовать для перевода чисел из одной системы счисления в другую.
Пример.
Перевести римскую цифру в десятичное число. Цифра вводится клавиатуры, а затем на экране должен появиться ее десятичный эквивалент.
Программа будет иметь вид:
PROGRAM RIM;
VAR
R: CHAR;
N:INTEGER;
BEGIN
WRITELN('Введите римскую цифру');
READLN(R);
CASE R OF
'M': N:= 1000;
'D': N:= 500;
'C': N:= 100;
'L': N:= 50;
'X': N:= 10;
'V': N:=5;
‘I': N:= 1
END;
WRITE ('Десятичное число', N);
END.
Циклические алгоритмы и программы
1. Общая схема цикла
Основными задачами для ЭВМ являются те, в которых необходимо выполнять одни и те же операции над различными данными. Программы таких задач содержат гораздо меньше операторов, чем в действительности выполняет ЭВМ. Это достигается за счет того, что некоторые операторы выполняются много раз.
Определение 1. Группа многократно повторяющихся операторов называется циклом, а содержащая их программа – циклической.
Количество повторений цикла определяется значением некоторой управляющей переменной.
Определение 2. Переменная, управляющая повторением цикла называется параметром цикла.
Общая схема циклического участка программы (алгоритма) может быть представлена в виде рис.7.
Рис.7. Общая схема циклического участка программы
Подготовка означает задание начальных значений переменных, используемых в вычислениях, и, в первую очередь, параметра цикла.
Рабочая часть выполняет необходимые вычисления и содержит многократно повторяемые операторы.
Изменение параметра – задает способ изменения параметра и позволяет перейти к его новому значению.
Блок "Проверка окончания" – в зависимости от значения параметра либо продолжает выполнение цикла (переход вверх), либо прекращает его (выход из цикла).
Блоки 1,3 и 4 являются необходимыми и типовыми для циклических алгоритмов и реализуются специальными операторами цикла. Блок 2 ( Рабочая часть ) - для каждой задачи свой.
По типу параметра и условию окончания циклы делятся на:
1) циклы со счетчиками;
2) итерационные.
В циклах со счетчиками количество повторений заранее известно; в итерационных – нет и выход из цикла осуществляется при определенном условии (достижении заданной точности, появлении некоторой ситуации).
