Задача на nasm

Выполнен
Заказ
6082267
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
10 Мая в 23:55
Цена
Договорная
Блокировка
10 дней
Размещен
10 Мая в 16:09
Просмотров
17
Описание работы

Требуется выполнить очень простую задачу. На стандартном потоке ввода задаётся количество целых 32х-битных чисел, а затем сами эти числа. Требуется вывести эти числа в том же порядке, с переводом строки в качестве разделителя между ними. Однако, не всё так просто и решить поставленную задачу нужно описанным ниже способом.


Требуется реализовать функцию apply, которая на языке Си имела бы сигнатуру apply(int* array, size_t length, void (*fn) (...), int n, ...); В качестве первого параметра эта функция принимает указатель на массив целых чисел, затем следует количество элементов в этом массиве, затем идёт указатель на функцию, принимающую n+1 (где, n - это четвёртый параметр функции apply) четырёхбайтовых параметров. В качестве неопределённых параметров функция apply ожидает n четырёхбайтовых параметров. Функция apply должна перебрать все числа из массива array и для каждого из них вызвать функцию fn, передав ей в качестве первых n параметров те самые n параметров, которые следуют после параметра n. (n+1)ым параметром функции fn должно стать как раз очередное перебираемое число из массива array.


С помощью функции apply и требуется решить поставленную задачу. Для этого требуется сохранить входной массив в памяти, а затем вызвать функцию apply, передав в качестве третьего параметра функцию стандартной библиотеки fprintf. На языке программирования Си данный вызов выглядел бы приблизительно так: apply(array, length, fprintf, 2, stdout, "%d\n"). Стандартный вывод stdout можно получить либо через вызов (доступной в io.inc) функции FILE* get_stdout(), либо используя printf.


Запрещается использовать макросы ввода-вывода библиотеки io.inc. При вызове всех библиотечных функций стек должен быть выровнен по 16 байт.


Примеры

Входные данные

5 1 2 3 4 5

Результат работы

1

2

3

4

5

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
1 час 9 минут
Выполнен в срок
Отзыв о выполненном заказе
Следующий заказ
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир