Презентация Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык 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
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
![Понятие функции Функции - это](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img2.jpg)
Содержание слайда: Понятие функции
Функции - это самостоятельные единицы программы, предназначенные для решения конкретных подзадач, обычно повторяющиеся несколько раз.
Перед использованием функция должна быть объявлена
Все функции в языке Си – глобальные, т.е. функция не может быть объявлена внутри другой функции
В Си можно объявить функцию с помощью прототипа, т.е. заголовка функции, а полное ее описание сделать после функции main()
№5 слайд
![Список параметров функции](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img4.jpg)
Содержание слайда: Список параметров функции
перечень типов и имен параметров, разделенных запятыми.
Функция может не иметь параметров, но круглые скобки необходимы в любом случае.
Пример правильного списка параметров:
f (int х, int у, float z);
Пример неправильного списка параметров:
f (int х, у, float z);
№6 слайд
![Оператор return вызывает](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img5.jpg)
Содержание слайда: Оператор return
вызывает немедленный выход из текущей функции и возврат в вызывающую функцию.
используется для возврата значения функции.
в теле функции может быть несколько операторов return, но может не быть ни одного.
если нет return, возврат в вызывающую программу происходит после выполнения последнего оператора тела функции.
№7 слайд
![Пример функции . Возведение](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img6.jpg)
Содержание слайда: Пример функции 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 слайд
![Пример программы,](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img7.jpg)
Содержание слайда: Пример программы, использующей функцию 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 слайд
![Пример функции . функция для](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img8.jpg)
Содержание слайда: Пример функции 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;}
№11 слайд
![Область видимости переменных](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img10.jpg)
Содержание слайда: Область видимости переменных
Область действия (видимости) переменной - это правила, которые устанавливают, какие данные доступны из данного места программы.
С точки зрения области действия переменных различают три типа переменных:
глобальные
локальные
формальные параметры.
№12 слайд
![Локальные переменные Это](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img11.jpg)
Содержание слайда: Локальные переменные
Это переменные, объявленные внутри функции.
Локальная переменная доступна внутри блока, в котором она объявлена.
Локальная переменная существует пока выполняется блок, в котором эта переменная объявлена. При выходе из блока эта переменная (и ее значение) теряется.
№14 слайд
![Недостатки использования](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img13.jpg)
Содержание слайда: Недостатки использования глобальных переменных
они занимают память в течение всего времени работы программы;
делает функции менее общими и затрудняет их использование в других программах;
использование внешних переменных делает возможным появление ошибок из-за побочных явлений. Эти ошибки, как правило, трудно отыскать.
№16 слайд
![Параметры-значения Все](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img15.jpg)
Содержание слайда: Параметры-значения
Все аргументы функции передаются по значению
При вызове функции в стеке выделяется место для формальных параметров функции, и туда заносится значение фактического параметра, т. е. значение параметра при вызове функции.
Далее функция использует и меняет значения в стеке. При выходе из функции измененные значения параметров теряются.
В языке С вызванная функция не может изменить переменные, указанные в качестве фактических параметров в функции при обращении к ней.
№21 слайд
![Пример a. Передача данных по](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img20.jpg)
Содержание слайда: Пример 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) //реализация функции
{ … }
№25 слайд
![Пример . Функция поиска](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img24.jpg)
Содержание слайда: Пример 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) { … }
№28 слайд
![Постановка задачи Исходными](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img27.jpg)
Содержание слайда: Постановка задачи
Исходными данными для этой задачи являются:
Na, Nb – количество строк в матрицах,
Ma, Mb – количество столбцов в матрицах; целые числа, вводятся с клавиатуры.
А, В – матрицы, заполняются случайными числами в ходе выполнения программы.
Выходными данными являются произведения элементов выбранных строк матриц.
№29 слайд
![Метод решения задачи Решение](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img28.jpg)
Содержание слайда: Метод решения задачи
Решение нашей задачи можно разделить на несколько подзадач:
а) создание и заполнение матрицы заданного размера;
б) вывод матрицы на экран;
в) поиск строки, не содержащей нулей;
г) вычисление произведения элементов найденной строки.
Каждую из этих подзадач оформим в виде отдельной функции.
№30 слайд
![Создание и заполнение матрицы](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img29.jpg)
Содержание слайда: Создание и заполнение матрицы (функции InitMatr)
Матрица создается динамически.
Заполняется с помощью датчика случайных чисел с параметром
В качестве параметров передадим в эту функцию размерность матрицы: M и N.
Память под матрицу выделятся динамически, с использованием дополнительного массива указателей на начала строк матрицы.
Сама функция возвращает адрес начала массива указателей на начала строк матрицы.
Функция вызывается дважды: для матрицы А и для матрицы В
№34 слайд
![Поиск строки без нулей и](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img33.jpg)
Содержание слайда: Поиск строки без нулей и вычисление произведения элементов в строке
удобно оформить в виде отдельных функций. В качестве параметров передавать в эти функции
строку (одномерный массив)
ее размер (количество элементов в строке).
Функция поиска нулей возвращает 0, если нули в строке есть, и 1 , если нулей нет.
Функция вычисления произведения возвращает значение произведения.
№41 слайд
![Исходный текст программы](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img40.jpg)
Содержание слайда: Исходный текст программы (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 - матрица, передается через адрес массива указателей
//на начала строк
№43 слайд
![Исходный текст программы](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img42.jpg)
Содержание слайда: Исходный текст программы (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);
№45 слайд
![Исходный текст программы](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img44.jpg)
Содержание слайда: Исходный текст программы (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));
}
№50 слайд
![Задания для самостоятельного](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img49.jpg)
Содержание слайда: Задания для
самостоятельного решения
Вариант 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 слайд
![Вариант . Вариант .](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img50.jpg)
Содержание слайда: Вариант 4.
Вариант 4.
Разработать процедуру вычисления с заданной точностью eps по следующей итерационной формуле:
Вариант 5.
Разработать функцию поиска подстроки в массиве символов. При успешном поиске возвращать позицию подстроки относительно начала массива.
Вариант 6.
Даны три целые матрицы размером 9*4. Напечатать ту из них, в которой больше нулевых строк. Для подсчета количества нулевых строк, используйте функцию.
№52 слайд
![Вариант . Вариант . Написать](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img51.jpg)
Содержание слайда: Вариант 7.
Вариант 7.
Написать функцию, равномерно дополняющую строку пробелами до определенной длины и с ее помощью отформатировать простейший текст.
Вариант 8.
Даны три вещественных матрицы 4*4. Напечатать квадрат матрицы с наименьшим следом.
Вариант 9.
Ввести с клавиатуры матрицу 4*4 и подсчитать ее определитель. Процедуру подсчета определителя оформить в виде функции.
Вариант 10.
Написать функцию перевода строчных букв, введенного с клавиатуры текста, в прописные и обратно.
№53 слайд
![Контрольные вопросы по теме](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img52.jpg)
Содержание слайда: Контрольные вопросы
по теме работы
Что такое функция?
Что такое прототип функции?
Чем отличаются глобальные и локальные переменные?
Что такое формальные параметры?
Как передать аргументы в функцию из головной программы по значению?
Как передать аргументы в функцию из головной программы при помощи указателей?
Каким образом функция возвращает значения в программу?
№56 слайд
![Библиографический список](/documents_6/e99d1bdae6285f33dfed65c36105b12c/img55.jpg)
Содержание слайда: Библиографический список
Подбельский В.В., Фомин С.С. Курс программирования на языке Си: учебник. М.: ДМК Пресс, 2012. – 384 с.
Павловская Т.А. C/C++. Программирование на языке высокого уровня: учебник для студентов вузов, обучающихся по направлению "Информатика и вычисл. техника" СПб.: Питер, 2005. - 461 с.
Павловская Т. А., Щупак Ю. А. С++. Объектно-ориентированное программирование. Практикум. Практикум. — СПб.: Питер, 2006. — 265 с: ил.
Березин Б.И. Начальный курс C и C++ / Б.И. Березин, С.Б. Березин. - М.: ДИАЛОГ-МИФИ, 2001. - 288 с
Каширин И.Ю., Новичков В.С. От С к С++. Учебное пособие для вузов. – М.: Горячая линия – Телеком, 2012. – 334 с.
Скачать все slide презентации Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C) одним архивом:
Похожие презентации
-
Функции. Локальные переменные. Передача параметров. Рекурсия. Рисование рекурсивных картинок
-
Cоставные части программы, локальные и глобальные переменные. Функции
-
Подпрограммы. Определение функции, фактические и формальные параметры функции
-
PHP. Функции. Списки параметров переменной длины
-
Функции в языке программирования VB
-
Функции в языке СИ. Лекция 5
-
Использование функций. Функции без аргументов (параметров)
-
Переменные и функции
-
Создание и использование функций в языке Си
-
Символьные и строковые переменные. Функции и процедуры для обработки символьных и строковых переменных