Тема: «Разработка программ на Си, с использованием функционльного подхода и рекурсии» — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Тема: «Разработка программ на Си, с использованием функционльного подхода и рекурсии»

2020-05-08 156
Тема: «Разработка программ на Си, с использованием функционльного подхода и рекурсии» 0.00 из 5.00 0 оценок
Заказать работу

Цель:

- закрепление навыков по написанию простейших программ в языке Си;

- приобретение навыков по написанию программ, использующих функции;

- приобретение навыков по написанию программ, использующих рекурсию;

Характер занятий: репродуктивный.

Форма организации: индивидуальная.

Обеспечение занятия: тетрадь с лекциями,  СИ, компьютер.

 

Требования к знаниям студентов

Перед выполнением практической работы студент должен

знать:

- правила построения программы, использующей функции;

- способы передачи параметров в функции;

- правила построения программы, использующей рекурсию;

 

после выполнения практической работы студент должен

уметь:

- создавать программы с использованием функции;

- создавать программы, позволяющие использовать рекурсию.

Теоретический материал

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

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

Все переменные, объявленные в определениях функций, являются локальными переменными — они известны только той функции, в которой определены. Большинство функций имеют список параметров. Параметры позволяют функциям обмениваться информацией. Параметры функции — это также локальные переменные.

Функции математической библиотеки

Функции математической библиотеки позволяют программисту выполнять некоторые общие математические вычисления.

Некоторые функции математической библиотеки С приведены на рис. 1. Переменные х и v имеют тип double.

 

Функция Назначение Пример
sqrt(x) квадратный корень из х sqrt(900.0) равен 30.0 sqrt(9.0) равен 3.0
eхр(х) экспоненциальная функция ех eхр(1.0) равна 2.718282 ехр(2.0) равна 7.389056
log(x) натуральный логарифм х (основание е) log(2.718282) равен 1.0 log(7.389056) равен 2.0
log10(x) логарифм х (основание 10) log10(1.0) равен 0.0 log10 (10.0) равен 1.0 log10 (100.0) равен 2.0
fabs(x) абсолютное значение х если х > 0, то fabs(x) равно х если х=0, то fabs(x) равно 0.0 если х < 0, то fabs(x) равно -х
ceil(x) округляет х до ближайшего целого, не меньшего х ceil(9.2) равно 10.0 ceil(-9.8) равно -9.0
floor(x) округляет х до ближайшего целого, не превосходящего х floor(9.2) равно 9.0 floor(-9.8) равно -10.0
pow(x, y) х возводится в степень у (ху) pow(2, 7) равно 128.0 pow(9,.5) равно 3.0
fmod(x, y) остаток х/у как число с плавающей точкой fmod(13.657, 2.333) равен 1.992
sin(x) тригонометрический синус х (х в радианах) sin(0.0) равен 0.0
cos(x) тригонометрический косинус х (х в радианах) cos(0.0) равен 1.0
tan(x) тригонометрический тангенс х (х в радианах) tan(0.0) равен 0.0

 

Рис. 1. Функции общего назначения математической библиотеки

Определения функций

Рассмотрим программу, которая использует функцию square для вычисления квадрата целых чисел от 1 до 10 (рис. 2).

Строка программы

int square (int);

является прототипом функции. Ключевое слово int в скобках информирует компилятор о том, что square предполагает получить от вызывающей функции целое значение. Слово int слева от имени функции square информирует компилятор о том, что square возвращает вызывающей функции результат целого типа. Компилятор использует прототип функции для проверки того, что вызовы square имеют корректный тип возвращаемых данных, корректное число аргументов, корректный тип аргументов и что аргументы следуют в правильном порядке.

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

 

/* Функция square, определенная программистом */

#include <stdio.h>

int sguare (int);   /* прототип функции */

main()

{

int x;

for (x = 1; x <= 10; x++)

printf("%d ", square(x));

printf ("\n"); return 0; }

/* Определение функции */

int square(int y)

{

return y * y; }

Вывод на экран

1 4 9 16 25 36 49 64 81 100

