Презентация Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 57 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    57 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    542.50 kB
  • Просмотров:
    88
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Функции Лекция -
Содержание слайда: Функции Лекция 14 - 15 Иллюстративный материал к лекциям по алгоритмизации и программированию Автор Саблина Н.Г. 2016 г.

№2 слайд
Содержание Содержание
Содержание слайда: Содержание Содержание

№3 слайд
Понятие функции Функции - это
Содержание слайда: Понятие функции Функции - это самостоятельные единицы программы, предназначенные для решения конкретных подзадач, обычно повторяющиеся несколько раз. Перед использованием функция должна быть объявлена Все функции в языке Си – глобальные, т.е. функция не может быть объявлена внутри другой функции В Си можно объявить функцию с помощью прототипа, т.е. заголовка функции, а полное ее описание сделать после функции main()

№4 слайд
Объявление функции тип lt имя
Содержание слайда: Объявление функции тип <имя функции> (список параметров) { тело функции } Функция может возвращать результат Тип определяет тип значения, которое возвращает функция Если тип не указан, то по умолчанию функция возвращает целое значение (типа int).

№5 слайд
Список параметров функции
Содержание слайда: Список параметров функции перечень типов и имен параметров, разделенных запятыми. Функция может не иметь параметров, но круглые скобки необходимы в любом случае. Пример правильного списка параметров: f (int х, int у, float z); Пример неправильного списка параметров: f (int х, у, float z);

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

№7 слайд
Пример функции . Возведение
Содержание слайда: Пример функции 1. Возведение неотрицательного числа а в натуральную степень b float step (float a, int b) { int i; float s; if(a<0) return (-1); /* основание отрицательное */ s=1; for ( i=b; i; i--) s*=a; //s=s*a; return s; } Эта функция возвращает значение -1, если основание отрицательное, и аb, если основание неотрицательное.

№8 слайд
Пример программы,
Содержание слайда: Пример программы, использующей функцию step (): #include <stdio.h> float step (float , int ) ; //прототип функции main() {float x; int y; printf (" \nВведите основание степени x="); scanf ("%f", &x); printf (" Введите показатель степени y="); scanf ("%d", &y); if (step (x,y) +1) printf(" x в стпени y=%f\n", step(x,y)); else printf(" основание отрицательно \n"); } float step(float a, int b) { … return s; }

№9 слайд
Пример функции . функция для
Содержание слайда: Пример функции 2. функция для нахождения наибольшего из двух целых чисел a) int max(int a, int b) {int m; if(a>b) m=a; else m=b; return m;} b) без использования дополнительной переменной: int max(int a, int b) { if(a>b) return a; else return b;} c) короткий if (без ветви else) : int max(int a, int b) { if(a>b) return a; return b;} d) c использованием условной операции: int max(int a, int b){ return (a>b)? a: b;}

№10 слайд
Формальные и фактические
Содержание слайда: Формальные и фактические параметры функции Формальные параметры - это переменные, объявленные при описании функций как ее аргументы. Фактические параметры - это параметры, с которыми функция вызывается для выполнения

№11 слайд
Область видимости переменных
Содержание слайда: Область видимости переменных Область действия (видимости) переменной - это правила, которые устанавливают, какие данные доступны из данного места программы. С точки зрения области действия переменных различают три типа переменных: глобальные локальные формальные параметры.

№12 слайд
Локальные переменные Это
Содержание слайда: Локальные переменные Это переменные, объявленные внутри функции. Локальная переменная доступна внутри блока, в котором она объявлена. Локальная переменная существует пока выполняется блок, в котором эта переменная объявлена. При выходе из блока эта переменная (и ее значение) теряется.

№13 слайд
Глобальные переменные Это
Содержание слайда: Глобальные переменные Это переменные, объявленные вне какой-либо функции. Могут быть использованы в любом месте программы, но перед их использованием они должны быть объявлены. Область действия глобальной переменной - вся программа.

№14 слайд
Недостатки использования
Содержание слайда: Недостатки использования глобальных переменных они занимают память в течение всего времени работы программы; делает функции менее общими и затрудняет их использование в других программах; использование внешних переменных делает возможным появление ошибок из-за побочных явлений. Эти ошибки, как правило, трудно отыскать.

