Алгоритмитизация и программирование — КиберПедия 

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Алгоритмитизация и программирование

2020-12-06 81
Алгоритмитизация и программирование 0.00 из 5.00 0 оценок
Заказать работу

АЛГОРИТМИТИЗАЦИЯ И ПРОГРАММИРОВАНИЕ

 

Лекция 1

Общие сведения

Телекоммутационные сети предназначены для доставки различного вида информации между удаленными пользователями. Сеть состоит из сетевых элементов. Сетевые элементы в общем виде подразделяются на оконечные устройства пользователя (ОУ), коммутационные узлы (КУ) и серверы. Сетевые элементы взаимодействуют друг с другом через каналы связи (рис. 1.1).

     
 
Рис. 1.1. Телекоммуникационная сеть

 

 


Сетевые элементы представляют собой весьма сложные аппаратно-программные комплексы. В простейшем случае коммутационный узел (рис. 1.2) состоит из аппаратной части (Hardware, HW), операционной системы (Operating system, OS) и прикладного программного обеспечения (Application software, APS).

 

                 
 
 
КУ
Рис. 1.2. Состав сетевого элемента

 


Аппаратная часть предназначена для взаимодействия с другими сетевыми элементами (коммутационными узлами) по интерфейсам в соответствии с международными стандартами.

Каждый сетевой элемент имеет свое программное обеспечение (ПО), которое подразделяется на две части: операционную систему (OS) и прикладное программное обеспечение (APS).

Программное обеспечение является многопользовательским и многозадачным. Это означает, что одномоментно в обслуживании находится множество пользователей, каждый из которых имеет свой сервис. Для того чтобы все приложения пользователей функционировали нормально необходим диспетчер, роль которого исполняет операционная система.


Операционная система функционирует в реальном масштабе времени и обслуживает множество прикладных программ в соответствии с их приоритетом. Она является диспетчером задач между интерфейсами и прикладными программами. В состав операционной системы входят исполняемые программы и программы самосохранения. Операционная система обеспечивает:

- ввод и вывод. Данные для обработки, поступающие от HW должны в удобном виде доставляться к APS. Обработанные данные от APS должны в форме международных стандартов доставляться в HW;

- распределение общей для всех прикладных программ памяти. APS всегда работает в многозадачном режиме, для каждой задачи должен быть выделен свой участок памяти для хранения промежуточных результатов;

- таймирование прикладных программ. APS часто задает OS таймеры на ожидание поступления внешних событий, чтобы корректно обслуживать длительные во времени процессы;

- запуск программ по расписанию, заданному администратором системы;

- запуск программы самосохранения (Safeguarding Programs). Она обеспечивает проведение периодических проверок исправности периферийного оборудования; анализирует аварийные сигналы, поступающие от схем встроенного контроля, и определяет местонахождение повреждений; принимает меры по перераспределению задач между исправным оборудованием; перезагружает программное обеспечение неисправного оборудования; вовлекает новое или исправное оборудование в работу.

Прикладное программное обеспечение (APS) состоит из функционального программного обеспечения и базы данных. Функциональное программное обеспечение содержит исполняемую программу, а база данных – исходные данные для нее. При первоначальном включении системы APS загружается с внешних носителей: магнитного диска (винчестер), оптического диска (CD ROM), с рабочего места оператора (РМО), …

База данных содержит как полупостоянные, так и переменные данные. Параметры полупостоянных данных (тип и категория линий, категория абонентов, позиционное местоположение комплектов, услуги, коды доступа, маршруты соединений и т. д.) изменяются с рабочего места оператора (РМО) и происходят относительно редко. Переменные данные (статус аппаратных средств и соединений, наличие станционных ресурсов) могут изменяться операционной системой. Оперативные данные (цифры набора номера, стоимость текущего разговора, реализация заказанной услуги и т. д.) связаны с обработкой вызова и изменяются функциональным программным обеспечением по мере обслуживания вызова.

База данных создается администратором системы с рабочего места оператора (РМО). Стандартным языком для создания базы данных узла коммутации каналов является MML – Man-Machine Language. Общий формат команды в виде код операции: параметр1, параметр2, …, параметрN; приведен в Рекомендации ITU - T Z.315. В результате появляются таблицы соответствия в машинном коде.

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

 


 

Рекомендация ITU-T X.200

