Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ВМИиП.docx
Скачиваний:
8
Добавлен:
18.04.2019
Размер:
233 Кб
Скачать

1.1.3. Элементарные функции ввода-вывода

<Stdio.h>

P rintf ([“Управляющая строка”][,Список аргументов]);

Оператор вывода функции

Const

Управляющая строка: как вводится информация и как преобразовывается

Может быть:

  1. Символьное преобразование

  2. Символьное управление переходом

  3. Любой вводимый текст

%

Количество десятичных знаков

[ - ] [ min] [ . ] [ dote ] Символьный преобразователь

Равнение по левому краю

Минимальное количество символов для отвода под аргумент

Printf(“%-10.7s”,”Программа”);  Прогамм _ _ _

c – один символ (char)

d – целое число (int)

f – число с плавающей точкой

s – вывод массива символов

\b – шаг назад

\f – новая страница

\n – новая строка

\r – возврат каретки

Scanf – ввод данных из входного потока cin

S

Const char*

canf ([“Управляющая строка”],[Список агрументов]);

% [ * ] [ max ] Символьный преобразователь

Подавление аргумента, ввод с клавиатуры или файла

Количество символов

Преобразователь

<iostream.h>

Cout<<10<<”x”<<3,15159<<”приблизительно равно”,,(10*4,14)<<endl;

Cout<<”Введите число формата Float”;

Cin>>x;

1.2. Функции

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

Ф

Заголовок

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

[ Спецификатор] [Int] ИМЯ ( [ [Типы данных] Имена формальных параметров] )

Тип возвращаемого результата

Уникальное

[Типы формальных параметров]

{

[ Определение локальных объектов ]

[ Исполнительная часть в виде операторов и вызовов других функций]

[ Оператор возврата return ]

}

Определение функции – текст функции, который содержит обязательно заголовок, описание типов формальных параметров и тело функции с локальными определениями и операторами.

Примеры заголовков:

  1. Float surface (float Per, int sat) – возвращается float

  2. Void surface (float Per; int sat) – не возвращается ничего

  3. Int surface (void) – возвращаемый тип Int не имеет параметров

Вызов функции:

  1. Имя_Переменной = Имя_Функции([С фактическими значениями параметров])

  2. Имя функции ([С фактическими значениями параметров]) – имеет return, 1 возвращается

Допускается деление вызова функции до ее описания. Но тогда в функции вызова должно быть описание прототипа вызываемой функции.

П

Описание типов формальных параметров. Две строчки можно заменить одной:

Void surface(int dl, int VI, int shi);

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

# unclude <iostream.h>

Void surface(dl, vi, shi)

Int dl, int vi, int shi;

{

Return 2*(dl*vi+dl*shi+vi*shi);

}

Void main(void)

{

Int dlina=10, visota=5, shirina, are;

Shirina=2;

Are=surface(dlina,visota,shirina);

Cout<<”Площадь параллелограмма равна”<<are;

}

Пример 1. Требуется использование прототипа функции.

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

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

#unclude <iostream.h>

#include <stdio.h>

Void main(void)

{

Float surface(float,int,float);

Float dlina=10.8, int visota=5, shirina;

Cin>>shirina;

Printf(“Площадь параллелограмма = %f\n”,surface(dlina, visota, shirina));

}

Float surface(float dl, int vi, float shr)

{*ar=2*(dl*vi+dl*shi+vi*shi);}

{return 2*(dl*vi+dl*shi+vi*shi);}

Для передачи информации в функцию существует 2 подхода:

  1. Посредством задания формальных параметров фактических значений при вызове. Т.е. явная передача.

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

Для возврата информации из функции существует 3 способа:

  1. Возврат информации неявным способом на основе использования общих объектов, определенных за пределами функции (объекты – переменные).

  2. Возврат единственного значения я помощью оператора return.

  3. Через список формальных параметров на основе использования инструментов адресов и ссылок.

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

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

Int *ar

*ar=…

Void main(void)

Cout<<&ar;

Операция разадресации: *Имя_Формального_Параметра = выражение;

Лекция 2 от 12.09.2011

26-го числа кр. Первую страницу раздаточного материала знать наизусть (!)

1.3. Расширение возможностей аппарата функций С++