№15 слайд
Формальные параметры
Содержание слайда: Формальные параметры используются в теле функции так же, как локальные переменные. Область действия формальных параметров - блок, являющийся телом функции.

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

№17 слайд
Пример . Передача данных по
Содержание слайда: Пример 3. Передача данных по значению (1) void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; }

№18 слайд
Пример . Передача данных по
Содержание слайда: Пример 3. Передача данных по значению (2)

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

№20 слайд
Пример a. Передача данных по
Содержание слайда: Пример 3a. Передача данных по ссылке (1) void swap1(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; }

№21 слайд
Пример a. Передача данных по
Содержание слайда: Пример 3a. Передача данных по ссылке (2) #include <stdio.h> void swap1(int* a, int* b); //прототип функции void main( ) { int x = 5, y = 10; printf (“Вначале x = %d и y = %d\n”, x, y); swap1 (&x, &y); printf (“Теперь x = %d и y = %d\n”, x, y); } void swap1 (int* a, int* b) //реализация функции { … }

№22 слайд
Пример а. Передача данных по
Содержание слайда: Пример 3а. Передача данных по ссылке (3)

№23 слайд
Передача массивов в функцию
Содержание слайда: Передача массивов в функцию Если в качестве аргумента функции используется массив, то необходимо в качестве формального параметра передать адрес начала массива. Адрес любого другого элемента массива можно вычислить по его индексу и типу элементов массива.

№24 слайд
Пример . Функция поиска
Содержание слайда: Пример 4. Функция поиска максимального значения в массиве (1) int max_m (int *a, int N) {int im, j; im = 0; for(j = 1; j < N; j++) if(a[j] > a[im]) im = j; return a[im]; }

№25 слайд
Пример . Функция поиска
Содержание слайда: Пример 4. Функция поиска максимального значения в массиве (2) #include <stdio.h> int max_m(int *a, int N); void main( ) {int N, i, mas[100], max; puts(“Введите размер массива, но не более 100”); scanf(“%d”, &N); for(i = 0; i < N; i++) mas[i] = random(100); max=max_m (mas, N); printf(“Максимальный элемент равен %d”, max); } //реализация функции max_m int max_m(int *a, int N) { … }

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

№27 слайд
Пример . Поиск строк матрицы,
Содержание слайда: Пример 5. Поиск строк матрицы, не содержащих нулей Имеются две матрицы А и В натуральных чисел размерностью Na x Ma, Nb x Mb соответственно. Вычислить произведение элементов в тех строках матриц А и В, которые не содержат нулевых элементов.

№28 слайд
Постановка задачи Исходными
Содержание слайда: Постановка задачи Исходными данными для этой задачи являются: Na, Nb – количество строк в матрицах, Ma, Mb – количество столбцов в матрицах; целые числа, вводятся с клавиатуры. А, В – матрицы, заполняются случайными числами в ходе выполнения программы. Выходными данными являются произведения элементов выбранных строк матриц.

№29 слайд
Метод решения задачи Решение
Содержание слайда: Метод решения задачи Решение нашей задачи можно разделить на несколько подзадач: а) создание и заполнение матрицы заданного размера; б) вывод матрицы на экран; в) поиск строки, не содержащей нулей; г) вычисление произведения элементов найденной строки. Каждую из этих подзадач оформим в виде отдельной функции.

№30 слайд
Создание и заполнение матрицы
Содержание слайда: Создание и заполнение матрицы (функции InitMatr) Матрица создается динамически. Заполняется с помощью датчика случайных чисел с параметром В качестве параметров передадим в эту функцию размерность матрицы: M и N. Память под матрицу выделятся динамически, с использованием дополнительного массива указателей на начала строк матрицы. Сама функция возвращает адрес начала массива указателей на начала строк матрицы. Функция вызывается дважды: для матрицы А и для матрицы В

№31 слайд
Схема алгоритма формирования
Содержание слайда: Схема алгоритма формирования матрицы

