Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
12
Добавлен:
15.03.2015
Размер:
5.82 Mб
Скачать

If (условие) {операторы 1}

[else {операторы 2 }]

Второй оператор (else) является опциональным и может отсутствовать.

Пример: определение наибольшего из четырех чисел.

#include <iostream>

#include <windows.h>

using namespace std;

string Rus(string text) //установка вывода русского языка в строке

{ CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str());

return text;}

int main()

{

int a,b,c,d,max;

cout <<Rus("Введите первое число "); cin>>a;

cout <<Rus("Введите второе число ");cin>>b;

cout <<Rus("Введите третье число "); cin>>c;

cout <<Rus("Введите четвертое число ");cin>>d;

if (a>b) //Классический синтаксис

{max=a;}

else

{max=b;}

if (c>max) max=c; //Упрощенный синтаксис

if (d>max) max=d;

cout<<Rus("Максимальное из чисел ")<<max<<endl;

return 0;

}

Пример: сравнение 2-х чисел.

#include <iostream>

using namespace std;

int main()

{

int a=2, b=3, x=2, y=3;

if (a==x and b==y)

{cout<<"a=x "<<"b=y"<<endl;}

return 0;

}

Оператор FOR относится к конструкции цикл и имеет синтаксис:

for (инициализация, условие, изменение переменных)

{ операторы}

Пример: вычисление суммы четных чисел (нет конструкции i++).

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

int n, i=200; //объявление глобальной i=200

SUM_OF_NUMBERS:

cout <<"Enter number n="; cin>>n;

int s=0;

for (int i=0; i<=n; i=i+2) //объявление локальной (int) 0=i<102

{s=s+i;}

cout<<"Sum of numbers is:" <<s<<endl;

cout<<i<<endl;

cout<< "Do you want to continue? (yes=y/no=any key)";

char cont; cin>>cont; cout<<endl;

if (cont=='y') goto SUM_OF_NUMBERS;

return 0;

}

Оператор WHILE относится к конструкции цикл и имеет синтаксис:

while (условие)

{операторы}

Пример: вычисление суммы нечетных чисел.

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

int n, i=1, s=0;

SUM_OF_NUMBERS:

cout <<"Enter number n="; cin >> n;

while (i<=n)

{s=s+i; i=i+2;}

cout << "Sum of numbers is:" << s << endl;

cout << "Do you want to continue? (yes=y/no=any key)";

char cont; cin >> cont;

cout << endl;

if (cont=='y') goto SUM_OF_NUMBERS;

return 0;

}

Полезная функция – генерация случайного числа в диапазоне 0-А:

#include <iostream>

#include <windows.h>

#include<ctime>

using namespace std;

int main()

{

srand(time(NULL)); int b=rand()%A;

cout<<b<<endl;

return 0;

}

Задание. Выполнить лабораторную работу 5 (Операторы базовых конструкций).

Лекция 6

6.1. Указатели

Когда компилятор обрабатывает оператор определения переменной, например, int i=10; он выделяет память в соответствии с типом (int) и инициализирует ее указанным значением (10). Все обращения в программе к переменной по ее имени (i) заменяются компилятором на адрес области памяти, в которой хранится значение переменной. Программист может определить собственные переменные для хранения адресов областей памяти. Такие переменные называются указателями. Итак, указатели предназначены для хранения адресов областей памяти.

Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Простейшее объявление указателя на объект (в дальнейшем называемого просто указателем) имеет вид: тип_данных *имя_указателя;. Указатели применимы только к целым числам и массивам.

Существуют две операции для работы с указателями. Во-первых, это определение адреса ячейки по имени переменной, для этого используется оператор &. Во-вторых, это определение значения переменной записанного по данному адресу, для этого используется оператор *.

Пример:

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

int a=100, b=0;

int *pa, *pb;

pa=&a; //указатель на адрес, где хранится a

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

b=a; //Переменная b принимает значение a

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

*pa=*pa+10; //содержимое по адресу a увеличивается на 10, т.е. а=110

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

a=a-1; //переменная a уменьшается на 1, т.е. а=109

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

pa=pa+1; //адрес увеличиваем на 1 элемент int, т.е. на 4 байта

cout <<" "<<"pa="<<pa<<" x="<<*pa;

return 0;

}