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

2. В программе My7_2 реализован процесс, относительно которого выдвинута так называемая гипотеза Сиракуз. Это
процесс последовательного преобразования натурального
числа n в 1. Запустив программу, проверяем ее работу при не-
скольких значениях n и видим, что предусмотренный резуль-
тат каждый раз достигается. Отсюда мы делаем предположе-
ние, что работа программы завершится, то есть результат
будет получен при любом значении n. Однако с достовернос-
тью это неизвестно, доказательство факта завершения работы
программы (алгоритма) при любом значении n до сих пор ни-
кем не получено7
. Другими словами, есть алгоритм (програм-
ма), но его конечность, завершаемость работы во времени —
открытый вопрос, требующий своего обоснования. Мораль:
проверка циклов типа While требует особо тщательной рабо-
ты, ибо подобные циклы «потенциально бесконечны во време-
ни».
Program My7_2;
Var n:Integer;
Begin
WriteLn('Введите натуральное число:');
ReadLn(n);
Write(n);
While n<>1 Do Begin
If n Mod 2=0 Then n:=n Div 2
Else n:=(3*n+1) Div 2;
Write(' - ',n);
End;
ReadLn;
End.
Последовательно запуская программу, оцените среднюю
длину получаемых цепочек чисел при изменении n от 2 до 20.
Как избавиться от этой ручной работы по многократному
запуску программы?
Рассматривая полученные цепочки чисел, нетрудно заме-
тить, что фрагменты этих цепочек часто повторяются. Напри-
мер, 8421, 5168421. Как использовать этот
факт при подсчете средней длины цепочек для чисел (n) из
большого интервала, например типа Integer? Потребуется ли в
этом случае что-либо изменять в приведенном фрагменте про-
граммы?

Показать ответ
Ответ:
асель117
асель117
03.08.2020 14:26
Замечание: данные в файле должны быть записаны по одному числу в строке.

const
  m=100; { максимальное количество чисел в файле }
var
  f:Text;
  i,j,n,k:integer;
  a:array[1..m] of integer;
begin
  { читаем данные из файла в массив }
  Assign(f,'SuperFile.txt'); Reset(f);
  i:=0;
  while not Eof(f) do begin Inc(i); Readln(f,a[i]) end;
  Close(f);
  n:=i;
  { сортируем массив по возрастанию методом пузырька }
  for i := 1 to n-1 do
    for j := 1 to n-i do
      if a[j] > a[j+1] then
      begin k := a[j]; a[j] := a[j+1]; a[j+1] := k end;
  { заполняем файл из массива }
  Rewrite(f);
  for i:=1 to n do Writeln(f,a[i],' ');
  Close(f)
end.
0,0(0 оценок)
Ответ:
olyacolesnik20
olyacolesnik20
25.02.2023 09:17
'На первом листе внесите данные
'При добавлении записей формулу вычисления задолженности добавлять не надо
'Запускаете макрос - результат (отчет) на втором листе
'На первом листе формулы пересчитывается - результаты обновляются
'Форма в этом случае -излишне
Dim i, j, s, a

Sub Othet ()
Dim info As Variant

'Clear OTHET(2 list)
 Sheets(2).Select
    Range("A1:I1").Select
    With Selection
        .HorizontalAlignment = xlGeneral:        .VerticalAlignment = xlBottom
        .AddIndent = False:        .IndentLevel = 0:   .ShrinkToFit = False:            .MergeCells = True
    End With
    Selection.Font.Bold = True
    With Selection
    End With
Sheets(2).Cells(1, 1) = "ОТЧЕТ"

'Shapka 1 list
Sheets(1).Select
 info = Array("", "фамилия", "адрес", "дата", "стоимость заказа", "сумма аванса", "задолженность", "вид заказа")
For i = 1 To UBound(info)
 Cells(1, i) = info(i)
Next

i = 2
'Расчет долга
While Cells(i, 1) <> ""
  Cells(i, 5) = "=D" + Chr(48 + i) + "-E" + Chr(48 + i)
  i = i + 1
Wend
Rows("1:1").Select
Selection.AutoFilter
a = "" + ">" + InputBox("Укажите задолженность", "", 0) + ""
Selection.AutoFilter field:=5, Criteria1:=a, Operator:=xlAnd
Range("A1:G" + Chr(48 + i) + "").Copy Sheets(2).Range("a2")

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