LPZ_17


Инструкционная карта № 17
для выполнения ЛПЗ
по дисциплине «Основы алгоритмизации и программирования»
Тема: «Организация и использование пользовательских функций»
Норма времени – 2 часа
Цели занятия:
Овладение практическими навыками разработки и программирования вычислительного процесса циклической структуры, работы с массивами, работы с функциями.
Научиться различать применяемый способ в зависимости от условия задачи.
Изучить особенности работы с функциями языка С,
Воспитать бережное отношение к аппаратным и программным средствам.
Привить понятие энерго- и ресурсосбережения.
Оснащенность занятия:
инструкционная карта;
тетрадь;
ручка.
Межпредметные связи:
Информатика;
Архитектура ЭВМ и ВС
Разработка и эксплуатация АИС
Программное обеспечение АИС
Литература:
Голицин О.Л. «Основы алгоритмизации и программирования»
Аляев Ю.А.,Козлов О.А. «Алгоритмизация и языки программирования»
ИНСТРУКТАЖ
по технике безопасности
В лабораторию не разрешается заходить в верхней одежде.
Во время урока на рабочем столе должны находится только тетрадь для лабораторных работ, инструкционная карта и ручка.
Сумки, пакеты и прочее кладется в шкаф.
Не разрешается ходить во время урока по классу без разрешения преподавателя.
ЗАПРЕЩАЕТСЯ: включать компьютеры без разрешения преподавателя.
ЗАПРЕЩАЕТСЯ: выключать и перезагружать компьютеры без разрешения преподавателя.
ЗАПРЕЩАЕТСЯ: самостоятельно запускать программы. Загрузка различных программ осуществляется только по согласованию и с разрешения преподавателя.
Во время выполнения лабораторных работ запрещается выполнять действия, кроме действий, описанных в методических указаниях к данной лабораторной работе.
По окончании лабораторной работы необходимо сдать рабочее место преподавателю или лаборанту.
Заходить в лабораторию на занятие разрешается только со звонком.
Покидать класс после занятий разрешается только после разрешения
преподавателя или лаборанта.
Мотивация учебной деятельности:
Выполнение данного задания необходимо для развития и совершенствования навыков работы с языком программирования Visual C++, для совершенствования навыков логического мышления, для совершенствования навыков определения типов решения задач на ПК.
Содержание и последовательность выполнения задания:
Результатом выполнения работы является отчет. Он должен включать в себя условие задачи, листинг кода, скриншот запущенной программы.
Открыть информационную базу.
Изучить порядок записи операторов цикла.
Порядок выполнения работы:
Мощность языка Си во многом объясняется легкостью и гибкостью в определении и использовании функций в Си-программах. В отличие от других языков программирования высокого уровня в языке Си нет деления на процедуры, подпрограммы и функции.
В языке Си программа строится только из функций.
Функция - это независимая совокупность объявлений и операторов, обычно предназначенная для выполнения определенной задачи. Каждая функция должна иметь имя, которое используется для вызова функции. Имя одной из функций, main , которая должна присутствовать, в каждой Си программе зарезервировано. В программе могут содержаться и другие функции, причем функция main необязательно должна быть первой, хотя с нее всегда начинается выполнение Си-программы.
При вызове функции ей могут быть переданы данные посредством аргументов функции. Функция может возвращать значение. Это возвращаемое значение и есть основной результат выполнения функции, который при выполнении программы подставляется на место вызова функции, где бы этот вызов ни встретился в программе. Однако могут быть определены функции, которые не имеют никаких параметров и не возвращают никакого значения. Тем не менее действие таких функций может состоять в изменении внешних или статических переменных или выполнении каких-либо других действий, не связанных с данными.
С использованием функций в языке Си связаны три понятия:
-определение функции;
-объявление функции;
-вызов функции;
Определение функции.
Определение функции имеет следующий формат:
[спеццфикатор-класса-памяти\ [спецификатор-типа] описатель( [спис --формальпых-параметров] )
Тело функции
Определение функции задает имя, формальные параметры (типы и число ее формальных параметров), объявления и операторы, которые определяют действие функции. Последовательность объявлений и операторов называется телом функции. В определении функции также может быть задан тип значения, возвращаемого функцией (тип возврата) и класс памяти.
Функция возвращает значение, если ее выполнение заканчивается выполнением оператора return в теле функции следующего формата:
Return выражение;
Выражение вычисляется, преобразуется, если необходимо, к типу возвращаемого значения в определении (объявлении) функции, и управление возвращается в точку вызова.
Если оператор return не задан или не содержит выражения, функция не возвращает никакого значения. В этом случае спецификатор типа возвращаемого значения должен быть задан ключевым словом void, означающим отсутствие возвращаемого значения.
Тело функции -это составной оператор, содержащий операторы, определяющие действия функции. Он также может содержать объявления переменных, используемых в этих операторах.
Все переменные, объявленные в теле функции, имеют класс памяти auto, если они не объявлены иначе, и являются локальными. Когда вызывается функция, то для локальных переменных отводится память в стеке и производится их инициализация (если она задана).
Параметры функции передаются по значению и могут рассматриваться как локальные переменные, место для которых распределяется при вызове функции, они инициализируются значениями переданных аргументов и теряются при выходе из функции. Поэтому в теле функции нельзя изменять значение параметра, так как функция работает с копиями аргументов.
Объявление функции (прототип)
Если нужно вызвать функцию до ее определения в этом файле или определение функции находится в другом исходном файле, вызов функции следует предварить объявлением функции, т.е.. задать прототип функции, который позволит компилятору выполнить проверку аргументов и возвращаемого значения. Прототип функции имеет следующий формат:
[спецификатор - класса-памяти][спецификатор- типа]
описатель ( [список- формальных -параметров])
[, список - описателей]',
В отличие от формата определения функции в формате прототипа за заголовком функции следует точка с запятой (т.е. прототип функции не имеет тела), и заголовок функции может заканчиваться списком - описателей.
Правила использования остальных элементов формата прототипа те же, что и в определении функции.
Прототип - это явное объявление функции, которое предшествует определению функцию. Тип возврата, заданный в прототипе, должен согласовываться с типом возврата, заданным в определении.
Вызов функций.
Вызов функции имеет следующий формат:
выражение ( [список - выражении]);
Выражение вычисляется как адрес функции. Список - выражений представляет собой список фактических аргументов, передаваемых в функцию. Он может быть пустым.
Фактический аргумент может быть любой величиной основного типа, структурой, перечислением, смесью или указателем.
Выполнение вызова функции происходит следующим образом:
Вычисляются выражения в списке выражений и производятся обычные арифметические преобразования. Затем, если известен прототип функции, тип результирующего аргумента сравнивается с типом соответствующего формального параметра. Если они не совпадаю то либо производится преобразование типов, либо выдается диагностическое сообщение. Число выражений в списке выражений должно совпадать с числом формальных параметров.
Если в прототипе функции вместо спецификатора - формальных - параметров задано ключевое слово void, это значит, что в функцию не передается никаких аргументов и в определении функции не должно быть формальных параметров. Если это не так, то выдается диагностическое сообщение.
Происходит замена формальных параметров на фактические. Первое выражение в списке всегда соответствует первому формальному параметру, второе - второму и т.д. .
Управление передается на первый оператор функции.
Выполнение оператора return в теле функции возвращает управление и, возможно, значение в вызывающую функцию. Если оператор return не задан, то управление возвращается после выполнения последнего оператора тела функции. При этом возвращаемое значение не определено.
Рассмотрим программу, которая, печатает квадрат числа от 2 до 25 используя функцию.
#include<stdio.h>
#include<inath.h>
square (int i); // Идет объявление функции
main(){ clrscrf);
inti=2;
while(i++<25) // Вызывается функция
printf(« Квадрат(%d) числа =%d\n», i, square(i));
getch();
} .
// Идет определение функции
square(int x)
// Пишется тело функции
{ return (x*x); }Написать функцию get(), set(). set - функция установки значения в массив. get - функция получения значений или другими словами печать.
Составить программу для нахождения наименьших элементов матриц А(10,12), В(15,10) и номеров строк и столбцов, в которых они находятся, используя функцию.
Составить программу для записи в массив Z положительных элементов массивов А(40), В(50),С(30) подряд, используя функцию.
Составить программу для нахождения элементов целочисленных массивов А(40), В(30), С(60), кратных 3, используя функцию.
Составить программу для нахождения сумм элементов каждой строки матриц А(15,20) и В(17,10), используя функцию.
Составить программу с использованием функции для вычисления суммы и количества положительных элементов массивов А(70), В(80), С(65).
Напишите программу, в которой бы вычислялся факториал переданного числа. Вызовите эту функцию с разными аргументами.
Напишите программу, в которой бы находился n-ый элемент ряда Фибоначчи (n — параметр функции). Вызовите эту функцию с разными аргументами.
Даны 7 чисел, найти те из них, которые больше среднего арифметического этих семи чисел.
Создать функцию для вычисления корней квадратного уравнения.
Создать функцию для вычисления площади треугольника по трем сторонам.
Напишите функцию int min (int a, int b, int c, int d), находящее наименьшее из четырех данных чисел. Функция main дожна считывать четыре числа с клавиатуры, вызывать функцию min, выводить результат ее работы на экран.
Напишите функцию double power (double a, int n), вычисляющую значение an . Функция main должна считывать числа a и n, вызывать функцию power, выводить результат ее работы на экран.
Напишите функцию bool Xor (bool x, bool y), реализующую функцию "Исключающее ИЛИ" двух логических переменных x и y. Функция Xor должна возвращать true, если ровно один из ее аргументов x или y, но не оба одновременно равны true. Функция main в программе должна запрашивать значения переменных x и y, (два числа, равных 0 или 1), вызывать функцию Xor(x,y) и выводить результат на экран.
Напишите "функцию голосования" bool Election(bool x, bool y, bool z), которая возвращает то значение (true или false), которое среди значений ее аргументов x, y, z встречается чаще. Функция main должна запрашивать три числа, равных 0 или 1, вызывать функцию Election и выводить результат на экран.
Выводы: самостоятельно сделать вывод о различиях стандартных функций, их использовании в решении задач разных типов, определить возможности решения задач с помощью функций.
Знать: основные типы функций, отличать стандартную функцию от пользовательской, возможности решения задач с помощью функций.
Уметь: определять тип задачи, уметь верно выбирать способ решения и область применения функций, уметь работать с ними.
Задание на дом: Повторить темы: «Понятие логического файла. Физический файл. Типы файлов»,
Преподаватель: Сергеева Екатерина Юрьевна

Приложенные файлы

  • docx 18018052
    Размер файла: 40 kB Загрузок: 0

Добавить комментарий