- •Алгоритмитизация и программирование Лекция 1
- •Общие сведения
- •Модель osi. Понятие об интерфейсах и протоколах. Рекомендация itu-t X.200
- •1.3. Системы счисления
- •Лекция 2
- •2.1. Способы описания алгоритмов функционирования узла коммутации
- •2.2. Описание алгоритмов с помощью диаграммы состояний
- •Variable
- •Input port
- •Input signal
- •2.3. Описание алгоритмов с помощью временной диаграммы
- •Описание алгоритмов с помощью текстового описания
- •Лекция 3
- •3.2. Типы данных
- •3.3. Арифметические операторы
- •3.4. Операторы сравнения
- •3.5. Побитовые операторы
- •3.6. Кодовые таблицы
- •Int main()
- •Лекция 4
- •4.2. Переменные
- •4.3. Ввод/вывод
- •4.4. Арифметические операции
- •4.5. Взаимосвязь чисел и литер
- •Лекция 5
- •5.1. Базовые конструкции
- •5.2. Операторы базовых конструкций
- •If (условие) {операторы 1}
- •Лекция 6
- •6.1. Указатели
- •6.2. Функции
- •6.3. Массивы
- •Лекция 7
- •7.1. Создание и инициализация строк
- •7.2. Функции для работы со строками
- •Лекция 8
- •8.1. Структуры
- •8.2. Формирование контрольной суммы
- •Лекция 9
- •9.1. Операции с файлами
- •9.2. Открытие текстового файла для записи
- •9.3. Открытие текстового файла для чтения
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;
}