Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_ЛР2.doc
Скачиваний:
6
Добавлен:
10.11.2019
Размер:
93.18 Кб
Скачать

Программирование. Лабораторная работа 2 9

Лабораторная работа 2. Создание простейших программ на языке C++

Цель работы

Изучить возможности по созданию простейших консольных программ на языке С++ в интегрированной среде разработки программ MS Visual Studio 2005/2008; повторить основные принципы создания программ на языке С++; повторить возможности использования простейших управляющих конструкций в программах на языке С++.

Краткие теоретические положения

Рассмотрим пример 1 программы:

// Программа для сложения двух чисел

#include <iostream>

#include <conio.h>

using namespace std;

int main ()

{int x,y,z;

cout << "Enter a number: "; cin >> x;

cout << "Enter a number: "; cin >> y;

z=x+y;

cout << "z = " << z << "\n";

getch(); return 0;

}

На примере этой программы разберем основные моменты любой программы.

Строка

int x,y,z;

объявляет три переменные целого типа с именами x, y, z.. Тип int – один из встроенных типов данных для хранения целых чисел (от англ. integer). Этот тип данных позволяет хранить целые числа со знаками. Кроме типа int в С++ имеются и другие встроенные типы данных. Например, тип float позволяет хранить вещественные числа (то есть дробные), а тип char – один символ (например, букву ‘a’ или знак ‘+’).

Объявление переменных должно заканчиваться точкой с запятой. В списке переменные должны перечисляться через запятую.

Другие примеры объявления переменных:

float a,b;

int i, count;

float bMax; int arrMaxIndex, k,asd;

Объявление переменной может располагаться в функциях где угодно, но до первого использования данной переменной.

Строка

cin >> x;

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

Аналогично с помощью инструкции cin >> y; осуществляется ввод переменной у.

Ввод двух переменных можно было выполнить и так:

cin >> x >> y;

Далее в этой программе вычисляется сумма и результат выводится на экран.

z=x+y;

В этой инструкции используются две операции: операция присваивания (=) и операция получения суммы (+). Эти операции называются бинарными, потому что каждая из них имеет по два операнда: один слева от знака операции, а другой справа. Для основных арифметический операций используются следующие знаки:

* умножение / деление

+ сложение - вычитание

% взятие по модулю (получение остатка от деления)

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

Для изменения порядка вычисления выражения могут применяться круглые скобки. Знак равенства здесь также является операцией присваивания, которая сама (и, соответственно, все выражение в целом) возвращает значение. В этом отличие С от других языков, в частности Pascal, где присваивание является оператором, а не операцией. Оператором выражение станет, если поставить после него точку с запятой.

Если в операторе присваивания тип результата, полученного при оценке выражения в правой части, отличен от типа переменной слева, компилятор выполнит автоматическое приведение типа (по-английски typecast или просто cast) результата к типу переменной. Например, если оценка выражения дает вещественный результат, который присваивается целой переменной, то дробная часть результата будет отброшена, после чего будет выполнено присваивание. Ниже показан и обратный случай приведения:

int p;

float pReal = 2.718281828;

p = pReal; // p получает значение 2

pReal = p; // pReal теперь равно 2.0

Возможно и принудительное приведение типа, которое выполняется посредством операции приведения и может применяться к любому операнду в выражении, например:

р = рО + (int)(pReal + 0.5); // Округление pReal

Следует иметь в виду, что операция приведения типа может работать двояким образом. Во-первых, она может производить действительное преобразование данных, как это происходит при приведении целого типа к вещественному и наоборот. Получаются совершенно новые данные, физически отличные от исходных. Во-вторых, операция может никак не воздействовать на имеющиеся данные, а только изменять их интерпретацию. Например, если переменную типа short со значением -1 привести к типу unsigned short, то данные останутся теми же самыми, но будут интерпретироваться по-другому (как целое без знака), в результате чего будет получено значение 65535.

В арифметическом выражении могут присутствовать операнды различных типов — как целые, так и вещественные, а кроме того, и те и другие могут иметь различную длину (short, long и т. д.), в то время как оба операнда любой арифметической операции должны иметь один и тот же тип. В процессе оценки таких выражений компилятор следует алгоритму т. н. возведения типов, который заключается в следующем. На каждом шаге оценки выражения выполняется одна операция и имеются два операнда. Если их тип различен, операнд меньшего “ранга экстенсивности” приводится к типу более “экстенсивного”.

Условный оператор if... else. Условный оператор реализует структуру выбора. Он имеет такой вид:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]