- •Глава 5. Строки
- •Пример составления программы на языке с.
- •Задания
- •Глава 6. Функции.
- •Примеры составления программ на языке с.
- •1 Выполнение программы:
- •2 Выполнение программы:
- •Задания
- •6.1 Простейшие функции, определенные пользователем.
- •6. 2 Обработка одномерных массивов с использованием функций.
- •6.3. Обработка двумерных массивов с помощью функций.
- •6.4 Рекурсии
Глава 6. Функции.
Наилучшим способом создания и поддержки больших программ является их конструирование из маленьких фрагментов – подпрограмм.
В языке С роль подпрограммы выполняет понятие функция.
Функция - это самостоятельная именованная часть программы, созданная для решения конкретной задачи.
Каждая функция имеет имя и список параметров. Параметры функции – это величины, которые передаются функции во время ее вызова. Функции могут иметь некоторое количество параметров, а могут и не иметь их вообще.
Формальные параметры – это переменные, объявленные при описании функций как ее аргументы.
Фактические параметры - это некоторые значения, используемые во время вызова функции, они заменяют формальные параметры.
Список формальных и фактических параметров должен быть согласован между собой по количеству, типу, порядку следования аргументов.
Если функция возвращает какое-то значение с помощью оператора return, то тип возвращаемого значения должен соответствовать типу функции.
Допускается использование функций, не имеющих аргументов и не возвращающих никаких значений. Действие их может состоять, например, в изменении значений некоторых переменных, выводе на печать некоторых текстов и т.п.
Примеры составления программ на языке с.
Пример 6.1
Заданы стороны треугольников: MNK и PLF. Переменной z присвоить значение -1, если площадь треугольника MNK меньше или равна площади треугольника PLF и значение 1 в противном случае. Написать функцию определения существования треугольника с заданными сторонами и вычисления площади треугольника по формуле Герона. Примечание: площадь треугольника ABC (со сторонами a, b, c) вычисляется по формуле Герона , где р - полупериметр треугольника., где r- полупериметр треугольника MNK.
/***************************************************/
/* Функции */
/* Заданы стороны треугольников: MNK и PLF. */
/* Переменной z присвоить значение -1, если */
/* площадь треугольника MNK меньше или равна */
/* площади треугольника PLF и значение 1 в */
/* противном случае. Написать функцию для */
/* вычисления площади треугольника по формуле Герона*/
/****************************************************/
#include <stdio.h>
#include <conio.h>
#include <math.h>
float ploshad(float a,float b,float c);
// Функция вычисления площади треугольника
float ploshad(float a,float b,float c)
{
float perim,p,s;
if ((a<=b+c && b<=a+c && c<=a+b))
{
printf("\n Треугольник существует. ");
perim=a+b+c; // периметр
p=perim/2; // полупериметр
s=sqrt(p*(p-a)*(p-b)*(p-c)); // площадь
}
else
{
printf("\n Треугольник не существует.");
return s=0;
}
return s;
}
// основная программа
void main()
{
clrscr();
float m,n,k,p,l,f; // стороны треугольников
float s_mnk,s_plf; // площади треугольников
int z;
// Вычисление площади треугольника MNK
printf("\n Введите стороны треугольника MNK:");
scanf("%f %f %f", &m,&n,&k);
s_mnk=ploshad(m,n,k);
if (s_mnk!=0)
printf("\n Площадь треугольника MNK=%f",s_mnk);
// Вычисление площади треугольника PLF
printf("\n \n Введите стороны треугольника PLF:");
scanf("%f %f %f", &p,&l,&f);
s_plf=ploshad(p,l,f);
if (s_plf!=0)
printf("\n Площадь треугольника PLF=%f",s_plf);
// Нахождение значения z
if (s_mnk!=0 && s_plf!=0)
{
if (s_mnk<=s_plf)
z=-1;
else
z=1;
printf("\n\n Значение z=%d",z);
}
getch();
}
Результат работы программы