- •Общая функциональная схема эвм
- •Языки программирования
- •Этапы решения задач на эвм
- •Понятие алгоритма и его свойства
- •Типы алгоритмов
- •Ос эвм. Понятие о файловой системе
- •Команды 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.2. Оператор цикла с пред-условием
Он отличается от оператора REPEAT тем, что условие выполнения цикла проверяется до начала и цикл выполняется, только если оно истинно. Оператор с пред-условием – WHILE записывается следующим образом.
While условие do
Оператор1;
Схема работы оператора приведена на рис. 10.
Рис.10. Схема выполнения оператора цикла While.
В этом операторе условие также записывается относительно параметра. Если в теле цикла необходимо выполнить несколько операторов, то они заключаются в блок: BEGIN ... END;
В отличие от REPEAT, цикл может не выполняться ни разу.
Пример.
Вычисление множителей последовательности целых чисел (См. пример словесного описания алгоритма из раздела "ПОНЯТИЕ АЛГОРИТМА И ЕГО СВОЙСТВА").
Алгоритм:
1. Ввести первое число.
2. Пока нет признака конца последовательности
2.1. Положим число простое
2.2. Для множителя от 2 до ]число/2[
если число делится на множитель, то вывести множитель и частное и изменить предположение – не простое.
2.3. Если число простое, то вывести: "простое число"
2.4. Прочитать следующее число.
3. Закончить.
Программа для этого алгоритма будет иметь вид:
PROGRAM Mnog;
Const
d=2;
VAR
NUM,MN1,MN2,P: INTEGER;
BEGIN
WRITELN ('Введите число'); { п.1 }
READLN(NUM);
{ п.2 }
WHILE NUM<>0 DO
BEGIN
P:=0; { число простое - п.2.1 }
{ п.2.2 }
FOR MN1:=d TO NUM DIV d DO
BEGIN
IF NUM MOD MN1=0 THEN
BEGIN
MN2:= NUM DIV MN1;
WRITE(NUM1:4, NUM2:4);
P:=1; { число не простое }
END;
END;
{ п.2.3 }
IF P=0 THEN
WRITELN('ЧИСЛО ',NUM,' - ПРОСТОЕ');
{ п.2.4 }
WRITELN('Введите число');
READ(NUM);
END;
END.
Использован оператор WHILE, т.к. уже первое число может быть нулем и цикл выполнять не нужно.
Сведем основные операторы языка Паскаль и описатели данных в таблицы 1 и 2 соответственно.
Таблица 1. Основные операторы языка Паскаль
|
Название |
Общий вид |
Действие |
Пример записи |
|
1 |
2 |
3 |
4 |
1 |
Присваивания |
Перемен.:=выр.; |
Значение выражения записывается на место переменной |
X:= 0; Y:=A/B+C*D; |
2 |
Ввода |
READ(список ввода); READLN(список); |
Перепись данных с Устр. Ввода в ОП READLN – переход на новую строку |
READ (X,Y,A); 10.5 -2 0.1 |
3 |
Вывода |
WRITE(список вывода); WRITELN(список); |
Перепись данных из ОП на Устр.выв. WRITELN - переход на новую строку |
WRITE ('X=',X:8:5.); X= 125.10000
|
|
1 |
2 |
3 |
4 |
4 |
Условный |
IF условие THEN оператор1 ELSE оператор2; |
Ветвление (выпол- нение оператора1 или оператора2) |
IF X>0 THEN Y:=SQRT(X) ELSE Y:=SQR(X); |
5 |
Выбора |
CASE выр.OF Зн.1: опер1; . . . . . . Зн.N: оперN; End; |
Ветвление по N направленям |
CASE M OF 9..12:WRITELN ('1 семестр'); 2..6:WRITELN ('2 семестр'); End; |
6 |
Цикла со счетчиком (FOR) |
FOR пар.:=н.зн. TO к.зн. DO Оператор 1; FOR пар.:=н.зн. DOWNTO к.з.DO Оператор 1; |
Выполнение опера- тора n раз: n = к.зн.-н.зн.+1 |
S:=0; FOR I:=1 TO 20 DO S: = S+I;
|
7 |
Цикла с постусловием |
REPEAT операторы UNTIL условие; |
Выполнение опера- торов пока условие "ложно". Выполняется не менее 1 раза. |
REPEAT NUM:=NUM*2 UNTIL NUM>1000; |
8 |
Цикла с предусловием |
WHILE условие DO оператор1; |
Выполнение оператора пока условие "истинно". |
WHILE NUM<1000 DO NUM:=NUM*2; |
9 |
Заголовок программы |
PROGRAM имя; |
Начало программы |
PROGRAM PR1; |
10 |
Начало блока операторов |
BEGIN |
Обозначение начала блока |
BEGIN |
11 |
Конец блока, программы |
END; END. |
Обозначение конца блока или программы |
END; END. |
Таблица 1.2. Описание данных
Название |
Общий вид |
Действие |
Пример |
|
CONST имя1=зн1; имя2=зн2; |
Записывается в ОП значение на место имени |
CONST X=0; A=’СТРОКА’; |
|
VAR имя:тип; имя:min..max; |
Отводит в ОП место пол переменные, заданнёт их. |
Var X,Y: INTEGER; A,B,C:Char; |
