- •Вопросы к экзамену по дисциплине «программирование технических средств»
- •1 Основные понятия и определения
- •2 В состав базового программного обеспечения входят:
- •3 Программные модули
- •8 Функциональная и модульная декомпозиции
- •9 Операционная система
- •12 В ходе разработки программы должен быть подготовлен следующий графический материал:
- •13 Алфавит языка
- •15 Идентификаторы и ключевые слова
- •14 Различают также следующие виды языков программирования:
- •17 Декларация объектов
- •18 Данные целого типа (int)
- •19 Данные целого типа (int)
- •20 Данные вещественного типа (float, double)
- •21 Преобразование типов (явное и неявное). Приведение типа
- •24 Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки.
- •25 Операции, выражения
- •26 Арифметические операции. Аддитивные и мультипликативные операции.
- •28 Условная операция «? :»
- •29 Оператор выбора альтернатив (переключатель)
- •30 Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием.
- •31 Оператор цикла с предусловием и коррекцией for
- •32 Оператор безусловного перехода goto
- •33 Побитовые логические операции, операции над битами
- •34 Операции сравнения. Логические операции. Унарные операции.
- •35 Операция присваивания. Сокращенная запись операции присваивания.
- •36 Стандартная библиотека языка Си. Математические функции.
- •37 Строки в языке Си. Функции работы со строками.
- •38 Функции ввода информации
- •39 Функции вывода данных
- •40 Управляющая строка функций ввода/вывода.
- •41 Ввод-вывод потоками
- •42 Препроцессор. Директивы #include, #define, #if…
- •43 Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •44 Многомерные массивы
- •45 Структуры. Вложенные структуры
- •46 Массивы структур. Битовые поля
- •47 Объединения. Перечисления
- •48 Указатели. Указатели и адреса объектов. Указатели и массивы.
- •49 Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей Операция получения адреса
- •50 Операции с указателями: сложение и вычитание, инкремент и декремент, сравнение указателей
- •51 Работа с динамической памятью. Динамические массивы.
- •52 Операции typedef и sizeof
- •53 Функции. Определение функции, объявление функции и вызов функции. Возвращаемое значение функции.
- •54 Функции. Типы передачи параметров функции (по значению, по адресу, по ссылке).
- •55 Функции. Переменные в качестве параметров функций.
- •56 Функции. Массивы в качестве параметров функций.
- •57 Указатели на функции.
- •58 Перегрузка функций.
- •59 Классы памяти. Области действия объектов
- •60 Работа с файлами. Типы файлов (текстовый и бинарный). Дескриптор файла (“указатель на файл”). Режимы работы с файлами.
- •61 Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •62 Работа с файлами. Чтение и запись данных в файл. Посимвольный и построчный ввод-вывод
- •63 Работа с файлами. Чтение и запись данных в файл. Блоковый ввод-вывод
- •64 Работа с файлами. Чтение и запись данных в файл. Форматированный ввод-вывод
- •65 Работа с файлами. Указатель текущей позиции в файле, его перемещение к нужной позиции.
- •Заполнение:
- •67 Графический режим. Функции вывода текста, функции управления цветом. (outtext, outtextxy, setbkcolor, setcolor, settextjustify, settextstyle, textheight, textwidth)
- •68 Среды разработки программ для микроконтроллеров. Особенности написания программ для микроконтроллеров и программирования их периферийных устройств.
- •69 Средства записи программ и отладки для микроконтроллеров. Программаторы, симуляторы и внутрисхемные отладчики.
- •70 Интерфейсы программирования и отладки встроенных систем. Интерфейс jtag
8 Функциональная и модульная декомпозиции
Для большинства задач алгоритмы их решения являются довольно большими и громоздкими. При программировании нужно стараться получить программу удобочитаемую, высокоэффективную и легко модифицируемую, для чего производят декомпозицию сложного алгоритма поставленной задачи, т.е. разбивают его на более простые подзадачи, затем декомпозицию подзадач и т.д.
Основной прием - разбивка алгоритма на отдельные функции и/или модули, используя функциональную и/или модульную декомпозиции.
Функциональная декомпозиция - метод разбивки большой программы на отдельные функции, т.е. общий алгоритм - на отдельные шаги, которые потом оформляют в виде отдельных функций.
Алгоритм декомпозиции можно представить следующим образом:
- программу создать в виде последовательности более мелких действий;
- каждую детализацию подробно описать;
- каждую детализацию представить в виде абстрактного оператора, который должен однозначно определять нужное действие, и в конечном итоге эти абстрактные действия заменятся на группы операторов выбранного языка программирования.
При этом надо помнить, что каждая детализация – это один из вариантов решения, и поэтому необходимо проверить, что:
- решение частных задач приводит к решению общей задачи;
- построенная декомпозиция позволяет получать команды, легко реализуемые на выбранном языке программирования.
Единица компиляции в языке Си - отдельный файл (модуль).
Модульная декомпозиция - разбиение программы на отдельные файлы, каждый из которых решает конкретную задачу и облегчает процесс ее работы. Кроме того, код программы, разделенный на файлы, позволяет части этого кода использовать в других программах.
9 Операционная система
Вся работа компьютера осуществляется под управлением специальных программ, называемых операционной системой (ОС). С точки зрения пользователя ОС - это набор системных команд, задавая которые можно потребовать от ПЭВМ выполнения многих полезных процедур и действий.
Часть программ ОС предназначена для управления процессом выполнения задач. Группа программ так называемого администратора системы позволяет следить за работой пользователей в рамках системы. Важное место занимает блок программ, обеспечивающих обмен сообще-
ниями между пользователями сети. Удобства, предоставляемые пользователю, зависят от качества ОС, которые постоянно развиваются. В настоящее время наибольшее распространение имеют OC WindowsХХ и LinuxХХ.
Файловая система хранения информации
Для размещения информации и программ на различных устройствах, необходимых пользователю, была разработана концепция файлов. Под файлом понимается поименованное на внешнем носителе место (запоминающее устройство, диск и т.п.), отведенное для размещения и (или) чтения некоторой информации. При этом файл может быть пустым, т.е. место отведено, поименовано, а информация отсутствует. Информация, помещенная в файл, получает имя этого файла. За работу с файлами в компьютере отвечают специальные программы, набор которых называется файловой системой, основные функции которой - предоставить пользователю средства для работы с данными. Имя, которое присваивается файлу, может иметь тип, называемый «расширение». Имя и тип разделяются точкой. При отсутствии типа точка необязательна. Для более удобного размещения файлов введены каталоги. Каталог (папка) – это группа файлов на одном носителе, имеющий общее имя. Если каталог вложен внутрь другого каталога, он является подкаталогом. Такая вложенность может быть многократной и тогда образуется иерархическая структура хранения данных. Внешним носителям присваиваются имена. Для дисков, например, имена обозначаются одной буквой - a:, b:, c:,…. При этом на одном винчестере для удобства размещения файлов может быть организовано несколько логических дисков с разными именами. Маршрут (путь) файла. При сложной структуре хранения файлов разные файлы могут иметь одинаковые имена и быть расположены в разных каталогах (дисках), поэтому для точной идентификации (указания) файла необходимо кроме имени указывать путь к файлу, т.е. место на диске и цепочку подкаталогов, где он находится. Например: с:\bc31\doc\lec.doc или d:\work\prog.cpp. Для работы с файлами обычно используют специальные программы, такие, как FAR, WinCom и Проводник.
10 Решение задачи на ЭВМ можно разбить на следующие этапы:
- математическая или информационная формулировка задачи;
- выбор метода (численного) решения поставленной задачи;
- построение алгоритма решения поставленной задачи;
- запись построенного алгоритма, т.е. написание текста программы;
- отладка программы - процесс обнаружения, локализации и устранения возможных ошибок;
- выполнение программы - получение требуемого результата.
Понятие алгоритма занимает центральное место в современной математике и программировании.
Алгоритмизация - сведение задачи к последовательным этапам действий, так чтобы результаты предыдущих действий использовались при выполнении следующих.
Числовой алгоритм - детально описанный способ преобразования числовых входных данных в выходные при помощи математических операций. Существуют нечисловые алгоритмы, которые используются в экономике и технике, в различных научных исследованиях.
В общем, алгоритм - строгая и четкая система правил, определяющая последовательность действий над некоторыми объектами и после конечного числа шагов приводящая к достижению поставленной цели.
Описания алгоритмов
Наиболее распространенными способами описания алгоритмов являются словесное и графическое описания алгоритма.
Словесное описание алгоритма рассмотрим на конкретном примере: необходимо найти корни квадратного уравнения a⋅x2+b⋅x+c=0 (a ≠ 0):
1) вычислить D = b⋅b - 4⋅a⋅c;
2) если D < 0, перейти к 4;
3) вычислить корни уравнения x1 = (−b +√D) /(2 ⋅ a) ;
x2 =(−b − D) /(2 ⋅ a);
4) конец.
Здесь алгоритм описан с помощью естественного языка, а объекты обработки, являющиеся числами, обозначены буквами.
Графическое описание алгоритма - это представление алгоритма в виде схемы, состоящей из последовательности блоков (геометрических фигур), каждый из которых отображает содержание очередного шага алгоритма. Внутри фигур кратко записывают выполняемое действие. Такую схему называют блок-схемой алгоритма. Правила изображения фигур сведены в единую систему документации (ГОСТ 19.701-90), по которой – это схема данных, отображающая путь данных при решении задачи и определяющая этапы их обработки. Схема содержит: символы данных (могут отображать тип носителя данных); символы процесса, который нужно выполнить над данными; сим-
волы линий, указывающих потоки данных между процессами и носителями данных; специальные символы (для удобства чтения схемы).
11 Графическое описание алгоритма - это представление алгоритма в виде схемы, состоящей из последовательности блоков (геометрических фигур), каждый из которых отображает содержание очередного шага алгоритма. Внутри фигур кратко записывают выполняемое действие. Такую схему называют блок-схемой алгоритма. Правила изображения фигур сведены в единую систему документации (ГОСТ 19.701-90), по которой – это схема данных, отображающая путь данных при решении задачи и определяющая этапы их обработки. Схема содержит: символы данных (могут отображать тип носителя данных); символы процесса, который нужно выполнить над данными; сим-
в
олы
линий,
указывающих потоки данных между
процессами и носителями данных;
специальные
символы (для
удобства чтения схемы).
Графический (наглядный) способ представления алгоритма - это БЛОК-СХЕМА. Блоки обозначают действия исполнителя, а соединяющие их стрелки указывают на последова-тельность выполнения действий.
