Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Касаткин С., Раткевич И., Травова Н. - Лаборато...doc
Скачиваний:
1
Добавлен:
22.11.2019
Размер:
1.01 Mб
Скачать

Организация повторения программы

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

#include …

#include <conio.h>

/* Необходимо подключить этот файл для использования фнкции _getch() */

using namespace std;

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

do

{

… //текст программы

} while (_getch() != 27);

return 0; }

}

Повторение происходит при нажатии любой клавиши на клавиа­ту­ре после по­лучения окончательного ответа программы. При на­жа­тии клавиши <Esc> происходит остановка программы.

Выполнение программы в пошаговом режиме

Отобразите в окне 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<iostream> //!!! Потоковый ввод/вывод

#include <math.h>

#include <conio.h>

#include <windows.h>

using namespace std;

//!!! Используем стандартное пространство имён

int main()

{

if(SetConsoleCP(1251)==0)

//проверка правильности установки кодировки символов для ввода

{

cerr<<"Fialed to set codepage!"<<endl;

/* если не удалось установить кодовую страницу, вывод сообщения об ошибке */

}

if(SetConsoleOutputCP(1251)==0)//тоже самое для вывода

{

cerr<<"Failed to set OUTPUT page!"<<endl;

}

cout<<"Введите строку: "<<endl;

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 (ch>32 || ch < 0) count++;

}

}

cout<<"Количество букв \"а\" = " << counta << endl;

cout<<"Количество букв \"у\" = " << countu << endl;

cout<<"Количество букв \"о\" = " << counto << endl;

cout<<"Количество остальных символов = " << count << endl;

_getch();

/* Используйте вызов этой функции при запуске программы клавишей <F5>, чтобы в режиме отладки не закрывалось окно, в котором отображаютcя результаты ра­бо­ты программы*/

return 0;

}

В этой программе оператор switch повторяется командой while. При каждой проверке условия цикла из входного потока считывается один символ функцией get(). Прочитанный символ сравнивается с символом '\n' , который соответствует нажатию клавиши <Enter>. Если нажата клавиша <Enter>, ввод заканчивается и программа выдает результат на экран.

Выполните программу в пошаговом режиме.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.