Курс Основы системного программирования входит в курс Информатика Зачет будет проведен 24 декабря (среда) в 13.30 в аудитории 361. От письменной работы освобождаются студенты, набравшие не менее 43 баллов (более 42 баллов) из 50 за лабораторные работы и написавшие контрольную работу по Основам системного программирования на зачет (более 4 2/3) из 8. На зачет необходимо явиться всем студентам! Вопросы к зачету по Информатике (1 курс) 1. Что такое стиль программирования? Почему важно придерживаться хорошего стиля программирования? 2. Целый тип данных в языках С и Pascal. 3. Как следует комментировать программы? 4. Вещественный тип данных в языках С и Pascal. 5. Понятие алгоритма. Полное построение алгоритма. 6. Символьный тип данных в языках С и Pascal. 7. Разработка программ сверху вниз. 8. Выражения в языке Паскаль. 9. Реализация основных элементов структурного программирования в языке С. 10. Составной оператор в языках C и Pascal. 11. Концепция типа данных. Описания данных в языке С. 12. Оператор цикла языка Pascal. 13. Арифметические операции, операции отношений и их приоритеты в языке С. 14. Проиллюстрируйте примерами приоритеты арифметических операций, операций отношения и логических связок в языке С. 15. Логические связки. 16. Функции в языке Паскаль. 17. Функции управления файлами в языке С. 18. Правила локализации переменных в языке Pascal. 19. Массив. Понятие. Описание. Обращение к компонентам. 20. Тип данных запись (Pascal). 21. Оператор ветвления. Вложенный оператор ветвления. 22. Оператор выбора. 23. Привести пример использования оператора выбора. 24. Структура Паскаль-программы. 25. Постфиксный и префиксный инкремент и декремент. 26. Логические выражения в языке Pascal. 27. Побитовые операции. Тернарная операция? 28. Файловый тип данных в языке Pascal. 29. Циклы while и do-while (язык С). 30. Процедуры управления файлами в языке Pascal. 31. Цикл for. 32. Рекурсия, рекурсивные объекты и подпрограммы. Определение и примеры. 33. Как сделать выбор между операторами цикла? 34. Приведите пример кода рекурсивной подпрограммы. 35. Функция getchar(). Перенаправление стандартного ввода. 36. Функция putchar(). Перенаправление стандартного вывода. 37. Аналоги основных элементов структурного программирования в языке Pascal. 38. Форматный ввод. 39. Форматный вывод. 40. Передача параметров подпрограмм по адресу и по значению. 41. Последовательность как структура данных. 42. Последовательный файл. 43. Связь между "внешним" именем файла и указателем файла. 44. Чтение из последовательного файла и запись в последовательный файл. 45. Процедуры в языке Паскаль. 46. Модульный принцип в программировании. 47. Какими принципами следует руководствоваться, определяя модульную структуру задачи? 48. Функция в языке С. Понятие, описание. Прототип функции. 49. Возвращаемые значения функций printf(), scanf(), getchar(), putchar(), fopen(). 50. Рекурсивный объект. Определение, примеры. 51. Когда следует и когда не следует использовать рекурсию? 52. Привести пример задачи, для решения которой не следует использовать рекурсивный алгоритм. Объяснить почему. 53. Привести пример задачи, для решения которой желательно использовать рекурсивный алгоритм. Объяснить почему. 54. Указатели. Определение и описание. Унарные операции & и *. 55. Использование указателей в выражениях в языке С. 56. Связь между массивами и указателями. 57. Массив как параметр функции. Основы системного программирования 1. Необходимость овладения архитектурной культурой. 2. Отладчик Turbo Debugger. 3. Понятие процессора. 4. Язык ассемблера, определение, преимущества. 5. Системная среда центрального процессора Intel 8086/8088. 6. Символьное имя в языке ассемблера, именуемые объекты языка, атрибуты имени. 7. Основной цикл процессора. Тактовые импульсы. 8. Формат команды языка ассемблера. 9. Байт, слово, двойное слово. 10. Операции OFFSET и SEG. 11. Двоичная арифметика, дополнительный код, переполнение. 12. Машинные команды, директивы ассемблера. 13. Адресное пространство оперативной памяти. 14. Директивы определения данных. 15. Регистры процессора. Общие положения. 16. Процесс ассемблирования и текущий счетчик адреса. 17. Адресный и стековый доступ к памяти. 18. Механизм сегментации оперативной памяти. 19. Перемещение, смещение, исполнительный адрес команды. 20. NEAR и FAR адреса. 21. Регистр CS и командный сегмент. 22. Регистр DS и сегмент данных. 23. Регистр ES и дополнительный сегмент данных. 24. Регистры SS, SP, BP и стековый сегмент. 25. Логические адреса оперативной памяти. 26. Умолчания процессора при выборе сегментных регистров и перемещений. 27. Операционные регистры. 28. Регистр IP. 29. Регистр флагов и флаги.