Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование в среде Visual C++ 6. Учебное пособие
.pdf
второго из <списка выражений> передаётся второму формальному аргументу и т. д. Количество выражений в <спи-
ске выражений> должно точно соответствовать количеству
формальных параметров. Если в <списке выражений> результатом является символьная строка, тосоответствующему формальному аргументу передается адрес этой строки.
При вызове функции, если <список выражений> не пред-
усмотрен, то обе круглые скобки должны присутствовать.
Наличие скобок означает, что это непросто идентификатор,
апризнак вызова функции.
. Составить таблицу перехода от температурной
шкалы поЦельсию –50…+100
о
С кшкале поФаренгейту, ши-
роко распространённой встранах нового света.
Main ()
{
double t, TC [160], TF [160];
int i;
t= –50.0;
for (i=0; i<151; i++)
{
TC [i] =t;
TF [i] =compcf (t);
t+=1.0;
}
}
double compcf (double tc)
{
double T;
T= tc+273.15;
return (T*1.8–459.67);
}
— 41 —

В этом примере TC — значения температуры по шкале
Цельсия от –50
о
С до +100оС с шагом 1оС, а TF — соответственно температура пошкале Фаренгейта. Перерасчёт температуры производится функцией compcf сформальным параметром tc. При каждом вызове этой функции компилятор
предусматривает, что параметр tc принимает значение текущей температуры t пошкале Цельсия.
Теперь приведём вид программы для того же перерасчёта шкалы температуры, ногде функция compcf неиспользует
свои формальные параметры иневозвращает вычисленные
значения.
double t, T;
main ()
{
double TC [160], TF [160];
int i;
t= –50.0;
for (i=0; i<151; i++)
{
TC [i] =t;
compcf ();
TF [i] =T;
t+=1.0;
}
}
void compcf ()
{
T= t+273.15;
T= T*1.8–459.67;
}
— 42 —

В этом примере функция использует переменные вызывающей программы main. Тип функции принимается как void,
формальные ифактические параметры отсутствуют, нокруглые скобки остаются.
Обе программы идентичны посвоим возможностям, авыбор типа вызова функции зависят от вкуса программиста
иконкретной разрабатываемой программы.
6.3. Библиотечные функции
В языке СИ разработана обширная библиотека стандартных функций, избавляющих программиста от необходимости их составления при разработке какой-либо сложной программы. Достаточно только включить впрограмму вызов той
или иной стандартной функции. Кчислу стандартных библиотечных функций относятся:
- математические функции,
- форматные преобразования данных,
- операции над файлами,
- операции ввода-вывода,
- функции работы современем,
- управление процессами,
- другие функции.
Список различных библиотечных функций настолько широк, что вданной методической разработке нет места хотябы
только для простого перечня их. Достаточно полно эти функции описаны вкниге [1].
Каждая группа функций описана и определена в отдельном файле, поэтому вначале программы необходимо указать
компилятору этот файл путем специальной директивы присоединения. Так, при использовании математических функций эта директива имеет вид:
— 43 —

#include <nath.h>.
В справочнике библиотечных функций для каждой функции указано наименование присоединяемого файла, типы
формальных переменных итип возвращаемого вычисленного значения.
6.4. Рекурсивные вызовы
При программировании возможны случаи, когда вызываемая функция может вызывать туже функцию либо непосредственно, либо через вызываемые другие функции. Компилятор наэтот счёт неимеет никаких ограничений относительно
числа вложений одной итойже функции всаму себя. Каждый
раз, как только компилятор встречает вызываемую функцию,
он отводит новый отрезок оперативной памяти для формальных параметров и внутренних идентификаторов, ивсе вызовы проходят без каких-либо эксцессов. Необходимо лишь
самому программисту быть более внимательным при управлении идентификаторами, ведь использованные внешние
идентификаторы могут изменяться при каждом рекурсивном
вызове. Количество рекурсивных вызовов может быть ограничено физическими возможностями используемого компилятора.
— 44 —

7. ++
Язык СИ вначале развивался как язык процедурно ориентированный, где воснову программирования была положена разработка алгоритмов для решения тех или иных задач.
Нов этом языке были заложены возможности для дальнейшего его развития как языка объектно-ориентированного,
где воснову положена организация данных имодульное программирование [2].
Так, в языке СИ был введён тип переменных struct, который под одним именем объединяет несколько разнотипных
переменных. Если теперь в эту структуру ввести возможность выполнения различных операций над переменными структурами, тоесть ввести операторы ифункции вэту
структуру, получим новый объект, который назвали классом
(class). Такой язык СИ вначале назвали как язык СИ -
, затем этот язык стали обозначать как С++. Объявлен-
ные переменные в классе получили название член-данные,
афункции— член-функции. Этот новый объектно-ориентированный язык характеризуется тремя основными свойствами: инкапсуляция (сокрытие информации), наследование,
полиморфизм.
Инкапсуляция— определение пользователем новых типов
данных. Каждый такой тип содержит только определённый набор значений иопераций иобразует так называемый абстрактный тип данных. При этом никакие другие функции, кроме набора операций, недолжны иметь доступа кзначениям типа.
— 45 —