Организация взаимодействия между элементами сети является сложной задачей, поэтому внутри сетевого элемента ее разбивают на несколько более простых задач. Решение каждой простой задачи внутри элемента сети производит модуль (уровень), каждый из модулей связан с одним или несколькими другими модулями. Решение сложной задачи подразумевает определенный порядок следования решения простых задач, при котором образуется многоуровневая иерархическая структура (рис. 1.3).

     
 
Рис. 1.3. Стек протоколов узла коммутации

 


Обмен информацией между модулями происходит через операционную систему на основе определенных соглашений, которые называются интерфейсом. При передаче сообщения модуль верхнего уровня решает свою часть задачи, а его результат, понятный только ему, оформляет в виде дополнительного поля к исходному сообщению и передает измененное сообщение на дообслуживание в нижележащий уровень. Этот процесс называется инкапсуляцией. С другой стороны, при приеме сообщения нижележащий уровень после обработки своей части сообщения удаляет его и оставшееся сообщение передает вышележащему уровню. Таким образом, интерфейс определяет формат, физические и электрические свойства сигналов обмена между модулями различных уровней, а протокол – описывает логические процедуры по обработке сообщения удаленному узлу сети равного уровня. Рекомендация ITU-T X.200 описывает семиуровневую модель взаимодействия открытых систем (ВОС, OSI – Open System Interconnection). Наименование уровней и распределение функций между ними следующее.

Прикладной уровень (Application Layer, L 7) содержит функциональное ПО и базу данных и реализует исполняемую программу. Установление соединения между локальными пользователями прикладной уровень реализует самостоятельно через каналы связи к местным пользователям. Для установления соединения между пользователями, находящимися в разных сетевых элементах, задействуются служебные сообщения через каналы связи к другим сетевым элементам.

Представительный уровень (Presentation Layer, L 6) занимается формой предоставления информации нижележащим уровням, например, перекодировкой или шифрованием информации.

При помощи сеансового уровня (Session Layer, L 5) организуются диалог между сторонами, фиксируется, какая из сторон является инициатором, какая из сторон активна и каким образом завершается диалог.

Транспортный уровень (Transport Layer, L 4) определяет правила транспортировки пакетов по сети. Эти правила позволяют взаимодействовать с удаленной стороной в двух режимах: не ориентированный на соединение и ориентированный на соединение (по предварительно установленному виртуальному соединению).

Сетевой уровень (Network Layer, L 3) служит для определения маршрута следования соединения. Он имеет таблицу маршрутов, устанавливающей соответствие между адресом доставки информации и выходным интерфейсом.

На канальном уровне (Data Link Layer, L 2) реализуются механизмы обнаружения и коррекции ошибок, возникающих в канале связи между узлами. Он является индивидуальным для каждого интерфейса.

Физический уровень (Physical Layer, L 1) обеспечивает побитную транспортировку кадров (часто называемый пакетом) между узлами по требуемой физической среде передачи (металлический кабель, оптоволоконная линия связи, радиоканал). Он является индивидуальным для каждого интерфейса и однозначно ассоциирован с канальным уровнем.

Следует отметить, что

· некоторые сети появились гораздо раньше, чем была разработана модель OSI, поэтому для многих систем соответствие уровней модели OSI весьма условно;

· число уровней для сетевого взаимодействия зависит от сложности задачи, поэтому некоторые сетевые элементы используют меньшее число уровней;

· производитель сетевого оборудования вправе использовать любую аппаратную платформу, любые внутренние интерфейсы, любой язык программирования. Стандартизируются только интерфейсы и протоколы взаимодействия между сетевыми элементами. Это дает возможность изготавливать одно и то же сетевое оборудование различным производителям.

 

Системы счисления

Система счисления состоит из символов и правил их применения. Вес каждого символа зависит от его позиции в изображаемом числе. Счет позиции ведется справа налево, самый правый символ имеет наименьший вес, самый левый – наибольший.

Наиболее распространенной является десятичная система счисления. Она использует десять символов – 0,1,2,3,4,5,6,7,8,9. Вес первого (самого правого) символа числа умножается на 100, следующего – на 101 и т.д. Например, десятичное число 3567 представляется как 3∙ 103 + 5∙ 102 + 6∙ 101 + 7∙ 100 = 3567.

Цифровые вычислительные устройства используют двоичную систему счисления (двоичный код). Она использует два символа – 0 и 1. Вес первого (самого правого) символа числа умножается на 20, следующего – на 21 и т.д. Например, десятичное число 3567 в двоичном коде представляется как 1∙ 211 + 1∙ 210 + 0∙ 29 + 1∙ 28 + 1∙ 27 + 1∙ 26 + 1 ∙25 + 0 ∙24+ 1 ∙23 + 1 ∙22 + 1 ∙21 + 1 ∙20 = 1101111011112 = 2048 + 1024 + 256 + 128 + 64 + 32 + 8 + 4 + 2 + 1 = 3567.

