- •Часть 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-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
Обозначим какy1 иy2, а заданную точностькакeps.
Взяв в качестве начального значения x/2, будем повторять следующие действия:y1 делаем равнымy2, а у2 вычисляем по заданной формуле. При этом параy1иy2 будет перемещаться по числовой оси, приближаясь к значению. Процесс вычислений можно закончить, когда будет выполняться соотношение: |y1-y2| <, при этом будет выполнено требуемое отношение: || <=.
#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;
}
double x, eps;
//выполняем ввод данных с проверкой их на допустимость
do
{
cout<< "Задайте x >= 0 ";
cin>> x;
} while (x < 0);
do
{
cout<< "Введите точность > 0 и <1 ";
cin>> eps;
} while (eps <= 0 || eps >= 1);
//выполняем вычисления, используя рекуррентное соотношение:
double y1, y2=x/2;
do
{
y1 = y2;
y2 = y1 + (x/y1 - y1) / 2;
} while (fabs(y2-y1)>=eps);
cout<< "Вычисленное значение корня "<< y2 << endl;
cout<< "контрольное значение " << sqrt(x) << endl;
_getch();
return 0;
}
Программа, которая вычисляет сумму рядас заданной точностью.
Выражение n! называется факториалом числаnи равно.
Обозначим сумму ряда как s, а очередной элемент ряда (слагаемое) какsl. Начальные значенияsиslнужно взять равными первому члену ряда, а дальше для их вычисления использовать рекуррентные соотношения.
Для вычисления очередного слагаемого используем соотношение:
, где z= 1, 2, 3… Проверьте, что при использовании этого соотношения действительно получаются нужные члены ряда и в знаменателе автоматически образуется факториал. Обратите внимание, чтоотдельно факториал вычислять не нужно.
#include<iostream>
#include<iomanip>
#include<math.h>
#include<conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"rus_rus.1251");
//!!! Настройки шрифтов и региональных стандартов взять от ОС
double e, sl=1, s=1, z=1,x;
cout<<"Введите x ";
cin>>x;
do
{
cout << "Введите точность > 0 ";
cin >> e;
} while (e <= 0);
// выполняем вычисления:
/* повторяем пока не выполнится условие: | s l | <= , при этом сумма ряда будет отличаться от не более чем на */
do
{
sl = sl*x*x / z; // вычисляем очередное слагаемое
s += sl; // добавляем его к сумме
z += 1; // увеличивае z на 1
} while ( fabs(sl) >= e);
// повторяем, пока не выполнится условие: | sl| <=, при этом сумма ряда будет
// отличаться от не более чем на.
do
{
sl = sl*x*x / z; // вычисляем очередное слагаемое
s += sl; // добавляем его к сумме
z += 1; // увеличивае z на 1
} while ( fabs(sl) >= e);
k | |
0.001 |
0 |
0.01 |
1 |
0.1 |
2 |
1 |
3 |
// например если точность вычислений= 0.001, то результат должен выводиться с
// тремя знаками после точки. Для вычисленияkиспользуем следующий алгоритм: пока //меньше 1, повторяем следующие действия:увеличиваем в 10 раз,kувеличиваем // на 1, например:
int k=0;
while ( e < 1 )
{
e*=10; ++k;
}
// устанавливает точность вывода манипуляторsetprecision(),
// при использовании манипуляторов не забывайте подключать к программе // заголовочный файл <iomanip>
cout<< "Сумма = " << setprecision(k+1) << s << endl;
cout<< "Контрольное значение : " << exp(x*x)<<endl; _getch();
return 0;
}