Наследование— это механизм, который строит иерархию
типов. Предполагается, что новый класс образуется избазового (родительского) класса ивсе свойства базового класса
перетекают вновый класс. Затем кновому классу добавляются новые свойства.
Полиморфизм означает, что одним именем функции можно обозначать общее действие, причём каждый тип данных
выбирает пригодный для него способ обработки.
Программирование наобъектно-ориентированном языке
начинается несчистого листа, ас анализа, какие ранее разработанные программы можно использовать путём введения
новых классов, тоесть какие классы икакие атрибуты можно
унаследовать.
Таким образом, программа наязыке С++ состоит изнабора классов, вэтот набор можно добавлять новые классы или
удалять ненужные. Каждый класс состоит изнабора членовданных ичленов-функций. Влюбой класс можно добавлять
новые члены или удалять ненужные. Для того чтобы членыданные были бы доступны другим классам, перед списком
идентификаторов членов-данных необходимо указать тип
класса памяти public, атеидентификаторы, которые должны
быть недоступны другим классам, используют класс памяти
protected.
В связи споявлением операций склассами, кпункту 1.4
добавлены следующие ключевые слова, которые немогут использоваться в качестве идентификаторов. Это следующие
слова:
class delete friend inline new
operator overload private protected public
template this virtual
— 46 —

В языке С++ нет строгого определения места описания
переменных, любую переменную можно описать влюбом месте программы, лишьбы она былабы описана иопределена
допервой встречи компилятора сэтой переменной. Однако
неследует злоупотреблять этой свободой: сложнее становится управлять идентификаторами. Удобнее, когда идентификаторы описаны вкаком-то одном месте.
В языке С++ введён новый тип переменных, это тип String
(или класс String). Это строка символов неопределённой
длины, Переменная этого типа занимает 256 байт памяти компьютера. Спеременными этого типа можно производить многие операции: сравнение, слияние и многие другие. Введена
новая операция:— >— выбор члена-данных или члена-функции взаданном классе. Введена также операция ~— операция
деструкции (очистка памяти под заданные идентификаторы).
Восновном все операторы иоперации вязыке С++ совпадают
соператорами иоперациями Языка СИ.
— 47 —

8. VISUAL C++ 6
Дальнейшим развитием языка С++ является разработка
мощнейшего инструмента составления самых разных иразличной сложности программ Visual C++ [3]. Во-первых,
полностью используются достоинства исходного языка С++,
во-вторых, используются практически все средства системных программ типа Windovs, включая средства использования
экрана монитора, в-третьих, имеются широкие возможности
построения интерфейса рабочих программ и оптимальные
возможности отображения на экране монитора результатов работы разрабатываемых программ, в-четвёртых, можно проводить пробное компилирование ипробные расчёты
ещё незавершённых разработок рабочих программ, облегчая
проблемы поиска иустранения различного рода ошибок при
разработке программного продукта. Остановимся на широко распространённой 6-й версии Visual C++, пригодной для
использования вперсональных ЭВМ с 32-хразрядным процессором. Эта версия позволяет составлять приложения (рабочие программы) любой сложности. Она имеет достаточно
дружественный интерфейс и позволяет достаточно просто
составлять программный продукт.
8.1. Создание иредактирование первого приложения
Для создания проекта необходимо запустить программу Visual C++6, раскрыть меню Fail ивыбрать пункт New.
На экране монитора появится окно New, как на рис. 8.1.
— 48 —

Справа вокне Project name указать имя проекта латинскими буквами, если исходный язык Visual C++ английский.
Вокне Location указать путь доступа кпапке сэтим новым
проектом. Пусть имя проекта будет Proba, расположенная
впапке Visual.
Слева из списка типов приложений меню Project выбрать пункт MFC AppWizard (.exe) и воздействовать ле-
вой кнопкой манипулятора (мыши) накнопку . Сэтого
момента начинается создание нового проекта за6 этапов.
Накаждом этапе наэкране монитора появляется своё окно
для указания необходимых действий.
Вначале появляется окно как нарис.8.2. Если приложение будет работать с одним документом, левой кнопкой
манипулятора поставить точку вкнопке Single document.
Если проект будет работать смногими документами, нужно
поставить точку вкнопке Multiple documents. Состальными предложениями можно согласиться иактивизировать
кнопку Next. Если выбрана работа с одним документом,
согласиться спредложениями других появляющихся окон,
наэкране монитора появится окно, как нарис.8.3.
Рис.8.1. Окно для создания нового проекта
— 49 —

Рис.8.2. Первый этап создания нового приложения
Остальные этапы предназначены для более продвину-
тых программистов, поэтому можно вместо кнопки Next
сразу же активизировать кнопку Finich, а в следующем
окне активизировать кнопку Ok. Mастер MFC AppWizart
создаст приложение с выбранным Вами ранее именем.
Наэкране монитора появится окно, как нарис.8.3
В этом окне расположено меню мастера MFC AppWizart,
панели инструментов и окно Workspace (пространство
имён) сименем проекта. Если вовкладке Class View раскрыть имя проекта, активизировав кнопку +, топоявляет-
ся основной список образованных классов (как нарисунке 8.4), которые ждут своего заполнения программистом.
Вовкладке Resours появляется список ресурсов для создания нужного интерфейса приложения.
Часть классов, не требующих вмешательства программиста, скрыта и всписке Class View не показана. Вокне
Workspace приведено 5 имён классов, во многих присутствует имя приложения, как нарис.8.4.
— Класс CAboutDig— класс диалога.
— 50 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
