«…лишь недалекие люди боятся конкуренции, а люди подлинного творчества ценят общение с каждым талантом…» А. Бек, Талант.

Спец курс (Верификация цифровых схем)/Практические задания (Лекция 1)

Материал из Wiki
< Спец курс (Верификация цифровых схем)
Версия от 13:19, 22 октября 2016; ANA (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Лекции ВЦС

Лекции

Практические задания
Тесты

Доп. материалы

Задания

  1. Вывести в консоль значения литералов в десятичном, двоичном, шестнадцатиричном и строковом форматах.
  2. Создать тип данных структура, содержащую 4 различных поля. Поля должны иметь тип целочисленный, строковый, бит-вектор. Создать две переменные полученного типа. Проинвертировать все битовые поля в первой переменной. Значение всех полей первой и второй переменных типа структуры вывести в консоль.
  3. Объявить и заполнить строковую переменную. Вывести на экран первый и последний элемент строки. Длинна строки должна быть больше 10 символов.
  4. Объявить и заполнить строковую переменную. Длинна строки должна быть больше 30 символов. Строка содержит символы пробела, разделяющие строку на слова, слов более одного. Создать массив строковых переменных и заполнить их словами из исходной переменной.
  5. Создать 2-х мерный массив целочисленных переменных, заполнить случайными значениями и после отсортировать в порядке возрастания элементы в каждой строке.
  6. Создать упакованный массив данных, в который поместить значения из предыдущего задания и вывести в консоль все элементы друг за другом без пробелов.
  7. Создать динамический массив байт размером 10 кБ. Создать еще один динамический массив целых чисел подходящего размера и поместить в него значения первого. Второй массив не должен занимать 10 кБ.
  8. Создать ассоциативный массив из 1024 элементов, каждый элемент которого представляет собой динамический массив размером 1024 бит + номер. Номер определяется так, добавляем в ассоциативный массив первый элемент номер равен 1, второй 2, и т.д. Значения векторов в динамическом массиве заполнить случайным образом.
  9. Создать очередь, каждый элемент которой представляет собой структуру данных из 2-го задания. Заполнить очередь 10 значениями. После удалить первые 3 элемента из очереди и вывести значения полей элементов в консоль.
  10. Объявить класс, содержащий 3 переменные A, minAi, maxAi. A-массив целых чисел, minAi - минимальное значение, maxAi - максимальное значение в массиве, создать методы класса возвращающие максимальное и минимальное значение в массиве. А также методы вывода значений всех переменных в консоль, функция должна быть виртуальной. Массив заполнить 10 случайными значениями. Создать объект класса и вывести значения переменных в консоль.
  11. Объявить класс, наследуемый от класса в предыдущем задании и переопределить функцию вывода значений всех переменных. Добавить к существующему выводу, вывод сообщения об разработчике класса (ФИО латиницей).
  12. Объявить пакет, который будет содержать объявления классов из двух предыдущих заданий. Объявить еще один класс в модуле, наследуемый от одного из классов описанных в пакете. Использовать импорт пакета. В наследуемом классе переопределить еще раз метод вывода сообщений, убрав вывод информации о разработчике.
  13. Объявить класс, содержащий задачу, выводящую значения 1, 2, 3, ... и т.д. с периодичностью 1 us симуляционного времени. Объявить еще одну задачу, которая выводит текстовые сообщения "1000us", "2000us", "3000us" ... с периодичностью 1 ms. Объявить третью задачу, которая выводит сообщение "Start check processing..." после того как в первой задаче значения превысили 10000, и выводит сообщение "End check processing..." после того как вторая задача выведет сообщение "5000us". Запустить три задачи в параллель. Провести моделирование 100 ms.
  14. Описать генератор тактового сигнала используя оператор цикла while.
  15. Объявить и заполнить два ассоциативных массива произвольными данными. Реализовать функцию сравнения этих массивов.
  16. Создать очередь целых чисел. Реализовать функции поиска максимального и минимального элементов.
  17. Создать очередь массивов фиксированной длины, каждый из которых содержит два элемента. Элементы будут задавать нижнюю и верхнюю границы диапазона значений. Реализовать функцию проверки того, что заданные диапазоны во всех элементах очереди не пересекаются между собой.
  18. Реализовать базовый класс А с полем data (динамический массив) и наследуемый от него класс B. Реализовать класс С, содержащий произвольную функцию (например, для подсчета суммы элементов массива data) с входным параметром типа класс A и далее вызвать эту функцию, передав в качестве аргумента объект типа класс B. Для этого следует правильно передать и обработать поле data объекта типа класс B в реализуемой функции класса С.
  19. Реализовать интерфейс, параметризируемый двумя значениями: ширина адреса и ширина данных.