№32 слайд
Вывод матрицы на экран
Содержание слайда: Вывод матрицы на экран (функция OutMatr) Через параметры в эту функцию будут передаваться: размерность матрицы (передается по значению), сама матрица (передается по ссылке на начало массива указателей). Функция вызывается дважды: для матрицы А и для матрицы В

№33 слайд
Схема алгоритма вывода
Содержание слайда: Схема алгоритма вывода матрицы на экран

№34 слайд
Поиск строки без нулей и
Содержание слайда: Поиск строки без нулей и вычисление произведения элементов в строке удобно оформить в виде отдельных функций. В качестве параметров передавать в эти функции строку (одномерный массив) ее размер (количество элементов в строке). Функция поиска нулей возвращает 0, если нули в строке есть, и 1 , если нулей нет. Функция вычисления произведения возвращает значение произведения.

№35 слайд
Алгоритм поиска строки без
Содержание слайда: Алгоритм поиска строки без нулей

№36 слайд
Схема алгоритма вычисления
Содержание слайда: Схема алгоритма вычисления произведения элементов строки матрицы (функция PrStr)

№37 слайд
Схема главной функции
Содержание слайда: Схема главной функции (1)

№38 слайд
Схема главной функции
Содержание слайда: Схема главной функции (2)

№39 слайд
Схема главной функции
Содержание слайда: Схема главной функции (3)

№40 слайд
Схема главной функции
Содержание слайда: Схема главной функции (4)

№41 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (1) #include <stdio.h> #include <stdlib.h> //прототипы функций int ** InitMatr (int N,int M); //N,M -размерность матрицы; параметры-значения //функция возвращает адрес созданной матрицы void OutMatr(int **A, int N, int M); //N,M -размерность матрицы; //A - матрица, передается через адрес массива указателей //на начала строк

№42 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (2) //---Функция определения в строке нулевых элементов ---- int NulStr (int *S, int M); //S - адрес строки массива, M - кол-во элементов в строке //---Функция вычисления произведения элементов в строке-- long int PrStr(int * S, int M);

№43 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (3) //--------Головная программа -------- main() { int ** A, **B ; //адреса исходных матриц} int Na,Ma,Nb,Mb; // размерности матриц //ввод исходных данных printf("\nВведите размеры матриц A и B\n"); printf("Количество строк в матрице А Na=");scanf("%d",&Na); printf (" Количество столбцов в матрице А Ma="); scanf("%d",&Ma); printf (" Количество строк в матрице В Nb=");scanf("%d",&Nb); printf (" Количество столбцов в матрице В Mb="); scanf("%d",&Mb);

№44 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (4) randomize(); A=InitMatr(Na,Ma); //Заполнение матрицы A B=InitMatr(Nb,Mb); // Заполнение матрицы B //Вывод исходных матриц на экран printf ("\nMaтрица A\n"); OutMatr(A,Na,Ma); printf("\nMaтрица B\n"); OutMatr(B,Nb,Mb);

№45 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (5) //printf ('Произведения элементов в строках без нулей '); printf ("\n В мaтрице A:\n" ); for (int j=0; j<Na ; j++) if (NulStr (A[j], Ma)) printf ( "\nСтрока %d P=%d", j, PrStr(A[j], Ma)); printf ("\n В мaтрице B:\n" ); for ( j=0; j<Nb ; j++) if (NulStr (B[j], Mb)) printf ( "\nСтрока %d P=%d", j, PrStr(B[j], Mb)); }

№46 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (6) //---------- функция заполнения матрицы ----------------} int ** InitMatr (int N,int M) {int ** A; A=new int* [N]; for (int i=0 ; i< N; i++) A[i]=new int [M]; for (i=0 ; i< N; i++) for (int j=0; j<M; j++) A[i][j]=random(10); return A; }

№47 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (7) //----функция вывода матрицы на экран------} void OutMatr(int **A, int N, int M) { for (int i=0 ; i< N; i++) { for (int j=0; j<M; j++) printf ("%4d ", A[i][j]); printf("\n");} }

