Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Базовый курс. Ч.3. Основы алгоритмизации и про- граммирования в среде Visual C++ 2005.pdf
Скачиваний:
69
Добавлен:
05.02.2023
Размер:
3.81 Mб
Скачать

31

using namespace std; int main()

{ char str[256]; float a,b,p,s;

AnsiToOem("Введи стороны прямоугольника ", str); cout<< str <<"\n";

cin>>a>>b; p=2*(a+b); s=a*b;

AnsiToOem("Периметр=", str); cout<< str<<p;

AnsiToOem(" Площадь=", str); cout<<str<<s; cout<<"\n";

return 0;

}

Как видим, сначала каждое русское сообщение преобразуется функцией AnsiToOem и помещается в строку str (она описана как char str[256], т.е. может содержать до 256 символов). Затем уже эта строка str и выводится. Обратите внимание, что подключен заголовочный файл windows.h.

После запуска на исполнение получим результат, приведенный на рис. 8.9.

Рис. 8.9. Результат работы примера 3.1 (с выводом сообщений по-русски)

3.2. Программирование в стандартизованной среде CLR

Помимо среды Win32 в Visual C++ 2005 можно использовать среду CLR. Она является стандартизованной средой для выполнения программ, написанных на широком диапазоне высокоуровневых языков. Не вдаваясь в подробности, просто отметим, что таким образом можно создавать приложения более высокого уровня. Рассмотрим на примере.

Создадим новый проект командойFile/New/Project. Далее в возникшем окне диалога выбираем на левой панели CLR , а на пра-

32

вой – CLR Console Application (для создания консольного приложения), в строке Name введем имя проекта (при этом должна быть установлена «птичка» Create directory for solution создать каталог для проекта) и нажимаем ОК.

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

та. В правой части будетзаготовка текста исходного файла(см.

рис. 8.10) и здесь производим необходимые изменения и дополнения.

У функции main() появились в скобках аргументы. На них пока не обращаем внимание (но и не удаляем их!). Обратите внимание, что команда вывода здесь выглядит несколько необычно:

Console::WriteLine(L»Hello world»);

Здесь в кавычках размещается собственно выводимое сообщение. Ему обязательно предшествует буква L.

Доработаем эту заготовку исходного текста так, чтобы выполнить тот же пример 3.1. Пока не будем производить ввод исходных данных (ввод в среде CLR осуществляется несколько сложнее), а просто зададим исходные данные в тексте программы путем присваивания.

Для вывода чисел нужно указатьформат вывода внутри сообщения, заключая этот формат в фигурные скобки. Причем, если выводятся несколько чисел в одной строке, то их нумеруют 0, 1 и т.д. (см. листинг ниже). Формат F2 означает, что число вещественное (float) и будет представлено две цифры после запятой. Если потребуется выводить целое число, то указываем формат D. Формат E задают, когда вещественные числа нужно вывести в так называемой экспоненциальной форме: 6*1023 есть 6E23.

// prim1-1_CLR.cpp : main project file. #include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args) {float a,b, s,p;

a=3; b=4;

Console::WriteLine (L"Заданы стороны a={0:F2} и b={1:F2}",a,b); p=2*(a+b); s=a*b; Console::WriteLine(L"Периметр={0:F2}",p); Console::WriteLine(L"Площадь= {0:F2}",s);

return 0;

}

33

Рис. 8.10. Окно создания исходного файла в среде CLR

После компиляции и компоновки(клавишей F7) и запуска на исполнение (клавишами Ctrl-F5) получим результат, представленный на рис. 8.11.

Обратите внимание, что при этом нет никаких проблем с выводом русского текста.

Рис. 8.11. Результат работы консольного приложения в CLR