Для сокращения записи вместо двоичного кода используют восьмеричную и шестнадцатеричную системы счисления. Соответствие между значениями символов в десятичной, двоичной восьмеричной и шестнадцатеричной системе счисления приведено в табл. 3.1.


Табл. 1.1 – Соответствие кодов различных систем счисления

Десятичный  код Двоичный  код Восьмеричный код Шестнадцатеричный  код
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

 

Задание. Выполнить лабораторную работу 1 (Побитовые операции).

 

Лекция 2

Типы данных

В языке С++ используются следующие основные типы данных:

Табл. 3.2 – Типы данных

Тип данных Количество бит Диапазон значений
bool (логический) 1 >1 (true) или 0 (false)
char (символьный) 8 От -128 до 127
int (целые числа) 32 От -2 147 483 648   до  2 147 483 647
float (действительные числа) 32 От  1.8E-38 до 1.8E+38
double (действительные числа двойной точности) 64 От  1.8E-308 до 1.8E+308

 

Арифметические операторы

В языке С++ используются следующие арифметические операторы:

Табл. 3.3 – Типы данных

Оператор Назначение
+ Сложение
- Вычитание
* Умножение
/ Деление (если операнды типа int, то выполняется целочисленное деление)
% Деление по модулю (остаток от деления)
++ Инкремент
-- Декремент

 

Операторы сравнения

В языке С++ используются следующие операторы сравнения:

Табл. 3.4 – Типы данных

Оператор Назначение
> Больше
< Меньше
== Равно
>= Больше или равно
<= Меньше или равно
!= Не равно

 


 

Побитовые операторы

В языке С++ используются следующие побитовые операторы:

Табл. 3.5 – Типы данных

Оператор Назначение
& Побитовое “И”. Правило: 0&0=0, 0&1=0, 1&0=0, 1&1=1. Пример: 5&3=1
| Побитовое “ИЛИ”. Правило: 0|0=0, 0|1=1, 1|0=1, 1|1=1. Пример: 5|3=7
^ Побитовое XOR. Правило: 0^0=0, 0^1=1, 1^0=1, 1^1=0. Пример: 5^3=6
~ Побитовая инверсия. Правило: ~0=1, ~|1=0. Пример: ~5=-6
>>x Сдвиг вправо на х позиций. Пример: 5>>2=1
<<x Сдвиг влево на х позиций. Пример: 5<<3=40

 

Кодовые таблицы

Ниже приведены коды символов в кодировке ASCII (American Standard Code for Information Interchange) и MS DOS.

Табл. 3.6 – Коды ASCII и MS DOS

Код Символ Код Символ Код Символ Код Символ Код Символ Код Символ Код Символ Код Символ
0 NUL 32 SP 64 @ 96 ' 128 А 160 а 192 224 р
1 SOH 33 ! 65 A 97 a 129 Б 161 б 193 225 с
2 STX 34 66 B 98 b 130 В 162 в 194 226 т
3 ETX 35 # 67 C 99 c 131 Г 163 г 195 227 у
4 EOT 36 $ 68 D 100 d 132 Д 164 д 196 228 ф
5 ENQ 37 % 69 E 101 e 133 Е 165 е 197 229 х
6 ACK 38 & 70 F 102 f 134 Ж 166 ж 198 230 ц
7 BEL 39 ' 71 G 103 g 135 З 167 з 199 231 ч
8 BS 40 ( 72 H 104 h 136 И 168 и 200 232 ш
9 HT 41 ) 73 I 105 i 137 Й 169 й 201 233 щ
10 LF 42 * 74 J 106 j 138 К 170 к 202 234 ъ
11 VT 43 + 75 K 107 k 139 Л 171 л 203 235 ы
12 FF 44 , 76 L 108 l 140 М 172 м 204 236 ь
13 CR 45 - 77 M 109 m 141 Н 173 н 205 237 э
14 SO 46 . 78 N 110 n 142 О 174 о 206 238 ю
15 S1 47 / 79 O 111 o 143 П 175 п 207 239 я
16 DLE 48 0 80 P 112 p 144 Р 176 208 240 Ё
17 DC1 49 1 81 Q 113 q 145 С 177 209 241 ё
18 DC2 50 2 82 R 114 r 146 Т 178 210 242 Є
19 DC3 51 3 83 S 115 s 147 У 179 211 243 Є
20 DC4 52 4 84 T 116 t 148 Ф 180 212 244 Ї
21 NAK 53 5 85 U 117 u 149 Х 181 213 245 Ї
22 SYN 54 6 86 V 118 v 150 Ц 182 214 246 Ў
23 ETB 55 7 87 W 119 w 151 Ч 183 215 247 Ў
24 CAN 56 8 88 X 120 x 152 Ш 184 216 248 °
25 EM 57 9 89 Y 121 y 153 Щ 185 217 249
26 SUB 58 : 90 Z 122 z 154 Ъ 186 218 250 ·
27 ESC 59 ; 91 [ 123 { 155 Ы 187 219 251
28 FS 60 < 92 \ 124 | 156 Ь 188 220 252
29 GS 61 = 93 ] 125 } 157 Э 189 221 253 ¤
30 RS 62 > 94 ^ 126 ~ 158 Ю 190 222 254
31 US 63 ? 95 _ 127 DEL 159 Я 191 223 255  

 