№48 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (8) //{--Функция определения в строке нулевых элементов ----} int NulStr (int *S, int M) { for (int i=0; i< M; i++) if (S[i]==0) return 0; return 1; }

№49 слайд
Исходный текст программы
Содержание слайда: Исходный текст программы (9) //--Функция вычисления произведения элементов в строке— long int PrStr(int *S, int M) { long int P=1; for (int i=0; i< M ; i++) P=P*S[i]; return P; }

№50 слайд
Задания для самостоятельного
Содержание слайда: Задания для самостоятельного решения Вариант 1. Описать функцию next() без параметров, которая считывает с клавиатуры первый символ, отличный от пробела, и объявляет его своим значением. Использовать эту функцию для подсчета количества отличных от пробела символов вводимого текста. Вариант 2. Даны длины a, b, c сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. Длина медианы, проведенной к стороне a, равна Вариант 3. Описать рекурсивную функцию root(f,a,b,eps), которая методом деления отрезка пополам находит с точностью eps корень уравнения f(x)=0 на отрезке [a,b]. (Считать, что eps > 0, a > b, f(a)*f(b) < 0). Найти с ее помощью один корень уравнения sin(x)=0.5.

№51 слайд
Вариант . Вариант .
Содержание слайда: Вариант 4. Вариант 4. Разработать процедуру вычисления с заданной точностью eps по следующей итерационной формуле: Вариант 5. Разработать функцию поиска подстроки в массиве символов. При успешном поиске возвращать позицию подстроки относительно начала массива. Вариант 6. Даны три целые матрицы размером 9*4. Напечатать ту из них, в которой больше нулевых строк. Для подсчета количества нулевых строк, используйте функцию.

№52 слайд
Вариант . Вариант . Написать
Содержание слайда: Вариант 7. Вариант 7. Написать функцию, равномерно дополняющую строку пробелами до определенной длины и с ее помощью отформатировать простейший текст. Вариант 8. Даны три вещественных матрицы 4*4. Напечатать квадрат матрицы с наименьшим следом. Вариант 9. Ввести с клавиатуры матрицу 4*4 и подсчитать ее определитель. Процедуру подсчета определителя оформить в виде функции. Вариант 10. Написать функцию перевода строчных букв, введенного с клавиатуры текста, в прописные и обратно.

№53 слайд
Контрольные вопросы по теме
Содержание слайда: Контрольные вопросы по теме работы Что такое функция? Что такое прототип функции? Чем отличаются глобальные и локальные переменные? Что такое формальные параметры? Как передать аргументы в функцию из головной программы по значению? Как передать аргументы в функцию из головной программы при помощи указателей? Каким образом функция возвращает значения в программу?

№54 слайд
Для чего нужен оператор
Содержание слайда: Для чего нужен оператор return? Для чего нужен оператор return? Как передать массив функции? Где должна быть описана функция и где может располагаться тело функции?

№55 слайд
Итоги Рассмотренные вопросы
Содержание слайда: Итоги Рассмотренные вопросы: Функции Прототип функции Типы переменных Формальные параметры 

№56 слайд
Библиографический список
Содержание слайда: Библиографический список Подбельский В.В., Фомин С.С. Курс программирования на языке Си: учебник. М.: ДМК Пресс, 2012. – 384 с. Павловская Т.А. C/C++. Программирование на языке высокого уровня: учебник для студентов вузов, обучающихся по направлению "Информатика и вычисл. техника" СПб.: Питер, 2005. - 461 с. Павловская Т. А., Щупак Ю. А. С++. Объектно-ориентированное программирование. Практикум. Практикум. — СПб.: Питер, 2006. — 265 с: ил. Березин Б.И. Начальный курс C и C++ / Б.И. Березин, С.Б. Березин. - М.: ДИАЛОГ-МИФИ, 2001. - 288 с Каширин И.Ю., Новичков В.С. От С к С++. Учебное пособие для вузов. – М.: Горячая линия – Телеком, 2012. – 334 с.

№57 слайд
Автор Саблина Наталья
Содержание слайда: Автор: Саблина Наталья Григорьевна Ст. преподаватель каф. РТС УрФУ

Скачать все slide презентации Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C) одним архивом: