
- •Оглавление
- •1. Вычисление нод алгоритмом Евклида
- •2. Нахождение нод и нок
- •3. Вычисление факториала
- •4. Вычисление факториала рекурсивно
- •5. Вычисление биноминального коэффициента
- •7. Разложение целого числа на сумму биноминальных коэффициентов
- •8. Сумма некоторых элементов массива
- •9. Модификация массива данных. Вариант 1.
- •10. Модификация массива данных. Вариант 2.
- •11. Работа с числами массива
- •12. Поиск совпадений чисел в массиве
- •13. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1.
- •14. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 2.
- •15. Подсчет количества цифр в целом числе
- •16. Проверка целого числа на симметрию цифр. Вариант 1.
- •17. Проверка целого числа n на симметрию цифр Вариант 2.
- •19. Программа проверки глубины вложения скобок
- •20. Формирование двумерного массива
- •21. Вычисление определителя матрицы второго порядка
- •22. Вычисление определителя матрицы 3 - го порядка
- •23. Нахождение обратной перестановки и по ней циклической формы
- •24. Сортировка_1 простыми вставками
- •25. Сортировка_2 простыми вставками
- •26. Сортировка алгоритмом Шелла
- •27. Быстрая сортировка Хоора
- •28. Поразрядная сортировка
- •29. Cортировка 1 методом пузырька
- •30. Cортировка 2 методом пузырька
- •31. Работа с библиотечными карточками
- •32. Работа 1 с конструктором и деструктором
- •33. Работа 2 с конструктором и деструктором
- •34. Работа с комплексными числами
- •35. Работа_1 с комплексными числами через указатели
- •36. Работа_2 с комплексными числами через указатели
- •37. Построение циклической очереди статическое распределение памяти
- •38. Построение стека символов статическое распределение памяти
- •39. Код работы с циклической очередью, переделанный из кода стека
- •40. Код работы со стеком, переделанный из кода циклической очереди
- •41. Генерирование случ. Чисел с показательным распределением
- •42. Работа со стеком динамическое распределение памяти
36. Работа_2 с комплексными числами через указатели
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "conio.h" // библиотека для функции _getch();
class complex
{
float real,imaginary;
public:
complex();
~complex();
void add(complex *x,complex *y); //сложение двух комплексных чисел
void enter(float e,float c); // запись комплексного числа
};
complex::complex()
{
real=imaginary=0.;
}
complex::~complex()
{
}
void complex::enter(float e,float c)
{
real=e;
imaginary=c;
}
void complex::add(complex *x,complex *y)
{
// this - указатель на текущий объект, который выполняет функцию add
this->real=x->real+y->real;
this->imaginary=y->imaginary+x->imaginary;
cout<<"new number is "<<this->real<<" + "<<this->imaginary<<"*j\n";
}
int main()
{
complex x,y,z;
x.enter(4.,5.);
y.enter(5.,5.);
z.add(&x,&y);
_getch();
return 0;
}
37. Построение циклической очереди статическое распределение памяти
#include "stdafx.h"
#include <ctype.h>
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 5 // всего 5 ячеек, начиная с 0
class q_type
{
int queue[SIZE];
int head,tail;
public:
void init();
void put(int num); // вставка элемента
int push(); // выталкивание элемента
};
void q_type::init()
{
head=tail=-1;
}
void q_type::put(int num) // блок вставки в очередь
{
if(tail==-1) head=-1; // для работы по кругу замкнутой очереди
tail++; // хвост
if(tail>(SIZE-1))
{
cout<<"\n Queue is overflow\n";
tail--;
return;
}
queue[tail]=num;
}
int q_type::push() // блок выталкивания из очереди
{
head++; // голова
if(head>tail)
{
cout<<"\n Queue is underflow\n";
return 0;
}
if(tail==head) {tail=-1;} // замыкание очереди на начало
return queue[head]; // извлечение элемента
}
void main()
{
q_type qw;
int i;
qw.init();
for(i=0;i<SIZE;i++) qw.put(i);
for(i=0;i<SIZE;i++) cout <<"\n Item from queue is "<<qw.push()<<"\n";
for(i=0;i<SIZE;i++) qw.put(i);
for(i=0;i<SIZE;i++) cout <<"\n Item from queue is "<<qw.push()<<"\n";
_getch();
}
38. Построение стека символов статическое распределение памяти
#include "stdafx.h"
#include <ctype.h>
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10
class stack
{
char stck[SIZE]; // стек в виде массива
int tos; // вершина стека - индекс массива
public:
stack(); // конструктор
~stack(); // диструктор
void push(char ch); // втолкнуть в стек
char pop(); // вытолкнуть из стека
};
stack::stack()
{
tos=0;
}
stack::~stack()
{
}
void stack::push(char ch)
{
if(tos==SIZE)
{
cout<<"Stack is overflow\n";
return;
}
stck[tos]=ch;
tos++;
}
char stack::pop()
{
if(tos==0)
{
cout<<"Stack is underflow\n";
return 0;
}
tos--;
return stck[tos];
}
int main()
{
stack s1,s2;
int i;
s1.push('a');
s2.push('x');
s1.push('b');
s2.push('y');
for(i=0;i<2;i++) cout <<"Item from stack_1 is "<<s1.pop()<<"\n";
for(i=0;i<2;i++) cout <<"Item from stack_2 is "<<s2.pop()<<"\n";
_getch();
return 0;
}