- •Лабораторная работа №1 Тема: “Программы, использующие команды ветвления. Отладка программы“ Отладка программы
- •Часть 1 Ветвление в программе с помощью вложенных конструкций if-else Задание
- •Пример 1
- •Пример 2
- •Организация повторения программы
- •Выполнение программы в пошаговом режиме
- •Задание для самостоятельного выполнения
- •Часть 2 Ветвление в программе с помощью оператора switch
- •Задание для самостоятельного выполнения
- •Программа, которая проверяет, является ли число простым
- •Программа, которая проверяет, является ли число палиндромом
- •Часть 2 Программы, использующие рекуррентные соотношения
- •Программа, которая находит числа Фибоначчи в заданном диапазоне.
- •Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
- •Программа, которая вычисляет сумму ряда с заданной точностью.
- •Пример – программа, которая вычисляет сумму ряда для заданного количества слагаемых.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 3 Тема: “Программы, использующие вспомогательные функции”.
- •1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
- •2. Программа, которая находит заданное количество чисел, содержащих цифру 3
- •3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел.
- •Программа, которая находит первое автоморфное число справа от заданного.
- •6. Программа для вычисления биноминальных коэффициентов
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 4 Тема: “Программы, использующие строки символов ”.
- •Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
- •Программа перевода числа из десятичной системы счисления в двоичную
- •Первый вариант (с использованием указателя)
- •Второй вариант ( с использованием индексации)
- •Программа перевода числа из двоичной системы в десятичную
- •Программа перевода числа из 16-ой системы счисления в 2-ую.
- •Программа перевода числа из 2-ой системы счисления в 16-ую.
- •If (!strcmp(table[j].Bin,tmp)) // если strcmp() вернула 0, значит tmp совпала с I-ой строкой таблицы
- •Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов)
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 5 Тема: “Программы, использующие файлы ”.
- •Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле.
- •Программа, инвертирующая файл (переставляющая символы в обратном порядке)
- •Программа выводит на экран n-ую строку файла
- •Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов
- •5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами)
- •6. Программа, которая считывает данные для структуры Man из файла.
- •Программа создающая новый текстовый файл из двух данных, в котором 1-я строка –строка из первого файла, 2-я строка – строка из 2-го файла, 3-я строка – содержит общие символы первых 2-х строк.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 6 Тема: “Программы, использующие массивы ”.
- •Программа заполняет массив a(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.
- •Программа, которая по заданным корням многочлена степени n восстанавливает все коэффициенты многочлена.
- •Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы.
- •Программа заполняет массив a[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали.
- •Программа считывает матрицу из файла, выводит ee на экран, сортирует элементы в каждом столбце и отсортированную матрицу записывает в файл.
- •Программа, сортирующая файл по длине строки методом быстрой сортировки.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 7 Тема: “Программы, использующие динамические структуры”.
- •Программа, которая создает очередь символов.
- •Программа, которая создает закольцованный список и затем последовательно удаляет из списка каждый m-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Программа, которая проверяет, является ли число палиндромом
Палиндромом называется симметричное число, например 121, 2332 и т.д.
Для того чтобы проверить, является ли число симметричным, разберем копию числа на цифры, вычисляя остаток от деления на 10, и из цифр соберем перевернутое число, используя схему Горнера для вычисления значения многочлена. Если исходное и перевернутое числа равны, значит введенное число является палиндромом.
Пример: Перевернем число 123
Частное от деления на 10 |
Остаток от деления на 10 |
123 |
3 |
12 |
2 |
1 |
1 |
m = ((0*10+3)*10+2)*10+1 = 321
#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;
}
long n, m, copyn;
short c;
cout<< "Введите натуральное число ";
cin>> n;
copyn = n; // берем копию исходного числа
m=0;
do // повторяем нижеследующие действия:
{
c = copyn % 10; // получаем последнюю цифру числа
m = m * 10 + c; // добавляем цифру в схему Горнера
copyn /= 10; // делим число нацело на 10
} while (copyn); // пока число не равно 0
if (n==m) cout<< n << " - палиндром\n";
else cout<< n << " - не палиндром\n"; /* если исходное и перевернутое числа равны, значит введенное число – палиндром*/
_getch();
return 0;
}
Часть 2 Программы, использующие рекуррентные соотношения
Рекуррентными называются соотношения, используемые для вычисления последовательности значений некоторой величины, причем следующее значение этой величины вычисляется через предыдущее: .
Наберите одну из трех нижеследующих программ (комментарии набивать не нужно), подберите тестовые исходные данные и выполните программу в пошаговом режиме. Остальные программы внимательно просмотрите и запомните реализованные в них алгоритмы.
Программа, которая находит числа Фибоначчи в заданном диапазоне.
Числа Фибоначчи вычисляются по следующему правилу:
F1 = 1, F2 = 1, Fi = Fi-1 + Fi-2.
Обозначим Fi, Fi-1 и Fi-2 как F1, F2 и F3.
Начнем с того, что присвоим начальные значения, равные 1, F2 и F3, а дальше будем повторять следующие действия: F1 = F2; F2 = F3; F3 = F1 + F2. При этом тройка чисел будет смещаться по числовой оси вправо пока не выйдет за правую границу заданного отрезка.
Вычисление чисел Фибоначчи начинается c двух единиц, но выводить будем только те числа, которые попадают в заданный диапазон.
#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;
}
long a, b, f1, f2 = 1, f3 = 1;
cout<< "Задайте границы отрезка \n";
cin>> a >> b;
cout<< "Числа Фибоначчи на этом отрезке:\n";
while (f2 <= b) // вычисляем, пока не вышли за правую границу отрезка
{
if (f2 >= a) cout<< f2 << " ";
// выводим, если число не меньше левой границы отрезка
f1 = f2;
f2 = f3;
f3 = f1 + f2;
}
cout<< endl;
_getch();
return 0;
}