Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цифровая грамотность. В 2 частях. Ч.2. Разработка консольных приложений на языке программирования C. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Рис. 28. Упорядочивание массива по возрастанию
методом пузырька
Задание 3.
Индивидуальные задания
На языке программирования С разработайте и отладьте программу для
задачи. В программе исходные элементы массива S[7, 7] заполните с клавиа­туры или сгенерируйте случайным образом в соответствии с условием обра­ботки двумерного массива по индивидуальному варианту (табл. 19).
Найдите минимальный элемент массива и его индекс (для нечетного
номера варианта) или максимальный элемент массива и его индекс (для четного номера варианта). Строки программного кода сопроводите ком­ментариями.
В задаче каждого индивидуального варианта выполните следующие
действия:
1) найдите максимальный элемент двумерного массива и его индекс
(для нечетного номера варианта) или минимальный элемент двумерного массива и его индекс (для четного номера варианта);
2) вычислите число одинаковых элементов в двумерном массиве S[7, 7];
3) упорядочьте элементы массива по возрастанию методом пузырька.
71
Таблица 19
Вари-
1.
В массиве S определите количество положительных элементов, кратных 4.
2.
В массиве F найдите сумму чисел, расположенных на нечетных местах. Вы-
3.
В массиве F найдите произведение отрицательных чисел. Выведите эти эле-
4.
В массиве F найдите сумму отрицательных чисел. Выведите эти элементы и
те его на дисплей
5.
Из массива F найдите произведение чисел, расположенных на нечетных ме-
скопируйте в массив B и выведите его на дисплей
6.
В массиве F найдите сумму чисел, больших единицы. Выведите эти элемен-
и выведите его на дисплей
7.
В массиве F найдите количество чисел, меньших единицы. Выведите
8.
В массиве F найдите произведение чисел, больших 2. Выведите эти элемен-
9.
В массиве F найдите сумму чисел, расположенных на местах, кратных 3.
10.
В массиве F найдите произведение чисел, меньших или равных 2. Выведите
в массив B и выведите его на дисплей
11.
В массиве F найдите количество чисел, равных 3 и 5. Выведите эти элемен-
и выведите его на дисплей
12.
В массиве F найдите произведение чисел, больших или равных 5. Выведите
в массив B и выведите его на дисплей
Индивидуальные задания по теме «Обработка двумерного массива»
ант
Задание
Выведите эти элементы и их индексы. Найденные элементы массива скопи­руйте в массив B и выведите его на дисплей
ведите эти элементы и их индексы. Найденные элементы массива скопируй­те в массив B и выведите его на дисплей
менты и их индексы. Найденные элементы массива скопируйте в массив B и выведите его на дисплей
их индексы. Найденные элементы массива скопируйте в массив B и выведи-
стах. Выведите эти элементы и их индексы. Найденные элементы массива
ты и их индексы. Найденные элементы массива скопируйте в массив B
эти элементы и их индексы. Найденные элементы массива скопируйте в массив B и выведите его на дисплей
ты и их индексы. Найденные элементы массива скопируйте в массив B и выведите его на дисплей
Выведите эти элементы и их индексы. Найденные элементы массива скопи­руйте в массив
эти элементы и их индексы. Найденные элементы массива скопируйте
ты и их индексы. Найденные элементы массива скопируйте в массив B
B и выведите его на дисплей
эти элементы и их индексы. Найденные элементы массива скопируйте
72
Раздел 2

ОСНОВЫ МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С

ТЕМА 2.1. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ

Процесс разработки ПО предполагает расчленение исходной задачи на ряд более простых задач и заданий, т. е. проведение функциональной композиции. Для выполнения конкретных логически законченных частей задачи может быть использовано оформление их в программе пользова-
тельскими функциями.
Функции, которые определяются пользователем в соответствии с их требованиями в программировании на языке C, называются пользова-
тельскими функциями.
Пользовательская функция – это автономный блок операторов, ко-
торый выполняет четко определенную или последовательную задачу в программировании на языке C и запускается при вызове.
Термины, используемые при работе с функциями в языке C.
– Прототип функции или объявление функции.
– Аргументы или параметр.
– Вызов функции или вызывающая функция.
– Определение функции или вызываемая функция.
Определение функции
Общая форма определения функции на языке программирования C выглядит следующим образом:
ТипВозвращаемогоЗначения ИмяФункции (СписокПараметров)
{
ТелоФункции;
}
Определение функции состоит из заголовка функции и тела функции.
73
• ТипВозвращаемогоЗначения – тип данных значения, которое воз-
вращает функция. Некоторые функции выполняют нужные операции, не возвращая значения. В этом случае ТипВозвращаемогоЗначения – это ключевое слово void.
• ИмяФункции – фактическое имя функции. Имя функции и список
параметров вместе составляют сигнатуру функции.
• СписокПараметров – параметры подобен заполнителю. Когда
функция вызывается, вы передаете значение параметру. Это значение называется фактическим параметром или аргументом. Список парамет­ров относится к типу, порядку и количеству параметров функции. Пара­метры являются необязательными, т. е. функция может не содержать па­раметров.
• ТелоФункции – содержит набор операторов, которые определяют,
что делает функция.
Пример. Приведем исходный код функции max(), которая принимает
два параметра: num1 и num2 – и возвращает максимальное значение меж­ду двумя числами.
Программный код:
Вызов функции
Чтобы вызвать функцию, напишите имя функции, за которым следу-
ют две круглые скобки () и точка с запятой «;».
74
Фактические параметры (именуемые аргументами) указываются непосредственно в точке вызова функции в основной программе main().
При вызове функции в конкретной точке программы параметры заме­няются на аргументы соответствующего типа и в нужном количестве. Да­лее управление передается операторам тела функции.
Рассмотрим пример вызова функции для вычисления суммы двух чисел.
Программный код:
Прототип функции
Стандарт языка программирования C поддерживает концепцию про­тотипов функций. Суть ее заключается в предварительном определении лишь заголовка функции перед использованием (так называемая ссылка вперед). При этом полное описание указанной функции дается ниже, вне вызывающей функции. Прототипы функций упрощают также документи­рование текста программы. Если вызывающая функция требует несколько пользовательских функций, то их прототипы желательно записывать в от-
75
дельный файл типа *.h, который подключается компилятором по директи­ве: #include “ИмяФайла.h” (см.: Тема 2.2).
Прототип функции дается в одной из следующих форм:
− ТипРезультата ИмяФункции(СписокПараметров);
− ТипРезультата *ИмяФункции(СписокПараметров);
В первом случае функция возвращает значение типа ТипРезультата,
а во втором – указатель на тип ТипРезультата.
В тех случаях, когда количество параметров у функции заранее неиз-
вестно, в ее прототипе после перечисления нужного числа фиксированных параметров указывается многоточие (…).
Например: char fam(int, char *, …) Если функция не содержит параметров, то допустимы следующие за-
писи прототипа:
ТипРезультата ИмяФункции(void)
либо
ТипРезультата ИмяФункции()

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

1. Что такое пользовательская функция?
2. Зачем нужны прототипы функций?
3. В каком месте программы на языке С пишется прототип пользова-
тельской функции?
4. Что понимается под формальными параметрами?
5. В каком случае в заголовке функции пишется void?
76
Лабораторная работа № 8
ПРОГРАММИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ
Задание 1.
1.1. Выполните пример 19. Разработайте простейший калькулятор
с использованием пользовательских функций.
Программный код:
1.2. Выполните пример 20, в котором рассматривается передача мас-
сивов в качестве аргумента в функцию.
77
Программный код:
1.3. Выполните пример 21. Разработайте функцию для возведения
неотрицательного числа а в натуральную степень b.
Программный код:
78
Задание 2.
Но-
анта
1.
( )
adca
blcb
adca
U sin+
sin+
sin+
=
2
2
2
a = 1.02
= 30.445
U
2.
32
tg sin
32
tg sin
32
1tg sin
ab a
Z ba b
ca c
= +
a = 3.2
Z = 0.4035117
2.1. Разработайте функцию для вычисления выражения y.
Задание 3.
Индивидуальные задания
Разработайте ГСА и на языке программирования Cи программный код с использованием пользовательской функции для вычисления выра­жения (табл. 20).
Таблица 20
Индивидуальные задания по теме
«Программирование пользовательских функций»
мер
вари-
Выражение
Исходные
данные
b = 2.3 c = 3.1 d = 3.8 l = 5.2
Ответ
b = 4.15 c = 2а
79
Окончание табл. 20
Но-
анта
3.
2
sin
3.6 2
sin
a
a ab
b
Z
b
b bc
c
+
=
+
a = 8.23
Z = –14.20461
4.
( )
abba
acca
abbaZ
4
3
2
ln3+
ln3+
+ln3+6=
a = 0.31
Z = 57.9675
5.
( )
aba
acc
abaZ
cos+2,1
cos
cos=
a = 2.4
Z = –7.050468
6.
3
2
3
3
2
3
13
0.2 ln
1
1
ln
a
Z ba
b
c
c
b
=++
++
a = 1.75
Z = 2.029127
7.
2
2
2
+sin(ln )
= + sin(ln )
cos +sin(ln ) +
d ad d
Z c ac c
b ab b a
a = 0.85
Z = 13.58997
8.
log ( ) ( )
log
α
5 sin( ( ))
log
2
xy
y
b
xy
b
+
=
−
+
х = 4.5
α = 0.4833
9.
b
b)(x
x
a
D
2
+
3
+arcsin
2
arcsin
+
=
a = 8.9
D = 2.84
10.
3
++
=
321
V
VV
N
r1 = 8.9
2
4 3
i
i
π
r
V
=
N = 474.883
11.
2
3
( ) lg
lg
lg lg( )
xa x
Z
x ax
++
=
++
a = 1.5
Z = 1.2962
12.
( )
aba
acc
abaZ
cos+2,1
cos
cos=
a = 2.4
Z = 0.3759488
мер
вари-
Выражение
Исходные
данные
b = 3.05
Ответ
c = π/3
b = 2.67 c = 8.1
b = 7.21 c = π
b = 6.4 c = 2
b = 5 c = π
y = 4 b = 3
b = 0.3 х = 0.5
r2 = 16.1 r3 = 1.3
х = 7.3
b = 7.21 c = π
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]