Ввод/вывод данных

Вывод значений на экран производится оператором cout<<имя_переменной;

Ввод значений с клавиатуры производится оператором c in >>имя_переменной;

Пример.

#include <iostream>

using namespace std;

int main()

{

int x1;

cout<<"Input number x1 = "; cin>>x1;

return 0;

}

Для вывода фиксированной строки используются кавычки. Литеры, находящиеся между кавычками выводятся компилятором без изменений. Перевод курсора в начало новой строки осуществляется с помощью оператора endl; Например,

#include <iostream>

using namespace std;

int main()

{

cout<<"Hello! ";

cout<<"My name is Ivan."<<endl;

return 0;

}

Задание 1. Выполнить лабораторную работу 3 (Знакомство с компилятором).

Задание 2. Выполнить лабораторную работу 3а (Знакомство с компилятором).

Int main()

{

return 0;

}      


Лекция 4

4.1. Базовые средства языка С++

Язык С++ использует следующие элементы:

Алфавит - это основные неделимые знаки, с помощью которых пишутся все тексты на языке.

Лексема, или элементарная конструкция, — минимальная единица языка, имеющая самостоятельный смысл.

Выражение задает правило вычисления некоторого значения.

Оператор задает законченное описание некоторого действия.

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

Язык С++ имеет ключевые слова — зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов C++ приведен в табл. 4.1.

Табл. 4.1. Список ключевых слов C++

asm auto bool break case catch char class   const const_cast continue default delete do double dynamic_cast   else enum explicit export extern false float for   friend goto if inline int long mutable namespace   new operator private protected public register reinterpret_cast   return short signed sizeof static static__cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while

 

