- •Программирование наDelphi. Содержание
- •Лабораторная работа №1. Основные этапы создания программ (на примере программы для решения квадратных уравнений)
- •1. Проектирование программы
- •(Рис. 1.1) Программа.
- •2. Создание проекта приложения
- •(Рис. 2.1) Среда Delphi
- •(Рис. 2.2) Панель кнопок среды Delphi
- •(Рис. 2.3)Панель для сохранения и восстановления внешнего вида среды Delphi
- •(Рис. 2.4)Параметры проекта
- •3. Разработка пользовательского интерфейса
- •4. Кодирование алгоритма
- •5. Компиляция и исправление синтаксических ошибок
- •6. Запуск программы
- •7. Отладка программы и исправление логических ошибок.
- •Контрольные вопросы
- •Лабораторная работа №2. Оператор присваивания
- •Задачи по лабораторной работе №2
- •Контрольные вопросы
- •Лабораторная работа №3. Оператор ветвления if
- •Задачи по лабораторной работе №3
- •Контрольные вопросы
- •Лабораторная работа №4. Оператор ветвления case
- •Задачи по лабораторной работе №4
- •Контрольные вопросы
- •Лабораторная работа №5. Циклы с предварительным условием
- •Задачи по лабораторной работе №5
- •Контрольные вопросы
- •Лабораторная работа №6. Циклы с параметром
- •Задачи по лабораторной работе №6
- •Контрольные вопросы
- •Лабораторная работа №7. Массивы
- •Задачи по лабораторной работе №7
- •Контрольные вопросы
- •Лабораторная работа №8. Двумерные массивы
- •Задачи по лабораторной работе №8
- •Контрольные вопросы
Контрольные вопросы
Опишите синтаксис оператора Case.
Как работает оператор Case?
Лабораторная работа №5. Циклы с предварительным условием
Оператор повтора repeat
Оператор повтора repeat используют в тех случаях, когда тело цикла должно быть выполнено перед тем, как произойдет проверка условия завершения цикла. Он имеет следующий формат:
repeat <оператор 1>; ... <оператор N>; until <условие завершения цикла>; |
Тело цикла выполняется до тех пор, пока условие завершения цикла (выражение булевского типа) не станет истинным. Оператор repeat имеет две характерные особенности, о которых нужно всегда помнить:
между словами repeat и until может находиться произвольное число операторов без операторных скобок begin и end;
так как условие завершения цикла проверяется после выполнения операторов, цикл выполняется, по крайней мере, один раз.
В следующем примере показано, как оператор repeat применяется для суммирования вводимых с клавиатуры чисел. Суммирование прекращается, когда пользователь вводит число 0:
program Console;
{$APPTYPE CONSOLE}
uses SysUtils;
var S, X: Integer;
begin S := 0; repeat Readln(X); S := S + X; until X = 0; Writeln('S=', S); Writeln('Press Enter to exit...'); Readln; end. |
Часто бывает, что условие выполнения цикла нужно проверять перед каждым повторением тела цикла. В этом случае применяется оператор while, который, в отличие от оператора repeat, содержит условие выполнения цикла, а не условие завершения.
Оператор повтора while
Оператор повтора while имеет следующий формат:
while <условие> do <оператор>; |
Перед каждым выполнением тела цикла происходит проверка условия. Если оно истинно, цикл выполняется и условие вычисляется заново; если оно ложно, происходит выход из цикла, т.е. переход к следующему за циклом оператору. Если первоначально условие ложно, то тело цикла не выполняется ни разу. Следующий пример показывает использование оператора while для вычисления суммы S = 1 + 2 + .. + N, где число N задается пользователем с клавиатуры:
program Console;
{$APPTYPE CONSOLE}
uses SysUtils;
var S, N: Integer;
begin Readln(N); S := 0; while N > 0 do begin S := S + N; N := N - 1; end; Writeln('S=', S); Writeln('Press Enter to exit...'); Readln; end. |
Прямая передача управления в операторах повтора
Для управления работой операторов повтора используются специальные процедуры-операторы Continue и Break, которые можно вызывать только в теле цикла.
Процедура-оператор Continue немедленно передает управление оператору проверки условия, пропуская оставшуюся часть цикла (Рис. 5.1.1):
(Рис. 5.1.1) Схема работы процедуры-оператора Continue
Процедура-оператор Break прерывает выполнение цикла и передает управление первому оператору, расположенному за блоком цикла (Рис. 5.1.2):
(Рис. 5.1.2) Схема работы процедуры-оператора Break
Задачи по лабораторной работе №5
|
№ Задачи | ||||
Вариант №1 |
4 |
8 |
12 |
16 |
20 |
Вариант №2 |
1 |
5 |
9 |
13 |
17 |
Вариант №3 |
2 |
6 |
10 |
14 |
18 |
Вариант №4 |
3 |
7 |
11 |
15 |
19 |
Задача 1.
С помощью цикла while…do или цикла repeat…until написать программу возведения числа А в целую степень N.
Задача 2.
С помощью цикла while…do или цикла repeat…until написать программу вычисления факториала заданного целого числа.
Факториал числа N вычисляется по следующей формуле:
N! = 1 ∙ 2 ∙ 3 ∙ ... ∙ N.
Задача 3
С помощью цикла while…do или цикла repeat…until написать программу вычисления числа Фибоначчи, не превосходящего заранее заданное число N. Числа Фибоначчи вычисляются с помощью следующих соотношений:
F0 = 0; F1 = 1; Fi = Fi-1 + Fi-2 для i > 1.
Задача 4.
С помощью цикла while…do или цикла repeat…until написать программу вычисления суммы S квадратов чисел от 1 до N.
Задача 5.
Составить программу, вычисляющую для заданного x сумму:
При суммировании учитывать только слагаемые, большие по абсолютной величине заданного положительного числа Е. Факториал числа N вычисляется по следующей формуле:
N! = 1 ∙ 2 ∙ 3 ∙ ... ∙ N.
Контрольный пример: x = 1, Е = 0.1.
Результат: 2.666667.
Задача 6.
С помощью цикла while…do или цикла repeat…until написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N Проверку числа на четность осуществить с помощью встроенной функции ODD.
Задача 7.
Составить программу для определения k, при котором функция
становится меньше заданного числа А при заданном x для k = 1, 2, 3, … Контрольный пример: x = 1, А=0.25.
Результат: 5.
Задача 8.
Написать программу поиска суммы последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1, 2, 3, -4, 5, -2, 0.
Результат: 7.
Задача 9.
Написать программу поиска суммы последовательности положительных чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1, 2, 3, -4, 5, -2, 0.
Результат: 11.
Задача 10.
Написать программу поиска суммы последовательности отрицательных чисел, вводимых с клавиатуры, предшествующих первому введенному нулю. Контрольный пример: 1, 2, 3, -4, 5, -2, 0.
Результат: -6.
Задача 11.
Написать программу поиска произведения последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному отрицательному числу.
Контрольный пример: 1, 2, 3, 4, 5, -2.
Результат: 120.
Задача 12.
Написать программу поиска произведения последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1, 2, 3, -4, 5, -2, 0.
Результат: 240.
Задача 13.
Написать программу поиска произведения последовательности положительных чисел, вводимых с клавиатуры, предшествующих первому введенному нулю. Контрольный пример: 1, 2, 3, -4, 5, -2 , 0.
Результат: 30.
Задача 14.
Написать программу поиска произведения последовательности отрицательных чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1, 2, 3, -4, 5, -2, 0.
Результат: 8.
Задача 15.
Написать программу поиска чисел, лежащих в интервале от -5 до 5, в последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1, 10, -4, 5, -16, -5, 0.
Результат: 1, -4, 5, -5.
Задача 16.
Написать программу поиска чисел, лежащих в интервале от 3 до 13, в последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному отрицательному числу.
Контрольный пример: 1, 3, 16, 7, 13, 10, 2, -1.
Результат: 3, 7, 13, 10.
Задача 17.
Вычислить у - первое из чисел sin x, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 .
Задача I8.
Не используя стандартные функции (за исключением abs), вычислить с точностью eps > 0
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать.
Задача 19.
Не используя стандартные функции (за исключением abs), вычислить с точностью eps > 0
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать.
Задача 20.
Не используя стандартные функции (за исключением abs), вычислить с точностью eps > 0
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать.