- •Часть 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-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Лабораторная работа № 6 Тема: “Программы, использующие массивы ”.
Программа заполняет массив a(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.
Программа иллюстрирует работу с массивом фиксированного размера, заполненным случайными числами.
#include<iostream>
#include<iomanip>
#include<math.h>
#include<conio.h>
#include<String.h>
#include<ctype.h>
#include<stdlib.h>
#include<windows.h>
using namespace std; // Используем стандартное пространство имён
/* Функция, выполняющая перестановку значений двух переменных (обратите внимание на то, что аргументы должны быть объявлены как ссылки): */
void swap(int& a, int& b)
{
int c;
c=a; a=b; b=c;
}
// Подпрограмма сортировки методом «пузырька»
void sort(int* a, int n)
{
for ( int i = 1; i < n; i++ ) // отсчитываем проходы по массиву
for ( int j = 0; j < n-i; j++ ) // проходим по массиву
{
if ( a[j] > a[j+1] ) // сравниваем два соседних элемента
swap(a[j], a[j+1]); // переставляем их
}
}
int main()
{
if(SetConsoleCP(1251)==0)
{
cerr<<"Fialed to set codepage!"<<endl;
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
int n=50;
int *a=new int[n]; // объявляем массив из 50 элементов
cout<<"Исходный массив:\n";
// заполняем массив случайными числами и выводим на экран
int RANGE_MIN = -20; // Минимальный элемент
int RANGE_MAX = 51; // Максимальный элемент
//Пример взят из справки ms-help: //MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vccrt/html/75d9df25-7aaf-4a88-b940-2775559634e8.htm
for ( int i = 0; i < n; i++ )
{
a[i] = (int)(((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN); // случайные числа из диапазона [-20, 30]
cout << setw(4) << a[i]; /* выводим на экран элемент массива (ширина поля вывода – 4 */
}
cout <<endl;
// Вызываем функцию сортировки и передаем ей указатель на массив и размер массива:
sort( a, n);
printf("\nМассив, отсортированный по возрастанию:\r\n");
// для вывода массива на экран требуется цикл:
for (int i = 0; i < n; i++)
{
printf("%4d", a[i]); // выводим элемент массива на экран
}
printf("\r\n"); // перевод курсора в начало следующей строки
_getch();
return 0;
}
Программа, которая по заданным корням многочлена степениnвосстанавливает все коэффициенты многочлена.
Программа иллюстрирует работу с массивами изменяющегося размера.
Для вычисления коэффициентов можно воспользоваться соотношением:
В результате при вводе первого корня мы должны получить коэффициенты 1 и – x, например: приx1= 2 мы получаем многочлен(два коэффициента).
При вводе второго и последующих корней коэффициенты вычисляются следующим образом:
a0 a1 a2 … an-1
+ -a0xn -a1xn … -an-2xn – an-1xn
Например: при вводе двух корней 2 и –3 получаем:
(x-2)(x+3) =x2-2x+3x-6 =1x2 + 1x–6
1 -2
+ -1(-3) –(-2)(-3)
---------------------------
1 1 -6
Проходить по массиву коэффициентов нужно обязательно с конца, поскольку коэффициенты изменяются в процессе вычислений, а при вычислении нового значения коэффициента используется коэффициент, стоящий слева от него.
#include<iostream>
#include<iomanip>
#include<math.h>
#include<conio.h>
#include<String.h>
#include<ctype.h>
#include<stdlib.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;
}
do
{
int n; // количество корней
do
{
cout << "Задайте количество корней > 0 --> ";
cin >> n;
} while (n < 1);
double* x = new double [n]; //корни
double* a = new double [n+1]; //коэффициенты многочлена
a[0] = 1; // первый коэффициент равен единице
cout << "Задайте корни:\n";
for (int i = 0; i < n; i++)
{
cout<< i+1 <<"-й корень --> ";
cin >> x[i];
a[i+1] = -a[i] * x[i];
//Добавили последний коэффициент в массив
// вычисляем остальные коэффициенты:
for (int j = i; j >= 1; j--)
a[j] += -a[j-1] * x[i];
}
// вывод:
cout << "Заданы корни: ";
for (int i = 0; i < n; i++)
cout << x[i]<<" ";
cout << endl;
cout << "Коэффициенты многочлена: ";
for (int i=0; i<=n; i++)
cout << a[i]<<" ";
cout << endl;
delete []x;
delete []a;
cout<<"Для выхода нажмите Esc\n";
}while(_getch()!=27);
return 0;
}