Комментарий либо начинается с двух символов «прямая косая черта» (//) и заканчивается символом перехода на новую строку, либо заключается между символами- скобками /* и */. Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка C++, поскольку компилятор комментарии игнорирует.

 

Переменные

Переменная — это именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Во время выполнения программы значение переменной можно изменять. Перед использованием любая переменная должна быть описана. Общий вид оператора описания переменных: [класс памяти] [const] тип имя [инициализатор];. Параметры, стоящие в квадратных скобках являются опциональными. Примеры:

int a;           //Целая переменная а

int a=11;     //Целая переменная а со значением 11

float b;        //Действительная переменная b

char c;    //Символьная переменная с

 

Ввод/вывод данных

Перед вводом данных обязательно указывается тип переменной: int, float, char, …;

Ввод значений с клавиатуры производится оператором c in >>имя_переменной;


Простые арифметические действия (сложение, вычитание, умножение и деление) заложены в заголовочный файл #include <iostream>. Вывод результата простых арифметических действий может осуществляться в фоновом режиме вывода, операция обрамляется скобками.

Пример.

#include <iostream>

using namespace std;

int main()

{

int x1,x2;

cout<<"x1="; cin>>x1;

cout<<"x2="; cin>>x2;

cout<<"x1+x2="<<(x1+x2)<<endl;

r eturn 0;

}

Пример ввода/вывода целочисленной переменой:

#include <iostream>

using namespace std;

int main()

{

int a;

cout<<"Input a: "; cin>>a;

cout <<"Result a= "<<a<<endl;

return 0;

}

Поскольку переменная a объявлена как целая, то при вводе а=3.2 получим результат а=3. Чтобы получить результат в виде вещественного числа следует изменить тип переменной:

#include <iostream>

using namespace std;

int main()

{

float a;

cout<<"Input a: "; cin>>a;

cout <<"Result a= "<<a<<endl;

return 0;

}

При необходимости используются следующие модификаторы вывода.

Символ Описание действия модификатора
\r Возврат вывода в начало текущей строки
\n Перевод печати в начало следующей строки
\t Горизонтальная табуляция строки (7 пробелов)
\v Вертикальная табуляция строки
\” Вставка в строку двойных кавычек
\’ Вставка в строку апострофа (одиночных кавычек)
\\ Вставка в строку символа слеш
\0 Вставка в строку нулевого символа (не пробел!!!)
\a Звуковой сигнал бипера

Пример использования модификаторов вывода.

#include <iostream>

using namespace std;

int main()

{

cout << "\t\t AAAAAA";                                //две табуляции и печать A

cout << "\r BBBBB \n";                                //возврат каретки и печать B

cout << "\' CCCCCC \' \" DDDDDD\" "; // одинарные и двойные ковычки

cout << "\a\a\a\a" <<endl;                          // звуковой сигнал

return 0;

}

Выводится

 BBBBB     AAAAAA

‘ CCCCCC ‘ “DDDDDD”

(Четырехкратный бипер)

 

Числа могут быть представлены в десятичном, восьмеричном или в шестнадцатеричном формате. Измененный формат остается прежним для последующего вывода. Пример:

include <iostream>

using namespace std;

int main()

{

int a=65;

cout << a << endl;                                     //вывод a в десятичном коде

cout <<"65 = "<<"0"<<oct<<a<<endl; //вывод a в восьмеричном коде

cout <<"65 = "<<"0x"<<hex<<a<<endl; //вывод a в шестнадцатеричном коде

cout <<a<<endl;

int b; cin>>b; cout<<b<<endl;               // вывод b шестнадцатеричном коде

return 0;

}

Арифметические операции

Простые арифметические действия заложены в заголовочный файл #include <iostream>. Для выполнения сложных арифметических операций (извлечения корня, возведения в степень, …) следует подключить заголовочный файл #include <cmath>.

Библиотека <cmath> содержит следующие основные математические функции:

sin(x) – вычисление синуса (х – в радианах)

cos(x) – вычисление косинуса (х – в радианах)

exp (x) – экспоненциальная функция ex

log(x) – натуральный логарифм (х>0)

log10(x) – логарифм по основанию 10 (х>0)

pow(x,y) – возведение в степень (xy)

sqrt(x) – квадратный корень (х>0)

 

Пример: вычисление 5.3 в степени -0.7.

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

float a=5.3, b=-0.7, c;

c=pow(a,b);  cout <<"Result c = "<<c<<endl;

return 0;

}

 

Взаимосвязь чисел и литер

Каждая клавиша клавиатуры имеет свой код. Этот код отображается либо как число (переменная int), либо как строковая литера (переменная char). Служебные литеры не выводятся (ожидание ввода!!!).

Прмеры:

# include < iostream >

using namespace std;

int main()

{

    char a; cout <<"char="; cin>>a;    // ввод литеры

    int b; b=a;                                           // код литеры

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

return 0;

}

При вводе кириллицы выводится код в соответствии с кодовой таблицей MS DOS. Например, литера “Ц” отображается кодом -106, что эквивалентно 256-106=150.

#include <iostream>

using namespace std;

int main()

{

int c;

cout <<"number="; cin>>c;               //ввод числа

cout <<"number="<< c << " char="<<char(c)<<endl;

return 0;

}

Сложение литер приводит к ее изменению (не к склеиванию!!!!). 

#include <iostream>

using namespace std;

int main()

{

   char e, f, g;

    cout << " char ="; cin >> e;     //вводим литеру '3' с клавиатуры (код =51)

    cout << "char="; cin>>f;     //вводим литеру '6' с клавиатуры (код =54)

    g=e+f;                                     // код 51+54=105 соответствует литере 'i'

    cout << e << "+" << f << "=" <<g<<endl;

return 0;

}

При переполнении разрядной сетки сhar (256 бит) старшие разряды отсекаются.

Пример.

#include <iostream>

using namespace std;

int main()

{

   char e, f, g, h;

    cout << "char="; cin>>e; //вводим литеру 'О' с клавиатуры (код =142)

    cout << "char="; cin>>f; //вводим литеру 'л' с клавиатуры (код =203)

    cout << "char="; cin>>g; //вводим литеру 'я' с клавиатуры (код =239)

    h=e+f+g;                     //код 142+203+239=584 соответствует литере '('

    cout << h <<endl;

return 0;

}

