Раздел «Язык Си».PDPzachet:

Задачи

Критерии оценки при написании эмулятора

Критерии (часть про язык С) - опрашиваются ВСЕ студенты

IDEA! Оценка не может стать ниже 2 баллов.

Критерии оценки эмулятора (устарело)

Поурочные планы

  1. Сложение 2 чисел. Результат посмотреть в регистре.
  2. Сложение N чисел массива. Результат посмотреть в регистре.
  3. а. Складываем массив байт.
  4. *. Сложение элементов массива, пока не встретится 0. Результат посмотреть в регистре.
  5. а. Складываем массив байт.
  6. Печатаем 1 символ на экран.
  7. Печатаем строку символов "Hello, world"
  8. Печатаем строку символов, оформляя код в виде функций.
  9. Печать числа в бинарном виде. Код оформить в виде функции put2
  10. Печать числа в восьмеричном виде. Код оформить в виде функции put8
  11. Печать числа в шестнадцетиричном виде. Код оформить в виде функции puthex
  12. *. Печать числа в десятичном виде. Код оформить в виде функции put10

Задачи зачета

Удовлетворительно

У1. Просуммировать все положительные элементы массива, длинной N.

У2. Просуммировать все положительные элементы массива, оканчивающегося 0 (нулем).

У3. Напечатать строку наоборот. "Hello" печатаем как "olleH"

У4. Найти сумму первых N чисел арифметической прогрессии. Заданы a0 и d. Очередной член прогрессии вычисляется по формуле ai = ai-1 + d. Вычислить сумму первых N членов прогрессии БЕЗ использования умножения и деления.

У5. Реализовать умножение целых чисел без использования умножения (через цикл сложения).

У6. Подсчитать количество буков W в строке с учетом регистра.

У7. Подсчитать площадь прямоугольника по двум сторонам (целые числа).

У8. Подсчитать длину отрезка АВ, заданного координатами его вершин (целые числа а и b)

У9. Найти минимальное из двух чисел.

У10. Вычислить координату середины отрезка АВ (с округлением вниз), заданного координатами его вершин (целые числа а и b)

У11. Напечатать строку через один символ, те если задана строка "Hello, world!", напечатать надо Hlo ol!

У12. Просуммировать массив чисел парами. Напечатать эти суммы. Число пар задано, массив четной длины.

У13. Найти сумму четных и сумму нечетных элементов массива.

У14. Найти сумму элементов массива, стоящих на четных местах и сумму элементов массива, стоящих на нечетных местах.

У15. Сложить два вектора.

У16. Вычесть два вектора.

У17. Подсчитать длину строки.

У18. Найти есть указанная буква в строке или нет. (В определенный регистр положить 1 или 0).

У19. Найти индекс первого вхождения буквы в строку, иначе -1. (положить в определенный регистр).

У20. Найти индекс последнего вхождения буквы в строку, иначе -1. (положить в определенный регистр).

У21. Сложить два числа. Каждое число состоит из 2 слов.

Y22. Дано число (слово). Сделать из него другое слово так, чтобы младший байт нового слова был старшим байтом исходного и наоборот, старший байт нового слова был младшим байтом исходного. (из АВ сделать ВА).

У23. Вычислить длину строки.

У24. Напечатать последний символ строки.

У25. Напечатать предпоследний символ строки (гарантируется, что он есть).

Хорошо

Х1. Посчитать сколько в числе единиц в бинарном виде.

Х1а. Посчитать сколько в числе нулей в бинарном виде.

Х2. Выяснить, является ли строка палиндромом. Т.е. "alla", "qazaq" и тп.

Х3. Выяснить, является ли число бинарным палиндромом.

Х4. Просуммировать все кратные 3 элементы массива длинной N.

Х5. Напечатать прямоугольник из * размером N на K.

Х6. Напечатать шахматную доску из * и - размером N на N.

Х7. Найти сколько пар 01 есть в бинарном представлении числа.

Х8. Найти сколько пар 10 есть в бинарном представлении числа.

Х9. Найти сколько раз цифра 3 входит в восьмеричную запись числа.

Х10. Найти сколько раз цифра 9 входит в шестнадцатиричную запись числа.

Х11. Напечатать прямоугольник размером N на М в полосочку (горизонтальную) из = и |

Х12. Напечатать прямоугольник размером N на М в полосочку (вертикальную) из = и |

Х13. Дан 1 байт. Сделать из него слово - бинарный палиндром.

Х13a. Дан 1 байт. Сделать из него слово - шестнадцатеричный палиндром.

Х14. Написать функцию, которая считает площадь квадрата по заданной стороне, если длина стороны не отрицательная и возвращает -1, если длина стороны больше или равна 0. Длина стороны - целое число.

X15. Для бинарного числа получить наибольшее число перестановкой цифр.

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

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

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

X19. Для бинарного числа, заданного в виде строки символов (цифр), оканчивающейся нулем, получить наибольшее число перестановкой символов.

X19а. Для бинарного числа, заданного в виде строки символов (цифр), оканчивающейся нулем, получить наименьшее число перестановкой символов.

X20. Для восьмеричного числа, заданного в виде строки символов (цифр), оканчивающейся нулем, получить наибольшее число перестановкой символов.

X21. Для шестнадцатеричного числа, заданного в виде строки символов (цифр), оканчивающейся нулем, получить наименьшее число перестановкой символов.

X22. Для десятичного числа, заданного в виде строки символов (цифр), оканчивающейся нулем, получить наименьшее число перестановкой символов.

X23. Сложить два бинарных числа, заданных в виде строки.
X23a. Сложить два бинарных числа, заданных в виде строки. Числа одинаковой длины.
X23b. Сложить два бинарных числа, заданных в виде строки. Реализовать сложение через стек.

X24. Сложить два восьмеричных числа, заданных в виде строки.

X25. Сложить два десятичных числа, заданных в виде строки.

X26*. Сложить два шестнадцатеричных числа, заданных в виде строки.

Х27. Напечатать средний символ строки нечетной длины.

Х28. Напечатать первую половину строки.

Х29. Напечатать вторую половину строки.

Отлично

О1. Найти n-тое число фибоначчи с помощью цикла.

О2. Найти n-тое число фибоначчи с помощью рекурсивного вызова функций.

Написать тест, проверяющий работу команды

Модификация
написать тест, проверяющий работу байтового варианта этой команды

Т1. ASL

Т2. ASR

Т3. ASH

Т4. ASHC

Т5. ROL

Т6. ROR

Т7. ADC

Т8. SBC

-- TatyanaDerbysheva - 17 Apr 2014