SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
старший преподаватель
кафедры «Автоматика и
процессы управления»
Поповкин Александр Викторович
«Работа с функциями»
cout() cin()
int main()
Синтаксис функции:
тип_результата имя_функции (объявления аргументов)
{
объявления и инструкции
}
Для возврата из функции используется оператор return:
return выражение;
Примеры функций
/* Возвращает квадрат целого числа */
int sqr(int x)
{
int y;
y = x*x;
return y;
}
Примеры функций
/* Нахождение среднего
арифметического вещественных чисел */
int average(int a, int b)
{
int r;
r = (a * b) / 2.0;
return r;
}
Примеры функций
/* Вывод целого числа на экран */
void printint(int num)
{
printf(“%d “, num);
}
Пример 1
Программа, которая выводит таблицу кубов чисел от 1 до 10 с функцией,
вычисляющей куб целого числа.
#include <stdio.h>
#include <conio.h>
/* Функция вычисляет куб числа */
int cube(int x)
{
int y;
y = x*x*x;
return y;
}
/* С этой функции начинается выполнение программы
*/
void main()
{ int i;
for (i = 1; i <= 10; i++)
printf("%2d %4dn", i, cube(i));
getch();
}
ЗАДАЧА 1
Написать программу для расчѐта периметра
прямоугольника с помощью функции
double perim(double a, double b)
Функция perim вычисляет и возвращает
периметр прямоугольника (тип double –
вещественное число). У этой функции два
аргумента – длины сторон прямоугольника,
переменные a и b типа double.
printf("P = %lf", perim(a, b));
Расчѐт периметра прямоугольника с помощью
вызова функции perim. Результат
передаѐтся функции printf, которая и
выводит его на экран.
//* Функция вычисляет периметр прямоугольника */
double perim(double a, double b)
{
int p;
p = 2.0*(a+b);
return p;
}
/* Начало программы */
int main()
{ // Инициализация переменных
??????????????
// Ввод a и b
???????????????
// Вычисление периметра и вывод результата
??????????????
}
ЗАДАЧА 2
Написать программу, выводящую 10 целых случайных
чисел в диапазоне от 0 до n (n вводится с клавиатуры).
В ней должны быть три функции
void randomize() – сброс генератора случайных чисел
int random(int n) – возвращает случайное число от 0 до n
int main() – основная программа
/*** Функции ***/
/* Сброс генератора случайных чисел */
void randomize()
{
???????????
}
/* Генерация случайного числа от 1 до n */
int random(int n)
{
???????????
}
int main()
{
cout << "Output random numbers from 0 to nn";
// Ввести диапазон
// Сбросить генератор случайных чисел вызовом функции
// Вывести десять случайных чисел
// Ожидать нажатия клавиши
}
ЗАДАЧА 3
Объявить два целочисленных массива с разными размерами и написать
функцию, которая заполняет их элементы значениями и показывает на
экран. Функция должна принимать два параметра – массив и его размер
void fillAndShowArray(int arrayForFilling[], int size);
int main()
{
const int SIZE1 = 8;
const int SIZE2 = 14;
int arrayForFilling1 [SIZE1] = {};
int arrayForFilling2 [SIZE2] = {};
fillAndShowArray(arrayForFilling1, SIZE1);
fillAndShowArray(arrayForFilling2, SIZE2);
return 0;
}
void fillAndShowArray(int arrayForFilling[], int size)
{
for (int i = 0; i < ??; i++)
{
arrayForFilling[i] = i + 1????????????
cout << arrayForFilling[i] << " ";
}
cout << endl;
}

Contenu connexe

Tendances

C language lect_06_introduction
C language lect_06_introductionC language lect_06_introduction
C language lect_06_introductionRoman Brovko
 
C language lect_07_introduction
C language lect_07_introductionC language lect_07_introduction
C language lect_07_introductionRoman Brovko
 
4.2 Перегрузка
4.2 Перегрузка4.2 Перегрузка
4.2 ПерегрузкаDEVTYPE
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3Zhanna Kazakova
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
использование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачиспользование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачweidar
 
лабораторная работа №5
лабораторная работа №5лабораторная работа №5
лабораторная работа №5Zhanna Kazakova
 
указатель на функцию
указатель на функциюуказатель на функцию
указатель на функциюAleksandr Pavlenko
 
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производнойDmitry Bulgakov
 
Prezentatsia
Prezentatsia Prezentatsia
Prezentatsia weidar
 
