Программирование >>  Процедурные приложения 

1 ... 38 39 40 [ 41 ] 42 43 44 ... 150


faverage = fsum/iv; cout << \nСреднее равно << faverage

<< \n ;

Тип результата: void

Поскольку с функциями, возвращающими значения типа void, мы уже познакомились, рассмотрим чуть более сложный пример. Как вы знаете, в C/C++ можно выводить числовую информацию в шестнадцатеричном, десятичном и восьмеричном формате, но не в двоичном. В следующей программе функция vbinary() преобразовывает полученное десятичное значение в двоичную форму и выводит его на экран. Цифры, составляющие двоичное число, не объединены в единое значение, а представляют собой массив данных.

* voidf.c

* Эта программа на языке С находит двоичный эквивалент заданного

* десятичного числа.

#include <stdio.h> void vbinary(int idata) ; int main () int ivalue;

printf ( Введите десятичное число: ); scanf( %d ,Sivalue) ; vbinary

(ivalue);

return (0); }

void vbinary (int idata)

int t = 0;

int iyourarray [50]; while (idata != 0) { iyourarray [t]= (idata % 2); idata /= 2;

t++; )

printf( \n );

for( ; t >= 0; t-- )

printf( %d ,iyourarray[t]); }

Преобразование числа в систему счисления более низкого порядка реализуется довольно простым математическим алгоритмом. Например, чтобы перевести десятичное число в двоичную систему, нужно разделить его на основание новой системы - 2 - максимально возможное количество раз. На каждом шаге результатом деления будет дробное число, состоящее из целой части и остатка. Целая часть используется для следующего деления на 2, а остаток определяет цифру двоичного числа в позиции, соответствующей номеру шага. В двоичной системе используются цифры 0 и 1.

В функции vbinary() этот алгоритм реализуется в цикле while. В результате операции деления по модулю (%) остаток от деления (0 или 1) заносится в массив iyourarray[]. Целая часть, полученная при делении, присваивается переменной idata. Этот процесс продолжается до тех пор, пока целая часть результата деления (переменная idata) не станет равной нулю.

Тип результата: char

В следующей программе на языке С функция clowercase() принимает аргумент типа charи возвращает значение такого же типа. Предполагается, что вводится буква в верхнем регистре. В функции clowercase() вызывается библиотечная функция tolower(), прототип которой находится в файле CTYPE.H, она переводит символ в нижний регистр.

* charf.c

* Эта программа на языке С преобразует символ из верхнего регистра в нижний.

#include <stdio.h>



#include <ctype.h>

char clowercase(char c) ;

int main () {

char clowchar, chichar;

printf( Введите букву в верхнем регистре. \n );

chichar = getchar();

clowchar = clowercase(chichar);

printf( %c\n ,clowchar);

return(0);

char clowercase(char c) { return(tolower(c));

Тип результата: bool

Ниже дан пример использования двух функций, is upper() и is lower(), которые возвращают значения типа bool, проверяя, представлен ли переданный им символ в верхнем или нижнем регистре соответственно. Этот тип данных специфичен для языка C++.

boolf.cpp

Эта программа на языке C++ демонстрирует возможность

возвращения функциями значений типа bool.

#include <iostream.h>

bool is upper(void) ; bool is lower(void) ;

int main () {

char cTestChar = T;

bool bIsUppercase, bIsLowercase;

bIsUppercase = is upper (cTestChar) ; bIsLowercase =

is lower(cTestChar);

cout << Буква << (blsUppercase ? является : не является

<< прописной.\n ;

cout<< Буква << {bIsLowercase? является : не является )

<< строчной.\п ;

return(0); }

bool is upper(int ch) {

return(ch>= A&& ch <= Z); }

bool is lower(int ch) {

return(ch >= a&& ch <= z); }

В этой программе для выбора выводимого сообщения применяется оператор ?:, что позволяет каждую операцию вывода записать в одну строку и не использовать многострочную инструкцию if /else.

Тип результата: int

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

* intf.c

* Эта программа на языке С возводит целое число в куб.

#include <stdio.h>

int icube(int ivalue); int n(ain()

int k, inumbercube;

for(k=0;k < 20;k += 2) {



inumbercube = icube(k);

printf( Ky6 числа%d равен%d\n ,k, inumbercube) } return(0);

int icube(int ivalue)

return(ivalue * ivalue * ivalue);

Тип результата: long

В следующей программе, написанной на языке C++, функция Ipower() получает целочисленный аргумент, возводит число 2 в степень, заданную аргументом, и возвращает значение типа long.

longf .cpp

Эта программа на языке C++ демонстрирует возможность возвращения функциями значений типа long. Функция Ipower() получает целое число. и

возводит 2 в степень, определяемую этим числом.

#include <iostream.h> long Ipower(int ivalue); int main()

int k;

long lanswer;

for(k =0;k < 20; k++) {

lanswer = Ipower(k);

cout<< 2 в степени << k<< равно << ianswer<< \n return(0); }

long Ipower(int ivalue) . int t;

long Iseed = 1;

for(t =0;t < ivalue; t++) Iseed *= 2; return(Iseed);

В функции Ipower() используется цикл, повторяющийся заданное число раз, в котором число 2 последовательно умножается само на себя. На практике для этого лучше применять стандартную функцию pow(), объявленную в файле МАТН.Н.

Тип результата: float

В следующем примере в функцию fproduct () передается массив чисел типа float и возвращается значение того же типа. Данная программа, написанная на языке C++, вычисляет произведение всех элементов массива.

floatf.cpp

Эта программа на языке C++ демонстрирует возможность возвращения

функциями значений типа float. Функция fproductO получает массив

данных типа floatи возвращает произведение элементов массива.

#include <iostream.h>

float fproduct(float farray[]);

int main()

float fmyarray[7] = (4.3,1.8,6.12,3.19,0.01234,0.1,9876.2}, float fmultiplied;

fmultiplied = fproduct(fmyarray) ;

cout<< Произведение всех элементов массива равно: << fmultiplied <<

\n ;

return(0); }

float fproduct(float farray[])



1 ... 38 39 40 [ 41 ] 42 43 44 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.077
При копировании материалов приветствуются ссылки.
Яндекс.Метрика