Смекни!
smekni.com

C++ Builder. Введение в структурное программирование (стр. 2 из 2)

Теперь компилятор сможет найти класс iostream и поймет, что нужно делать, когда ему встретится оператор cout. Теперь, когда вы имеете некоторое представление о классе iostream, мы можем написать программу Hello World как консольное приложение. Отредактируйте текст, чтобы он выглядел следующим образом:

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>// добавьтеэтустроку

//———————————————

int main(int argc, char** argv)

{ cout « "Hello, World!";// добавьте эту строку

return 0;}

Щелкните на кнопке Run оперативной панели. Программа будет откомпилирована и запущена. В момент запуска вы увидите окно DOS и слова Hello World!, которыечерез долю секунды исчезнут. Чтобы это не произошло к программе нужно добавить еще несколько строк.Чтобы предотвратить закрытие консольного окна используем функцию getch(), предназначенную для ввода символа с клавиатуры.Вновь отредактируйте программу:

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>

#include <conio.h>// добавьтеэтустроку

//———————————————

int main(int argc, char** argv)

{cout « "Hello, World!" « endl;

cout « endl « "Press any key to continue…" ; // добавьтеэтустроку

getch();// добавьте эту строку

return 0;}

На этот раз после запуска программы консольное окно останется открытым. Для завершения программы и закрытия окна нажмите любую клавишу. Модификатор endl заносит в выходной поток символ конца строки.

Обзор языка С++

Цель работы: познакомиться с основными типами данных языка программирования С++, научиться составлять простые вычислительные программы.

5. Краткие теоретические сведения

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

С++ позволяет в полном объеме использовать возможности объектно-ориентированного программирования (ООП), позволяя вам создавать объекты, которые можно использовать не только в текущей, но и в будущих программах.

! Объект (object), подобно компонентам, представляет собой участок двоичного кода, выполняющий определенную задачу. (Компоненты являются объектами, но не все объекты — компоненты.)

Объект раскрывает пользователю (программисту, использующему этот объект) только ту часть себя, которая необходима для работы с ним. Все внутренние механизмы, о которых пользователю не нужно знать, скрыты от взгляда. Все это входит в концепцию объектно-ориентированного программирования. Программы C++Builder являются объектно-ориентированными по причине интенсивного использования объектов. После того, как объект (ваш собственный или встроенный в C++Builder) создан, он может использоваться в любой программе C++Builder. Объект также может быть расширен путем наследования для создания нового объекта с дополнительными свойствами. Самым ценным является то, что объекты скрывают свои внутренние детали и позволяют программисту сконцентрироваться на достижении максимальной эффективности их использования.

!Переменная- это имя, присвоенное некоторому участку памяти.

После объявления переменной вы можете использовать ее для операций с данными в памяти.

Имена переменных могут состоять из букв верхнего и нижнего регистров, цифр и знака подчеркивания (_), но не могут содержать пробелы или другие специальные символы. Имя переменной должно начинаться с буквы или знака подчеркивания. Максимально допустимая длина имени переменной 31 символ.

Типы данных С++

! В С++ тип данных (data type) определяет способ хранения информации в памяти.

В таблице 1.1 приведены базовые типы данных С++, их размеры и диапазоны допустимых значений.

Таблица 1.1.

Тип данных Размер в байтах Диапазон допустимых значений
char 1 от -128 до 127
unsigned char 1 от 0 до 255
short 2 от -32 768 до 32 767
unsigned short 2 от 0 до 65 535
long 4 от -2 147 483 648 до 2 147 483 647
unsigned long 4 от 0 до 4 294 967 295
int 4 совпадает с long
unsigned int 4 совпадает с unsigned long
float 4 от 1.2Е-38 до 3.4Е38
double 8 от 2.2Е-308 до 1.8Е308
bool 1 true или false

С++ автоматически выполняет преобразования между различными типами данных, когда это возможно.

Пример 1.

// явление "заворачивания"

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>

#include <conio.h>

//----------------------------

#pragma argsused

int main(int argc, char** argv)

{int x;

х = 2147483647;

cout << "x = " << x<<endl;

x++;

cout << "x = " << x<<endl;

getch();

return 0;

}

Операторы С++

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

В таблице 1.2 приведены обычно используемые операторы С++

Таблица 1.2.

Оператор Описание Пример
Арифметические операторы
+ Сложение Х = Х + Z;
- Вычитание Х = у - 2;
* Умножение х = у * х;
/ Деление х = у / z;
% Остаток от деления целых чисел х=х%у;
Операторы присваивания
= Присваивание х = 10;
+= Сложение с присваиванием х += 10; (то же, что и х = х + 10;)
-= Вычитание с присваиванием х -= 10;
*= Умножение с присваиванием х *= 10;
/= Деление с присваиванием х /= 10;
&= Поразрядное И с присваиванием х &= 10;
|= Поразрядное ИЛИ с присваиванием х |= 10;
Логические операторы
&& Логическое И if (х && OxFF) {...}
|| Логическое ИЛИ if (х || OxFF) {...}
Операторы отношения
= = Равно if (x = = 10) {…}
!= Не равно if (x != 10) {...}
< Меньше if (x< 10) {...}
> Больше if (x > 10) (...)
<= Меньше или равно if (x<=10) {...}
>= Больше или равно if (x >= 10) {...}
Унарные операторы
* Косвенная адресация int х = *у;
& Взятие адреса int* х = &у;
~ Поразрядное НЕ х &= ~0х02;
! Логическое НЕ if (!valid) {...}
+ Инкремент x++; (то же, что и х = х + 1;)
-- Декремент х--:
Операторы классов и структур
:: Разрешение области видимости MyClass::SomeFunction();
-> Косвенный доступ MyClass->SomeFunction();
. Прямой доступ MyClass.SomeFunction();

Как видите, список операторов слегка ошеломляет, но не пытайтесь сразу запомнить каждый из них. Работая с С++, вы постепенно научитесь использовать все эти операторы.

Следует заметить, что в некоторых случаях операторы могут быть как преинкрементными (++х), так и постинкрементными (х++). Преинкрементный (pre-increment) оператор указывает компилятору: «Увеличить значение переменной и затем использовать эту переменную». Постинкрементный (post-increment) оператор указывает компилятору: «Сначала использовать переменную, а затем увеличить ее значение» (см. пример 2).

Пример 2.

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>

#include <conio.h>

//----------------------------

#pragma argsused

int main(int argc, char** argv)

{int a, b;

b = 10;

a = b++;

cout << "a = " << a << " b = " << b << endl;

b = 10;

a = ++b;

cout << "a = " << a << " b = " << b << endl;

getch();

return 0;

}

Пример 3.

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>

#include <conio.h>

//----------------------------

#pragma argsused

int main(int argc, char** argv)

{ int a, b;

float a1,b1;

a = 5; b = 3;

cout << "a / b = " << a/ b << endl

<<"a % b = "<<a%b<<endl;

a1 = 5; b1 = 3;

cout << "a1 / b1 = " << a1/ b1 << endl;

getch();

return 0;

}

Пример 4

//программа вычисления площади треугольника по высоте и основанию

#pragma hdrstop

#include <condefs.h>

#include <iostream.h>

#include <conio.h>

//----------------------------

#pragma argsused

int main(int argc, char** argv)

{float a,h,S;

cout << "Введите длину основания и высоту: " << endl;

cin >> a >> h; //ввод данных с клавиатуры

S = a*h/2;

cout << "Площадьтреугольника S = " << S << endl;

getch();

return 0;

}


6. Выполнение работы

1. Запустите среду С++Builder, дважды щелкнув левой кнопкой мыши по соответствующей пиктограмме на рабочем столе.

2. Запустите консольное приложение. (Выберите в главном меню пункт File | New. В открывшемся репозитории дважды щелкните на Console Wizard для создания нового консольного приложения. В открывшемся окне нажмите на кнопку Finish).

3. В окне редактора кода наберите программу Пример 1.

4. Для компиляции и запуска программы щелкните на кнопке Run оперативной панели.

5. Определите в чем заключается явление "заворачивания".

6. Повторите пп. 3-4 для программы Пример 2. Определите чем отличаются преинкрементный и постинкрементный операторы.

7. Повторите пп. 3-4 для программы Пример 3. Определите в чем отличие деления целых и вещественных чисел.

8. Повторите пп. 3-4 для программы Пример 4.

9. Напишите программу вычисления объема конуса (s=1/3pr2h). Повторите пп. 3-4 для этой программы.

10. Напишите программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах. (Например, 150 мин. - это 2 ч. 30 мин.). Повторите пп. 3-4 для этой программы.

Контрольные вопросы

1. Что такое объектно-ориентированное программирование?

2. Что такое переменная?

3. Какой тип могут иметь целые переменные?

4. Какой тип могут иметь вещественные переменные?

5. Какое значение имеет переменная после объявления?

6. Что делает функция getch()?

7. Можно ли присвоить переменной целого типа значение, содержащее дробную часть?

8. В чем заключается явление "заворачивания"?

9. Как получить целую часть от деления целых чисел?

10. Как получить остаток от деления целых чисел?