Работа с функциями в языке программирования Си++ - Программирование, компьютеры и кибернетика лабораторная работа

Работа с функциями в языке программирования Си++ - Программирование, компьютеры и кибернетика лабораторная работа




































Главная

Программирование, компьютеры и кибернетика
Работа с функциями в языке программирования Си++

Ознакомление с особенностями применения функций в языке Си++. Рассмотрение понятия прототипа, определение областей его применения. Изучение сущности автоматических, статистических и регистровых переменных, их использование при составлении программ.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
"Работа с функциями в языке пр о граммирования Си++"
Цель работы: ознакомиться с особенностями применения функций в языке Си++, с понятием прототипа и областью его применения, с понятием автоматических внешних, статических и регистровых переменных и их применением при составлении программ с использованием функций.
Программы на языке СИ обычно состоят из большого числа отдельных функций (подпрограмм). Как правило, они имеют небольшие размеры и могут находиться как в одном, так и в нескольких файлах.
Связь между функциями осуществляется через аргументы, возвращаемые значения и внешние переменные.
Вызов функции осуществляется следующим образом: <тип функции >(параметр 1, параметр 2 , …);
Если функция имеет переменное число параметров, то вместо последнего из них указывается многоточие.
Передача одного значения из вызванной функции в вызвавшую происходит с помощью оператора возврата, который записывается в следующем виде:
В этом случае значение выражения (в частном случае может быть просто переменная) передается в основную программу и подставляется вместо обращения к функции.
Пусть вызывающая программа обращается к функции следующим образом:
Здесь b и c - аргументы, значения которых передаются в вызываемую подпрограмму.
Если описание функции начинается так: fun(i,j) , то переменные i и j получат значения a и b соответственно.
Пример 1. Оформить получение абсолютной величины числа в виде функции. Сама функция может быть оформлена в виде отдельного файла. В этом случае выполняется его включение процедурой #include.
d=abs(a); /*обращение к функции abs*/
#include "abc.c" /*включение файла abc.c с функцией abs*/
/*Функция, вычисляющая абсолютную величину числа */
int x; /*Описание переменных, работающих в функции */
y=(x<0)?-x:x; /*Определение абсолютной величины числа*/
return (y); /*Возвращает значение у вызывающей программе*/
В приведенной программе описание типа функции было опущено. Это возможно только в том случае, если возвращенное значение имеет целый тип. Во всех остальных случаях описание типа функции обязательно. приведем пример, когда результатом работы функции будет число двойной точности.
Пример 2. Оформить в виде функции вычисление f=x + y/z.
В первом примере функция хранилась в виде отдельного файла и включалась процедурой #include. Функция может быть включена в один файл с вызывающей программой. В этом случае процедура #include не требуется, а сама функция должна быть объявлена в основной программе, если она имеет не целый тип. Приведем программу для примера 2, оформленную таким способом.
{ double f,x=5.5,y=10.1,z=20.5, vv() /*объявлены переменные и функция vv*/
f=vv(x,y,z); /*обращение к функции vv*/
printf("lf",f); /*вывод результата */
double x,y,z; /*объявление переменных функции */
f=sqrt(x)+y/z; /*вычисление значения функции */
return(f); /*возврат вычисленного значения функции */
В языке СИ аргументы функции передаются по значению, т.е. вызванная функция получает временную копию каждого аргумента, а не его адрес. Это означает, что функция не может изменять оригинальный аргумент в вызвавшей ее программе. Однако это легко сделать, если передавать в функцию не переменные, а их адреса.
Пример 3. В приведенной ниже программе вводятся некоторые значения переменных а и b, потом в функции izm они меняются местами.
izm (&a, &b); /*обращение к функции izm; аргументами являются адреса переменных a и b*/
printf("%d, %d",a, b); /*вывод на экран измененных значений */
#include "izm.c" /*включение файла izm.c с функцией izm */
izm(a, d); /*аргументы a и b являются указателями */
int *a, *b; /* *a и *b - значения, на которые указывают указатели */
Функция izm получает копию адресов переменных a и b, меняет местами значения, записанные по этим адресам, и передает управление в основную программу. Адреса &a и &b в основной программе не изменялись, а вот значения, на которые они указывают, поменялись местами.
Если в качестве аргумента функции используется имя массива, то ей передается адрес начала массива, а сами элементы не копируются. Функция может изменять элементы массива, сдвигаясь (индексированием) от его начала.
Пример 4. В массиве S поменять местами элементы: первый со вторым, третий с четвертым и т.д. Оформить этот алгоритм в виде функции reverse.
{int i,j,s[6]; /* описание переменных i,j и массива s целого типа */
scanf("%d",&s[i]); /*ввод элементов массива s*/
reverse(s); /*обращение к функции reverse*/
printf("%d",s[i]); /*вывод полученного массива */
include "reverse.c" /*включение файла reverse.c с функцией reverse */
int s[]; /*описание работающего в подпрограмме массива */
{a=s[i]; s[i]=s[i+1]; s[i+1]=a;} /*обмен элементов местами*/
Рассмотрим особенности работы функции с двумерным массивом. В предыдущем примере в функции массив был описан как int s[]; для двумерного массива а нельзя записать a[][]. В описании двумерного массива во второй квадратной скобке должно быть указано количество столбцов, например: a[][3].
Пример 5. Увеличить все элементы массива а(5,5) в два раза. Оформить этот алгоритм в виде подпрограммы.
{int a[5][5]; /*описание массива a*/
int i,j; /*объявление переменных i,j*/
scanf("%d",a[i][j]); /*ввод массива*/
mas(a); /*обращение к функции mas*/
printf("%d", a[i][j]); /*вывод полученного результата*/
{int i,j; /*описание переменных i,j*/
a[i][j] = 2*a[i][j]; /*увеличение элементов массива в 2 раза*/
В языке СИ различают четыре основных памяти: внешнюю (глобальную), автоматическую (локальную), статическую и регистровую.
Внешние переменные определены вне любой из функций, следовательно, доступны для многих из них. Область внешней переменной простирается от точки во входном файле, где она объявлена, и до конца файла. Если внешняя переменная определена в другом файле, то вступает в силу описание extern (внешний). На рис.1 показано, где объявляются и на что распространяется область действия внешних переменных, если программа main и вызываемая функция находятся в данном файле. На рис. 2 демонстрируются отличия, имеющие место, когда main и вызываемая функция находятся в разных файлах. В файле с вызываемой функцией внешние переменные будут доступны после их описания с помощью ключевого слова extern.
Пример 5. Оформить в виде функции вычисление выражения:
В приведенной ниже программе заданные переменные объявлены как внешние, причем основная программа и функция находятся в одном файле.
int a=5, b=7, c=10,x; /* Объявление внешних переменных a,b,c,x целого типа*/
scanf ("%d", &x); /*Ввод значения переменной x*/
printf ("%d",f); /*вывод на экран значения переменной f*/
f=a*x*x+b*x+c; /*вычисление значения f*/
return (f); /*возвращает значение f вызывающей программе*/
Если сравнить эту программу с программой, приведенной в примере 2, то можно обнаружить два различия:
после имени функции в скобках отсутствуют аргументы;
в функции не объявлены переменные, с которыми работает функция.
Это стало возможным потому, что переменные объявлены внешними, а значит они известны всему файлу, в том числе и функции.
Внешние переменные должны быть описаны до функции main(). Только в этом случае они становятся внешними (см. рис. 1).
Приведем программу для этого же примера, рассмотрев случай, когда основная программа и функция расположены в разных файлах.
int a=5, b=7, c=10,x,f; /* Объявление внешних переменных a,b,c,x,f целого типа*/
scanf ("%d", &x); /*Ввод значения переменной x*/
printf ("%d",f); /*вывод на экран значения переменной f*/
#include "kv.c" /*включение файла kv.c функцией kv*/
f=a*x*x+b*x+c; /*вычисление значения f*/
return (f); /*возвращает значение f вызывающей программе*/
Как было сказано выше (см. рис. 2), если основная программа и функция расположены в разных файлах, то переменные в функции должны быть вписаны при помощи ключевого слова extern.
Рассмотрим теперь статические переменные. Статические переменные имеют такую же область действия, как автоматические, но они не исчезают, когда содержащая их функция закончит свою работу. Компилятор хранит их значения от одного вызова функции до другого. Статические переменные объявляются с помощью ключевого слова static. Можно статические переменные описать вне любой функции. Это создает внешнюю статическую переменную. Разница между внешней переменной и внешней статической переменной заключается в области их действия. Обычная внешняя переменная может использоваться функциями в любом файле (с помощью ключевого слова extern), в то время как внешняя статическая переменная может использоваться только функциями того же самого файла.
Регистровые переменные относятся к последнему классу. Ключевое слово register указывает, что переменная, о которой идет речь, будет интенсивно использоваться. Если это возможно, значения таких переменных помещаются во внутренние регистры процессора, благодаря чему программа будет более быстрой.
Взять задачу из лабораторной работы №4 и оформить ее решение в виде функции следующими способами:
функция расположена после ее вызова;
функция расположена после до ее вызова;
функция расположена после в другом файле;
Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с.
Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.
Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.
Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 1993. - 160 с.
Уинер Р. Язык турбо Cu . - М.: Мир, 1991. - 384 с.
Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 1990,- 224 с.
Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. - 156 с.
Рассмотрение особенностей объявления функций на языке СИ. Определение понятий аргументов функции и их переменных (локальных, регистровых, внешних, статических). Решение задачи программным методом: составление блок-схемы, описание функций main и sqr. презентация [125,5 K], добавлен 26.07.2013
Ознакомление с понятием, особенностями объявления, инициализацией и принципами работы с одномерными и двумерными массивами. Изучение смысла тернарной операции вывода элементов матрицы. Рассмотрение сущности и способов использования указателей переменных. лабораторная работа [22,1 K], добавлен 15.07.2010
Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива. курсовая работа [1,7 M], добавлен 06.01.2014
Рассмотрение областей применения компьютерной графики. Изучение основ получения различных изображений (рисунков, чертежей, мультипликации) на компьютере. Ознакомление с особенностями растровой и векторной графики. Обзор программ фрактальной графики. реферат [192,9 K], добавлен 15.04.2015
Анализ затрат и прибыли. Создание программного проекта для решения задачи о прибыли и убытках на языке программирования C#. Использование функций и переменных, компиляция программы. Алгоритмы и структуры данных. Тестирование программного обеспечения. курсовая работа [1,2 M], добавлен 03.01.2015
Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений. курсовая работа [1,0 M], добавлен 03.07.2011
Характерные черты программирования на алгоритмическом языке СИ (алфавит, операции, специфика операторов, комментарии и другие элементы). Аналитический обзор и рассмотрение примеров программ, иллюстрирующих особенности применения основных операторов СИ. презентация [251,0 K], добавлен 26.07.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Работа с функциями в языке программирования Си++ лабораторная работа. Программирование, компьютеры и кибернетика.
Курсовая работа по теме Экономические ресурсы и их характеристика
Реферат по теме Гарады і мястэчкі Беларусі
Реферат: Labor Issues Essay Research Paper Labor Unions
Реферат: Лавров, Иван Иванович оперный певец
Доклад по теме Социально-экономическое развитие славян
Доклад: Вавилонская блудница
Методы Предупреждения Банкротства Экономического Субъекта Курсовая
Матем 1 Класс Контрольная Работа
Всероссийский Сочинение 2022
Доклад: Москва ресторанная: от Петра до Первой Мировой
Реферат: A Day In Criminal Court Essay Research
Сочинение На Английском Компьютер
Ашықтұқымды Және Жабықтұқымды Өсімдіктердің Тіршілік Циклі Эссе
Контрольная Работа На Тему Банкротство. Внешнее Управление Имуществом Должника
Утро В Осеннем Лесу Сочинение 2
Контрольная Работа По Алгебре 8 Корни
Сочинение Про Хамелеона 6 Класс
Лабораторная Работа Выявление Изменчивости Видов
Реферат: Советско-японская декларация 1956 года
Реферат: Налоговые системы развитых стран
Анализ языковой личности Олега Кашина - Журналистика, издательское дело и СМИ реферат
Фольклор как средство художественно-эстетического, культурного воспитания в клубах по месту жительства - Педагогика реферат
Стан соціальної гуманітарної політики української держави: аналіз та перспективи - Государство и право контрольная работа


Report Page