- •Оглавление
- •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. Сортировка простыми вставками
- •25. Сортировка алгоритмом Шелла
- •26. Быстрая сортировка Хоора
- •27. Поразрядная сортировка
- •28. Cортировка 1 методом пузырька
- •29. Cортировка 2 методом пузырька
- •30. Построение 2 обратной и циклической формы перестановки
- •31. Работа с библиотечными карточками
- •32. Работа с конструктором и деструктором
- •33. Работа с комплексными числами
- •34. Работа_1 с комплексными числами через указатели
- •35. Работа_2 с комплексными числами через указатели
- •36. Построение циклической очереди статическое распределение памяти
- •37. Построение стека символов статическое распределение памяти
30. Построение 2 обратной и циклической формы перестановки
Автор Уваров Е. ГИП-111
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
#define SIZE 6
#define S 20 // максимальный размер циклической записи
int main()
{
char m1[SIZE] = {'a','b','c','d','e','f'}; // 1- строка символов
char m2[SIZE] = {'a','d','b','e','c','f'}; // 2- строка символов
char m11[SIZE] = {'a','b','c','d','e','f'};
/* m11[] -массив переставляемых символов,задает порядок перстановки столбцов */
int m[SIZE] = {-1,-1,-1,-1,-1,-1}; // инициализация рабочего массива
char m3[S]; // циклическая форма перестановки
char ch,x,y,z;
int i,j=0,k=0,t,ii=-1; // ii- индекс в массиве m3[]
// Построение обратной перестановки
for(i = 0; i < SIZE; i++)
{
ch=m1[i];
m1[i]=m2[i];
m2[i]=ch;
}
cout<<"\n Given m1 :"<<endl;
for(i = 0; i < SIZE; i++) cout<<m2[i]<<" ";
cout<<"\n Given m2 :"<<endl;
for(i = 0; i < SIZE; i++) cout<<m1[i]<<" ";
// перстанока столбцов в первоначальном порядке
for(j = 0; j < SIZE-1; j++) // j - индекс массива MAS_11[]
for(i=0;i<SIZE;i++) // индекс первой строки
{ if(m11[j]==m1[i]) // i-й столбец должен стать j- ым
{
ch=m1[i];
m1[i]=m1[j];
m1[j]=ch;
ch=m2[i];
m2[i]=m2[j];
m2[j]=ch;
}
}
cout<<"\n New m1 with old oder :"<<endl;
for(i = 0; i < SIZE; i++) cout<<m1[i]<<" ";
cout<<"\n New m2 :"<<endl;
for(i = 0; i < SIZE; i++) cout<<m2[i]<<" ";
cout<<endl;
// формированиециклическо формы перестановки
for (i=0;i<SIZE;i++) // i - индекс символа 1-й строки
{
z=m1[i];
x=z;
y=m2[i];
t=0;
for (j=0;j<SIZE;j++)
if (i==m[j]) t=1; // поиск индекса i в m[]
if (t==1) continue; // переход к началу цикла и i++
j=0;
if ((x==y)&&(x!=0)) // единичный цикл
{
ii++;
m3[ii]='(';
ii++;
m3[ii]=x;
ii++;
m3[ii]=')';
}
// пробегаем массивы строк инабираем блок с начальным символом 'y'
while(z!=y) // собираем блок с начальным символом z
{
if (m1[j]==y)
{
m[k]=j; //формируем массив индексов символов блока
k++;
if (z==x)
{
ii++;
m3[ii]='('; // открываем блок цикла
}
ii++;
m3[ii]=x; // записываем символ в блок
x=y; // продолжаем набирать блок
y=m2[j];
j=0;
if (z==y) // нашли конец блока
{
ii++;
m3[ii]=x;
ii++;
m3[ii]=')';
}
}
j++;
if ((z==y)||(j>SIZE)) break;
}
}
cout<<"\n cycle form : \n";
for(i=0;i<=ii;i++) cout<<m3[i]<<" ";
getch();
return 0;
}
31. Работа с библиотечными карточками
#include "stdafx.h"
#include <string.h>
#include <iostream>
using namespace std;
class card {
char title[8];
char author[40];
int number;
public:
void store(char *t,char *name,int num);
void show();
};
void card::store(char *t,char *name,int num)
{
strcpy(title,t);
strcpy(author,name);
number=num;
}
void card::show()
{
cout<<"Title :"<<title<<"\n";
cout<<"Author :"<<author<<"\n";
cout<<" Number:"<<number<<"\n";
}
int main()
{
card book1,book2;
int n;
book1.store("Dune","Frank",2);
book2.store("Trilogy","Asimov",1);
book1.show();
book2.show();
cin>>n;
return 0;
}
