Skip to content

Commit

Permalink
Смена кодировки некоторых *.cpp файлов с windows-1251 на utf-8.
Browse files Browse the repository at this point in the history
recode windows-1251..utf-8 problem-solving-in-cpp/remove-parentheses-from-sentence/RemoveParenthesesFromSentence/RemoveParenthesesFromSentence/stdafx.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/remove-parentheses-from-sentence/RemoveParenthesesFromSentence/RemoveParenthesesFromSentence/RemoveParenthesesFromSentence.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/insert-string-at-position/InsertStringAtPosition/InsertStringAtPosition/stdafx.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/insert-string-at-position/InsertStringAtPosition/InsertStringAtPosition/InsertStringAtPosition.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/colored-output-clr/ColoredOutputClr/ColoredOutputClr/ColoredOutputClr.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/colored-output-clr/ColoredOutputClr/ColoredOutputClr/stdafx.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/colored-output-clr/ColoredOutputClr/ColoredOutputClr/AssemblyInfo.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/colored-output-api/ColoredOutputApi/ColoredOutputApi/stdafx.cpp
recode windows-1251..utf-8 problem-solving-in-cpp/colored-output-api/ColoredOutputApi/ColoredOutputApi/ColoredOutputApi.cpp
  • Loading branch information
gusenov committed May 11, 2018
1 parent 1d159ec commit 830b048
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
#include <conio.h>


// Размерность массива:
// Размерность массива:
#define DIM 2000

// Диапазон генерации случайных чисел:
// Диапазон генерации случайных чисел:
#define RNDMIN 20
#define RNDMAX 2000


// Прототип функции сравнения элементов массива:
// Прототип функции сравнения элементов массива:
int compare(const void *, const void *);


Expand All @@ -25,128 +25,128 @@ int _tmain(int argc, _TCHAR* argv[])
int i;

setlocale(LC_ALL, "rus");
SetConsoleTitle(L"Вариант 13");
SetConsoleTitle(L"Вариант 13");

srand(GetTickCount()); // запускаем датчик случайных чисел.
srand(GetTickCount()); // запускаем датчик случайных чисел.

// Дано натуральное N <= 2000:
// Дано натуральное N <= 2000:
int N;
do
{
printf("Введите натуральное N <= 2000 -> ");
printf("Введите натуральное N <= 2000 -> ");
scanf("%d", &N);
} while (N <= 0 || N > 2000);
printf("N = %d", N);
printf("\n---------------------------------------------------------------------\n");

printf("\n%d случайных целых чисел из отрезка [%d, %d]:\n", N, RNDMIN, RNDMAX);
printf("\n%d случайных целых чисел из отрезка [%d, %d]:\n", N, RNDMIN, RNDMAX);

// Заполняем массив N случайными числами от RNDMIN = 20 до RNDMAX = 2000 (от 20 до 2000):
// Заполняем массив N случайными числами от RNDMIN = 20 до RNDMAX = 2000 (от 20 до 2000):
for (i = 0; i < N; i++)
{
// rand() % x даёт значение в диапазоне от 0 до x - 1.
// rand() % x даёт значение в диапазоне от 0 до x - 1.

// rand() % RNDMAX + RNDMIN даёт значение в диапазоне от 0 до RNDMAX - 1, и к этому значению прибавляется RNDMIN.
// Если RNDMAX равно 2000, а RNDMIN равно 20, то получается значение в диапазоне от 20 до 2019.
// rand() % RNDMAX + RNDMIN даёт значение в диапазоне от 0 до RNDMAX - 1, и к этому значению прибавляется RNDMIN.
// Если RNDMAX равно 2000, а RNDMIN равно 20, то получается значение в диапазоне от 20 до 2019.

// rand() % (RNDMAX - RNDMIN) + RNDMIN даёт значение в диапазоне от 0 до RNDMAX - RNDMIN - 1, и к этому значению прибавляется RNDMIN.
// Если RNDMAX равно 2000, а RNDMIN равно 20, то получается значение в диапазоне от 20 до 1999.
// rand() % (RNDMAX - RNDMIN) + RNDMIN даёт значение в диапазоне от 0 до RNDMAX - RNDMIN - 1, и к этому значению прибавляется RNDMIN.
// Если RNDMAX равно 2000, а RNDMIN равно 20, то получается значение в диапазоне от 20 до 1999.

mas[i] = rand() % (RNDMAX - RNDMIN + 1) + RNDMIN;
printf("%d ", mas[i]);
}
printf("\n---------------------------------------------------------------------\n");