6.2 Шаблоны функций
6.2 Шаблоны функций6.2 Шаблоны функций
6.2 Шаблоны функцийDEVTYPE
 
4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методовDEVTYPE
 
Ввод - вывод алфавитно цифровой информации
Ввод - вывод алфавитно цифровой информацииВвод - вывод алфавитно цифровой информации
Ввод - вывод алфавитно цифровой информацииLungu
 

Tendances (20)

8 3-5
8 3-58 3-5
8 3-5
 
C language lect_06_introduction
C language lect_06_introductionC language lect_06_introduction
C language lect_06_introduction
 
C language lect_07_introduction
C language lect_07_introductionC language lect_07_introduction
C language lect_07_introduction
 
8 3-3
8 3-38 3-3
8 3-3
 
4.2 Перегрузка
4.2 Перегрузка4.2 Перегрузка
4.2 Перегрузка
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
использование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачиспользование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задач
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
8 3-4
8 3-48 3-4
8 3-4
 
8 3-2
8 3-28 3-2
8 3-2
 
лабораторная работа №5
лабораторная работа №5лабораторная работа №5
лабораторная работа №5
 
указатель на функцию
указатель на функциюуказатель на функцию
указатель на функцию
 
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_alNakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
 
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производной
 
лекция 3
лекция 3лекция 3
лекция 3
 
Prezentatsia
Prezentatsia Prezentatsia
Prezentatsia
 
6.2 Шаблоны функций
6.2 Шаблоны функций6.2 Шаблоны функций
6.2 Шаблоны функций
 
4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов
 
Ввод - вывод алфавитно цифровой информации
Ввод - вывод алфавитно цифровой информацииВвод - вывод алфавитно цифровой информации
Ввод - вывод алфавитно цифровой информации
 

En vedette (13)

Presentation lab3-sem3-c++
Presentation lab3-sem3-c++Presentation lab3-sem3-c++
Presentation lab3-sem3-c++
 
Enhancing demand for creative industries
Enhancing demand for creative industriesEnhancing demand for creative industries
Enhancing demand for creative industries
 
ASP.NET MVC.
ASP.NET MVC.ASP.NET MVC.
ASP.NET MVC.
 
Marketing y Publicidad En Tiempos De Crisis
Marketing y Publicidad En Tiempos De CrisisMarketing y Publicidad En Tiempos De Crisis
Marketing y Publicidad En Tiempos De Crisis
 
Developing or Deepening your Law Practice Niche
Developing or Deepening your Law Practice Niche Developing or Deepening your Law Practice Niche
Developing or Deepening your Law Practice Niche
 
Strikingly
StrikinglyStrikingly
Strikingly
 
16 Career Clusters
16 Career Clusters16 Career Clusters
16 Career Clusters
 
Ensayo cora
Ensayo coraEnsayo cora
Ensayo cora
 
Open PHACTS MIOSS may 2016
Open PHACTS MIOSS may 2016Open PHACTS MIOSS may 2016
Open PHACTS MIOSS may 2016
 
Medwiser: Empowering Youth to Save Youth
Medwiser: Empowering Youth to Save YouthMedwiser: Empowering Youth to Save Youth
Medwiser: Empowering Youth to Save Youth
 
ImCup
ImCupImCup
ImCup
 
Electronics for hombrew
Electronics for hombrewElectronics for hombrew
Electronics for hombrew
 
SEO+UX = SEOUX @UXRepublic
SEO+UX = SEOUX @UXRepublicSEO+UX = SEOUX @UXRepublic
SEO+UX = SEOUX @UXRepublic
 

Similaire à Progr labrab-6-2013 - c++ - functions

презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
C++ tema 1
C++ tema 1C++ tema 1
C++ tema 1krisT7
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++mcroitor
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторовDEVTYPE
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухинcorehard_by
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДIT_1315
 
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...Alexey Paznikov
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...Alexey Paznikov
 
Something about Golang
Something about GolangSomething about Golang
Something about GolangAnton Arhipov
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Mikhail Kurnosov
 

Similaire à Progr labrab-6-2013 - c++ - functions (20)

Step cpp022
Step cpp022Step cpp022
Step cpp022
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
C++ tema 1
C++ tema 1C++ tema 1
C++ tema 1
 
Урок 1. Что такое функциональное программирование
Урок 1. Что такое функциональное программированиеУрок 1. Что такое функциональное программирование
Урок 1. Что такое функциональное программирование
 
