- •Лабораторная работа №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-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Программа, которая работает со стеком.
#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;
// структура, которая описывает один узел
struct Node
{
int data;
Node* next;
};
// Функция, которая добавляет элемент в стек
void Push(Node*& first, int num)
// первый параметр – адрес узла на вершине стека
{
Node* token;
if (first==NULL) // если стек пуст
{
first = new Node;
first->next = NULL;
}
else // если стек – не пуст
{
token = new Node;
token->next = first; // привязываем узел к предыдущему
first = token;
}
first->data = num; // записываем элемент данных
}
// -----------------------------------------------------------
// функция, которая считывает значение из текущего узла и перемещается по стеку вниз
int Pop(Node*& token)
{
int num = token->data;
token = token->next;
return num;
}
//------------------------------------------------------------
int main()
{
if(SetConsoleCP(1251)==0)
{
cerr<<"Fialed to set codepage!"<<endl;
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
int data[] = {2, -3, 7, 12, 4};
Node *first=NULL, *token = NULL;
// создаем стек из элементов массива
for (int i=0; i<5; i++)
Push(first, data[i]);
//Вывод:
token=first;
while (token)
cout << Pop(token)<<" ";
cout <<endl;
_getch();
return 0;
}
Программа, которая работает с деревом.
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
// структура, которая описывает один узел дерева
struct Node
{
double number; // элемент данных
Node* Left; // указатель на левую ветвь
Node* Right; // указатель на правую ветвь
};
void Write(double, Node*&); // записывает узел
void Read(Node*); // считывает элемент данных
//-------------------------------------------------------------------------
int main()
{
if(SetConsoleCP(1251)==0)
{
cerr<<"Fialed to set codepage!"<<endl;
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
Node* root=NULL;
double x[] = {5, 2, 8, 7, 2, 9};
cout << "Исходная последовательность:\n";
for (int i=0; i<6; i++)
cout << x[i] <<" ";
cout << endl;
// создаем дерево
for (int i=0; i<6; i++)
Write(x[i], root);
cout <<"Отсортированная последовательность:\n";
// выводим дерево на экран:
Read(root);
cout<<endl;
_getch();
return 0;
}
// ------------------------------------------------------------------------
// рекурсивная функция, которая создает новый узел дерева
void Write(double x, Node*& pNode)
// параметры: элемент данных и адрес исходного узла
{
if (!pNode) // если дерева еще нет
{
pNode = new Node;
pNode->number = x;
pNode->Left = pNode->Right = NULL;
}
else /* в противном случае привязываем узел к дереву так,
чтобы все элементы слева были меньше всех элементов справа*/
{
if (x >= pNode->number)
Write(x, pNode->Right); //Спускаемся вправо
else
Write(x, pNode->Left); //спускаемся влево
}
}
/* рекурсивная функция, которая считывает элементы данных
(данные будут выведены на экран в порядке возрастания: */
void Read(Node* token)
{
if (token->Left)
Read(token->Left);
cout << token->number<<" ";
if (token->Right)
Read(token->Right);
}