// Сортируем по невозрастанию:
// Сортируем по невозрастанию:
qsort((void *)mas, N, sizeof(int), compare);

// Выводим на монитор:
printf("\nСортированный по невозрастанию массив:\n");
// Выводим на монитор:
printf("\nСортированный по невозрастанию массив:\n");
for (i = 0; i < N; i++)
{
printf("%d ", mas[i]);
}
printf("\n---------------------------------------------------------------------\n");

// Получаем идентификатор консоли:
// Получаем идентификатор консоли:
HANDLE hStdout;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

// Получаем параметры буфера косоли:
// Получаем параметры буфера косоли:
CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo;
GetConsoleScreenBufferInfo(hStdout, &ConsoleScreenBufferInfo);

printf("\nПечатаем массив, соблюдая условия:\n");
printf("\nПечатаем массив, соблюдая условия:\n");
char str[11];
for (i = 0; i < N; i++)
{
sprintf(str, "%d", mas[i]);

// Числа, содержащие только цифры 2, 4, 6 и 7:
// Числа, содержащие только цифры 2, 4, 6 и 7:
unsigned j;
for (j = 0; j < strlen(str); j++)
{
// Если очередная цифра в числе не равна 2, 4, 6 или 7, то досрочно выходим из цикла:
// Если очередная цифра в числе не равна 2, 4, 6 или 7, то досрочно выходим из цикла:
if ( !(str[j] == '2' || str[j] == '4' || str[j] == '6' || str[j] == '7') )
{
break;
}
}
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая не равна 2, 4, 6 или 7.
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая не равна 2, 4, 6 или 7.

if (j == strlen(str)) // если не было досрочного выхода из предыдущего цикла, то:
if (j == strlen(str)) // если не было досрочного выхода из предыдущего цикла, то:
{
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
printf("%d ", mas[i]);
continue;
}

// Числа, не содержащие цифр 2, 4, 6 и 7:
// Числа, не содержащие цифр 2, 4, 6 и 7:
for (j = 0; j < strlen(str); j++)
{
// Если очередная цифра в числе равна 2, 4, 6 или 7, то досрочно выходим из цикла:
// Если очередная цифра в числе равна 2, 4, 6 или 7, то досрочно выходим из цикла:
if (str[j] == '2' || str[j] == '4' || str[j] == '6' || str[j] == '7')
{
break;
}
}
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая равна 2, 4, 6 или 7.
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая равна 2, 4, 6 или 7.

if (j == strlen(str)) // если не было досрочного выхода из предыдущего цикла, то:
if (j == strlen(str)) // если не было досрочного выхода из предыдущего цикла, то:
{
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
printf("%d ", mas[i]);
continue;
}

// Остальные:
// Остальные:
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
printf("%d ", mas[i]);
}
printf("\n");

// Восстанавливаем цветовые параметры консоли:
// Восстанавливаем цветовые параметры консоли:
SetConsoleTextAttribute(hStdout, ConsoleScreenBufferInfo.wAttributes);

printf("\nЗначение употреблённых цветов:\n");
printf("\nЗначение употреблённых цветов:\n");

SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
printf("- числа, содержащие только цифры 2, 4, 6 и 7;\n");
printf("- числа, содержащие только цифры 2, 4, 6 и 7;\n");

SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
printf("- числа, не содержащие цифр 2, 4, 6 и 7;\n");
printf("- числа, не содержащие цифр 2, 4, 6 и 7;\n");

SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
printf("- остальные числа.");
printf("- остальные числа.");

// Восстанавливаем цветовые параметры консоли:
// Восстанавливаем цветовые параметры консоли:
SetConsoleTextAttribute(hStdout, ConsoleScreenBufferInfo.wAttributes);

printf("\n---------------------------------------------------------------------\n");

printf("\nНажмите любую клавишу для продолжения\n");
printf("\nНажмите любую клавишу для продолжения\n");
if (_getch() == 0)
{
_getch();
Expand All @@ -155,7 +155,7 @@ int _tmain(int argc, _TCHAR* argv[])
return 0;
}

