Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_po_OAiPR.doc
Скачиваний:
0
Добавлен:
12.12.2019
Размер:
1.23 Mб
Скачать

Логические основы алгоритмизации.

1. Основные операции алгебры логики.

2. Основные свойства логических операций.

3. Составление таблицы истинности.

4. Основы алгебры логики.

5. Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия.

6. Законы логических операций. Таблицы истинности.

7. Языки и системы программирования.

8. Классификацию языков программирования.

9. Понятие системы программирования. *

10. Эволюция языков программирования.

11. Элементы языков программирования.

12. Исходный, объектный и загрузочный модули.

13. Интегрированная среда программирования.

14. Методы программирования

15. Сущность методов программирования.

16. Методы программирования: структурный, модульный, объектно-ориентированный. Достоинства и недостатки методов программирования.

17. Общие принципы разработки программного обеспечения. Жизненный цикл программного обеспечения.

18. Типы приложений. Консольные приложения.

19. Типы приложений. Оконные Windows приложения.

20. Типы приложений. Web-приложения.

21. Типы приложений. Библиотеки.

22. Типы приложений. Web-сервисы.

Язык программирования Турбо Паскаль

23. Понятие идентификатора переменной, константы, метки

24. Арифметические и логические выражения, порядок выполнения

25. Простые типы данных

26. Стандартные функции и их использование; типы аргумента и результата

27. Структура программы на языке Турбо Паскаль

28. Операторы языка

29. Простые операторы: оператор присваивания, оператор перехода, пустой оператор

30. Ввод с клавиатуры и вывод на экран, использование процедур ввода — вывода

31. Составной оператор; оператор организации цикла

32. Организация разветвлений в программе: условный оператор, оператор выбора

33. Типы данных

34. Объявление типа данных, констант, переменных, типизированные константы

35. Строковые данные. Стандартные процедуры и функции, используемые для обработки строковых данных

36. Массивы: одномерные, многомерные. Объявление массива, обработка массива

37. Данные типа запись: структура записи, понятие поля

38. Двумерные массивы, их использование в программе

39. Файлы

40. Понятие физического файла, файловой переменной. Связь между файловой

переменной и физическим файлом

41. Организация доступа к файлам

42. Текстовые, типизированные и не типизированные файлы

43. Процедуры и функции обработки типизированных файлов

44. Процедуры и функции обработки не типизированных файлов

45. Процедуры и функции обработки текстовых файлов

46. Процедуры и функции

47. Структура процедуры, описание процедур

48. Передача параметров: параметры - значения, параметры -переменные; вызов процедуры

49. Понятие локальных и глобальных данных

50. Структура функции, описание функции

51. Передача параметров, вызов функции

52. Модули

53. Структура модулей: интерфейсная часть модуля

54. Структура модулей: инициирующая часть модуля

55. Структура модулей: исполняемая часть модуля

56. Обращение к модулю из основной программы

57. Объекты

58. Основные принципы объектно-ориентированного программирования

59. Описание объектов; иерархия объектов

60. Наследование записей

61. Понятие метода; определение метода; область действия метода

62. Стандартные библиотечные модули

63. Назначения стандартного модуля DOS

64. Стандартный модуль Crt, основные функции

Основы алгоритмизации

65. Структурное программирование

66. Понятие алгоритма

67. Способы изображения алгоритма

68. Элементарные базовые управляющие структуры: линейная последовательность, ветвление

69. Базовые структуры организации цикла: циклы со счётчиком, итерационные циклы

70. Языки программирования

71. Машино ориентированные языки, их характеристика.

72. Особенности программирования на языке АССЕМБЛЕРа.

73. Различия между подпрограммой и макросами на языке Ассемблера

74. Объектно-ориентированные языки программирования. Их достоинства и недостатки.

ОПИСАНИЕ ЯЗЫКА СИ

Элементы языка Си

75. Используемые символы

76. Константы

77. Идентификатор -

78. Ключевые слова

79. Использование комментариев в тексте программы

Типы данных и их объявление

80. Категории типов данных

81. Целый тип данных

82.Данные плавающего типа

Доцент кафедры ИСиЗИ

83. Указатели

84. Переменные перечислимого типа

85. Массивы

86. Структуры

87. Объединения (смеси)

88. Поля битов

89. Переменные с изменяемой структурой

90. Определение объектов и типов

91. Инициализация данных

Выражения и присваивания

92. Операнды и операции

93. Преобразования при вычислении выражений

