- •1. Свойства и этапы построения алгоритма.
- •2.Постановка задачи. Разработка модели. Построение алгоритма.
- •3. Величины в алгоритмах.
- •4.Способы записи алгоритмов
- •5. Структуры алгоритмов.
- •Оператор цикла Паскаля с параметром
- •Оператор цикла Паскаля с постусловием
- •Оператор цикла Паскаля с предусловием
- •6. Исполнение (тестирование) алгоритма.
- •7. Переменные с индексами. Массивы. Таблицы.
- •8. Примеры алгоритмов линейных и с разветвлением.
- •9. Пример циклического алгоритма вычисления суммы десяти чисел.
- •10. Поиск минимального и максимального элемента последовательности.
- •11. Поиск номера элемента последовательности с заданным значением.
- •12. Сортировка. Простой выбор.
- •13. Редактирование текста программы. Копирование, вставка и удаление.
- •15. Завершение работы выхода из программы. Возобновление сеанса отладки.
- •16 Отладка в среде языка программирования. Классификация ошибок.
- •17. Программа в Object Pascal
- •18. Операторы
- •19. Выражения – синтаксис выражений.
- •25. Типы, переменные, константы и типизированные константы.
- •22.Строки программы и комментарии к программе
- •23. Типы величин. Простые типы
- •21. Числа
- •20. Специальные символы и их назначение
- •25. Тип Массив
- •21. Метки
- •26.Переменные и константы. Раздел описания данных констант.
- •21. Идентификаторы
- •24. Строковый тип
- •27. Массивы, строки и индексы
- •24.Вещественный тип
- •29. Совместимость по присваиванию
- •28. Арифметические операции
- •29. Оператор присваивания.
- •30. Составные операторы.
- •31. Условный и безусловный операторы.
- •32. Оператор цикла с постусловием(repeat).
- •34. Оператор цикла с параметром for
- •33. Оператор цикла с предусловием while
- •35. Стандартные процедуры и функции.
- •36. Стандартные арифметические функции.
- •37.Среда Delphi. Компиляция и выполнение готовых программ
- •38.Среда Delphi. Формат меню. Настройка меню Delphi
- •39.Среда Delphi. Визуальные компоненты для редактирования
- •40. Среда Delphi. Конструирование формы – реализация диалога
- •41.Особенности объектно-ориентированного программирования
- •44.Компоненты редактирования в Delphi – текстовые окна, поля, метки
- •42.Визуальные и невизуальные компоненты Deplhi
- •43.Delphi. Основные свойства. События. Методы
- •45.Конструирование форм в Delphi
- •47.Создание меню в Delphi
- •48.Параметры проекта
- •51.Ввод и редактирование информации
Оператор цикла Паскаля с постусловием
Для задания таких вычислительных процессов и служит оператор цикла Паскаля с постусловием. Этот оператор имеет вид:
Repeat S1; S2;…; Si until B,
где repeat (повторять) и until (до) – служебные слова, через Si обозначен любой оператор Паскаля, а через В – логическое выражение.
При выполнении этого оператора цикла последовательность операторов, находящихся между словами repeat и until, выполнится один или более раз. Этот процесс завершается, когда после очередного выполнения заданной последовательности операторов логическое выражение В примет (впервые) значение true. Таким образом, с помощью логического выражения В задается условие завершения выполнения оператора цикла. Поскольку в данном случае проверка условия производится после выполнения последовательности операторов (тела цикла), этот оператор цикла и называется оператором цикла с постусловием.
С использованием этого вида оператора цикла Паскаля задача о суммировании первых членов гармонического ряда, удовлетворяющих заданному условию, может быть реализована следующим образом:
Пример кода оператора цикла Паскаля с постусловием
readln(e);
i:=0;
y:=0;
Repeat
i:=i+1;
y:=y+1/i;
Until 1/i<e;
Заметим, что оператор цикла с постусловием является более общим, чем оператор цикла с параметром — любой циклический процесс, задаваемый с помощью цикла с параметром можно представить в виде цикла с постусловием. Обратное утверждение неверно. Например, задача о суммировании первых n членов гармонического ряда, рассмотренная ранее, с оператором цикла с постусловием будет выглядеть так:
Пример кода оператора цикла Паскаля с постусловием
Readln(n);
i:=0;
y:=0;
Repeat
i:=i+1;
y:=y+1/i;
Until i>n;
Оператор цикла Паскаля с предусловием
Этот оператор цикла имеет в Паскале следующий вид:
While B do S,
где while (пока), do (делать, выполнять) – служебные слова, В – логическое выражение, S – оператор. Здесь оператор S выполняется ноль или более раз, но перед каждым очередным его выполнением вычисляется значение выражения В, и оператор S выполняется только в том случае, когда значение выражения В true. Выполнение оператора цикла завершается, когда выражение В впервые принимает значение false. Если это значение выражение В принимает при первом же его вычислении, то оператор S не выполнится ни разу.
6. Исполнение (тестирование) алгоритма.
Чтобы убедиться в правильности алгоритма, необходимо проводить его тестирование, не дожидаясь рационального окончательного алгоритма. В этом случае для фиксирования исполнения алгоритма указываются шаги алгоритма, аргументы, промежуточные величины, результаты на данном шаге и проверяемые условия. Шаги исполнения дают возможность показать, сколько шагов исполнено на данный момент, за какое число шагов весь алгоритм будет исполнен. Нумерация шагов алгоритма упрощает ориентацию в описании алгоритма и в процессе его исполнения. При этом в каждый момент видно, какой элемент (оператор/команда) алгоритма выполняется. Это помогает устранять ошибки. Самый простой вариант тестирования – это решение контрольного примера, когда при известных данных известен результат.
Пример: Составить алгоритм для нахождения квадратного корня из любого натурального числа x.
Используем для составления алгоритма след вспомогательные переменные : a и b – для определ интервала от 1 до x; а1 – деление интервала [a,b] пополам; x1 – переменная для промежуточных вычислений. В алгоритме можно организовать цикл с предусловием, т.к. неизвестно количество шагов, за которое будет найдено значение корня a. Составим алгоритм в виде псевдокода: Начало
Ввести х
а=1
b=х+1
Пока b – а>1 выполнять цикл
а1= (а+b) \2
х1 =х\а1
Если х1>= a1 то b =а1
Иначе а=а1
Конец если
Конец цикла
Вывести «Квадратный корень их х=»,а
Конец
Выполним тестирование для х=4
Шаг Проверка условий a b a1 x1 x1/2
Шаг1 1 4+1=5
Проверка усл(b-1)>1? (1+5)\2=3 4\3
«да»,5-1>1
Проверка усл х1>=a1? 1 =а1=3
«нет» 3>1
Шаг2 Проверка усл b-a>1? (1+32=2 4\2=2
«да», 3-1>1
Проверка усл х1>=a1 2 3
«нет», 2=2
Проверка усл(b-a)>1? 2
«нет»,3-2=1