Рис. 2. Использование функции, определенной программистом

Второй пример демонстрирует определенную программистом функцию maximum, возвращающую наибольшее из трех целых значений (рис. 3). С помощью функции scanf три целых числа вводятся. После этого числа передаются функции maximum, которая находит наибольшее целое число. Это значение возвращается в main оператором return в функции maximum и выводится на печать оператором printf.

 

/* Поиск максимального из трех целых значений */

#include <stdio.h>

int maximum(int, int, int); /* прототип функции */

main () {

int a, b, c;

printf("Enter three integers: ");

scanf("%d%d%d", &a, &b, &c);

printf("Maximum is: %d\n", maximum(a, b, c));

return 0; }

/* Определение функции maximum */

int maximum(int x, int y, int z) {

int max = x;

if (y > max) max = y;

if (z > max) max = z;

return max;

}

Вывод на экран

Enter three integers: 22 85 17 Maximum is: 85

Enter three integers: 85 22 17.• Maximum is: 85

Enter three integers: 22 17 85,, Maximum is: 85

Рис. 3. Определенная программистом функция maximum

Прототипы функций

Одной из наиболее важных особенностей ANSI С являются прототипы функций. Прототип функции сообщает компилятору тип данных, возвращаемых функцией, число параметров, получаемых функцией, тип и порядок следования параметров. Компилятор использует прототипы функций для проверки корректности обращений к функции. Прототипом функции maximum, приведенной на рис. 3, является

int maximum (int., int, int);

Этот прототип объявляет, что maximum получает три параметра типа int и возвращает результат типа int. Прототип функции имеет тот же вид, что и первая строка определения функции maximum, за исключением того, что в него не включены имена параметров (х, у и z).

Пропуск точки с запятой в конце прототипа функции вызывает синтаксическую ошибку.

Заголовочные файлы

Каждая стандартная библиотека имеет свой заголовочный файл, содержащий прототипы для всех функций данной библиотеки, а также определения различных типов данных и констант, необходимых этим функциям. На рис. 4 приведен алфавитный список заголовочных файлов стандартной библиотеки, которые могут быть включены в программу.

 

Заголовочный файл стандартной библиотеки Содержимое заголовочного файла
<assert.h> Содержит диагностические макросы и информацию, которая помогает при отладке программы.
<ctype.h> Содержит прототипы для функций, которые проверяют определенные характеристики символов и прототипы для функций, которые могут использоваться для преобразования символов нижнего регистра в символы верхнего регистра и наоборот.
<errno.h> Определяет макросы, которые полезны для сообщений о типе ошибки.
<float.h> Содержит пределы значений для чисел с плавающей точкой в системе.
<limits.h> Содержит пределы значений для целых чисел в системе.
<locale.h> Содержит прототипы функций и другую информацию, которая позволяет изменять работу программы согласно правилам текущего локала, в котором она выполняется. Понятие локала дает компьютерной системе возможность обрабатывать соглашения, принятые в различных странах по всему миру для выражения таких данных, как дата, время, денежные единицы и способ записи больших чисел.
<math.h> Содержит прототипы для функций математической библиотеки.
<setjmy.h> Содержит прототипы для функций, которые позволяют обойти обычный вызов функции и последовательность возврата.
<signal.h> Содержит прототипы функций и макросы для обработки различных условий, которые могут возникать во время выполнения программы.
<stdarg.h> Определяет макросы для обработки списка параметров функции, для которой неизвестно число параметров и их тип.
<stdaef.h> Содержит общие определения типов, используемых С для выполнения некоторых вычислений.
<stdio.h> Содержит прототипы для функций ввода/вывода стандартной библиотеки и информацию, используемую ими.
<stdlib.h> Содержит прототипы функций для преобразования чисел в текст и текста в числа, прототипы функций размещения памяти, генерации случайных чисел и других сервисных функций.
<string.h> Содержит прототипы для функций обработки строки.
<time.h> Содержит прототипы функций и типы для функций управления временем и датой.

Рис. 4. Заголовочные файлы стандартной библиотеки

 


Поделиться с друзьями:

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.