Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа 7. Функции пользователя






Цель работы: Познакомиться с механизмом составления и организации взаимодействия пользовательских функций языка Си/Си++.

Отчет на лабораторную работу должен содержать:

- задание по варианту;

- листинг программы, записанного по правилам языка Си/Си++ (все значения для вычисления ввести с клавиатуры.);

- составить блок-схему данного алгоритма;

- скриншот результата программы.

 

7.1 Варианты задания

1. Даны массивы А(5, 5), В(5, 5), С(5, 5). Найти минимальное произведение ненулевых элементов, расположенных в нечетных строках этих массивов.

2. Даны отрезки a, b, c, d. Для каждой тройки этих отрезков, из которых можно построить треугольник, вычислить площади треугольников. Площадь треугольника , где .

3. Даны массивы А(4, 4), В(4, 4), С(4, 4). Найти произведение минимальных элементов двух массивов.

4. Даны массивы A(5, 5), B(5, 5), C(5, 5). Найти произведение минимальных элементов, расположенных выше побочной диагонали в этих массивах.

5. Даны массивы A(5, 5), B(5, 5), C(5, 5). Поменять местами максимальные и минимальные элементы.

6. Дано натуральное число N (N > 99). Определить число сотен в нем.

7. Даны три массива А(5, 5), В(5, 5), С(5, 5). Поменять местами строки со столбцами местами, если хобя бы один элемент строки будет нулевым.

8. Дано натуральное число N (N > 10000). Определить сумму цифр первых K разрядов числа N (K 4).

9. Даны натуральные числа n, m. Получить произведение m последних цифр числа n.

10. Даны натуральные числа n, m. Найти наибольший общий делитель n и m (наименьшее общее кратное n и m), используя алгоритм Евклида.

Пусть n и m – одновременно не равные нулю целые неотрицательные числа и пусть m n. Тогда, если n = 0, то NOD (n, m) = m, и если n ≠ 0, то для чисел m, n, r, где r остаток от деления m на n, выполняется равенство NOD (m, n) = NOD (n, r). Например, NOD (15, 6) = =NOD (6, 3) = NOD (3, 0) = 3.

11. Даны натуральные числа a, b, c, d. Вычислить f(a)·f(b)+f(c) f(d), где

12. Дано натуральное число N. Удалить из записи числа N цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться число 919.

13. Дано натуральное число N. Получить все такие натуральные K, что N делится на K2 и не делится на K3.

14. Даны натуральные целые числа n и m, вычислить A(n, m), где

15. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу (как, например, 153=13+53+33 ). Получить все числа Армстронга, состоящие из двух, трех и четырех цифр.

 

7.2 Методические указания к выполнению лабораторной работы

Функции применяются для оформления фрагмента программы, используемого более одного раза. Фрагменты программ, описанные в разделе описания функций, вызываются по имени каждый раз, когда необходимо выполнить данный фрагмент программы. Описание функции состоит из заголовка и тела функции Заголовок определяет имя функции, ее тип и формальные параметры, тело определяет действия над данными, выполняемые функцией. Возвращающее функцией значение передается в вызывающую программу оператором return (выражение). Значение " выражения" и есть результат функции (возвращаемого значения). Всякая функция имеет вид:

< тип _ результата > имя(< список формальных параметров>)
{
тело функции;
}

где < имя> - имя функции (правильный идентификатор);

< тип_результата> - тип возвращаемого функцией результата.

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

Пример - программа запрашивает элементы целочисленного массива размером 3Х3 и передает сформированный массив в пользовательскую функцию, которая подсчитывает сумму его положительных значений.

#include < stdio.h>

#include < conio.h>

void summa(int a1[ ][3]);

void main(void)

{

int a[3][3];

int i, j;

clrscr();

printf(" \n Введите девять целых чисел \n");

for(i=0; i< 3; i++)

for(j=0; j< 3; j++)

{

printf(" \n a[%d][%d]=", i, j);

scanf(" %d", & a[i][j]);

}

summa(a);

}

void summa(int a1[ ][3])

{

int i, j, s;

puts(" ФУНКЦИЯ summa ");

puts(" ----------------------------------");

/* ВЫЧИСЛЕНИЕ СУММЫ ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ МАССИВА */

s=0;

for (i=0; i< 3; i++)

{

printf(" \n");

for (j=0; j< 3; j++)

{

if (a1[i][j]> 0)

{

s=s+a1[i][j];

}

 

}

}

printf(" \a СУММА ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ\

МАТРИЦЫ =%d, Press any key... ", s);

getch();

}

 

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

1. Чем функция пользователя отличается от стандартной функции?

2. Какие способы передачи аргументов в функцию.

3. В чем заключается отличие локальных и глобальных переменных.

4. Для чего и каким образом применяется оператор return?

5. Может ли функция вызывать сама себя?

6. Для чего нужны формальные переменные?

7. Как происходит активизация функции?

8. Что такое прототип функции?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.