Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Летняя практика КОНСПЕКТ ПО ТМиЯП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.35 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ЮЖНОГО ФЕДЕРАЛЬНОГО УНИВЕРСИТЕТА В г. ТАГАНРОГЕ

Факультет информационной безопасности

«Конспект лекций по предмету ТМиЯП 1 курс»

ст. гр. И - 81

Выполнил ______________________ Мишинова А. В.

(подпись)

Проверил ______________________ Беляков с.Л.

(подпись)

Таганрог – 2012г.

Тема №1 «Тождество, качество программ»

Всякая программа обладает набором параметров качества. Понятие качества в значительной степени зависит от прикладной области, кроме того одни и те же параметры качества могут иметь различную значимость одной и той же прикладной области.

Наиболее часто употребляемыми являются:

  1. Правильность

Правильной считается та программа, которая соответствует исходному техническому заданию (спецификации) на разработку.

  1. Надежность

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

  1. Производительность

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

  1. Ресурсы

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

  1. Защита

Программа считается защищенной, если она способна противостоять внешним разрушающим воздействиям.

Кроме перечисленных используются другие показатели такие, как: удобство диалогового интерфейса, перестраиваемость (конфигурирование), возможность расширения функций и т. д. Эти показатели чаще всего играют второстепенную роль.

Оценка качества программ выполняется проведением тестирования. Результат тестирования может завершаться выдачей сертификата.

Тема №2 «Основные этапы технологии разработки программ»

Первым этапом является постановка задачи.

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

Следующим этапом является моделирование.

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

Одним из простейших средств моделирования являются блок-схемы.

Следующим этапом является кодирование и отладка.

Состоит в написании программы (текста программы) и отладки ее в системе программирования.

Система программирования – это программный комплекс, автоматизирующий все процессы создания программы.

Следующим этапом является тестирование.

Этот этап нацелен на оценку качества продукции.

Следующий этап это опытная эксплуатация (бета-версия).

Тема №3 «Исполнение программ вычислительными устройствами»

Всякая программа выполняется процессорами.

Процессоры – это цифровые устройства, которые реализуют принцип программного управления.

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

Принцип программного управления (фон Неймана).

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

Различие в видах не определяется способом кодирования, а зависит от интерпретации.

Интерпретация команд обеспечивается устройством управления. Конечный результат обработки информации определяется только командами программ.

Данные представляются и обрабатываются соответственно логике, которая принята для исполнения команд.

Операционное устройство выполняет действия над операндами команд. Система операций операционных устройств в современных компьютерах чрезвычайно примитивна.

Всякая команда процессора состоит из полей.

Поле – это набор битов, который имеет строго определенные позиции размещения. Практически всякая команда имеет поле кода операции. Код в этом поле содержит номер действия, которое должно быть выполнено над операндами.

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

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

Исполнение программ.

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

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

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

Компиляция исходного кода – это преобразование текста в последовательность машинных команд.

Системы программирования.

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

Чтобы получить исполняющую программу, используют системы программирования.

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

Одна из основных функций системы программирования – это создание и ведение проекта программ.

Проект программ – это набор служебных файлов, включающих в себя, в том числе, тексты с написанным программистом программным кодом.

Лекция №3 «Структура программ на С++. Отладка.» Программа на языке С++ включает в себя программный код и директивы препроцессора.

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

Препроцессор выполняет директивы начинающиеся с символа «#». Каждая директива имеет наименование и параметры.

Директива #include в качестве параметра содержит имя файла, текст из которого будет подставляться вместо директивы.

Программный код состоит из функций. Функция включает в себя следующее:

  1. Тип результата (возвращаемого значения)

  2. Им функции (произвольная комбинация символов, начинающаяся с буквы; есть ряд ограничений на использование специальных символов: нельзя использовать пробел, запятую, точку с запятой)

  3. Список параметров (число параметров функции не ограничивается; список – это последовательность пар типов и имен параметров; пара выделяется запятыми)

  4. Тело функции (программный блок, т.е. любая последовательность операторов языка или последовательность , заключенная в скобки)

В тексте программы может быть произвольное число функций. Однако одна из них должна быть стартовой, т.е. с нее система начнет выполнение программного кода.

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

Описание элементов – это указание имени и типа.

Описание может размещаться в любом месте до первого использования этой переменной.

В теле программы размещаются вызовы библиотечных функций.

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

Вызовы всякой функции включают в себя фактические параметры. В тексте функции используются формальные параметры, с помощью которых обрабатываются любые значения переданных функцией.

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

Зоны действия переменных

Всякая переменная программы возникает в момент выделения памяти для размещения ее значения. Переменная «исчезает», когда выделенная память возвращается в разряд свободных ресурсов памяти.

Интервал времени между этими событиями называют «временем жизни переменных». А участок программного кода, где используется переменная – зоной действия.

Зона действия переменных определяется:

  1. Границами программного блока;

  1. Переменные локализованы телом функции;

В языке существует возможность сохранять значения переменных после завершения функций. Это обеспечивается если переменная описана как статическая.

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

Лекция №4 «Простые (встроенные) типы данных С ++»

Язык Си относится к типизированным языкам программирования. Всякая переменная программы обязательно должна иметь тип. Типизированные языки по сравнению с не типизированными дают более надежные программы.

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

Тип данных – это разновидность данных отличающихся специфической структурой и набором допустимых операций.

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

Структура всякого типа, относящегося к простым, характеризуется определенным количеством байт, которое занимает в памяти соответствующее место. Для некоторых типов количество байт, в стандартных языках, фиксируется.

Например, тип char занимает 1 байт.

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

Символьный тип char.

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

Таблицы – это стандарты копирования.

Тип данных, отображающий числа.

Если числовой тип имеет разрядность n, то количество кодовых комбинаций определяется как 2n. Если тип числа целое, то кодовые комбинации рассматриваются напрямую, как целые числа. Если тип отображает числа с плавающей точкой, то часть разрядных рассматривается как мантисса, а часть разрядных как порядок.

Поэтому те же кодовые комбинации интерпретируются по-другому. В общем типы с плавающей точкой значительно расширяют диапазон, но не увеличивает количество различных чисел. Иными словами некоторые значения чисел не могут быть закодированы в принципе.

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

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

При манипулировании числами встречаются ситуации, когда возникает переполнение разрядной сетки.

Выполняющая система у С ++ не считает переполнение аварийной ситуацией. Результатом является число, полученное отбрасыванием младших 32-х разрядных. Контроль за переполнение возлагается на программиста.

Переполнение для чисел с плавающей точкой так же не фиксируется как аварийная ситуация. В качестве результата формируется кодовая терминация, которая не рассматривается как число.

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

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