Лабораторная работа №7

Лабораторная работа №7
Тема: Разработка и отладка алгоритмов и программ с использованием пользовательских функций

 

Вы не можете скачивать файлы с нашего сервера


Цель работы : Приобретение навыков работы с функциями.
Оснащение: IBM PC, Borland C++ 5.02

Краткие теоретические сведения:

Функции – это блоки языка программирования, самостоятельные единицы программы, спроектированные для решения конкретных задач, обычно повторяющиеся несколько раз.

Основная форма описания функции имеет вид:
тип имя_функции (список_параметров)
{
тело_функции
}

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

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

Пример 7.1. Выполнить вычисление по формуле, используя функцию:
z = x2 + y2 .

Вариант 1 (без прототипа)
# include<stdio.h>
# include<math.h>
double fn(double x, double y)
  { return x*x+y*y; }

main()
{
  double x, y, z;

  printf("Введите х и y");
  scanf("%lf%lf", &x, &y);

  z=fn(x, y);
  printf("z равно %lf", z);

  return 0;  
}

Вариант 2 (с прототипом)
# include<stdio.h>
# include<math.h>

double fn(double x, double y); //прототип функции

main()
{
  double x, y, z;

  printf("Введите х и y");
  scanf("%lf%lf", &x, &y); //используется спецификатор %lf для 
  // данных типа double 
  z=fn(x, y);
  printf("z равно %lf", z);

  return 0;
}

double fn(double x, double y) //описание функции
  { return x*x+y*y; }

Как видно из примера 5.1, описание функции может быть произведено до и после функции main, а объявление функции, т.е. задание ее прототипа необходимо производить до функции main. В примере 5.1 прототипом функции является строка double fn(double x,double y);.

В качестве аргумента (передаваемого значения) функции можно использовать массив. Одним из способов объявления такой функции является строка:
тип имя_функции(тип_элементов_массива *имя_массива);

Пример 7.2. Объявить функцию, в качестве аргумента которой используется массив с именем ar, состоящий из 10 элементов типа int.
1 способ: void sort(int *ar); 
2 способ: void sort(int ar[]); 
3 способ: void sort(int ar[10]);
Массивы всегда передаются по ссылке

Пример 5.3. Оформить сортировку массива в виде функции.

# include<stdio.h>

void sort(int *arr, int n); //прототип функции, принимающей массив 
  // и целое число
main()

  int mass[10]={1,3,-5,7,9,0,22,4,6,8};
  int size=10, i;

  for(i=0; i<10; i++) 
  printf(" %d",mass[i]); //вывод массива на экран

  sort(mass, size); //вызов функции сортировки 

  printf("\n");

  for(i=0; i<10; i++) 
  printf(" %d",mass[i]); //вывод уже отсортированного массива

  return 0;
}

void sort(int *arr, int n)

  int i, j, tmp;

  for(i=0; i<n-1 ; i++)
  for(j=0; j<n-i-1 ; j++)
  if(arr[j+1] < arr[j])
  { tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } //меняем //местами
}

Задания

В соответствии с номером варианта выполнить задания лабораторной работы № 1, используя функции. Функции необходимо описывать после функции main()



Обсудить на форуме

Комментарии к статье:

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Регистрация

Реклама

Последние комментарии