Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Цифровая грамотность. В 2 частях. Ч.2. Разработка консольных приложений на языке программирования C. Учебное пособие.pdf
X
- •ВВЕДЕНИЕ
- •РЕКОМЕНДАЦИИ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ
- •ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ
- •Раздел 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ ЯЗЫКА C
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Тема 1.4. Массивы. Обработка массивов
- •Раздел 2. ОСНОВЫ МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С
- •Тема 2.1. Пользовательские функции
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Тема 2.3. Файловый ввод/вывод
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Задание 1.
- •Программный код:
- •Задание 2.
- •Программный код:
- •Задание 3.
- •Контрольные вопросы
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Рис. 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