94. Операции отрицания и дополнения

95. Операции разадресации и адреса

96. Операция sizeof

97. Мультипликативные операции

98. Аддитивные операции

99. Операции сдвига

100. Поразрядные операции

101. Логические операции

102. Операция последовательного вычисления

103. Условная операция

104. Операции увеличения и уменьшения

105. Простое присваивание

106. Составное присваивание

107. Приоритеты операций и порядок вычислений

108. Преобразование типов

Операторы

109. Оператор выражение

110. Пустой оператор

111. Составной оператор

112. Оператор if

113. Оператор switch

114. Оператор break

115. Оператор for

116. Оператор while

117. Оператор do while

118. Оператор continue

119. Оператор return

120. Оператор goto

Функции

121. Определение и вызов функций

122. Вызов функции с переменным числом параметров

123. ' Передача параметров функции main

Структура программы и классы памяти

124. Исходные файлы и объявление переменных

125. Объявления функций

126. Время жизни и область видимости программных объектов

127. Инициализация глобальных и локальных переменных

Указатели и адресная арифметика

128. Методы доступа к элементам массивов

129. Указатели на многомерные массивы

130. Операции с указателями

131. Массивы указателей

132. Динамическое размещение массивов

Директивы препроцессора

133. Директива # include

134. Директива #define

135. Директива #undef

Организация списков и их обработка

ЛИНЕЙНЫЕ СПИСКИ

136. Методы организации и хранения линейных списков

137. Операции со списками при последовательном хранении

138. Операции со списками при связном хранении

139. Организация двусвязных списков

140. Стеки и очереди СОРТИРОВКА И СЛИЯНИЕ списков

141. Пузырьковая сортировка

142. Сортировка вставкой

143. Сортировка посредством выбора

144. Слияние списков

145. Сортировка списков путем слияния ПОИСК И ВЫБОР В ЛИНЕЙНЫХ СПИСКАХ

146. Последовательный поиск

147. • Бинарный поиск

148. Методы вычисления адреса

ОПИСАНИЕ ЯЗЫКА СИ ++

149. Алфавит и лексика языка.

150. Типы данных языка программирования.

151. правила записи выражений и операций.

152. История развития языка программирования. Структурная схема программы

на алгоритмическом языке.

153. Лексика языка. Переменные и константы.

154. Лексика языка. Типы данных.

155. Лексика языка. Выражения и операции.

156. Операторы ввода-вывода.

157. Операторы ветвлёния.

158. Операторы цикла.

159. Синтаксис операторов: присваивания, ввода-вывода, безусловного и

условного переходов, циклов.

160. Составной оператор. Вложенные условные операторы.

161. Циклические конструкции. Циклы с предусловием и постусловием.*

Массивы

162. синтаксис объявления массива:

163. операции над массивами;

164. стандартные функции для работы с массивами;

165. ввод и вывод массивов;

166. сравнение массивов;

167. стандартные функции для работы с массивами.

168. Массивы как структурированный тип данных.

169. Объявление массива.

170. Ввод и вывод одномерных массивов.

171. Ввод и вывод двухмерных массивов.

172. Обработка массивов.

173. Стандартные функции для массива целых и вещественных чисел. Строки и множества

174. Синтаксис объявления строк и множеств.

175. Операции над строками и множествами.

176. Стандартные функции и процедуры для работы со строками.

177. Объявление строковых типов данных.

178. Поиск, удаление, замена и добавление символов в строке.

179. Операции со строками.

180. Стандартные функции и процедуры для работы со строками.

181. Объявление множества.

182. Операции над множествами. Организация ввода-вывода данных. Работа с файлами

183. Синтаксис объявления файла.

184. Порядок работы с файлами последовательного доступа.

185. Правила работы с файлами произвольного типа.

186. Типы файлов. Организация доступа к файлам.

187. Файлы последовательного доступа. Открытие и закрытие файла последовательного доступа. Запись в файл и чтение из файла последовательного доступа.

188. Файлы произвольного доступа. Порядок работы с файлами произвольного доступа. Создание структуры записи.

189. Открытие и закрытие файла произвольного доступа. Запись и считывание из файла произвольного доступа. Использование файла произвольного доступа.

190. Стандартные процедуры и функции для файлов разного типа.

Основные принципы объектно-ориентированного программирования (ООП)

191. Основные понятия ООП.

192. Основные принципы ООП.

193. История развития ООП.

194. Базовые понятия ООП: объект, его свойства и методы, класс, интерфейс.

