- •Часть 1 11
- •Часть 2 18
- •Часть 1 21
- •Часть 2 24
- •Лабораторная работа №1 Тема: “Программы, использующие команды ветвления. Отладка программы“ Отладка программы
- •Часть 1 Ветвление в программе с помощью вложенных конструкцийif-else Задание
- •Пример 1
- •Пример 2
- •Организация повторения программы
- •Выполнение программы в пошаговом режиме
- •Задание для самостоятельного выполнения
- •Часть 2 Ветвление в программе с помощью оператораswitch
- •Задание для самостоятельного выполнения
- •Лабораторная работа №2
- •Программа, которая проверяет, является ли число простым
- •Программа, которая проверяет, является ли число палиндромом
- •Часть 2 Программы, использующие рекуррентные соотношения
- •Программа, которая находит числа Фибоначчи в заданном диапазоне.
- •Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
- •Программа, которая вычисляет сумму рядас заданной точностью.
- •Пример – программа, которая вычисляет сумму рядадля заданного количества слагаемых.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 3 Тема: “Программы, использующие вспомогательные функции”.
- •1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
- •2. Программа, которая находит заданное количество чисел, содержащих цифру 3
- •3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел.
- •Программа, которая находит первое автоморфное число справа от заданного.
- •6. Программа для вычисления биноминальных коэффициентов
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 4 Тема: “Программы, использующие строки символов ”.
- •Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
- •Программа перевода числа из десятичной системы счисления в двоичную
- •Первый вариант (с использованием указателя)
- •Программа перевода числа из двоичной системы в десятичную
- •Программа перевода числа из 16-ой системы счисления в 2-ую.
- •Программа перевода числа из 2-ой системы счисления в 16-ую.
- •Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов)
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 5 Тема: “Программы, использующие файлы ”.
- •Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле.
- •Программа, инвертирующая файл (переставляющаясимволыв обратном порядке)
- •Программа выводит на экран n-ую строку файла
- •Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов
- •5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами)
- •6. Программа, которая считывает данные для структуры Man из файла.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 6 Тема: “Программы, использующие массивы ”.
- •Программа заполняет массив a(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.
- •Программа, которая по заданным корням многочлена степениnвосстанавливает все коэффициенты многочлена.
- •Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы.
- •Программа заполняет массив a[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали.
- •Программа считывает матрицу из файла, выводит ee на экран, сортирует элементы в каждом столбце и отсортированную матрицу записывает в файл.
- •Программа, сортирующая файл по длине строки методом быстрой сортировки.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 7 Тема: “Программы, использующие динамические структуры”.
- •Программа, которая создает очередь символов.
- •Программа, которая создает закольцованный список и затем последовательно удаляет из списка каждый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) все переменные, используемые в программе, и выполните программу в пошаговом режиме для следующих наборов данных:
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>, ввод заканчивается и программа выдает результат на экран.
Выполните программу в пошаговом режиме.