K – подключение к файлу bblsort.cpp стандартного заголовочного файлаstdafx.h.

L – описание глобального массива строк Line, спецификатор extern указывает на то, что определение массива сделано в другом месте (в данном случае в файлеmain.cpp).

Mопределение функции bblsort(). Функция вызывает функции сравнения – lexcmp() и обмена – swap() строк. Функция не описывается как static, потому что она вызывается функцией main(), которая определена в другом файле.

Nопределение функции lexcmp(). Возвращаются значения Истина (1) или Ложь (0), кодируемые целыми значениями. Поэтому функция определена как имеющая тип int. Глобальная переменная Revflg описана как внешняя, так как она определена в другом файле. Прототип функция стандартной strcmp() содержится в заголовочном файле string.h.

Oопределение функции swap(). Функция определена как имеющая тип void. Прототип стандартной функция strcpy() содержится в заголовочном файле string.h. Локальная переменная стокового типа temp предназначена для временного хранения строки при выполнении обмена.

 

Результат выполнения программы в средеMicrosoft Visual С++ 2005в режиме консольных приложений:

При аргументе ”+” При аргументе ”-”:
qwertyui wertyuio ertyuio rtyuiop rtyu tyui asdfghjk sdfghjkl dfgh fghj ---------------------- asdfghjk dfgh ertyuio fghj qwertyui rtyu rtyuiop sdfghjkl tyui wertyuio qwertyui wertyuio ertyuio rtyuiop rtyu tyui asdfghjk sdfghjkl dfgh fghj ---------------------- wertyuio tyui sdfghjkl rtyuiop rtyu qwertyui fghj ertyuio dfgh asdfghjk

 

 

В результате изучения материала лекции необходимо знать

· содержание понятий:

o программирование

o язык программирования

o компоненты языка программирования

o программа

o алгоритм

o данные

o структура данных

o структурная схема компьютерной программы

o жизненный цикл программного средства

o технология подготовки и решения задачи на компьютере

o заголовок функции

o тип функции

o тело функции

o прототип функции

o объявление функции

o сигнатура функции

o определение функции

o блок, составной оператор

o вызов функции, запоминание результатов вызова

o представление программы

o представление данных

o процессы трансляции программы (интерпретация, компиляция)

o классическая схема подготовки исполняемой программы

o препроцессор

o объектный модуль

o компоновщик, загрузчик

o технологический цикл обработки программы

o лексема

o синтаксис языка программирования

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

o лексический анализ программы

o синтаксический анализ программы

o семантический анализ программы

· Структуру текстового файла программы

· Структуру программы из двух файлов

 

 

Дополнительно* (на оценку выше 5 баллов):

· особенности внутреннего представления программы и ее исполнения

o организацию памяти компьютера

o сегментацию программы

o процесс исполнения программного кода

· структуру программы сортировки строк

 


[1] Язык программирования C++ был разработан Бьерном Страуструпом, сотрудником AT&T Bell Laboratories. Непосредственным предшественником C++ является С with Classes, созданный тем же автором в 1980 году. Язык С with Classes, в свою очередь, был создан под сильным влиянием С и Simula. В 1998 г. вышел международный стандарт языка ISO/IEC 14882. С 2003г.действует вторая редакция этого стандарта ISO/IEC/ANSI/ITI. Стандарты языков программирования разрабатываются для того, чтобы компиляция одной и той же программы различными компиляторами давала одинаковый результат. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).

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

 

[2] «программирование с использованием типов в качестве параметров» ( Б.Страуструп)

[3] Под представлением данных понимается их описание на языке программирования в виде констант и переменных разной структуры.

1 #– знак номера (произносим «sharp»); #include произносим sharp инклуд;

[5] Оператор return явно может и не использоваться (стандарт С++ предусматривает, что функция main()по умолчанию возвращает 0).

[6]Префикс std:: – это указание на обращение к имени из этого стандартного пространства имен. Имена, используемые в стандартной библиотеке С++ (такие, как cout), объявлены в пространстве имен std и невидимы в нашей программе до тех пор, пока мы явно не сделаем их видимыми. Обозначения заголовочных файлов программ до введения стандарта языка имели расширение “.h”, а имена объектов библиотек и программы помещались в единственное глобальное пространство имен и никакого префикса при обращении к ним не требовалось. Стандарт языка С++ поместил имена из стандартной библиотеки классов и функций в пространство имен std,отделив их тем самым от глобального пространства имен.

[7]манипулятор std::endl равносиленesc-последовательности и означает «конец строки», т.е перевод курсора в начало новой строки консольного окна экрана; endl – произносим «энд эл».

[8] Для упрощения обращения к библиотечным именам в современных компиляторах используется директива using namespace std;, позволяющая обращаться к именам без префиксаstd::. Для старых компиляторов вторая и третья строки этой программы заменяются на одну строку #include <iostream.h> . Разработчики современных компиляторов встраивают в них возможность применения в программах старых заголовков (с расширением .h).

[9]* Для углубленного изучения (на оценку выше 5 баллов)

[10]*Для углубленного изучения (на оценку выше 5 баллов)