🗊Презентация Функции: понятие, описание. Структура программы. Передача параметров и возврат значений

Нажмите для полного просмотра!
Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №1Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №2Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №3Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №4Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №5Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №6Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №7Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №8Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №9Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №10Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №11Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №12Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №13Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №14Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №15Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №16Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №17Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №18Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №19Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №20Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №21Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №22Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №23Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №24Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №25Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №26Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №27Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №28Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №29Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №30Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №31Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №32Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №33Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №34Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №35Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №36Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №37Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №38Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №39Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №40Функции: понятие, описание. Структура программы. Передача параметров и возврат значений, слайд №41

Содержание

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

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


Слайд 1





Лекция 8
Функции: понятие, описание.
Структура программы.
Передача параметров и возврат значений.
Описание слайда:
Лекция 8 Функции: понятие, описание. Структура программы. Передача параметров и возврат значений.

Слайд 2





Основные понятия и определения
Нисходящее программирование –  процесс  разработки программ, при котором сложная программа разбивается на ряд более простых подпрограмм, которые в  свою  очередь также   могут  быть  разбиты  на  ряд  еще  более  простых подпрограмм.  Этот  процесс  продолжается  до  получения элементарных    подпрограмм,    реализация   которых   не представляет большой сложности.
Восходящее программирование    –   процесс   разработки программ,   при  котором   сложная   программа   реализуется посредством интеграции более простых подпрограмм, начиная с элементарных подпрограмм.  Этот процесс продолжается до тех пор, пока не будет получена основная программа.
Описание слайда:
Основные понятия и определения Нисходящее программирование – процесс разработки программ, при котором сложная программа разбивается на ряд более простых подпрограмм, которые в свою очередь также могут быть разбиты на ряд еще более простых подпрограмм. Этот процесс продолжается до получения элементарных подпрограмм, реализация которых не представляет большой сложности. Восходящее программирование – процесс разработки программ, при котором сложная программа реализуется посредством интеграции более простых подпрограмм, начиная с элементарных подпрограмм. Этот процесс продолжается до тех пор, пока не будет получена основная программа.

Слайд 3





Основные понятия и определения
Функция –  это синтаксически выделенный именованный программный модуль, выполняющий определенное действие или группу действий. 
Каждая функция имеет свой интерфейс и реализацию.
Описание слайда:
Основные понятия и определения Функция – это синтаксически выделенный именованный программный модуль, выполняющий определенное действие или группу действий. Каждая функция имеет свой интерфейс и реализацию.

Слайд 4





Основные понятия и определения
	Интерфейс функции   –   заголовок   функции,  в котором указывается название функции,  список ее параметров и тип возвращаемого значения.

	Реализация функции    –    тело    функции, содержащее внутренние (локальные) данные функции и  программный  код,  выполняющий действия  согласно переданным в функцию параметрам и возвращающий значение, соответствующего интерфейсу функции типа.
Описание слайда:
Основные понятия и определения Интерфейс функции – заголовок функции, в котором указывается название функции, список ее параметров и тип возвращаемого значения. Реализация функции – тело функции, содержащее внутренние (локальные) данные функции и программный код, выполняющий действия согласно переданным в функцию параметрам и возвращающий значение, соответствующего интерфейсу функции типа.

Слайд 5





Виды функций
С точки зрения программиста функции бывают:
библиотечные     –     функции     описанные    в библиотеках языка С (как стандартных, так и не стандартных);
пользовательские   –    функции   реализованные программистом в процессе разработки программы.
Описание слайда:
Виды функций С точки зрения программиста функции бывают: библиотечные – функции описанные в библиотеках языка С (как стандартных, так и не стандартных); пользовательские – функции реализованные программистом в процессе разработки программы.

Слайд 6





Описание функций
Описание функции на языке С осуществляется  в любом месте программы вне  описания  других функций и состоит из трех элементов:
прототип функции;
заголовок функции;
тело функции.
Описание слайда:
Описание функций Описание функции на языке С осуществляется в любом месте программы вне описания других функций и состоит из трех элементов: прототип функции; заголовок функции; тело функции.

Слайд 7





Прототип функции
Прототип функции – необязательная часть описания функции, предназначенная для объявления некоторой функции, интерфейс которой соответствует данному прототипу.
Объявление прототипа имеет следующий вид:
	возвращаемый тип имя(список типов формальных параметров);
Описание слайда:
Прототип функции Прототип функции – необязательная часть описания функции, предназначенная для объявления некоторой функции, интерфейс которой соответствует данному прототипу. Объявление прототипа имеет следующий вид: возвращаемый тип имя(список типов формальных параметров);

Слайд 8





Параметры функции
Параметры функции – значения, передаваемые в функцию   при   ее  вызове.  Выделяют   понятия: формальные и фактические параметры.

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

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

Слайд 9





Прототип функции
Примеры прототипов:

	int func(int, double, double);

	void func(int, char *);

	double func(void);
Описание слайда:
Прототип функции Примеры прототипов: int func(int, double, double); void func(int, char *); double func(void);

Слайд 10





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

Слайд 11





Заголовок функции
Каждый элемент (формальный параметр) имеет следующий формат объявления:
	тип имя
Примеры заголовков функций:
	int func(int i, double x, double y)
	void func(int ind, char *string)
	double func(void)
Описание слайда:
Заголовок функции Каждый элемент (формальный параметр) имеет следующий формат объявления: тип имя Примеры заголовков функций: int func(int i, double x, double y) void func(int ind, char *string) double func(void)

Слайд 12





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

Слайд 13





Пример
Реализация функции вычисления факториала числа.
double factorial(unsigned);
...
double factorial(unsigned num)
{
  double fact = 1.0;
  for(unsigned i=1;i<=num;i++)
    fact *= (double)i;
  return fact;
}
Описание слайда:
Пример Реализация функции вычисления факториала числа. double factorial(unsigned); ... double factorial(unsigned num) { double fact = 1.0; for(unsigned i=1;i<=num;i++) fact *= (double)i; return fact; }

Слайд 14





Пример
Вызов функции вычисления факториала представлен в следующем  фрагменте программы:

unsigned n = 8;
double vals[2] = {0.0};
...
	//Константа 5 – фактический параметр
vals[0] = factorial(5);
	
	//Переменная n – фактический параметр
vals[1] = factorial(n);
...
Описание слайда:
Пример Вызов функции вычисления факториала представлен в следующем фрагменте программы: unsigned n = 8; double vals[2] = {0.0}; ... //Константа 5 – фактический параметр vals[0] = factorial(5); //Переменная n – фактический параметр vals[1] = factorial(n); ...

Слайд 15





Пример
Подсчет количества положительных элементов в целочисленном массиве.
unsigned positive(int [], unsigned);
...
unsigned positive(int arr[], unsigned num)
{
  unsigned count = 0;
  for(unsigned i=0;i<num;i++)
    if(arr[i] > 0) count++;
  return count;
}
Описание слайда:
Пример Подсчет количества положительных элементов в целочисленном массиве. unsigned positive(int [], unsigned); ... unsigned positive(int arr[], unsigned num) { unsigned count = 0; for(unsigned i=0;i<num;i++) if(arr[i] > 0) count++; return count; }

Слайд 16





Пример
Вызов функции подсчета положительных элементов   в  целочисленном  массиве представлен  в  следующем  фрагменте программы:

unsigned n = 10;
int array[n];
...
unsigned cnt = positive(array,n);
...
Описание слайда:
Пример Вызов функции подсчета положительных элементов в целочисленном массиве представлен в следующем фрагменте программы: unsigned n = 10; int array[n]; ... unsigned cnt = positive(array,n); ...

Слайд 17





Структура программы
1: подключение библиотек.
2: объявление глобальных пользовательских типов  
    данных и переменных.
3: объявление прототипов пользовательских
    функций.
