Нарисовать блок схему по исходному коду (C++) #include
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
ifstream input; // создаем файлы
ofstream output;
int diffr = 1000, m = 1, nod = 0, nod2 = 1, shag = 0, stepalg = 0, i = 0, pr = 0, max = 0, mdiv2 = 0;
int m1, m2, nok, a, b;
input.open("input.txt");
if (!input.is_open())
{
cout << "Ошибка с открытием файла" << endl;
}
else // Если файл успешно открылся
{
int cot[10]; // возьмем 10 чисел
while (input >> pr)
{
cot[i++] = pr; // запишем их в массив
}
for (m = 0; m < 10; m++)
{
if (cot[m] > max) { max = cot[m]; } // найдем максимальное число
}
input.close();
for (pr = 0; pr < i; pr++) {
if (abs(max / 2 - cot[pr]) < diffr) {
diffr = abs(max / 2 - cot[pr]);
mdiv2 = cot[pr]; // нашли максимальное число меньше max/2
}
10;
}
pr = 0;
a = cot[0];
b = cot[1];
while ((a != 0) && (b != 0)) {
if (a > b) { a = a % b; }
else { b = b % a; }
shag++;
}
nod = a + b; // Нод для первых двух чисел
for (pr = 2; pr < i; pr++)
{
while ((nod > 0) && (cot[pr] > 0))
{
if (nod > cot[pr]) { nod = nod % cot[pr]; }
else { cot[pr] = cot[pr] % nod; }
shag++; // окончательное число шагов
}
nod = cot[pr] + nod; // окончательный нод
}
cout << "НОД чисел, которые содержатся в файле: " << endl <<
nod << endl;
cout << "Количество шагов: " << endl << shag << endl;
m1 = max;
m2 = mdiv2;
cout << "Максимальное число (m) равно: " << endl << max << endl
<< "Ближайшее к m/2 число равно: " << endl << mdiv2 << endl;
while (max != 0 && mdiv2 != 0)
{
if (max > mdiv2) { max = max % mdiv2; }
else { mdiv2 = mdiv2 % max; }
}
nod2 = max + mdiv2; // нашли нод максимально числа и ближайшего числа к его половине
nok = (m1 * m2) / nod2; // нашли нок
cout << "НОК(" << m1 << ", " << m2 << ") = " << nok << endl;
// Запишем полученные данные и алгоритм "Решето Эратосфена"
output.open("output.txt");
if (!output.is_open())
{
cout << "Ошибка с открытием файла" << endl;
}
else
{ // файл успешно открылся
int* a = new int[m1 + 1];
for (int i = 0; i < m1; i++)
{
a[i] = i;
}
a[1] = 0;
for (int s = 2; s < m1; s++) {
if (a[s] != 0) {
for (int j = s * 2; j < m1; j += s) {
a[j] = 0;
}
}
}
for (i = 0; i < m1; i++) {
if (a[i] != 0)
{
output << a[i] << endl; // запишем в output все простые числа до max
stepalg++;
}
}
cout << "Шаг - " << stepalg << endl << "Квадратный корень из максимального числа: " << endl << sqrt(m1) << endl;
cout << "Алгоритм 'Решето Эратосфена' в файле output.txt!" << endl;
}
output.close();
}
return 0;
var x: array[1..nx, 1..nx] of integer;z:array[1..nx*2] of integer;
i, j, k,n,r,t: integer;
begin
Writeln('Введите размер матрицы n');Read(n);
for i := 1 to n do begin
for j := 1 to n do begin
Read(k);x[i, j] := k; end;end;
Writeln('Исходный массив');
for i := 1 to n do begin
for j := 1 to n do begin
Write(x[i, j]:4);
if x[i, j]>0 then begin t:=t+1; z[t]:=x[i, j];end;
end;
Writeln; end;
Writeln;Writeln('Одномерный массив');
for j := 1 to t do
Write(z[j]:4);
end.
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган и с в шалаш
Вариант, если исключить однобуквенные:
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).
Where(x->x.Length>1).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш