Выполнение программы в пошаговом режиме
Отобразите в окне Watch имена всехпеременных, используемых в программе.
Выполните пошаговое выполнение программы (F10) для следующих исходных данных:
1 2 –3
1 2 1
1 2 3
0 2 3
0 0 2
0 0 0
Определите сами, какой ответ должна выдавать программа для каждого из этих наборов. Внимательно посмотрите, какие строчки выполняются в том или ином случае, какие значения принимают переменные. Убедитесь, что программа выполняет именно те действия, которые она должна выполнять для текущего набора данных, и выдает именно тот ответ, который должен быть.
Задание для самостоятельного выполнения
Создайте новый проект под своей фамилией с индексом 2 (например Ivanov2). Помните, что имя программы должно быть записано латинскими буквами.
Напишите программу для решения системы двух линейных уравнений:
Используйте формулы:
Программа должна выдавать один из трех вариантов ответов:
Если , то
и
иначе если , то “бесконечное множество решений”,
иначе “решений нет”.
(Правда, следует отметить, что во втором случае для системы типа
должен выдаваться ответ “нет решений”. )
Организуйте повторение программы.
Отобразите в окне наблюдения (Watch) все переменные, используемые в программе, и выполните программу в пошаговом режиме для следующих наборов данных:
1) 2 3 –5 2) 2 -2 3 3) 2 -2 3
3 -2 12 4 -4 6 4 -4 7
Определите, что должна выдавать программа в каждом из этих случаев и проверьте правильность работы программы.
Продемонстрируйте результаты своей работы преподавателю.
Часть 2
Ветвление в программе с помощью оператора switch
В качестве примера используем программу, которая подсчитывает во входном потоке количество русских букв ‘а’, ‘у’, ‘о’ и количество остальных символов.
Напечатайте текст нижеследующей программы.
#include //!!! Потоковый ввод/вывод
#include
#include
#include
using namespace std;
//!!! Используем стандартное пространство имён
int main()
{
if(SetConsoleCP(1251)==0)
//проверка правильности установки кодировки символов для ввода
{
cerr
/* если не удалось установить кодовую страницу, вывод сообщения об ошибке */
}
if(SetConsoleOutputCP(1251)==0)//тоже самое для вывода
{
cerr
}
cout
char ch=0;
// счетчики, которые будут хранить количество букв:
int counta = 0, countu = 0, counto = 0, count = 0;
while((ch=cin.get())!=’\n’)
{
switch (ch)
{
case ‘а’:
case ‘А’: counta++; break;
case ‘у’:
case ‘У’: countu++; break;
case ‘о’:
case ‘О’: counto++; break;
//подсчитываются только видимые символы:
default: if (ch32 || ch0) count++;
}
}
cout
cout
cout
cout
_getch();
/* Используйте вызов этой функции при запуске программы клавишей , чтобы в режиме отладки не закрывалось окно, в котором отображаютcя результаты работы программы*/
return 0;
}
В этой программе оператор switch повторяется командой while. При каждой проверке условия цикла из входного потока считывается один символ функцией get(). Прочитанный символ сравнивается с символом ‘\n’ , который соответствует нажатию клавиши . Если нажата клавиша , ввод заканчивается и программа выдает результат на экран.
Выполните программу в пошаговом режиме.
Задание для самостоятельного выполнения
Напишите программу, которая считывает с клавиатуры число типа double, затем символ, обозначающий знак операции (+ — * / % ^) и второе число типа double. С помощью оператора switch организуйте проверку символа и выполнение соответствующей операции для заданных чисел (если это возможно). Знак ^ используйте для обозначения возведения в степень. Возведение в степень в C выполняется функцией pow(x,y), которая возводит x в степень y. Для того, чтобы использовать эту функцию, не забудьте вставить в начало файла #include
Организуйте повторение всей программы до нажатия клавиши .
Продемонстрируйте результаты своей работы преподавателю.
Лабораторная работа №2
Тема: “Программы, использующие команды повторения (циклы). Рекуррентные соотношения“
Часть 1
Статьи к прочтению:
Простейший пример использования отладчика в Visual Studio (C#)
Похожие статьи:
-
Отладка и выполнение программы
После того, как программа набрана в виде текста в окне редактирования, ее необходимо откомпилировать, устранить синтаксические и семантические ошибки и…
-
Виртуальные машины Введение Свыше сорока лот назад выдающийся американский математик Эмиль Л. Пост опубликовал в «Журнале символической логики» статью…