Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-5.docx
Скачиваний:
4
Добавлен:
07.01.2022
Размер:
128.38 Кб
Скачать

8)Оператор переключатель

switch (<выражение>)

{ case <константное выражение 1>: <операторы 1>

case <константное выражение 2>: <операторы 2>

...

case <константное выражение N>: <операторы N>

[default: <операторы>]

}

Оператор-переключатель предназначен для выбора одного из нескольких альтернативных путей выполнения программы. Вычисление оператора-переключателя начинается с вычисления выражения, после чего управление передается оператору, помеченному константным выражением, равным вычисленному значению выражения. Выход из оператора-переключателя осуществляется оператором break. Если значение выражения не равно ни одному константному выражению, то управление передается оператору, помеченному ключевым словом default, если он есть

Пример:

Cin>>a;

Switch(a)

{

Case 1:cout <<”Привет”;

Case 2:cout <<”Как дела”;

Case 3:cout <<”Что делаешь”;

}

9)Пошаговый цикл

Цикл — многократное прохождение по одному и тому же коду программы. Циклы необходимы программисту для многократного выполнения одного и того же кода, пока истинно какое-то условие. Если условие всегда истинно, то такой цикл называется бесконечным, у такого цикла нет точки выхода.

for(инициализация; условие; приращение)

{

блок операторов;

}

 

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

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

Пример:

For (i=0;i<10;i++)

{

Cout<<i+1<<”Учатник”;

}

10)Цикл с предусловием

Тело цикла выполняется до тех пор, пока<условие>истинно. Когда условие станет ложным, выполняется строка, следующая за циклом.

Работа цикла с предусловием:

Проверяется истинность выражения <условие>. Если <условие> истинно, то выполняются операторы тела цикла.

После того как выполнился последний оператор цикла, управление передаётся заголовку цикла. Переход на пункт 1.

Если условие в заголовке ложно, то цикл завершает свою работу.

Цикл с предусловием while()

while(<условие>)

{

<тело_цикла>

}

Пример:

While (a>0)

{

Cout<<a<<”Это положительное число”;

a--;

}

  1. Цикл do while отличается от цикла while тем, что в do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. Из-за такой особенности do while называют циклом с постусловием. Таким образом, если условие do while заведомо ложное, то хотя бы один раз блок операторов в теле цикла do while выполнится. В итоге do while отличается от цикла while структурой. Если в while сначала выполняется проверка условия продолжения цикла, и если условие истинно, то только тогда выполняется тело цикла. Цикл do while работает с точностью до наоборот, сначала выполняется тело цикла, а потом проверяется условие, вот почему  тело цикла do while, хотя бы раз, выполнится.

(Пример самому легко придумать)

  1. Оператор continue используется только в циклах. В операторах for, while, do whileоператор continue выполняет пропуск оставшейся части кода тела цикла и переходит к следующей итерации цикла.

Оператор break имеет два назначения. Первое - это окончание работы оператора switch. Второе - это принудительное окончание цикла, минуя стандартную проверку условия. Данное назначение здесь и рассматривается. Когда оператор break встречается в теле цикла, цикл немедленно заканчивается и выполнение программы переходит на строку, следующую за циклом. Например: int main() { int t; for(t=0; t<100; t++) { cout << t; if (t==10) break; } return 0; }

  1. Структура программы

  1. #include <путь>

#define <идентификатор><текст> #define <идентификатор>(<список параметров>)<текст> Данная деректива позволяет заменить идентификатор последовательность символов.

