В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
ruslanbaxsiev79
ruslanbaxsiev79
21.07.2021 11:54 •  Информатика

Нарисовать блок схему по исходному коду (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;

Показать ответ
Ответ:
кирабим
кирабим
14.07.2021 04:19
#include <iostream>
using namespace std;
double val, p;
//вводимые параметры значения функции и степень полинома
//x - значение функции
//res - значение, которое изменяется в процессе рекурсии по схеме Горнера
//s - рассматриваемая текущая степень x
double rec(double x, double res, double s) 
{
  if (s == 0.0)
    return res;
  return rec(x, x * res + s - 1, s - 1);
}
int main(){
  cin >> val >> p;
  //старший коэффициент в схеме Горнера сначала сносится вниз, 
  //поэтому его передаем в качестве начального параметра для результата
  cout << fixed << rec(val, p, p) << endl;
  return 0;
}
0,0(0 оценок)
Ответ:
pastoling
pastoling
02.01.2020 21:07

{данная программа переводит любое сочетание символов ascii в систему счисления заданную пользователем.}

//pascal abc.net v3.0 сборка 1111

var

  a,i,b,r,n,j,bug: integer;

  s,se,slo,slof: string;

procedure preob(var a,b,n: integer; var se: string);

  begin

  repeat

    b: =a mod n;

    a: =a div n;

    str(b,se);

    s+=se;

  until (a< =n-1);

  end;

beginreadln(slo);

readln(n);

for j: =1 to length(slo) do

begin;

a: =ord(slo[j]);

preob(a,b,n,se);

str(a,se);

s+=se;

for i: =1 to length(s) div 2 do

begin;

se: =s[i];

s[i]: =s[length(s)-i+1];

s[length(s)-i+1]: =se[1];

end;

write(s,'-');

slof: =slof+s;

delete(s,1,length(s));

end;

end.

пример ввода:

работа на завтра.

2

пример вывода:

11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-

{таким образом, фразу " работа на завтра." можно закодировать как "11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-".}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота