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

Каждый использует как исходное данное номер по журналу:

например, номер 29.
Тогда исходное число для практической работы двадцать девять (29) -это первое число
Читаем его следующим образом: одна двойка, одна девятка (1219) - это следующее число
Читаем его следующим образом: две единицы, одна двойка, одна девятка (211219) - это следующее число
Читаем теперь его: три единицы, две двойки, одна девятка (312219) - это следующее число
И так далее.
Теперь задание по существу: в получающемся ряду могут оказаться
довольно значительные по величине числа и надо спланировать где их
хранить, например первое число ряда поместится в коротком целом без
знака, но третье из ряда там уже не поместится и придется его хранить
в беззнаковом целом (длинном целом) или даже как вещественное (двойной
точности)
Считать надо до тридцатого включительно и запланировать минимально
потребное количество памяти под все тридцать величин, допустим, в моем
случае - один байт под первое число, два под второе, и четыре под
все (каждое) последующие 28 чисел, итого 1*1+2*1+4*28=115 байт
(не годится вариант хранить каждое в четырех байтах, потому что
потратим больше памяти)
Можно рассмотреть вариант хранения числа в виде строки цифр, тогда
первое число из разбираемого варианта займет 2 байта, второе 4 байта,
третье шесть и так далее. Вариант, очевидно, не лучше предыдущего.
Однако, можно съэкономить, используя так называемое двоично-десятичное
представление, когда цифры числа занимают полубайт, такой формат
предусмотрен в процессорах фирмы интел. Тогда первое число занимает 1
байт, второе - два байта, третье - три байта (так как запись содержит
шесть десятичных цифр). Это представление может оказаться более
экономным по расходу памяти, но более кропотливым по офрмлению
программы расчета по описанному алгоритму всего ряда значений (следует
учесть так же невозможность хранения нецелого числа байт, полубайт
придется учитывать как целый).
На самом деле, ряд может и выродиться, например, если на очередном шагу,
получим запись вида 31123319, то ряд вырождается и новых чисел мы в
нем уже не увидим. Фактически, так записанные числа, это своего рода
стоп-слово, после которого алгоритм расчета ряда будет
повторять это число, а память под него уже выделена и нового места не
потребуется.

Итак, ожидается от вас ряд значений, сформированный по правилу, с
указанием лучшего варианта хранения результата расчета по критерию
затрат памяти под числовые данные.

Второй расчет с следует проделать для своего дня рождения записанного
в формате день-месяц-год, например:
первое января две тысячи первого года = 01012001=1012001
Весь сгенеренный ряд чисел (в объеме 20 штук) следует рассматривать
как последовательность (псевдо)случайных десятичных цифр (из диапазона
0-9) о котором от вас ожидается оценка случайности данного ряда.

Это задание является аттестационным на рубежный контроль.

Схема расчета значений следующая, каждое очередное число записывается
как итог прочтения предыдущего в цифрах:
тогда первое записанное в ряду число (1012001),
второе (111011122011), то есть как бы читается предыдущее число -
одна единица, один ноль, одна единица, одна двойка, два нуля, одна единица.
третье (311031221021) - то есть предыдущее читается как три единицы,
один ноль, три единицы, две двойки, один ноль, две единицы и т.д.,
для построения ряда цифр следует использовать числа до двадцатого
прочитаннного таким образом числа включительно. Т.О. на случайность
анализируется следующая серия цифр 1012001111011122011311031221021...
записанная до исчерпания всех цифр всего сгенеренного ряда
"прочитанных" чисел. Получившаяся серия может не содержать всех
десятичных цифр, в этом случае учитываем только частоты цифр до
старшей встретившейся, в случае изображенной части ряда,
построение частот предполагает только частоты цифр 0, 1, 2 и 3.

Для оценки случайности ряда цифр используйте не менее трех
критерией на ваш выбор.

Показать ответ
Ответ:
rusnc
rusnc
12.02.2023 03:09
1. Короткий современный вариант ("один оператор")

// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
begin
  Writeln('Sпол.неч = ',ArrRandom(50,-10,20).Println
    .Where((x,i)->(x>0) and (i.IsEven)).Sum)
end.

Тестовое решение
15 16 0 17 20 7 -3 -4 9 9 -3 -8 14 10 10 11 7 18 -8 8 0 15 1 4 11 1 9 -10 -7 -7 12 17 8 13 7 15 1 13 12 11 4 -5 -3 -6 -5 -10 -9 -8 8 -8
Sпол.неч = 148

2. Длинный "школьный" вариант ("почувствуйте разницу")

// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
var
  a:array[1..50] of integer;
  i,s:integer;
begin
  Randomize;
  s:=0;
  for i:=1 to 50 do begin
    a[i]:=Random(31)-10; Write(a[i],' ');
    if (a[i]>0) and Odd(i) then s:=s+a[i]
    end;
  Writeln;
  Writeln('Sпол.неч = ',s)
end.

Тестовое решение
4 14 4 7 9 -4 3 6 20 -10 3 -3 15 12 9 0 3 12 13 -1 9 -2 -2 16 18 -2 5 9 17 -3 4 -6 10 10 -5 10 8 13 12 15 13 1 12 1 7 6 9 2 -9 -6
Sпол.неч = 207
0,0(0 оценок)
Ответ:
Данька228228
Данька228228
24.12.2022 04:57
1 задача

var
X_1, Y_1, X_2, Y_2, AC, BC, AB:real;
begin
writeln('Введите значания X_1 (точки A)');
readln(X_1);
writeln('Введите значания Y_1 (точки A)');
readln(Y_1);
writeln('Введите значания X_2 (точки B)');
readln(X_2);
writeln('Введите значания Y_2 (точки B)');
readln(Y_2);
AC:=X_2-X_1;
BC:=Y_2-Y_1;
AB:=sqrt((AC*AC)+(BC*BC));
writeln('Длинна отрезка AB равна ', AB);
end.

2 задача

var
A, B, C, P, S:real;
begin
writeln('Введите сторону A');
readln(A);
writeln('Введите сторону B');
readln(B);
writeln('Введите сторону C');
readln(C);
P:=(A+B+C)/2;
S:=sqrt(P*(P-A)*(P-B)*(P-C));
if(A+B<=C) or (A+C<=B) or (B+C<=A) then
writeln('Треугольник с такими сторонами не существует')
else
writeln ('Площадь треугольника по теореме Герона равна ', S);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота