
- •Составление таблицы истинности.
- •Основы алгебры логики.
- •Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия.
- •Законы логических операций. Таблицы истинности.
- •9.Понятие системы программирования.
- •10. Эволюция языков прогаммирования.
- •11. Элементы языков программирования.
- •12.Исходный, объектный и загрузочный модули.
- •13.Интегрированная среда программирования.
- •14. Методы программирования
- •15. Сущность методов программирования.
- •16. Методы программирования: структурный, модульный, объектно-ориентированный. Достоинства и недостатки методов программирования.
- •17.Общие принципы разработки программного обеспечения. Жизненный цикл программного обеспечения.
- •18. Типы приложений. Консольные приложения.
- •19. Типы приложений. Оконные Windows приложения.
- •20. Типы приложений. Web-приложения
- •21.Типы приложений. Библиотеки.
- •22.Типы приложений. Web-сервисы.
- •23.Константа — это составная часть программы; объект, имеющий значение,неизменная величина.
- •25.К простым типам данных относятся: порядковые и вещественные типы.
- •Int(X) Real, integer Real Целая часть числа
- •27.Структура программы на языке Турбо Паскаль
- •Var………..; {раздел объявления переменных}{±}
- •28.Оператор – инструкция, задающая определенные действия программы. Одним из операторов является оператор присваивания, который присваивает значение некоторого выражения некоторой переменной.
- •29.Оператор присваивания имеет следующую структуру:
- •31.Составной оператор
- •32.Синтаксис оператора if:
- •35.Строковый тип данных.
- •37.Объединение разнородных элементов (Запись)
- •39.Типы файлов Турбо Паскаль
- •41.Доступ к файлу в программе происходит с помощью переменных файлового типа. Переменную файлового типа описывают одним из трех способов:
- •42.Работа с типизированными файлами
- •43.Стандартные процедуры и функции
- •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) Языки программирования.
- •I) машинно-зависимые языки.
- •II) машинно-независимые языки
- •71)Машинно-ориентированные языки и их характеристики.
- •74) Объектно-ориентированные языки программирования. Их достоинства и недостатки.
- •75) Используемые символы.
- •76) Константы.
- •77) Идентификаторы.
- •78) Ключевые слова.
- •79) Комментарии.
- •84) Переменные перечисляемого типа.
- •85) Массивы.
- •86) Структуры.
- •87) Объявления.
- •88) Поля битов.
- •89) Переменные с изменяемой структурой.
- •90.Определение объектов и типов:
- •91.Инициализация данных:
- •Операнды и операции:
- •Преобразования при вычислении выражений:
- •Операции отрицания и дополнения:
- •Операции разадресации и адреса:
- •Операция sizeof:
- •Мультипликативные операции:
- •Аддитивные операции:
- •Операции сдвига:
- •Поразрядные операции:
- •101 Наиболее употребимы двоичная, восьмеричная, десятичная и шестнадцатеричная система исчисления.
- •107 В языке си операции с высшими приоритетами вычисляются первыми. Наивысшим приоритетом является приоритет равный 1. Приоритеты и порядок операций приведены в табл. 8.
- •108 При выполнении операций происходят неявные преобразования типов в следующих случаях:
- •109 Любое выражение, которое заканчивается точкой с запятой, является оператором.
- •1.4.2. Пустой оператор
- •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. Методы организации и хранения линейных списков
- •136. Методы организации и хранения линейных списков
- •137. Операции со списками при последовательном хранении
- •138. Операции со списками при связанном хранении
- •5)Частичное упорядочение списка
- •139. Организация двух связанных списков
- •140. Стеки и очереди
- •141. Пузырьковая сортировка
- •142. Сортировка вставкой
- •143. Сортировка посредством вывода
- •144. Слияние списков
- •145. Сортировка списков путем слияния
- •146.Последовательный поиск
- •147. Бинарный поиск
- •148. Методы вычисления адреса
- •150.Типы данных языка программирования
- •154. Типы данных
- •155. Выражения и оперпции
- •178) Поиск, удаление, замена и добавление символов в строке.
- •Int strcmp(const char *, const char *); лексикографическое сравнение строк
- •Int strncmp(const char *, const char *, size_t); лексикографическое сравнение первых n байтов строк
- •Int strcoll(const char *, const char *); лексикографическое сравнение строк с учетом локали collating order
- •180) Операции со строками
- •181) Объявление множества
- •182) Операции над множествами
- •183) Объявление файла
- •184) Файл последовательного доступа
- •185) Давайте сперва перед файлами произвольного доступа разберем режимы открытия:
- •187,188,189)Операции файла последовательного доступа. ( Открытие и закрытие и т.Д)
- •191) Объектно-ориентированное программирование
- •192) Основные принципы ооп.
- •193) История ооп
- •194)Базовые понятия ооп
- •195)Основные принципы ооп (Инкапсуляция, Наследие, Полиморфизм).
- •196) Событийно управляемое программирование
- •197) Компонентно-ориентированный подход
- •198) Классы объектов. Компоненты и их свойства.
- •199) Требования к аппаратным и программным средствам интегрированной среды разработки разработчика.
- •200)Интерфейс среды разработчика.
- •201. Чтобы использовать в проекте уже созданные ole-элементы управления, необходимо понимать, как создать проект, допускающий встраивание ocx-объектов, и как добавить в проект эти элементы.
- •202. Для добавления элементов к панели, созданную в предыдущей процедуре, перетащите элементы управления из раздела Редактор ленты на панели Панель элементов в представлении конструирования.
- •211. Виды классов:
- •215. Основными механизмами в объекто ориентированном программирование является полиморфизм, наследование и инкапсуляция.
- •220. Компиляция и запуск приложения
- •221. Создание оконных приложений в Visual Studio
- •222. У всех Windows-приложений фиксированная структура, определяемая функцией WinMain. Структура приложения, построенного из объектов классов библиотеки mfc, является еще более определенной.
- •223. При разработке программы использовались перечисленные ниже объекты и их методы.
43.Стандартные процедуры и функции
Любые дисковые файлы становятся доступными программе после связывания их с файловой переменной, объявленной в программе. Все операции в программе производятся только с помощью связанной с ним файловой переменной.
Assign(f, FileName)
связывает файловую переменную f с физическим файлом, полное имя которого задано в строке FileName. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.
После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.
Reset(f)
открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.
Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.
Rewrite(f)
открывает для записи файл, с которым связана файловая переменная f. После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются.
Close(f)
закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.
EOF(f): boolean
возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.
Rename(f, NewName)
позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.
Erase(f)
уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.
IOResult
возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.
44-//-
45. Процедуры и функции обработки текстовых файлов.
Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними.
Текстовый файл трактуется в Турбо Паскале как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) ставится специальный признак EOLN (End OfLiNe - конец строки), а в конце всего файла - признак EOF (End Of File - конец файла). Эти признаки можно протестировать одноименными логическими функциями . При формировании текстовых файлов используются следующие системные соглашения:
EOLN- последовательность кодов ASCII #13 (CR) и #10 (LF);
EOF - код #26 стандарта ASCII.
Для доступа к записям применяются процедуры READ, READLN, WRITE, WRITELN. Они отличаются возможностью обращения к ним с переменным числом фактических параметров, в качестве которых могут использоваться символы, строки и числа. Первым параметром в любой из перечисленных процедур может стоять файловая переменная. В этом случае осуществляется обращение к дисковому файлу или логическому устройству, связанному с переменной процедурой ASSIGN. Если файловая переменная не указана, происходит обращение к стандартным файлам INPUT к OUTPUT.
Процедура READ.
Обеспечивает ввод символов, строк и чисел. Формат обращения:
READ (<ф.п.>,<сп.ввода>) или READ (<сп.ввода>)
Здесь <сп.ввода> - список ввода: последовательность из одной или более переменных типа CHAR, STRING, а также любого целого или вещественного типа.
При вводе переменных типа CHAR выполняется чтение одного символа из файла и присваивание считанного значения переменной. Если перед выполнением чтения указатель файла достиг конца очередной строки, то результатом чтения будет символ CR (ASCII код #13), а если достигнут конец файла, то - символ EOF (код #26). При вводе с клавиатуры символ CR вводится при нажатии на клавишу Enter, а символ EOF - при одновременном нажатии клавиш CTRL и Z.
При вводе переменных типа STRING количество считанных процедурой и помещенных в строку символов равно максимальной длине строки, если только раньше не встретились символы CR или EOF. В этом случае сами символы CR и EOF в строку не помещаются. Если количество символов во входном потоке данных больше максимальной длины строки, «лишние» символы до конца строки отбрасываются, а новое обращение к READ возвращает пустую строку. Таким образом, процедура READ не в состоянии прочесть последовательность строк: первая строка будет прочитана нормально, а все последующие окажутся пустыми. Для ввода последовательности строк нужно использовать процедуру READLN. При вводе числовых переменных процедура READ вначале выделяет подстроку во входном потоке по следующему правилу: все ведущие пробелы, символы табуляции и маркеры конца строк EOLN пропускаются; после выделения первого значащего символа, наоборот, любой из перечисленных символов или символ EOF служат признаком конца подстроки. Выделенная таким образом подстрока затем рассматривается как символьное представление числовой константы соответствующего типа и преобразуется во внутреннее представление, а полученное значение присваивается переменной. Если в подстроке был нарушен требуемый формат представления численной константы, возникает ошибка ввода-вывода. Если при пропуске ведущих пробелов встретился символ EOF, переменная получает значение 0. Отметим, что в Турбо Паскале не предусмотрен ввод шестнадцатеричных констант.
При использовании процедуры READ применительно к стандартному файлу INPUT, т.е. при вводе с клавиатуры, символьные строки запоминаются в буфере, который передается процедуре только после нажатия на клавишу Enter. Это позволяет редактировать данные при их вводе. Для редактирования используются следующие клавиши: Backspace, Ctrl-H, перевод курсора влево - стирают символ слева от курсора;
перевод курсора вправо - восстанавливает символ за символом предыдущую строку ввода;
Ctrl-Z Enter - завершает ввод по процедуре READ; оставшиеся «лишние» символьные параметры принимают значение CHR(26), строки возвращаются пустыми, а численные переменные остаются без изменения.
Максимальная длина буфера ввода при работе с клавиатурой составляет 127 символов. Ввод с клавиатуры по процедуре READ сопровождается эхо-повтором вводимых символов на экране ПК.
Процедура READ прекрасно приспособлена к вводу чисел. При обращении к ней за вводом очередного целого или вещественного числа процедура «перескакивает» маркеры конца строк, т.е. фактически весь файл рассматривается ею как одна длинная строка, содержащая текстовое представление чисел. В сочетании с проверкой конца файла функцией EOF процедура READ позволяет организовать простой ввбд массивов данных, например, так:
const
N = 1000; {Максимальная длина ввода}
var
f : text;
m : array [1..N] of real;
i : Integer;
begin
assign(f, 'prog.dat') ;
reset(£); i := 1;
while not EOF(f) and (i <= N) do
begin
read(f ,m[i] ) ;
inc(i)
end;
close(f);
.......
end.
Процедура READLN.
Обеспечивает ввод символов, строк и чисел. Эта процедура идентична процедуре READ за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к READLN или READ начинается с первого символа новой строки. Кроме того, эту процедуру можно вызвать без параметра <cn.вводa> (см. процедуру READ), что приведет к пропуску всех символов текущей строки вплоть до EOLN.
Если процедура используется для чтения с клавиатуры, нажатие на клавишу Enter отобразится на экране как последовательность CR + LF и курсор будет помещен в начало следующей строки, в то время как в процедуре READ эхо-повтором клавиши Enter является символ CR и курсор помещается в начало текущей строки.
Процедура WRITE.
Обеспечивает вывод информации в текстовый файл или передачу ее на логическое устройство. Формат обращения:
WRITE (<ф.п.>, <сп.вывода>) или WRITE (<сп.вывода>)
Здесь <сп.вывода> - список вывода: последовательность из одного или более выражений типа CHAR, STRING, BOOLEAN, a также любого целого или вещественного типа.
Файловая переменная <ф.п.>, если она указана, должна быть предварительно описана как переменная типа TEXT и связана с именем файла или логическим устройством процедурой ASSIGN. Если файловая переменная отсутствует, подразумевается вывод в стандартный файл OUTPUT, который обычно связан с экраном ПК.
Любой элемент списка вывода может иметь форму
OutExpr [ : MinWidth [ : DecPlaces ] ]
Здесь OUTEXPR - выводимое выражение;
MINWIDTH, DECPLACES - выражения типа WORD (квадратные скобки означают возможность отсутствия заключенных в них параметров).
Подпараметр MINWIDTH, если он присутствует, указывает минимальную ширину поля, в которое будет записываться символьное представление значения OUTEXPR. Если символьное представление имеет меньшую длину, чем MINWIDTH, оно будет дополнено слева пробелами, если - большую длину, то подпараметр MINWIDTH игнорируется и выводится необходимое число символов.
Подпараметр DECPLACES задает количество десятичных знаков в дробной части вещественного числа. Он может использоваться только совместно с MINWIDTH и только по отношению к выводимому выражению одного из вещественных типов.
Если ширина поля вывода не указана, соответствующий параметр выводится вслед за предыдущим без какого-либо их разделения.
Символы и строки передаются выводному файлу без изменений, но снабжаются ведущими пробелами, если задана ширина поля вывода и эта ширина больше требуемой для вывода.
При выводе логических выражений в зависимости от их значения выводятся строки TRUE или FALSE. (Ввод логических констант процедурами READ или READLN не предусмотрен).
Вещественные числа выводятся в экспоненциальном формате, если не указан подпараметр DECPLACES, в противном случае выбирается формат представления числа с фиксированной точкой. Экспоненциальный формат представляет вещественное число в виде
_s#.##############E*####,
где:
_ пробел;
s пробел для положительного и знак «-» для отрицательного чисел;
# десятичная цифра;
Е символ десятичного основания;
* знак «+» или «-» в зависимости от знака десятичного порядка числа.
Если подпараметр MINWIDTH опущен, принимается его значение по умолчанию (23). Если MINWIDTH меньше 10, считается, что он равен 10.
Если подпараметр DECPLACES равен нулю, ни дробная часть числа, ни десятичная точка не выводятся. При отрицательном значении DECPLACES этот параметр игнорируется и число выводится в экспоненциальном формате с учетом MINWIDTH. Если значение DECPLACES больше 18, принимается значение 18. Следует учесть, что при указании подпараметра DECPLACES вещественное число всегда будет выводиться в формате с фиксированной точкой и требуемым количеством знаков в дробной части, даже если значение подпараметра MINWIDTH окажется недостаточным для размещения целой части: в этом случае значение MINWIDTH автоматически увеличивается.
При выводе на экран в случае, когда длина выводимой последовательности символов превышает ширину экрана или созданного на нем окна, «лишние» символы переносятся на следующую экранную строку. При заполнении экрана или окна его содержимое сдвигается вверх на одну строку.
Процедура WRITELN. Эта процедура полностью идентична процедуре WRITE за исключением того, что выводимая строка символов завершается кодами CR и LF. При вызове WRITELN можно опускать параметр <сп.вывода>: в этом случае в файл передается маркер EOLN, что при выводе на экран приведет к переводу курсор» в начало следующей строки.
Логическая функция EOLN. Возвращает TRUE, если во входном текстовом файле достигнут маркер конца строки. Формат обращения:
EOLN<ф.п.>
Если параметр <ф.п.> опущен, функция проверяет стандартный файл INPUT.
Существует некоторое отличие в работе функций EOLN и EOF с дисковыми файлами и логическими устройствами. Дело в том, что для логического устройства невозможно предвидеть, каким будет результат чтения очередного символа. Поэтому при работе с логическим устройством функция EOLN возвращает TRUE, если последним считанным с устройства символом был EOLN или EOF, в то время как при чтении с диска TRUE возвращается в случае, если следующим считываемым символом будет EOLN или EOF. Аналогичное различие наблюдается и в функции EOF: для логического устройства TRUE возвращается в случае, если последним символом был EOF, а при чтении с диска - если следующим считываемым символом будет EOF. Иными словами, функции тестируют соответствующие признаки для логического устройства после очередного чтения, а для файла - перед чтением.
Логическая функция SEEKEOLN.
Пропускает все пробелы и знаки табуляции до маркера конца строки EOLN или до первого значащего символа и возвращает TRUE, если маркер обнаружен. Формат обращения:
SEEKEOLN (<ф.п.>)
Если параметр <ф.п.> опущен, функция проверяет стандартный файл INPUT.
Логическая функция SEEKEOF.
Пропускает все пробелы, знаки табуляции и маркеры конца строки EOLN до маркера конца файла или до первого значащего символа и возвращает TRUE, если маркер обнаружен. Формат обращения:
SEEKEOF (<ф.п.>)
Если параметр <ф.п.> опущен, функция проверяет стандартный файл INPUT.
В следующем примере, иллюстрирующем работу с текстовым файлом, подсчитывается общее количество символов в файле и результат делится на 40000 - таким способом можно оценить объем рукописи в так называемых учетно-издательских листах:
var
f : text;
s: String;
const
Sum: LongInt = 0; {Здесь будет количество символов}
begin
Write('Имя файла: ');{Запрашиваем...}
Readln(s); {и вводим имя файла.}
assign(f,s);
Reset (f); {Открываем файл}
while not EOF(f) do {Подсчитываем...}
begin {количество. . .}
ReadLn(f,s); {символов...}
inc(Sum, Length(s)) {в файле}
end ;
Close(f); {Закрываем файл}
WriteLn('Объем = ', Sum/40000 : 6:2,' уч.изд.л.')
end.