Skip to content

Meldoner/uni-prog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Задание 1

Генератор заданий по машинному представлению вещественных чисел

Описание

  • Программа генерирует N вариантов с K задачами (вещественные числа) и файлы проверки с машинным представлением (32/64/128 бит) и ошибкой округления.
  • Язык: C (один файл first_alt.c).

Сборка

gcc -Wall -Wextra -o output/first_alt first_alt.c -lm

Формат входного файла

  • Файл: ../input.txt (относительно рабочего каталога запуска программы; см. примечание о путях ниже)
  • Порядок строк/значений:
    1. N — количество вариантов (int)
    2. K — количество заданий на вариант (int)
    3. bits_type — разрядность: 32, 64 или 128 (int)
    4. range_a range_b — диапазон вещественных чисел (float float)
    5. precision — количество знаков после запятой при выводе (int)

Пример input.txt

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 |

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages