ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.03.2025
Просмотров: 301
Скачиваний: 2
3.4.N+1 (лабораторная работа №8); требуется заменить существующий
условный оператор на обработку исключения;
3)генерация исключительной ситуации (с помощью оператора raise), если в качестве длины массива введено неположительное число (задача 3.4.N+1, лабораторная работа №8); требуется заменить существующий оператор вывода сообщения об ошибке на генерацию исключения:
if n<=0 then raise Exception.Create('Введите положительное число');
4)генерация исключительной ситуации, если значения исходных данных выходят за допустимые границы (задача 1.3.4.N+1, лабораторная работа №5; допустимые границы определить из условия задачи);
5)(2-3) исключительные ситуации (деление на нуль, переполнение, извлечение корня из отрицательного числа и т. п.) при вычислении значений функций в лабораторной работе №9.
3.Подготовка проекта отчета по лабораторной работе. Отчет должен содержать для каждой исключительной ситуации:
1)описание ситуации;
2)фрагмент программного кода для ее обработки.
2.ЗАДАНИЕ И РЕКОМЕНДАЦИИ ПО ЕГО ВЫПОЛНЕНИЮ
1.Для каждого подпункта п. 2 подготовки к лабораторной работе измените программный код существующего приложения, добавив фрагмент с обработкой (генерацией) исключительной ситуации.
2.Отладьте измененные приложения.
3.Результаты зафиксируйте в отчете и покажите преподавателю.
Приложение 1. Пример проекта отчета по консольному приложению
Условие
Начальный вклад клиента в банке был равен A руб. В течение каждого
месяца рассматриваемого периода на счет добавляется B руб.; в конце каждого месяца на имеющийся вклад начисляется р %. Вывести величину вклада на
начало 1, 2, ... N месяца.
33
Состав данных
Имя |
Смысл |
Тип |
Структура |
||
Исходные данные |
|||||
A |
начальный вклад |
вещественный |
простая переменная |
||
B |
деньги, поступающие |
вещественный |
простая переменная |
||
ежемесячно |
|||||
р |
начисляемые ежемесячно |
вещественный |
простая переменная |
||
проценты |
|||||
N |
количество месяцев |
целый |
простая переменная |
||
Выходные данные |
|||||
i |
номер месяца |
целый |
простая переменная |
||
V |
Величина вклада на |
вещественный |
простая переменная |
||
начало i-го месяца |
|||||
Форма ввода |
|||||
Введите A, B, p, N |
|||||
< A > < B > < p > < N > |
|||||
Форма вывода
Номер месяца (i) |
Вклад (V) |
|
< i > |
< V > |
N раз |
34
Блок-схема алгоритма
начало
Ввод A,B,p,N
V:=A
i:=1
i n
да
Вывод i,V
V:=V + B
V:=V*(1+p/100)
i:=i+1
конец
35
Программа на Паскале
Program primer2;
Var A,B,p,V:real; N,i:integer;
Begin
Writeln('Введите A,B,p,N'); Readln(A,B,p,N); V:=A; for i:=1 to N do
begin writeln(i:7, V); V:=V+B;
V:=V*(1+p/100); end;
Readln;
End.
Тесты
Тест 1. Входные данные: A=100; B=10; p=0; N=4.
Выходные данные:
i |
V |
1 |
100 |
2 |
110 |
3 |
120 |
4 |
130 |
Тест 2. Входные данные: A=100; B=10; p=1; N=3.
Ниже в фигурных скобках приведено значение V, полученное после вы-
полнения оператора тела цикла для последовательных значений i. Эти данные используются для проверки правильности программы с помощью трассировки.
i=1
writeln(i:7, V); {V=100} V:=V+B; {V=110} V:=V*(1+p/100); {V=111,1}
i=2
writeln(i:7, V); {V=111,1} V:=V+B; {V=121,1} V:=V*(1+p/100); {V=122,311}
36
i=3
writeln(i:7, V); {V=122,311} V:=V+B; {V=132,311} V:=V*(1+p/100); {V=133,63411}
Выходные данные:
i |
V |
1 |
100 |
2 |
111,1 |
3 |
122,311 |
Приложение 2. Пример проекта отчета по оконному приложению
Условие
А—начальная стоимость оборудования. В первый год эксплуатации стоимость оборудования снижается на В руб., а в каждый следующий год снижение стоимости уменьшается на р % (относительно предыдущего года). Определить, через сколько лет стоимость оборудования станет меньше А/2.
Рассматривать срок не более N лет.
Состав данных
Имя |
Смысл |
Тип |
Структура |
Исходные данные |
|||
A |
начальная стоимость |
вещественный |
простая переменная |
оборудовани |
|||
B |
начальное снижение стоимости |
вещественный |
простая переменная |
р |
процентное уменьшение |
вещественный |
простая переменная |
снижения стоимости |
|||
N |
максимальное число лет |
целый |
простая переменная |
Выходные данные |
|||
i |
искомый номер года |
целый |
простая переменная |
Промежуточные переменные |
|||
At |
текущая стоимость оборудования |
вещественный |
простая переменная |
Bt |
текущее ежегодное снижение |
вещественный |
простая переменная |
стоимости |
|||
37 |
|||
Блок-схема алгоритма
начало
Ввод A,B,p,N
At:=A; Bt:=B
i:=1
At≥A/2& i N
да
At:=At - Bt
Bt:=Bt-Bt*p/100
i:=i+1
да
At<A/2
i:=i -1
Вывод
'Срок истек'
Вывод i
конец
38
Эскиз основной формы приложения
Edit1 |
||||||||||||
Начальная стоимость оборудования (A) |
||||||||||||
Начальное снижение стоимости (В) |
Edit2 |
|||||||||||
Уменьшение снижения, % (p) |
||||||||||||
Edit3 |
||||||||||||
Label |
||||||||||||
Максимальное число лет (N) |
||||||||||||
Edit4 |
||||||||||||
Через сколько лет стоимость |
||||||||||||
уменьшится в 2 раза |
Edit5 |
|||||||||||
Вычисление Выход
Button1 |
Button2 |
Программный код основного обработчика
Код приведен в лабораторной работе №5.
Тесты
Тест 1. Входные данные: A=100; B=20; p=1; N=5. При трассировке тела цикла получим:
i=1
At:=At-Bt; {At=80} Bt:=Bt-Bt*p/100; {Bt=19,8}
i=2
At:=At-Bt; {At= 60,2} Bt:=Bt-Bt*p/100; {Bt= 19,602}
i=3
At:=At-Bt; {At= 40,598 – меньше A/2!} Bt:=Bt-Bt*p/100; {Bt= 19,40598}
Выходные данные: i=3.
Тест 2. Входные данные: A=100; B=20; p=1; N=2. Результат – фраза: "За 2 лет снижения нет".
39
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Зубов В.С., Батасова В.С. Сборник задач по базовой компьютерной подготовке: учебное пособие по курсу «Информатика»/ В.С. Зубов, В.С. Батасова. — М.: Издательский дом МЭИ, 2007.— 123 с.
2.Батасова В.С. Начальный курс программирования на основе алгоритмического языка Паскаль. Учебное пособие по курсу «Высокоуровневые методы информатики и программирования». – М.: Издательство МЭИ, 2006.–116 с.
3.Маран М.М. Delphi. Начальный курс: учебное пособие / М.М. Маран – М. изд-во МЭИ, 2002. – 100 с.
СОДЕРЖАНИЕ
Введение.................................................................................................................. |
3 |
Лабораторная работа №1. Реализация простейших циклических алгоритмов в |
|
консольном приложении среды Delphi.................................................................. |
4 |
Лабораторная работа №2. Решение задач обработки массивов в консольном |
|
приложении среды Delphi....................................................................................... |
8 |
Лабораторная работа №3. Проектирование алгоритмов с использованием |
|
подпрограмм и их отладка в консольном приложении....................................... |
10 |
Лабораторная работа №4. Решение задач с параметрами-подпрограммами и |
|
модулями в консольном приложении Delphi....................................................... |
11 |
Лабораторная работа №5. Разработка простейших оконных приложений в |
|
среде Delphi........................................................................................................... |
12 |
Лабораторная работа №6. Создание оконных приложений обработки матриц в
среде Delphi........................................................................................................... |
15 |
Лабораторная работа №7. Программирование открытия и сохранения файлов с
использованием стандартных диалоговых окон ................................................. |
19 |
Лабораторная работа №8. Разработка оконных приложений, использующих |
|
автономные модули .............................................................................................. |
22 |
Лабораторная работа №9. Разработка оконных приложений, осуществляющих
графический вывод ............................................................................................... |
26 |
|
Лабораторная работа №10. Обработка исключительных ситуаций................... |
32 |
|
Приложение 1. |
Пример проекта отчета по консольному приложению............. |
33 |
Приложение 2. |
Пример проекта отчета по оконному приложению................... |
37 |
БИБЛИОГРАФИЧЕСКИЙ СПИСОК .................................................................. |
40 |
|
40 |
||