Ввод и вывод данных
Инструкция возврата 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() для ввода дают возможность при выполнении операций вывода или ввода преобразовывать числовые величины в их символьное представление и обратно, а также работать с текстовой информацией. Преобразование информации осуществляется этими функциями под управлением форматных строк.