4: реализация функции main.
5: реализация (описание заголовков и тел)
    пользовательских функций.
Описание слайда:
Структура программы 1: подключение библиотек. 2: объявление глобальных пользовательских типов данных и переменных. 3: объявление прототипов пользовательских функций. 4: реализация функции main. 5: реализация (описание заголовков и тел) пользовательских функций.

Слайд 18





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

Слайд 19





Пример
#include <stdio.h>
#include <string.h>
void division(double,double);
int main(int argc, char *argv[])
{
  do{
    char str[80];
    printf("Введите два числа для/
              вычислений\nили пустую/
              строку для выхода\n>:");
    gets(str);
    if(strcmp(str,"") == 0) break;
    double x,y;
    sscanf(str,"%lf %lf",&x,&y);
    division(x,y);                        
  }while(1);
  return 0;
}
Описание слайда:
Пример #include <stdio.h> #include <string.h> void division(double,double); int main(int argc, char *argv[]) { do{ char str[80]; printf("Введите два числа для/ вычислений\nили пустую/ строку для выхода\n>:"); gets(str); if(strcmp(str,"") == 0) break; double x,y; sscanf(str,"%lf %lf",&x,&y); division(x,y); }while(1); return 0; }

Слайд 20





Функциональная схема программы
Описание слайда:
Функциональная схема программы

Слайд 21





Пример
Описание слайда:
Пример

Слайд 22





Возвращаемое значение функции
Для  реализации  возврата  значения  и  завершения выполнения    функции    используется    оператор завершения функции, который относится к группе операторов управления, не рассматривался ранее. Синтаксис использования оператора завершения функции:
	return выражение;
Если функция не возвращает никакого значения  (в заголовке указан тип void), то оператор возврата указывается без какого-либо выражения:
	return;
Описание слайда:
Возвращаемое значение функции Для реализации возврата значения и завершения выполнения функции используется оператор завершения функции, который относится к группе операторов управления, не рассматривался ранее. Синтаксис использования оператора завершения функции: return выражение; Если функция не возвращает никакого значения (в заголовке указан тип void), то оператор возврата указывается без какого-либо выражения: return;

Слайд 23





Пример
	Функция,    определяющую    количество    корней квадратного уравнения (целочисленное значение), заданного коэффициентами a, b и c  (формальные параметры функции):

int NumberOfRoots(double a, double b, double c)
{
  double descr = b*b – 4.0*a*c;
  if(descr < 0) return 0;
    else if(descr > 0) return 2;
      else return 1;
}
Описание слайда:
Пример Функция, определяющую количество корней квадратного уравнения (целочисленное значение), заданного коэффициентами a, b и c (формальные параметры функции): int NumberOfRoots(double a, double b, double c) { double descr = b*b – 4.0*a*c; if(descr < 0) return 0; else if(descr > 0) return 2; else return 1; }

Слайд 24





Пример
Описание слайда:
Пример

Слайд 25





Возврат значений сложных типов
Возврат   значений   сложных  типов  (структур  и объединений) возможен только в стандарте С99.
В более ранних версиях языка возврат в качестве значений структур или объединений невозможен.
Возвращать в качестве значений массивы в языке С нельзя. Для этого можно использовать возврат указателя на массив.
Описание слайда:
Возврат значений сложных типов Возврат значений сложных типов (структур и объединений) возможен только в стандарте С99. В более ранних версиях языка возврат в качестве значений структур или объединений невозможен. Возвращать в качестве значений массивы в языке С нельзя. Для этого можно использовать возврат указателя на массив.

Слайд 26





Параметры функции
Параметры функции  могут  быть  константными:  их невозможно    изменить.   Для   описания    такого параметра перед его типом указывается ключевое слово const. 
Пример:
int Length(const char *str)
{
  int len = 0;
  for(char *ptr = str;*ptr!=0;ptr++) len++;
  return len;
}
Описание слайда:
Параметры функции Параметры функции могут быть константными: их невозможно изменить. Для описания такого параметра перед его типом указывается ключевое слово const. Пример: int Length(const char *str) { int len = 0; for(char *ptr = str;*ptr!=0;ptr++) len++; return len; }

Слайд 27





Передача параметров по значению и по ссылке
В языках программирования высокого уровня реализованы   два    механизма    передачи параметров:
по значению;
по ссылке.
Описание слайда:
Передача параметров по значению и по ссылке В языках программирования высокого уровня реализованы два механизма передачи параметров: по значению; по ссылке.

Слайд 28





Передача по значению
Механизм передачи параметра по  значению  заключается  в следующем: в вызываемую функцию передается значение фактического параметра.

void Inc(int a) { a++; }
int main (int argc, char *argv[])
{
  int val = 0;
  printf(“Значение: %d\n”,val);
  Inc(val);
  printf(“Значение: %d\n”,val);
  return 0;
}
Описание слайда:
Передача по значению Механизм передачи параметра по значению заключается в следующем: в вызываемую функцию передается значение фактического параметра. void Inc(int a) { a++; } int main (int argc, char *argv[]) { int val = 0; printf(“Значение: %d\n”,val); Inc(val); printf(“Значение: %d\n”,val); return 0; }

Слайд 29





Передача по ссылке
В языке С механизм   передачи  параметра  по ссылке реализован посредством указателей.
void Inc(int *a) { (*a)++; }
int main (int argc, char *argv[])
{
  int val = 0;
  printf(“Значение: %d\n”,val);
  Inc(&val);
  printf(“Значение: %d\n”,val);
  return 0;
}
Описание слайда:
Передача по ссылке В языке С механизм передачи параметра по ссылке реализован посредством указателей. void Inc(int *a) { (*a)++; } int main (int argc, char *argv[]) { int val = 0; printf(“Значение: %d\n”,val); Inc(&val); printf(“Значение: %d\n”,val); return 0; }

Слайд 30





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

Слайд 31





Пример
	Реализация   функции   поиска   максимального  и минимального значения в целочисленном массиве.

void GetMinMax(int arr[], int n, int *min, int *max)
{
  *min = arr[0]; *max = arr[0];
  for(int i=1;i<n;i++){
    if(arr[i] > *max) *max = arr[i];
    if(arr[i] < *min) *min = arr[i];
  }
}
Описание слайда:
Пример Реализация функции поиска максимального и минимального значения в целочисленном массиве. void GetMinMax(int arr[], int n, int *min, int *max) { *min = arr[0]; *max = arr[0]; for(int i=1;i<n;i++){ if(arr[i] > *max) *max = arr[i]; if(arr[i] < *min) *min = arr[i]; } }

Слайд 32





Пример
Использование данной функции продемонстрировано в следующем фрагменте программы:

int main(int argc, char *argv[])
{
  int n;
  ...   //Ввод переменной n
  int array[n];
  ...   //Ввод массива array
  int maxel, minel;
  GetMinMax(array,n,&minel,&maxel);
  printf(“Минимум массива: %d\n”, minel);
  printf(“Максимум массива: %d\n”, maxel);
  ...
}
Описание слайда:
Пример Использование данной функции продемонстрировано в следующем фрагменте программы: int main(int argc, char *argv[]) { int n; ... //Ввод переменной n int array[n]; ... //Ввод массива array int maxel, minel; GetMinMax(array,n,&minel,&maxel); printf(“Минимум массива: %d\n”, minel); printf(“Максимум массива: %d\n”, maxel); ... }

Слайд 33





Массивы как параметры функции
Так как в языке С имя массива является указателем на массив, то массивы в языке С передаются только по ссылке.
void ProcArray(int arr[], int n)
{
  for(int i=0;i<n;i++) arr[i]++;
}
int main(int argc, char *argv[])
{
  int array[] = {0,1,2,3,4,5,6,7,8,9};
  int num = sizeof(array)/sizeof(int);
  for(int i=0;i<num;i++) printf("%d ",array[i]); //0 1 2 3 4 5 6 7 8 9
  puts("");
  ProcArray(array,num);
  for(int i=0;i<num;i++) printf("%d ",array[i]); //1 2 3 4 5 6 7 8 9 10
  puts("");
  return 0;
}
Описание слайда:
Массивы как параметры функции Так как в языке С имя массива является указателем на массив, то массивы в языке С передаются только по ссылке. void ProcArray(int arr[], int n) { for(int i=0;i<n;i++) arr[i]++; } int main(int argc, char *argv[]) { int array[] = {0,1,2,3,4,5,6,7,8,9}; int num = sizeof(array)/sizeof(int); for(int i=0;i<num;i++) printf("%d ",array[i]); //0 1 2 3 4 5 6 7 8 9 puts(""); ProcArray(array,num); for(int i=0;i<num;i++) printf("%d ",array[i]); //1 2 3 4 5 6 7 8 9 10 puts(""); return 0; }

Слайд 34





Массивы как параметры функции
Массив можно передавать в параметрах используя синтаксис указателя.
void ProcArray(int *arr, int n)
{
  for(int i=0;i<n;i++) arr[i]++;
}
int main(int argc, char *argv[])
{
  int array[] = {0,1,2,3,4,5,6,7,8,9};
  int num = sizeof(array)/sizeof(int);
  for(int i=0;i<num;i++) printf("%d ",array[i]);
  puts("");
  ProcArray(array,num);
  for(int i=0;i<num;i++) printf("%d ",array[i]);
  puts("");
  return 0;
}
Описание слайда:
Массивы как параметры функции Массив можно передавать в параметрах используя синтаксис указателя. void ProcArray(int *arr, int n) { for(int i=0;i<n;i++) arr[i]++; } int main(int argc, char *argv[]) { int array[] = {0,1,2,3,4,5,6,7,8,9}; int num = sizeof(array)/sizeof(int); for(int i=0;i<num;i++) printf("%d ",array[i]); puts(""); ProcArray(array,num); for(int i=0;i<num;i++) printf("%d ",array[i]); puts(""); return 0; }

Слайд 35





Массивы как параметры функции
Массив в параметрах функции может быть объявлен как константный. Значения элементов этого массива нельзя изменить внутри этой функции, обратившись к ним через имя этого массива. Но можно через дополнительный не константный указатель, установленный на массив с явным приведением типа.
void ProcArray(const int arr[], int n)
{
  for(int i=0;i<n;i++) arr[i]++;        //Ошибка
  int *arrptr1 = arr;                          //Ошибка
  int *arrptr2 = (int *)arr;                //Корректно
  for(int i=0;i<n;i++) arrptr2[i]++;  //Корректно
}
Описание слайда:
Массивы как параметры функции Массив в параметрах функции может быть объявлен как константный. Значения элементов этого массива нельзя изменить внутри этой функции, обратившись к ним через имя этого массива. Но можно через дополнительный не константный указатель, установленный на массив с явным приведением типа. void ProcArray(const int arr[], int n) { for(int i=0;i<n;i++) arr[i]++; //Ошибка int *arrptr1 = arr; //Ошибка int *arrptr2 = (int *)arr; //Корректно for(int i=0;i<n;i++) arrptr2[i]++; //Корректно }

Слайд 36





Массивы как параметры функции
Передача в параметрах многомерных массивов (две и более размерности) осуществляется иначе.
Неправильно:
void ProcArray(int arr[][], int n, int m)
{
  for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
      arr[i][j]++;
}
Описание слайда:
Массивы как параметры функции Передача в параметрах многомерных массивов (две и более размерности) осуществляется иначе. Неправильно: void ProcArray(int arr[][], int n, int m) { for(int i=0;i<n;i++) for(int j=0;j<m;j++) arr[i][j]++; }

Слайд 37





Массивы как параметры функции
Правильный способ
void ProcArray(int n, int m, int arr[n][m])
{
  for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
      arr[i][j]++;
}
Описание слайда:
Массивы как параметры функции Правильный способ void ProcArray(int n, int m, int arr[n][m]) { for(int i=0;i<n;i++) for(int j=0;j<m;j++) arr[i][j]++; }

Слайд 38





Строки как параметры функции
Строки в языке С в качестве параметров передаются с использованием синтаксиса указателя на символьный тип.
void ProcString(char *str)
{
  for(int i=0;str[i]!=0;i++)
    if(islower(str[i])) str[i] = 'A' + (str[i] - 'a');
      else if(isupper(str[i])) str[i] = 'a' + (str[i] - 'A');
}
int main(int argc, char *argv[])
{
  char string[] = "Hello World!";
  puts(string);          //Hello World!
  ProcString(string);
  puts(string);          //hELLO wORLD!
  return 0;
}
Описание слайда:
Строки как параметры функции Строки в языке С в качестве параметров передаются с использованием синтаксиса указателя на символьный тип. void ProcString(char *str) { for(int i=0;str[i]!=0;i++) if(islower(str[i])) str[i] = 'A' + (str[i] - 'a'); else if(isupper(str[i])) str[i] = 'a' + (str[i] - 'A'); } int main(int argc, char *argv[]) { char string[] = "Hello World!"; puts(string); //Hello World! ProcString(string); puts(string); //hELLO wORLD! return 0; }

Слайд 39





Строки как параметры функции
При передаче в качестве параметра массива строк необходимо использовать способ передачи двумерных массивов. Или возможен следующий вариант:
void ProcString(char *str[], int n)
{
  for(int i=0;i<n;i++){
    for(int j=0;str[i][j]!=0;j++)
      if(islower(str[i][j])) str[i][j] = 'A' + (str[i][j] - 'a');
        else if(isupper(str[i][j])) str[i][j] = 'a' + (str[i][j] - 'A');
  }
}
int main(int argc, char *argv[])
{
  char string[][20] = {"One","Two","Three","Four","Five"};
  char *strs[] = {string[0],string[1],string[2],string[3],string[4]};
  for(int i=0;i<5;i++) puts(string[i]);
  ProcString(strs,5);
  for(int i=0;i<5;i++) puts(string[i]);
  return 0;
}
Описание слайда:
Строки как параметры функции При передаче в качестве параметра массива строк необходимо использовать способ передачи двумерных массивов. Или возможен следующий вариант: void ProcString(char *str[], int n) { for(int i=0;i<n;i++){ for(int j=0;str[i][j]!=0;j++) if(islower(str[i][j])) str[i][j] = 'A' + (str[i][j] - 'a'); else if(isupper(str[i][j])) str[i][j] = 'a' + (str[i][j] - 'A'); } } int main(int argc, char *argv[]) { char string[][20] = {"One","Two","Three","Four","Five"}; char *strs[] = {string[0],string[1],string[2],string[3],string[4]}; for(int i=0;i<5;i++) puts(string[i]); ProcString(strs,5); for(int i=0;i<5;i++) puts(string[i]); return 0; }

Слайд 40





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

Слайд 41





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

_stdcall (или __stdcall) – передача параметров в прямом порядке;
_cdecl (или __cdecl) – передача параметров в обратном порядке.
Например:
	int __cdecl Function(int ind, double x, double y);
	char * __stdcall Function(char *strs[], int num);
Описание слайда:
Нижний уровень передачи параметров В языке  С по умолчанию используется метод передачи в обратном порядке. Если необходимо изменить направление передачи параметров или явно его указать, то перед именем функции указывают одно из ключевых слов: _stdcall (или __stdcall) – передача параметров в прямом порядке; _cdecl (или __cdecl) – передача параметров в обратном порядке. Например: int __cdecl Function(int ind, double x, double y); char * __stdcall Function(char *strs[], int num);



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