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

Инструкция возврата return

Операторы перехода

Операторы перехода выполняют безусловную передачу управления.

1) Инструкция прерывания break

Инструкция прерывания break обеспечивает прекращение выполнения самой внутренней из объемлющих её конструкций switch, while, do, for. Формат инструкции следующий:

 

break;

 

Пример 40.

// ищет сумму чисел вводимых с клавиатуры до тех пор, пока не будет введено 100 чисел или значение равное 0

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

{

cin>>x;

if( x==0) break; // если ввели 0, то суммирование заканчивается

s+=x;

}

2) Инструкция продолжения continue

Формат инструкции следующий:

continue;

 

Пример 41.

//ищет количество и сумму положительных чисел до ввода значения х=0

for( k=0,s=0,x=1;x!=0;)

{

cin>>x;

if (x<=0) continue;

k++;s+=x;

}

Когда введеное число х меньше либо равно 0, инструкция continue передает управление на очередную итерацию цикла for, не выполняя инструкции расчета количества и суммы положительных чисел.

Инструкция continue прерывает итерацию самого внутреннего из объемлющих её циклов.

 

3) Инструкция goto

Оператор goto имеет формат:

goto метка;

В теле той же функции должна присутствовать конструкция:

метка: инструкция;

 

Пример 42. Ввести несколько вариантов значений коэффициентов квадратного уравнения ax²+bx+c=0, a≠0. Вывести сообщение о наличие действительных корней для каждого варианта:

#include "stdafx.h"

#include <iostream>

#include <clocale> // файл, где определена функция setlocale (LC_CTYPE,"rus") //для вывода текста кириллицей;

#include <conio.h> // файл, где определена функция getch()

using namespace std;

void main()

{

setlocale (LC_CTYPE,"rus");

double a, b, c, d;

mes:cout<<"Введите коэффициенты квадратного уравнения = ";

cin>>a>>b>>c;

if (a == 0) { cout<<"Данное уравнение не является квадратным\n"; goto finish; }

d=b*b-4*a*c;

if (d >=0) cout<<"Данное уравнение имеет действительные корни\n";

else

{

cout<<"Данные введены некорректно’\n";

cout<<"Уравнение действительных решений не имеет\n";

goto mes;

}

finish: getch(); // ждать нажатия любой клавиши

}

 

Формат инструкции:

return выражение;

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

 

Пример 43.

int sum (int a, int b)

return (a+b);

 

Функция sum() имеет два формальных аргумента a и b типа int, и возвращает значение типа int, о чем говорит описатель, стоящий перед именем функции. Возвращаемое инструкцией return значение равно сумме фактических аргументов.

 

Пример 44.

int test(int a, double b)

{

double c;

if (a < 3) return 1;

else if (b >10) return 2;

else

{

c = a + b;

if ((2*c - b) == 11) return 3;

}

}

 

В этом примере инструкция return используется для выхода из функции в случае выполнения одного из проверяемых условий.

 

1.1 Функции ввода – вывода языка C

Когда программа начинает выполняться, для неё автоматически открываются три стандартных потока ввода – вывода, представленных в табл. 3.6.

Таблица 3.6

Стандартные потоки ввода - вывода

Стандартный поток Назначение Устройство по умолчанию
stdin Стандартное устройство ввода Клавиатура
stdout Стандартное устройство вывода Экран
stderr Стандартное устройство выдачи сообщений об ошибках Экран

 

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

#include <stdio.h>

Функции printf() для вывода и scanf() для ввода дают возможность при выполнении операций вывода или ввода преобразовывать числовые величины в их символьное предс­тавление и обратно, а также работать с текстовой информацией. Преобразование информации осуществляется этими функциями под управлением форматных строк.