Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
programmirovanie_okonchat.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
153.81 Кб
Скачать

Вопрос18 Укажите особенности операторов go to, break, continue, return.

Оператор перехода goto предназначен для безусловной передачи управления в заданную точку программы. Его выполнение заключается в передаче управления оператору, помеченному заданной меткой. Общий вид оператора следующий:

goto <метка>;

. . . .

<метка>: <оператор>

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

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

  • не входить внутрь блока извне;

  • не входить внутрь условного оператора, то есть не передавать управление операторам, размещенным после служебных слов if или else;

  • не входить извне внутрь переключателя switch;

  • не передавать управление внутрь цикла.

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

   Оператор break

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

    Пример. Составить программу, печатающую название заданной восьмеричной цифры.

#include <iostream.h>

void main()

{

int ic;

cout << "\n Введите восьмеричную цифру:" ;

cin >> ic;

cout << "\n" << ic;

switch (ic)

{

case 0: cout << " - нуль"; break;

case 1: cout << " - один"; break;

case 2: cout << " - два"; break;

case 3: cout << " - три"; break;

case 4: cout << " - четыре"; break;

case 5: cout << " - пять"; break;

case 6: cout << " - шесть"; break;

case 7: cout << " - семь "; break;

default: cout << " - это не восьмеричная цифра!\n";

}

}

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

. Оператор continue

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

ПримерПодсчитать среднее значение только положительных элементов одномерного массива.

#include <iostream.h>

void main()

{

int a[20],n,k,i;

float s;

cout << "\nЗадайте количество чисел: ";

cin >> n;

cout << '\n';

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

{

cout << i+1 <<"-е число: ";

cin >> a[i];

cout << '\n';

}

for (s=0,k=0,i=0;i<n;i++)

{ if (a[i]<=0) continue;

k++;

s+=a[i];

}

if (k>0) { s/=k;

cout << "\nСреднее значение: "<< s ; }

else

cout << "\nВсе члены массива не положительны\n".}

Оператор return

Оператор return завершает выполнение данной функции и передает управление вызывающей функции. Оператор return, появившийся в главной функции main, вызывает завершение выполнения всей программы.

    Общий вид оператора return следующий:

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

или

return <выражение>;

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

    Пример. Составить программу возведения числа в куб с использованием функции.

#include <iostream.h>

void main()

{

float cube (float); //Прототип функции возведения в куб.

float n;

cout << "\nЗадайте число: ";

cin >> n;

cout << '\n';

cout << "\nЕго куб: "<< cube (n) << '\n';

}

float cube (float z)

//Функция возведения числа в куб.

{

return z*z*z;

}

    Выражение в операторе return не может присутствовать в том случае, если возвращаемое функцией значение имеет тип void, чаще всего означающий, что функция не возвращает никакого значения. Достижение "конца" функции (правой закрывающей фигурной скобки) эквивалентно выполнению оператора return без возвращаемого значения (т.е. оператор return в конце функции может быть опущен). Как правило, он опускается, когда функция имеет тип void.

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

билет 19 Структура программы на Си.

Для рассмотрения сруктуры программы рассмотрим простую программу на языке C++.

//Простая программа, написанная на языке C++.

#include <iostream.h>

main ()

{

int num=1;

cout << "Я - простая";

cout << " вычислительная машина.\n";

cout<<"Мое любимое число "<<num<<", потому что оно самое

первое.\n";

}

    Результат выполнения программы:

Я - простая вычислительная машина.

Мое любимое число 1, потому что оно самое первое.

    Комментарии к программе.

    //Простая программа, написанная на языке C++. Это комментарий. Использование комментариев облегчает процесс понимания вашей программы любым программистом Для записи комментария могут использоваться следующие символы:

  • два символа / (//) - все символы расположенные после этой лексемы, игнорируются компилятором. Однако таким образом можно задавать только "однострочный" комментарий. Если требуется расположить комментарий на нескольких строках, то перед началом каждой части комментария нужно располагать этот символ:

  • //Простая программа,

  • //написанная на языке C++.

  • символы /* и */ - отмечают, соответственно, начало комментария (/*) и его конец (*/). Компилятор "игнорирует" все символы, находящиеся между указанными конструкциями:

  • /*Простая программа, написанная на языке C++.*/

  • или

  • /*Простая программа,

  • написанная на языке C++.*/

   

    #include <iostream.h> - директива препроцессора. Подключение к нашей программе файла с именем iostream.h позволяет воспользоваться потоками ввода (cin) и вывода (cout),.

Символ # указывает, что она должна быть обработана препроцессором языка C++. Препроцессор осуществляет некоторую предварительную обработку текста программы перед началом компиляции.

   

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

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

   

    { и } - фигурные скобки отмечают начало и конец тела функции. Фигурные скобки применяются также и для того, чтобы объединить несколько операторов программы в составной оператор или блок (аналогичны операторным скобкам Begin и End языка Pascal).

   

    int num=1; - оператор описания, совмещенный с оператором присваивания. Сразу же при описании переменной мы присваиваем ей значение 1. Таким образом здесь не только выделяется память под размещение значения переменной, но и происходит инициализация выделенного участка памяти.

    Точка с запятой в конце программной строки указывает на то, что в ней содержится оператор языка C++, причем этот символ является здесь частью оператора, а не разделителем операторов, как в языке Pascal.

    Слово int является ключевым словом, определяющим один из простейших типов данных языка C++. Напомним, что ключевыми словами называются специальные зарезервированные слова, используемые для построения предложений языка.

. В языке C++ все переменные должны быть описаны, хотя описание переменной может находиться где угодно, но до первого использования этой переменной!

    cout<<"Я - простая"; - помещение в поток вывода фразы, заключенной в кавычки. Стандартный поток вывода связан с экраном, поэтому символы, заключенные в кавычки, появятся на экране дисплея.

     cout<<" вычислительная машина.\n"; - добавляет слова "вычислительная машина" в конец последней выведенной на экран фразы (в той же строке). Символы \n не появятся на экране. Эти символы служат директивой начать новую строку на устройстве вывода. Комбинация символов \n на самом деле представляет собой один символ,  называемый новая строка. Его смысл кратко формулируется так: начать вывод новой строки с самой левой колонки следующей строки. Для этого символа не существует соответствующей символьной клавиши клавиатуры (ему соответствует клавиша Enter).Символ новая строка служит одним из примеров того, что называется ESC-последовательностью.

Вместо символов \n можно использовать команду endl:

cout<<" вычислительная машина."<<endl;

        cout<<"Мое любимое число "<<num<<", потому что оно самое первое.\n"; - вывод на экран фраз, заключенных в кавычки, и значения переменной num.

        Файл, содержащий программу, может иметь любое имя, правда с тем ограничением, что оно должно удовлетворять ограничениям на имя в данной операционной системе и иметь расширение cpp. Например, prog.cpp или MMM.CPP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]