// Функция сравнения элементов массива:
// Функция сравнения элементов массива:
int compare(const void *arg1, const void *arg2)
{
int *num1 = (int *)arg1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

using namespace System;

// Ôóíęöč˙ ńđŕâíĺíč˙ ýëĺěĺíňîâ ěŕńńčâŕ:
// Функция сравнения элементов массива:
int Compare(int a, int b)
{
if (a < b)
Expand All @@ -17,41 +17,41 @@ int Compare(int a, int b)

int main(array<System::String ^> ^args)
{
const int rndmin = 20, rndmax = 2000; // äčŕďŕçîí ăĺíĺđŕöčč ńëó÷ŕéíűő ÷čńĺë.
const int rndmin = 20, rndmax = 2000; // диапазон генерации случайных чисел.

int i;

Console::Title = L"Âŕđčŕíň 13";
Console::Title = L"Вариант 13";

System::Random randObj; // çŕďóńęŕĺě äŕň÷čę ńëó÷ŕéíűő ÷čńĺë.
System::Random randObj; // запускаем датчик случайных чисел.

// Äŕíî íŕňóđŕëüíîĺ N <= 2000:
int N; // đŕçěĺđíîńňü ěŕńńčâŕ.
// Дано натуральное N <= 2000:
int N; // размерность массива.
do
{
Console::Write(L"Ââĺäčňĺ íŕňóđŕëüíîĺ N <= 2000 -> ");
Console::Write(L"Введите натуральное N <= 2000 -> ");
N = int::Parse(Console::ReadLine());
} while (N <= 0 || N > 2000);
Console::Write(L"N = " + N);
Console::Write(L"\n---------------------------------------------------------------------\n");

array<int>^mas = gcnew array<int>(N);

Console::Write(L"\n" + N + L" ńëó÷ŕéíűő öĺëűő ÷čńĺë čç îňđĺçęŕ [" + rndmin + L", " + rndmax + L"]:\n");
Console::Write(L"\n" + N + L" случайных целых чисел из отрезка [" + rndmin + L", " + rndmax + L"]:\n");

// Çŕďîëí˙ĺě ěŕńńčâ N ńëó÷ŕéíűěč ÷čńëŕěč îň RNDMIN = 20 äî RNDMAX = 2000 (îň 20 äî 2000):
// Заполняем массив N случайными числами от RNDMIN = 20 до RNDMAX = 2000 (от 20 до 2000):
for (i = 0; i < N; i++)
{
mas[i] = randObj.Next(rndmin, rndmax);
Console::Write(mas[i] + L" ");
}
Console::Write(L"\n---------------------------------------------------------------------\n");

// Ńîđňčđóĺě ďî íĺâîçđŕńňŕíčţ:
// Сортируем по невозрастанию:
Array::Sort(mas, gcnew Comparison<int>(Compare));

// Âűâîäčě íŕ ěîíčňîđ:
Console::Write(L"\nŃîđňčđîâŕííűé ďî íĺâîçđŕńňŕíčţ ěŕńńčâ:\n");
// Выводим на монитор:
Console::Write(L"\nСортированный по невозрастанию массив:\n");
for (i = 0; i < N; i++)
{
Console::Write(mas[i] + L" ");
Expand All @@ -60,77 +60,77 @@ int main(array<System::String ^> ^args)

ConsoleColor color = Console::ForegroundColor::get();

Console::Write("\nĎĺ÷ŕňŕĺě ěŕńńčâ, ńîáëţäŕ˙ óńëîâč˙:\n");
Console::Write("\nПечатаем массив, соблюдая условия:\n");
String ^str = "";
for (i = 0; i < N; i++)
{
str = Convert::ToString(mas[i]);

// ×čńëŕ, ńîäĺđćŕůčĺ ňîëüęî öčôđű 2, 4, 6 č 7:
// Числа, содержащие только цифры 2, 4, 6 и 7:
unsigned j;
for (j = 0; j < str->Length; j++)
{
// Ĺńëč î÷ĺđĺäíŕ˙ öčôđŕ â ÷čńëĺ íĺ đŕâíŕ 2, 4, 6 čëč 7, ňî äîńđî÷íî âűőîäčě čç öčęëŕ:
// Если очередная цифра в числе не равна 2, 4, 6 или 7, то досрочно выходим из цикла:
if (!(str[j] == '2' || str[j] == '4' || str[j] == '6' || str[j] == '7'))
{
break;
}
}
//  âűřĺďđčâĺä¸ííîě öčęëĺ äîńđî÷íűé âűőîä ďđîčńőîäčň ňîëüęî ňîăäŕ, ęîăäŕ
// ńđĺäč öčôđ ĺńňü ňŕęŕ˙, ęîňîđŕ˙ íĺ đŕâíŕ 2, 4, 6 čëč 7.
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая не равна 2, 4, 6 или 7.

if (j == str->Length) // ĺńëč íĺ áűëî äîńđî÷íîăî âűőîäŕ čç ďđĺäűäóůĺăî öčęëŕ, ňî:
if (j == str->Length) // если не было досрочного выхода из предыдущего цикла, то:
{
Console::ForegroundColor = ConsoleColor::Red;
Console::Write(mas[i] + L" ");
continue;
}

// ×čńëŕ, íĺ ńîäĺđćŕůčĺ öčôđ 2, 4, 6 č 7:
// Числа, не содержащие цифр 2, 4, 6 и 7:
for (j = 0; j < str->Length; j++)
{
// Ĺńëč î÷ĺđĺäíŕ˙ öčôđŕ â ÷čńëĺ đŕâíŕ 2, 4, 6 čëč 7, ňî äîńđî÷íî âűőîäčě čç öčęëŕ:
// Если очередная цифра в числе равна 2, 4, 6 или 7, то досрочно выходим из цикла:
if (str[j] == '2' || str[j] == '4' || str[j] == '6' || str[j] == '7')
{
break;
}
}
//  âűřĺďđčâĺä¸ííîě öčęëĺ äîńđî÷íűé âűőîä ďđîčńőîäčň ňîëüęî ňîăäŕ, ęîăäŕ
// ńđĺäč öčôđ ĺńňü ňŕęŕ˙, ęîňîđŕ˙ đŕâíŕ 2, 4, 6 čëč 7.
// В вышеприведённом цикле досрочный выход происходит только тогда, когда
// среди цифр есть такая, которая равна 2, 4, 6 или 7.

if (j == str->Length) // ĺńëč íĺ áűëî äîńđî÷íîăî âűőîäŕ čç ďđĺäűäóůĺăî öčęëŕ, ňî:
if (j == str->Length) // если не было досрочного выхода из предыдущего цикла, то:
{
Console::ForegroundColor = ConsoleColor::Cyan;
Console::Write(mas[i] + L" ");
continue;
}

// Îńňŕëüíűĺ:
// Остальные:
Console::ForegroundColor = ConsoleColor::Green;
Console::Write(mas[i] + L" ");
}
Console::WriteLine();

// Âîńńňŕíŕâëčâŕĺě öâĺňîâűĺ ďŕđŕěĺňđű ęîíńîëč:
// Восстанавливаем цветовые параметры консоли:
Console::ForegroundColor = color;

Console::Write("\nÇíŕ÷ĺíčĺ óďîňđĺáë¸ííűő öâĺňîâ:\n");
Console::Write("\nЗначение употреблённых цветов:\n");

Console::ForegroundColor = ConsoleColor::Red;
Console::Write("- ÷čńëŕ, ńîäĺđćŕůčĺ ňîëüęî öčôđű 2, 4, 6 č 7;\n");
Console::Write("- числа, содержащие только цифры 2, 4, 6 и 7;\n");

Console::ForegroundColor = ConsoleColor::Cyan;
Console::Write("- ÷čńëŕ, íĺ ńîäĺđćŕůčĺ öčôđ 2, 4, 6 č 7;\n");
Console::Write("- числа, не содержащие цифр 2, 4, 6 и 7;\n");

Console::ForegroundColor = ConsoleColor::Green;
Console::Write("- îńňŕëüíűĺ ÷čńëŕ.");
Console::Write("- остальные числа.");

// Âîńńňŕíŕâëčâŕĺě öâĺňîâűĺ ďŕđŕěĺňđű ęîíńîëč:
// Восстанавливаем цветовые параметры консоли:
Console::ForegroundColor = color;

Console::Write("\n---------------------------------------------------------------------\n");

Console::Write("\nÍŕćěčňĺ ëţáóţ ęëŕâčřó äë˙ ďđîäîëćĺíč˙\n");
Console::Write("\nНажмите любую клавишу для продолжения\n");
Console::ReadKey();

return 0;
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 comments on commit 830b048

Please sign in to comment.