Код 584= 1001001000 усекается до 1001000 à72, что соответствует литере “(”.

Простейшее шифрование текста может производиться с помощью изменения литеры ключом шифрования.

 

Пример.

#include <iostream>

using namespace std;

int main()

{

int key=-116; int a=143, b=224, c=168, d=162, e=165, f=226, g=33;

//Исходный текст

cout<<"Open text: ";

cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;

cout<<endl;

a=a+key; b=b+key; c=c+key; d=d+key; e=e+key; f=f+key; g=g+key;

//Шифрованный текст

cout<<"Encrypted text: ";

cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;

//cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<endl;

cout<<endl;

a=a-key; b=b-key; c=c-key; d=d-key; e=e-key; f=f-key; g=g-key;

//Дешифрованный текст

cout<<"Decrypted text: ";

cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;

cout<<endl;

return 0;

}

Следует иметь в виду, что при запуске исполняемой программы main.ехе после ее исполнения она моментально закрывается. Чтобы удержать данные на экране следует воспользоваться инструкцией OS system("pause"); с подключением заголовочного файла #include <windows.h>.

Пример:

# include < iostream >

# include < windows. h >           //установка команд операционной системы

using namespace std;

int main()

{

int a;

cout<<"Input a: "; cin>>a;

cout <<"Result a= "<<a<<endl;

system ("pause ");                  //команда операционной системе о приостановке

return 0;

}

Задание 1. Выполнить лабораторную работу 4 (Базовые средства языка С++).

Задание 2. Выполнить лабораторную работу 4а (Базовые средства языка С++).


 

Лекция 5

Базовые конструкции

К базовым конструкциям относят следование, ветвление и цикл.

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

 

 

 


Лекция 6

Функции

Функции используются при многократном расчете одного и того же сложного параметра. Обычно она помещается в заголовок программы перед главной функцией main().  Использование функций позволяет иметь более компактный и легко читаемый текст.

Синтаксис ссылки на функцию: тип_возвращаемой_переменной имя_функции (параметры).

Пример программы без объявления функции.

#include <iostream>

...

using namespace std;

int main()

{

//начало рограммы

...

вычисление некого значения y=f(x1,y1,z1);    //y – сложная конструкция

продолжение программы

...

вычисление некого значения y=f(x2,y2,z2);   //y – сложная конструкция

продолжение программы

...

вычисление некого значения y=f(x3,y3,z3);   //y – сложная конструкция

продолжение программы

...

return 0;

}

Пример программы с объявлением в функции заданных исходных данных.

#include <iostream>

...

объявление функции y = f (x, y, z);   //возвращает y=f(x,y,z);

using namespace std;

int main()

{

//начало рограммы

...

y=f(x 1, y 1, z 1);                         //обращение к функции y

продолжение программы

...

y=f(x 2, y 2, z 2);                         //обращение к функции y

продолжение программы

...

y=f(x 3, y 3, z 3);                         //обращение к функции y

продолжение программы

...

return 0;

}


Пример: вычисление гипотенузы.

#include <iostream>

#include <windows.h>

#include <cmath>

double hypot(double a, double b)                        // Объявление функции hypot

   {

   double c; c=sqrt(a*a+b*b); return (c);

   }

using namespace std;

int main()

{

double a,b,c;

cout<<"Input first cathetus: "; cin >>a;

cout<<"Input second cathetus: ";cin >>b;

c=hypot(a,b);                                          //Вызов функции

cout <<"Hypotenuze is: " << c << endl;

return 0;

}

 

Массивы

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

  Описание одномерного массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размерность): float а [10];   // описание массива из 10 вещественных чисел.

Элементы массива нумеруются с нуля. При описании массива используются те же модификаторы (класс памяти, инициализатор), что и для простых переменных. Инициализирующие значения для массивов записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не указаны, то их значения обнуляются: int b[5] = {3, 2, 1};   / / b[0]=3, b[l]=2, b[2]=l, b[3]=0, b[4]=0.

Элементы массива должны быть одного типа.

Пример (одномерных массивов – int, int):

#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 mass1[40]={'A','B','C','D','E'};

int mass 2[40]={1,20,300,400,5000};

int i;

cout << Rus ("Содержимое первого массива до копирования")<< endl;

for (i=0; i<=15; i=i+1)

{ cout<<mass1[i]<<" "; }

cout << endl; cout << endl;

cout << Rus ("Содер


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.375 с.