СИМВОЛЬНЫЕ СТРОКИ И ФУНКЦИИ НАД СТРОКАМИ.


Всякий раз, когда компилятор встречается с чем-то заключённым в кавычки, он определяет это как строковую константу. Символы+’\0′ запи-сыватся в последовательные ячейки памяти. Если необходимо включить кавычки в символьную строку, нужно поставить впереди \».

Преобразование символьных строк


Функции определены в заголовочном файле stdlib.h. 1. int atoi() — строку в целое. double atof() — строку в число с плавающей точкой. void main(void){ char num[10]; int val; puts(«Введите число»); gets(num);

Структуры


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

Передача структуры в функцию


Саму структуру нельзя использовать в качестве аргумента функции. 1. Можно передавать элемент структуры в качестве аргумента. Тогда функция не знает, что это структура. struct funds{ char* bank; float fonds; char* name; float savef;

Перечисления. Объединения.


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

Битовые поля


В некоторыя задачах для экономии памяти необходимо упаковывать несколько объектов в одно машинное слово. В С для этого определяются поля и доступ к ним. Поле – это последовательность битов внутри одного целого значения. struct {unsigned a:8; unsigned b:6; unsigned c:2;}d;  

ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ.


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

Операция new и delete в С++


В С++ появились операции выделения динамической памяти и удаления (освобождения) динамической памяти. Операции new и delete выполняют динамическое распределение и отмену распределения памяти, аналогично, но с более высоким приоритетом, нежели стандартные библиотечные функции семейства malloc и free.

АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ


У функции main() могут быть свои формальные аргументы. В них возникает необходимость, если нужно передать какие-либо значения в программу из командной строки. int main(int argc, char *argv[]) {}

ФАЙЛы в СИ


Язык Си «рассматривает» файл как структуру. В stadio.h содержится определение структуры файла. Определен шаблон и директива препроцессора #defile FILE struct iobuf FILE краткое наименование шаблона файла. Некоторые системы используют директиву typedef для установления этого соответствия.

ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ


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

Бинарные деревья


В бинарном дереве каждый узел содержит 2 указателя. Начальная точка бинарного дерева называется корневым узлом. Корневой узел Е указывает на В и Н. Узел В является корневым узлом для левого поддерева Е, узел Н – для правого поддерева Е. За исключением самого нижнего яруса каждый узел бинарного дерева имеет одно или два поддерева.

РАЗМЕЩЕНИЕ ДАННЫХ В ПАМЯТИ


Данные могут храниться в регистрах процессора, в области статической памяти, в области организованной как стек, в динамической памяти. Статическая память — данные размещаются в ней после компиляции и хранятся до конца. В стеке — временно. Размещением данных управляет программист. Адрес любого участка памяти состоит из смещения и сегмента. Это 16-ти разрядные числа.

МОДЕЛИ ПАМЯТИ


C++ поддерживает 6 моделей памяти: tiny, small, medium, compact, large, huge. Для каждой модели различается количество сегментов отведенных под код программы и данных. Рассмотрим эти модели.

СОДЕРЖАНИЕ


1. ОБЗОР ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2 1.1 Pascal 2 1.2 С. 2 2 ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ 3

Технология программирования и информатизация общества


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

Программа как формализованное описание процесса обработки данных. Программное средство.


Целью программирования является описание процессов обработки данных (в дальнейшем ? просто процессов). Дадим ряд определений: Данные (data) ? это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе.

Понятие правильной и надежной программы


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

Технология программирования как технология разработки надежных ПС


В соответствии с обычным значением слова «технология» под технологией программирования (programming technology) будем понимать совокупность производственных процессов, приводящую к созданию требуемого ПС, а также описание этой совокупности процессов.

Специфика разработки программных средств


Разработка программных средств имеет ряд специфических особенностей: • Прежде всего, следует отметить некоторое противостояние: неформальный характер требований к ПС (постановки задачи), но формализованный основной объект разработки ? программы ПС.

Понятие качества программного средства


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

Обеспечение надежности


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

Интеллектуальные возможности человека


Дейкстра выделяет три интеллектуальные возможности человека, используемые при разработке ПС: • способность к перебору, • способность к абстракции, • способность к математической индукции.

Неправильный перевод как причина ошибок в ПС


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

Основные пути борьбы с ошибками


Учитывая рассмотренные особенности действий человека при переводе можно указать следующие пути борьбы с ошибками: • сужение пространства перебора (упрощение создаваемых систем),

Назначение внешнего описания программного средства


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

Определение требований к ПС


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

Спецификация качества ПС


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

Функциональная спецификация ПС


С учетом назначения функциональной спецификации ПС и тяжелых последствий неточностей и ошибок в этом документе, функциональная спецификация должна быть математически точной. Достаточно часто функциональная спецификация формулируется на естественном языке. Тем не менее, использование математических методов и формализованных языков при разработке функциональной спецификации весьма желательно. Функциональная спецификация состоит из трех частей: • описания внешней информационной среды, Читать далее