- Программа генерирует N вариантов с K задачами (вещественные числа) и файлы проверки с машинным представлением (32/64/128 бит) и ошибкой округления.
- Язык: C (один файл first_alt.c).
gcc -Wall -Wextra -o output/first_alt first_alt.c -lmФормат входного файла
- Файл: ../input.txt (относительно рабочего каталога запуска программы; см. примечание о путях ниже)
- Порядок строк/значений:
- N — количество вариантов (int)
- K — количество заданий на вариант (int)
- bits_type — разрядность: 32, 64 или 128 (int)
- range_a range_b — диапазон вещественных чисел (float float)
- precision — количество знаков после запятой при выводе (int)
5
10
32
-10.0 10.0
3
- Запустить собранный бинарник в каталоге проекта:
cd output && ./first_alt- Программа создаёт Markdown-файлы с заданиями и проверками:
- tasks/variant_X_task.md — таблица заданий (N, вещественное число)
- checks/variant_X_check.md — таблица проверки: число, машинное представление, ошибка
- Если директории отсутствуют — программа пытается создать их (mkdir).
- Для 32-бит: число округляется до float, затем формируется битовое представление, вычисляется погрешность относительно исходного double.
- Для 64-бит: используется double напрямую; машинное представление формируется из битов double.
- Для 64-бит: используется long double напрямую;
- Биты извлекаются через приведение указателей к целочисленным типам и побитовые операции.
variant_X_task.md
# Вариант 1
| N | Вещ число |
|---|---|
| 1 | 86.95823 |
| 2 | 99.52941 |
| 3 | 66.21308 |
| 4 | 17.75227 |variant_X_check.md
# Проверка варианта 1
| N | Вещ число | Машинное представление | Ошибка |
|---|---|---|---|
| 1 | 86.95823 | `0 10000000101 0101101111010101001110110000101001000111101010101000` | 0.000e+00 |
| 2 | 99.52941 | `0 10000000101 1000111000011110000111001100000001101100001111000100` | 0.000e+00 |
| 3 | 66.21308 | `0 10000000101 0000100011011010001100001001011100100001101101000110` | 0.000e+00 |
| 4 | 17.75227 | `0 10000000011 0001110000001001010011100111111101111000000100101010` | 0.000e+00 |