195. Основные принципы ООП: инкапсуляция, наследование, полиморфизм.

196. Событийно-управляемая модель программирования.

197. Компонентно-ориентированный подход.

198. Классы объектов. Компоненты и их свойства. Интегрированная среда разработчика

199. Требования к аппаратным и программным средствам интегрированной среды разработчика.

200. Интерфейс среды разработчика: характеристика, основные окна, инструменты, объекты.

201. Форма и размещение управляющих элементов.

202. Панель компонентов и их свойства

203. Окно кода проекта.

204. Состав и характеристика проекта.

205. Выполнение проекта. Настройка среды и параметров проекта.

206. Проектирование объектно-ориентированного приложения.

207. Создание интерфейса пользователя.

208. Программирование приложения.

209. Тестирование, отладка приложения.

210. Создание документации. Иерархия классов

211. Виды классов.

212. Синтаксис объявления класса и экземпляра класса.

213. Синтаксис объявления свойств и методов экземпляра класса.

214. Объявление класса, свойств и методов экземпляра класса.

215. Наследование. Перегрузка методов. Разработка оконного приложения

216. Разработка функционального интерфейса приложения.

217. Создание интерфейса приложения.

218. Разработка функциональной схемы работы приложения.

219. Создание процедур обработки событий.

220. Компиляция и запуск приложения.

221. Разработка оконного приложения.

222. Разработка оконного приложения с несколькими формами.

223. Разработка многооконного приложения.

Логические основы алгоритмизации.

  1. Основные операции алгебры логики. Логическое отрицание {инверсия). Логическое умножение {конъюнкция). Логическое сложение {дизъюнкция).

  2. Основные свойства логических операций. Конъюнкция - это сложное логическое выражение, которое считается истинным в том и только том случае, когда оба простых выражения являются истинными, во всех остальных случаях данное сложеное выражение ложно. Дизъюнкция - это сложное логическое выражение, которое истинно, если хотя бы одно из простых логических выражений истинно и ложно тогда и только тогда, когда оба простых логических выраженныя ложны. Инверсия - это сложное логическое выражение, если исходное логическое выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное логическое выражение ложно, то результат отрицания будет истинным. Другими простыми слова, данная операция означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО. Импликация - это сложное логическое выражение, которое истинно во всех случаях, кроме как из истины следует ложь. Тоесть данная логическая операция связывает два простых логических выражения, из которых первое является условием (А), а второе (В) является следствием. Эквивалентность - это сложное логическое выражение, которое является истинным тогда и только тогда, когда оба простых логических выражения имеют одинаковую истинность.

  3. Составление таблицы истинности.

Таблица истиности Логическое умножение {конъюнкция).

A

B

C

1

1

1

1

0

0

0

1

0

0

0

0

Логическое сложение или дизъюнкция:

A

B

C

1

1

1

1

0

1

0

1

1

0

0

0

Логическое отрицание или инверсия:

А

неА

1

0

0

1

  1. Основы алгебры логики.

Она изучает методы установления истиности или ложности сложных логических высказываний с помощью алгебраических методов. Она делает это таким образом, что сложное логическое высказывание описывается функцией, результатом вычисления которой может быть либо истина, либо ложь(1 или 0). При этом аргументы функции (простые высказывания) также могут иметь только два значения 0 или 1. В отличии от обычной математики, в алгебре логики операции сложения и умножения заменяют операцией логическое умножение(конъюнкция), и логическое сложение(дизъюнкция). Операция логическое сложение обозначается как: «+», «ИЛИ». Результат равен единице если хотя бы одна из переменных равна единице. Результат будет также равен единице если обе переменных будут равны единице. Логическое умножение обозначается как: «x», «И». Если одна из переменных равна единице, другая нулю, то результат все равно равен нулю. Результат будет равен единице, если обе переменных равны единице. Отрицание(инверсия) обозначается «НЕ» или чертой над обозначением переменной. Например означает отрицание а. Т.е. , если а=1, то =0 и наоборот.

  1. Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия.

Логическое умножение или конъюнкция: Конъюнкция - это сложное логическое выражение, которое считается истинным в том и только том случае, когда оба простых выражения являются истинными, во всех остальных случаях данное сложеное выражение ложно. Обозначение: F = A & B.

Логическое сложение или дизъюнкция:Дизъюнкция - это сложное логическое выражение, которое истинно, если хотя бы одно из простых логических выражений истинно и ложно тогда и только тогда, когда оба простых логических выраженныя ложны. Обозначение: F = A + B.