лекция 1
лекция 1лекция 1
лекция 1
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторов
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОД
 
лр1
лр1лр1
лр1
 
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
лекция 3
лекция 3лекция 3
лекция 3
 
Something about Golang
Something about GolangSomething about Golang
Something about Golang
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
Erlang
ErlangErlang
Erlang
 

Plus de Moscow Aviation Institute (National Research University), MAI (7)

Инструкция по активации Azure Pass
Инструкция по активации Azure PassИнструкция по активации Azure Pass
Инструкция по активации Azure Pass
 
Open imcup ver.1.0
Open imcup ver.1.0Open imcup ver.1.0
Open imcup ver.1.0
 
Oop — cpp 1
Oop — cpp 1Oop — cpp 1
Oop — cpp 1
 
работа с файлами в с++
работа с файлами в с++работа с файлами в с++
работа с файлами в с++
 
Progr labrab-4-2013-c++
Progr labrab-4-2013-c++Progr labrab-4-2013-c++
Progr labrab-4-2013-c++
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 
lecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computerlecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computer
 

Progr labrab-6-2013 - c++ - functions

  • 1. старший преподаватель кафедры «Автоматика и процессы управления» Поповкин Александр Викторович
  • 3. Синтаксис функции: тип_результата имя_функции (объявления аргументов) { объявления и инструкции } Для возврата из функции используется оператор return: return выражение;
  • 4. Примеры функций /* Возвращает квадрат целого числа */ int sqr(int x) { int y; y = x*x; return y; }
  • 5. Примеры функций /* Нахождение среднего арифметического вещественных чисел */ int average(int a, int b) { int r; r = (a * b) / 2.0; return r; }
  • 6. Примеры функций /* Вывод целого числа на экран */ void printint(int num) { printf(“%d “, num); }
  • 7. Пример 1 Программа, которая выводит таблицу кубов чисел от 1 до 10 с функцией, вычисляющей куб целого числа. #include <stdio.h> #include <conio.h> /* Функция вычисляет куб числа */ int cube(int x) { int y; y = x*x*x; return y; } /* С этой функции начинается выполнение программы */ void main() { int i; for (i = 1; i <= 10; i++) printf("%2d %4dn", i, cube(i)); getch(); }
  • 8. ЗАДАЧА 1 Написать программу для расчѐта периметра прямоугольника с помощью функции
  • 9. double perim(double a, double b) Функция perim вычисляет и возвращает периметр прямоугольника (тип double – вещественное число). У этой функции два аргумента – длины сторон прямоугольника, переменные a и b типа double. printf("P = %lf", perim(a, b)); Расчѐт периметра прямоугольника с помощью вызова функции perim. Результат передаѐтся функции printf, которая и выводит его на экран.
  • 10. //* Функция вычисляет периметр прямоугольника */ double perim(double a, double b) { int p; p = 2.0*(a+b); return p; } /* Начало программы */ int main() { // Инициализация переменных ?????????????? // Ввод a и b ??????????????? // Вычисление периметра и вывод результата ?????????????? }
  • 11. ЗАДАЧА 2 Написать программу, выводящую 10 целых случайных чисел в диапазоне от 0 до n (n вводится с клавиатуры). В ней должны быть три функции void randomize() – сброс генератора случайных чисел int random(int n) – возвращает случайное число от 0 до n int main() – основная программа
  • 12. /*** Функции ***/ /* Сброс генератора случайных чисел */ void randomize() { ??????????? } /* Генерация случайного числа от 1 до n */ int random(int n) { ??????????? } int main() { cout << "Output random numbers from 0 to nn"; // Ввести диапазон // Сбросить генератор случайных чисел вызовом функции // Вывести десять случайных чисел // Ожидать нажатия клавиши }
  • 13. ЗАДАЧА 3 Объявить два целочисленных массива с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер
  • 14. void fillAndShowArray(int arrayForFilling[], int size); int main() { const int SIZE1 = 8; const int SIZE2 = 14; int arrayForFilling1 [SIZE1] = {}; int arrayForFilling2 [SIZE2] = {}; fillAndShowArray(arrayForFilling1, SIZE1); fillAndShowArray(arrayForFilling2, SIZE2); return 0; } void fillAndShowArray(int arrayForFilling[], int size) { for (int i = 0; i < ??; i++) { arrayForFilling[i] = i + 1???????????? cout << arrayForFilling[i] << " "; } cout << endl; }