Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаФИН kosh.doc
Скачиваний:
29
Добавлен:
15.02.2016
Размер:
3.16 Mб
Скачать

Практическое занятие №3 Тема: «Приложения, использующие команды повторения» Часть 1 Приложение, использующее циклwhile

В качестве примера создадим диалоговое приложение, которое прове­ря­ет, является ли заданное число числом Фибоначчи. Числа Фибоначчи вы­чис­ляются по следующему правилу: F1 = 1, F2 = 1, Fi = Fi-1 + Fi-2.

Таким образом, ряд чисел Фибоначчи выглядит так:

1 1 2 3 5 8 13 21 34 55 и т.д.

    1. Спроектируйте диалоговое приложение как показано на рисунке.

    2. Свяжите с окнами редактирования переменные как показано в таблице.

IDC_EDIT1

CEdit edit

IDC_EDIT1

UINT number

IDC_EDIT2

CString rez

Рис.54

    1. Связав с первым окном редактирования переменную edit категории Control, мы получим объект для управления состоянием окна редак­тирования.

    2. Добавьте функцию для кнопки <Проверить> и вставьте в тело функции операторы, показанные ниже.

void CFibonachiDlg::OnButton1()

{

UpdateData();

UINT f1, f2=1, f3=1;

/* объявляем вспомогательные переменные и присваиваем им начальные значения */

while (f2 < number) // пока не дошли до заданного числа

{

f1 = f2; f2 = f3; f3 = f1 + f2;

/* вычисляем новое число Фибоначчи, при этом вся тройка сдвигается по числовой оси вправо */

}

if (f2 == number) rez = "Это число Фибоначчи";

else rez = "Не является числом Фибоначчи";

UpdateData(false);

edit.SetSel(0,-1);

edit.SetFocus();

/* по завершении вычислений выделяем текст в первом окне редактирования и делаем окно активным */

}

Часть 2 Приложение, использующее циклdo-while

Вкачестве примера создадим диало­говое приложение, которое считывает процент годовых начис­лений на бес­сроч­ный вклад в банке и определяет, через сколько месяцев вклад увеличится вдвое, если вкладчик не будет ни снимать, ни вносить деньги.

2.1. Спроектируйте диалоговое окно как показано на рисунке. Очевидно, что решение задачи не зависит от величины вклада (конечно, если он отличен от ну­ля).­

Рис.55

2.2. Свяжите с окнами редактирования переменные как показано в таб­лице.

IDC_EDIT1

CEdit edit

IDC_EDIT1

double proc

IDC_EDIT2

int mun

2.3. Добавьте функцию для кнопки <Вычислить> и вставьте в тело функ­ции операторы, показанные ниже.

void CVkladDlg::OnBnClickedButton1()

{

UpdateData();

double rez = 1; // Начальное значение вклада примем условно за 1

mun = 0;

double k = 1 + proc/1200;

/* Коэффициент увеличения вклада при помесячном начислении процентов (введенный процент делим на 12 и на 100) */

do

{

rez *= k;

// ежемесячно увеличиваем вклад на вычисленный процент

mun++; // увеличиваем количество месяцев

} while (rez < 2); // пока вклад не увеличился вдвое

UpdateData(false);

edit.SetFocus();

edit.SetSel(0,-1);

/* по завершении вычислений выделяем текст в первом окне редактирования и делаем окно активным */

}

Часть 3 Отладка программы. Использование оператора trace

Очень часто при написании программы возникают различные логические ошибки и нештатные ситуации. Для того чтобы их отыскать, разобраться откуда они возникли и исправить, необходима отладка программы. Чем больше отладочных сведений генерирует программа, тем проще искать ошибки. Макрос TRACE помогает разработчику выводить необходимую для него информацию в окно отладчика, что необходимо при поиске причин возникновения разных нештатных ситуаций, особенно если Вы не хотите прерывать выполнение программы. Анализируя выведенную в окно отладчика информацию, можно узнать, что пошло не так в процессе работы и на что стоит обратить внимание. ЗАМЕЧАНИЕ: не забывайте добавлять символы \n в конце отладочной строки, чтобы вывод был более читабельным. Реально, макросов (операторов) TRACE несколько вариантов:

TRACE, TRACE0, TRACE1, TRACE2, TRACE3. Логика здесь такова: цифра в конце каждого из них указывает на количество параметров. Вы можете пользоваться любым из них. Оператор поддерживает форматный вывод так же, как и функция printf. Передавать оператору можно любое количество параметров, но не меньше одного. Первым параметром здесь записывается строка формата, а вторым, третьим и т.д. – значения переменных, которые Вы хотите проследить. НАПОМИНАНИЕ: если в строке формата встречаются специальные комбинации символов после знака %, функция пытается вместо них подставить значения остальных параметров. Виды специальных символов:

  • %c – вывод символа;

  • %s – вывод строки символов;

  • %d, %i – вывод целого десятичного числа со знаком;

  • %o – вывод целого восьмеричного числа;

  • %u – вывод целого десятичного числа без знака;

  • %x – вывод целого шестнадцатеричного числа;

  • %f – вывод дробного числа в фиксированном формате;

  • %e – вывод дробного числа в научном формате;

  • %g – вывод дробного числа в научном или фиксированном формате;

  • %p – вывод указателя в шестнадцатеричном виде.

Еще раз обратим Ваше внимание на то, что оператор TRACE выводит отладочную информацию при запуске программы в режиме отладки. Для того чтобы запустить Ваше приложение в режиме отладки можно воспользоваться пунктами меню Debug -> Start Debugging или «горячей» клавишей F5(подробно этот режим мы уже рассматривали на первом практическом занятии). Смотреть отладочные сведения следует в окне вывода Output (его мы также рассматривали на первом практическом занятии, знакомясь со средой разработки).