Логическое отрицание или инверсия:Инверсия - это сложное логическое выражение, если исходное логическое выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное логическое выражение ложно, то результат отрицания будет истинным. Другими простыми слова, данная операция означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО

  1. Законы логических операций. Таблицы истинности.

Закон двойного отрицания (двойное отрицание исключает отрицание):

А = .

Переместительный (коммутативный) закон:

  • для логического сложения: А B = B A;

  • для логического умножения: A & B = B & A.

Результат операции над высказываниями не зависит от того, в каком порядке берутся эти высказывания.

Сочетательный (ассоциативный) закон:

  • для логического сложения: B) C = A (B C);

  • для логического умножения: (A & B) & C = A & (B & C).

При одинаковых знаках скобки можно ставить произвольно или вообще опускать.

Распределительный (дистрибутивный) закон:

  • для логического сложения: B) & C = (A & C) (B & C);

  • для логического умножения: (A & B) C = (A C) & (B C).

Закон определяет правило выноса общего высказывания за скобку.

Закон общей инверсии (законы де Моргана):

  • для логического сложения: = & ;

  • для логического умножения: =   

Закон идемпотентности (от латинских слов idem — тот же самый и potens — сильный; дословно — равносильный):

  • для логического сложения: А A = A;

  • для логического умножения: A & A = A .

Закон означает отсутствие показателей степени.

Законы исключения констант:

  • для логического сложения: А 1 = 1, А 0 = A;

  • для логического умножения: A & 1 = A, A & 0 = 0.

Закон противоречия:

  • A & = 0.

Невозможно, чтобы противоречащие высказывания были одновременно истинными.

Закон исключения третьего:

  • A = 1.

Из двух противоречащих высказываний об одном и том же предмете одно всегда истинно, а второе — ложно, третьего не дано.

Закон поглощения:

  • для логического сложения: А (A & B) = A;

  • для логического умножения: A & (A B) = A.

Таблица истиности Логическое умножение {конъюнкция).

A

B

C

1

1

1

1

0

0

0

1

0

0

0

0

Логическое сложение или дизъюнкция:

A

B

C

1

1

1

1

0

1

0

1

1

0

0

0

Логическое отрицание или инверсия:

А

неА

1

0

0

1

  1. Языки и системы программирования. Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом - достаточно трудоемкая и сложная задача. Для упрощения этой задачи стали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в более понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы - трансляторы. Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать. Определенные различия имеются и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт, телефонов содержат существенные различия.

Преимущества

С помощью языков низкого уровня создаются эффективные и компактные программы, поскольку разработчик получает доступ ко всем возможностям процессора.

Недостатки

  • Программист, работающий с языками низкого уровня, должен быть высокой квалификации, хорошо понимать устройство микропроцессорной системы, для которой создается программа. Так, если программа создается для компьютера, нужно знать устройство компьютера и, особенно, устройство и особенности работы его процессора.

  • результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора.

  • значительное время разработки больших и сложных программ.

Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.

  • Ассемблер - язык низкого уровня, что широко применяется до сих пор. Языки программирования высокого уровня Можно сказать более понятными человеку, чем компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные программы легко переносятся с компьютера на компьютер. В основном достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему. Разрабатывать программы на таких языках гораздо проще и ошибок допускается меньше. Значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами. К языкам программирования высокого уровня относятся:

  • Фортран

  • Кобол

  • Алгол

  • Pascal

  • Java

  • C

  • C++

  • C#

  • Objective C

  • Smalltalk

  • Delphi

Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти. А разные подвиды ассемблера применяются для программирования других устройств, где критичным является размер программы.

  1. Классификация языков программирования. I. Машино-зависимые.

  1. Машинные языки ( языки нулевого уровня)

  2. Асемблирнные языки (языки 1 уровня или языки типа 1:1)

  1. Макро-асемблирные (языки типа 1:n) II. Машино независимые 1. Процедурные языки (3 уровень) С, С++, pascal…, требуют детальной разработки алгоритма решения задачи и по существу являются языками записи алгоритмов. 2. Проблемные языки (4 уровень) Языки типа заполни бланк. Пользователь сообщает какую задачу решать и с какими данными. Как решать задачу машина знает. 3. Универсальный язык (5 уровень). PL/1, Aga,.. (сделана попытка включить все лучшее из двух этих пунктов Понятие системы программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]