(#define N, 100; #define MULT(a, b)((a)*(b))); #define MAX(x, y)((x)>(y)?(x):(y))) #undef<идентификатор> (#undef N)

  1. Объявление глобальных переменных и констант

  2. Пользовательские процедуры и функции

  3. Главная функция (main)

  1. #include <iostream.h> cin >>//поток ввода cout <<//поток вывода

  2. Одномерные массивы и их обработка.

Массив – это совокупность данных, которые обладают следующими свойствами:

  • Все элементы массива имеют один и тот же тип

  • Массив имеет одно имя для всех элементов

  • Доступ к конкретному элементу массива осуществляется по индексу

Массив может состоять из элементов любого типа, кроме типа void и функций. ИНИЦИАЛИЗАЦИЯ МАССИВА

#include <iostream> using namespace std; void main()

{

Const Int N = 10;

Const Int a = 0;

  1. Int A[1000] = {0,...,999}

  2. Int A[1000]; for (int I = 0; I < N; i++) A[i] = a;

  3. Int I = 0; while (I < N) { A[i] = 2 + I * 2; i++; }

  4. A[i] = rand()%100;

(ВЫВОД ЛИГКО НАПИСАТЬ)

16.

Нахождение максимального элемента массива выполняется путём последовательных сравнений. Значение наибольшего из сравниваемых элементов станем запоминать в переменной МАХ. В качестве начального значения максимума примем значение первого элемента массива. Значение переменной МАХ будем сравнивать с каждым следующим элементом массива. Если МАХ окажется меньше очередного элемента, то значение этого элемента сохраним в переменной МАХ для сравнения с последующими элементами массива. В противном случае значение переменной МАХ оставим без изменений.

Таким образом, когда все элементы массива будут просмотрены, в переменной МАХ останется копия максимального элемента массива. Сам же массив изменён не будет.

Блок-схема алгоритма нахождения максимума приведена на рисунке 13. Фрагмент программы приведён ниже.

 

MAX := A[1];

for i:=2 to N do

if MAX<A[i] then

MAX:=A[i];

writeln('МАХ=', MAX);

 

17.

Один из наиболее распространенных процессов обработки данных —сортировка массива.

Сортировка — это размещение объектов в определенномпорядке. Числа могут размещаться по убыванию или по возрастанию.

program sort;

const n=7;

a:array[1..n] of real=(50,40,10,20,30,5,7);

var i,j,k:integer; r:real;

begin

for i:=1 to n-1 do {на каждом шаге пузырек "плывет" от

1-ой позиции в (n-i+1)-ю позицию}

for j:=1 to n-i do

if a[j]>a[j+l] then {Сравниваются пары элементов}

begin

r:=a[j+1]; {обмен}

a[j+1]:=a[j];

a[j]:=r;

end;

{Вывод результата сортировки}

for k:=1 to n do Write(a[k]:9:4,'|'); end.

18.

При передаче одномерных массивов в функции следует вызывать функцию с именем массива без индекса. В результате этого передается адрес первого элемента массива. В С невозможно передать весь массив как аргумент. Вместо этого автоматически передается указатель. Следующий пример передает адрес i в func1(); int main(void) { int i(10); func1(i); ... }

Если функция получает одномерный массив, то можно объявить формальный параметр как указатель, как массив с фиксированной длиной или как безразмерный массив. Например, для передачи i в функцию func1() можно объявить func1() одним из следующих способов: void fun1 (int *a) /* указатель */ { ... } или void fun1(int a[10]) /* массив с фиксированной длиной */ { ... } или void fun1(int a []) /* безразмерный массив */ { ... }

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

19.

Двумерный массив объявляется следующим образом: тип имя_массива[размер второго измерения][размер первого измерения]; Следовательно, для объявления двумерного массива целых с размером 10 на 20 следует написать: int d[10] [20] ;

Для считывания, вывода на экран и обработки двумерных массивов необходимо использовать вложенные циклы. Первый цикл — по первому индексу (то есть по всем строкам), второй цикл —  по второму индексу, то есть по всем элементам в строках. Например,  вывести на экран двумерный массив в виде таблицы, разделяя элементы в  строке одним пробелом можно следующим образом:

int A[n][m];

for(int i = 0; i < n; ++i) {  // Выводим на экран строку i

    for(int j = 0; j < m; ++j)

        cout << A[i][j] << " ";

    cout << endl; // Строка завершается символом перехода на новую строку

}

А считать двумерный массив с клавиатуры можно при помощи еще более  простого алгоритма (массив вводится по строкам, то есть в порядке,  соответствующему первому примеру):

for(int i = 0; i < n; ++i)

    for(int j = 0; j < m; ++j)

        cin >> A[i][j];

20.

Строки в C++ могут быть разделены на C-строки и C++-строки, где к первым относятся различные вариации char*, а ко вторым относятся вариации std::basic_string<…>.

Все C++-строки представлены как псевдонимы stb::basic_string<…>, созданные с различными параметрами, а параметров у basic_string три:

  1. Тип символа – т.е. то, чем будет является(его физическое представление) каждый символ составляющий строку.

  2. Тип представляющий характеристики символа. Т.е. то, как символы должны сравниваться между собой и т.п.

  3. Тип распределителя памяти– позволяет задавать различные методы выделения памяти под строку.

  • std::find, std::find_if, std::find_if_not – различные вариации поиска символа в строке.

  • std::adjacent_find – поиск двух одинаковых, смежных символа.

  • std::search – поиск первого вхождения подстроки в строку.

  • std::find_end - поиск последнего вхождения подстроки в строку

  • std::find_first_of – поиск одного из заданных символов в строке

  • std::search_n – поиск n одинаковых символов подряд.

  • std::mismatch – ищет несовпадение в двух строках

  • std::string::find, std::string::rfind – поиск символа, или под-строки в строке. Первая версия для поиска первого вхождения, а вторая для поиска последнего вхождения

  • std::string::find_first_of – поиск первого вхождения одного из заданных символов

  • std::string::find_last_of – поиск последнего вхождения одного из заданных символов

  • std::string::find_first_not_of – поиск первого символа, который не представлен в заданном списке

  • std::string::find_last_not_of – поиск последнего символа, который не представлен в заданном списке

  • string::copy – выделение под-строки в стиле C – копирует под-строку в буфер.

  • string::substr – выделение под-строки в стиле C++ – возвращает под-строку в виде объекта string.

  • std::stoi, std::stol, std::stoll – строка в знаковое целое

  • std::stoul, std::stoull – строка в беззнаковое целое

  • std::stof, std::stod, std::stold – строка в вещественное число

string — класс с методами и переменными для организации работы со строками в языке программирования C++. Он включён в стандартную библиотеку C++.string использует единственный объект string для организации работы со строками. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.

Простейшая программа «Hello, world!» (с использованием библиотеки iostream) может быть записана так:

#include <iostream>

#include <string> // в Си: #include <string.h>

int main()

{

std::string str = "Hello, world!";

std::cout << str << std::endl; // в Си: puts(str);

return 0;

}

Соседние файлы в предмете Программирование