Цикл с постусловием (dowhile)



Nbsp;

Билет № 3

Базовые конструкции структурного программирования

 

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

Оператор "выражение"

Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. Частным случаем выражения является пустой оператор ; (он используется, когда по синтаксису оператор требуется, а по смыслу - нет). Примеры:

i++;                             //выполняется операция инкремента

a* = b + c;                   //выполняется умножение с присваиванием

 

Операторы ветвления. Условный оператор if

Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 3.1. Формат оператора:

if ( выражение ) оператор_1; [else оператор_2;]

Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю, выполняется первый оператор, иначе - второй. После этого управление передается на оператор, следующий за условным. Одна из ветвей может отсутствовать.

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

 

Примеры:

if (a<0) b = 1;                                         

if (a<b && (a>d || a==0)) b++;

else {b* = a; a = 0;}                    

if (a<b) {if (a<c) m = a; else m = c;}

else       {if (b<c) m = b; else m = c;}

 

Оператор switch

Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:

switch ( выражение ){

case константное_выражение_1: операторы_1;

case константное_выражение_2: операторы 2;

case константное_выражение_n: операторы n;

[Default: операторы ;]}

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

Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).

Пример (программа реализует простейший калькулятор на 4 действия):

switch (op)

 {

 case '+': res = a + b; break;

 case '-': res = a - b; break;

 case '*': res = a * b; break;

 case '/': res = a / b; break;

default : cout<<"\nНеизвестная операция";

}

 

Выход из переключателя обычно выполняется с помощью операторов break или return.

 

Операторы цикла

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

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

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

Нельзя передавать управление извне внутрь цикла. Выход из цикла возможен как при выполнении условия выхода, так и по операторам break, return или безусловного перехода.

 

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

Цикл с предусловием реализует структурную схему, приведенную на рис. 3.3 (а), и имеет вид:

while ( выражение ) оператор;

Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Если выражение не равно 0 (истинно), выполняется оператор цикла, после чего опять вычисляется выражение. Если при первой проверке выражение равно 0, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему.

 

 

 

while (X<=Xk)

 {                                             //проверка условия выхода

printf("| %5.2f | %5.2f |\n", X, X*X + 1);      //тело

X += Dx;                    //модификация

 }

 

Цикл с постусловием (dowhile)

Цикл с постусловием реализует структурную схему, приведенную на рис. 3.3 (б), и имеет вид:

do оператор while выражение;

Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение не станет равным нулю или в теле цикла не будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.

 

do{

            cout << "\nКупи слоника! ";

            cin >> answer;

}while (answer != 'y');}

 

Цикл с параметром имеет следующий формат:

for ( инициализация; выражение; модификации) оператор;

 

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

Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется.

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

Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). В любой части можно использовать операцию "запятая" (последовательное вычисление), например:

for (int i = 1, s = 0; i<=100; i++)

s += i; // сумма чисел от 1 до 100

 

Процессы в Windows

 

Все программы и действия на компьютере выполняются в определенных процессах. Некоторые приложения используют собственные, некоторые - системные. Задачи одной и той же программы могут выполняться в разных процессах, в зависимости от характера самой задачи. Увидеть весь список запущенных процессов можно, нажав правый клик на панели задач и выбрав "Запустить диспетчер задач" (Вкладка "Процессы")

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

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

 

2. Задача. Сформировать новый массив B, включив в него все положительные элементы исходного массива A, и вывести его на экран.

 

#include <iostream>

#include <stdio.h>

const int N=10;

 

int main(int argc, char** argv) {

     

int i, A[N]={1,7,8,-9,6,8,5,3,-2,5},B[N], count = 0;

for ( i=0; i<N; i++ )

if ( A[i]>0 ) {

B[count]=A[i];

count ++; }

printf("\n Result:\n");

for ( i=0; i<count; i ++ )

printf("%d ", B[i]);

return 0;}

 

Билет № 6


Дата добавления: 2018-02-28; просмотров: 384; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!