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

Нажмите для полного просмотра!
Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №1Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №2Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №3Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №4Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №5Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №6Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №7Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №8Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №9Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №10Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №11Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №12Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №13Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №14Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №15Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №16Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №17Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №18Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №19Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №20Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №21Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №22Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №23Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №24Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №25Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №26Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №27Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №28Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №29Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №30Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №31Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №32Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №33Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №34Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №35Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №36Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №37Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №38Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №39Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №40Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №41Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №42Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №43Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №44Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №45Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №46Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №47Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №48Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №49Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №50Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №51Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №52Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №53Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №54Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №55Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №56Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C), слайд №57

Содержание

Вы можете ознакомиться и скачать презентацию на тему Функции. Прототип функции. Локальные, глобальные переменные. Формальные параметры (язык C). Доклад-сообщение содержит 57 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1






Функции 

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

Слайд 2





Содержание
Содержание
Описание слайда:
Содержание Содержание

Слайд 3





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

Слайд 4





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

Слайд 5





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

Слайд 6





Оператор   return
вызывает немедленный выход из текущей функции и возврат в вызывающую функцию.
используется для возврата значения функции.
в теле функции может быть несколько операторов return, но может не быть ни одного. 
если нет 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, если основание неотрицательное.
Описание слайда:
Пример функции 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; 
}
Описание слайда:
Пример программы, использующей функцию 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;}
Описание слайда:
Пример функции 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;
}
Описание слайда:
Пример 3. Передача данных по значению (1) void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; }

Слайд 18





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

Слайд 19





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

Слайд 20





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

Слайд 21





Пример 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)    //реализация функции
{	… }
Описание слайда:
Пример 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)
Описание слайда:
Пример 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];
}
Описание слайда:
Пример 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) {  …  }
Описание слайда:
Пример 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 соответственно. 
Вычислить произведение элементов в тех строках матриц А и В, которые не содержат нулевых элементов.
Описание слайда:
Пример 5. Поиск строк матрицы, не содержащих нулей Имеются две матрицы А и В натуральных чисел размерностью Na x Ma, Nb x Mb соответственно. Вычислить произведение элементов в тех строках матриц А и В, которые не содержат нулевых элементов.

Слайд 28





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

Слайд 29





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

Слайд 30





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

Слайд 31





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

Слайд 32





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

Слайд 33





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

Слайд 34





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

Слайд 35





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

Слайд 36





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

Слайд 37





Схема главной функции (1)
Описание слайда:
Схема главной функции (1)

Слайд 38





Схема главной функции (2)
Описание слайда:
Схема главной функции (2)

Слайд 39





Схема главной функции (3)
Описание слайда:
Схема главной функции (3)

Слайд 40





Схема главной функции (4)
Описание слайда:
Схема главной функции (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 - матрица, передается через адрес массива указателей 
//на начала строк
Описание слайда:
Исходный текст программы (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);
Описание слайда:
Исходный текст программы (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);
Описание слайда:
Исходный текст программы (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);
Описание слайда:
Исходный текст программы (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));
}
Описание слайда:
Исходный текст программы (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;
}
Описание слайда:
Исходный текст программы (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");}
}
Описание слайда:
Исходный текст программы (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;
}
Описание слайда:
Исходный текст программы (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;
}
Описание слайда:
Исходный текст программы (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.
Описание слайда:
Задания для самостоятельного решения Вариант 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. Напечатать ту из них, в которой больше нулевых строк. Для подсчета количества нулевых строк, используйте функцию.
Описание слайда:
Вариант 4. Вариант 4. Разработать процедуру вычисления с заданной точностью eps по следующей итерационной формуле: Вариант 5. Разработать функцию поиска подстроки в массиве символов. При успешном поиске возвращать позицию подстроки относительно начала массива. Вариант 6. Даны три целые матрицы размером 9*4. Напечатать ту из них, в которой больше нулевых строк. Для подсчета количества нулевых строк, используйте функцию.

Слайд 52





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

Слайд 53






 


Контрольные вопросы 
по теме работы




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

Слайд 54





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

Слайд 55






 

Итоги
Рассмотренные вопросы:



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

Слайд 56






 

Библиографический список



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

Слайд 57






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



Похожие презентации
Mypresentation.ru
Загрузить презентацию