.RU

4. КУРСОВАЯ РАБОТА«Создание собственной функции» - Редакционно-издательским советом Томского политехнического университета...


^ 4. КУРСОВАЯ РАБОТА
«Создание собственной функции»
Цель работы. Закрепление теоретических знаний по дисциплине «Информатика», а также практических навыков по программированию на языке C++.
^ 4.1. Методические указания
Общие методические указания по определению вариантов курсовой работы и сами варианты приведены в методических указаниях для студентов ИДО, обучающихся по направлению 220700 «Автоматизация технологических процессов и производств» по курсу «Информатика». В данном учебно-методическом пособии представлены общие теоретические и практические сведения для выполнения курсовой работы. Следует напомнить, что отчёт по курсовой работе должен состоять из следующих пунктов:

    1. титульный лист;

    2. цель работы;

    3. формулировку заданий;

    4. теоретическую часть;

    5. код программы на C++;

    6. алгоритм программы, представленный в виде блок-схемы;

    7. результаты работы программы;

    8. выводы по работе;

    9. список литературы.

Шаблон титульного листа пояснительной записки к курсовой работе представлен в Приложении B. Каждый вариант ИДЗ состоит из одного задания на создание собственной функции.

Для курсовой работы имеется 10 вариантов. Вариант задания выбирается в соответствии с последней цифрой шифра зачетной книжки студента, 0 соответствует 10-му варианту. Например, для шифра З-8А11/01 должен быть выбран вариант 1, а для шифра З-8А10/10 – вариант 10.

^ 4.1.1. Объявление и определение функций
Функция – это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение [4].

С помощью функций задача может быть разделена на более простые и обозримые, после чего программу можно рассматривать в более укрупненном виде – на уровне взаимодействия функций. Использование функций является первым шагом к повышению степени абстракции программы и ведет к упрощению ее структуры.

Разделение программы на функции позволяет также избежать избыточности кода, поскольку функцию записывают один раз, а вызывать ее на выполнение можно из разных точек программы многократно.

Процесс отладки программы, содержащей функции, можно лучше структурировать. Часто используемые функции можно помещать в библиотеки. Таким образом создаются более простые в отладке и сопровождении программы

Любая программа на С++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы).

Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно.

Объявление функции должно находиться в тексте раньше ее вызова для того, чтобы компилятор мог осуществить проверку правильности вызова.

Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров.

Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках [6]:

[ класс ] тип имя ([ список_параметров ])[throw ( исключения )]

{ тело функции }

Рассмотрим составные части определения.

extern – глобальная видимость во всех модулях программы (по умолчанию);

static – видимость только в пределах модуля, в котором определена функция.

В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать.

На имена параметров ограничений по соответствию не накладывается.

Функцию можно определить как встроенную с помощью модификатора inline, который рекомендует компилятору вместо обращения к функции помещать ее код непосредственно в каждую точку вызова. Модификатор inline ставится перед типом функции. Он применяется для коротких функций, чтобы снизить накладные расходы на вызов.

Директива inline носит рекомендательный характер и выполняется компилятором по мере возможности.

Тип возвращаемого значения и типы параметров совместно определяют тип функции.

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

Вызов функции может находиться в любом месте программы, где по синтаксису допустимо выражение того типа, который формирует функция. Если тип возвращаемого функцией значения не void, она может входить в состав выражений или, в частном случае, располагаться в правой части оператора присваивания.

Пример 48. Функция, возвращающая сумму двух целых величин.

#include

int sum(int a, int b); // объявление функции

int main()

{

int a = 2, b = 3, c, d;

c = sum(a, b);//вызов функции

cin >> d;

cout << sum(c, d); // вызов функции

}

int sum(int a, int b)// определение функции

{

return (a+b);

}

Пример 49. Функция, выводящая на экран поля переданной ей структуры.

#include

struct Worker

{

char fio[30];

int date, code;

float salary;

};

void print_worker(Worker);//объявление функции

int main()

{

Worker stuff[100];

/* формирование массива stuff */

for(int i=0;i<100; i++)

print_worker(stuff[i]);/*вызов функции */

}

void print_worker(Worker w)//определение функции

{

cout<
}


Все величины, описанные внутри функции, а также ее параметры, являются локальными. Областью их действия является функция. При вызове функции, как и при входе в любой блок, в стеке выделяется память под локальные автоматические переменные.

При выходе из функции соответствующий участок стека освобождается, поэтому значения локальных переменных между вызовами одной и той же функции не сохраняются. Если этого требуется избежать, при объявлении локальных переменных используется модификатор static [1].


Пример 50

#include

void f(int a)

{

cout << "n m\n";

while (a--)

{

static int n = 0;

int m = 0;

cout << n++ << ' ' << m++ << '\n';

}

}

int main()

{

f(3);

}

Статическая переменная n примера 50 размещается в сегменте данных и инициализируется один раз при первом выполнении оператора, содержащего ее определение. Программа выведет на экран:

n m

0 0

1 0

2 0

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

4-mehanika-xviii-v-programma-minimum-kandidatskogo-ekzamena-po-istorii-nauki-i.html
4-mehanizmi-realizacii-strategii-strategicheskij-plan-socialno-ekonomicheskogo-razvitiya-stegalovskogo-selsoveta.html
4-meri-po-preduprezhdeniyu-lecheniyu-i-umensheniyu-usherba-nezakonnaya-torgovlya-narkotikami-v-rossii.html
4-meropriyatiya-po-prioritetnomu-nacionalnomu-proektu-plan-na-2010-god-mln-rublej-osvoeno-v-2010-godu-mln-rublej.html
4-meropriyatiya-posvyashennie-75-letiyu-dvorca-detskogo-yunosheskogo-tvorchestva.html
4-mesto-disciplini-v-strukture-obrazovatelnoj-programmi-programma-disciplini-obuchenie-i-razvitie-chelovecheskih-resursov.html
  • uchenik.bystrickaya.ru/intensivnij-kurs-po-metodu-shehtera-inostrannij-kak-rodnoj-5-nedel.html
  • bystrickaya.ru/znaniemaniya-2010-olimpiada-shkolnikov-g-zhukovskogo-publichnij-doklad-mou-shkola-13-s-uiop-g-o-zhukovskij.html
  • znanie.bystrickaya.ru/5-ustaya-rech-uchebno-metodicheskoe-posobie-izdanie-vosmoe-stereotipnoe-izdatelstvo-ekzamen-moskva-2008.html
  • zanyatie.bystrickaya.ru/podprogramma-izuchenie-i-issledovanie-antarktikifederalnoj-celevoj-programmi-mirovoj-okeans-izmeneniyami-ot-12-avgusta-2010g.html
  • literature.bystrickaya.ru/celevaya-programma-kaliningradskoj-oblasti-programma-modernizacii-zdravoohraneniya-kaliningradskoj-oblasti-na-2011-2012-godi-stranica-13.html
  • notebook.bystrickaya.ru/iz-knigi-ekoanarhizm-blagodarit-za-sodejstvie-v-podgotovke-etoj-knigi.html
  • portfolio.bystrickaya.ru/polozhenie-ob-uchetnoj-politike-dlya-celej-buhgalterskogo-ucheta-na-2006-god-n-e-kryukov-28-aprelya-2006-g.html
  • zanyatie.bystrickaya.ru/praktika-konstitucionnogo-suda-rf-po-voprosam-nalogooblozheniya.html
  • report.bystrickaya.ru/gosudarstvennaya-programma-uchebniki-russkogo-yazika-dlya-1-2-3-klassa-sravnitelnij-analiz-razdelov-i-osnovnih-tem-formirovanie-fonetiko-graficheskih-umenij-na-1-stupeni.html
  • vospitanie.bystrickaya.ru/world-englishes-paradigm-ili-kontaktnaya-variantologiya-anglijskogo-yazika-predislovie-k-perevodu.html
  • assessments.bystrickaya.ru/dopolnitelnie-celevie-indikatori-i-pokazateli-koncepciya-federalnoj-celevoj-programmi-modernizaciya-edinoj-sistemi.html
  • books.bystrickaya.ru/bibliotechnoe-delo-byulleten-novih-postuplenij.html
  • lecture.bystrickaya.ru/avtor-kursa-kuznicin-oleg-sergeevich.html
  • uchitel.bystrickaya.ru/razdel-8-razvitie-form-ustrojstva-v-semyu-detej-sirot-i-ob-utverzhdenii-ezhegodnogo-gosudarstvennogo-doklada.html
  • credit.bystrickaya.ru/po-forme-eksternat-po-specialnosti-finansi-i-kredit-vipusk-sostavil-3-cheloveka.html
  • bystrickaya.ru/voprosi-i-otveti-po-gosekzamenu-mgsu-misi-2004g-chast-9.html
  • paragraf.bystrickaya.ru/zakonom-rf-ob-obrazovanii-ot-10-07-1992-3266-1.html
  • knowledge.bystrickaya.ru/oblast-krugooborota-oborotnih-sredstv-predpriyatiya.html
  • credit.bystrickaya.ru/organizacionno-pravovie-osnovi-deyatelnosti-rossijskoj-sistemi-preduprezhdeniya-i-likvidacii-chrezvichajnih-situacij-zadanie-1-stranica-5.html
  • esse.bystrickaya.ru/referat-2003-g-170-kbajt.html
  • college.bystrickaya.ru/2-ioniziruyushee-izluchenie-radiacionnaya-bezopasnost-osnovnie-sanitarnie-pravila-obespecheniya-radiacionnoj-bezopasnosti-stranica-2.html
  • student.bystrickaya.ru/-referati-katalogi-stranica-6.html
  • znanie.bystrickaya.ru/74-provedenie-praktik-otchet-o-samoobsledovanii-deyatelnosti-filiala-po-realizacii-osnovnih-obrazovatelnih-programm.html
  • upbringing.bystrickaya.ru/mestoimenno-sootnositelnimi-sovremennij-russkij-yazik.html
  • nauka.bystrickaya.ru/usloviya-realizacii-proekta-perspektivnogo-razvitiya-plan-realizacii-proekta-perspektivnogo-razvitiya-na-2011-2015.html
  • institut.bystrickaya.ru/tema-2-aktivi-i-kapital-organizacii-kurs-lekcij-po-finansam-i-finansam-organizacij-predpriyatij-professora.html
  • uchitel.bystrickaya.ru/rasputin-valentin-stranica-7.html
  • occupation.bystrickaya.ru/metodicheskie-ukazaniya-k-izucheniyu-disciplini-i-vipolneniyu-kontrolnoj-raboti-dlya-studentov-zaochnoj-formi-obucheniya.html
  • pisat.bystrickaya.ru/sushnost-i-rol-gosudarstvennogo-byudzheta-rf.html
  • grade.bystrickaya.ru/metodicheskie-ukazaniya-k-laboratornim-rabotam-po-kursu-programmirovanie-na-yazikah-visokogo-urovnya.html
  • portfolio.bystrickaya.ru/participle-construction-as-a-parenthesis-atika-v-uprazhneniyah-ch-infinitiv-gerundij-prichastie-sbornik-uprazhnenij.html
  • writing.bystrickaya.ru/bag-i-bogdan-porozn-no-uzhe-vmeste-delo-lis-oborotnej.html
  • tetrad.bystrickaya.ru/uchebno-metodicheskij-kompleks-po-specialnosti-yurisprudenciya.html
  • turn.bystrickaya.ru/polozhenie-ob-obshem-sobranii-akcionerov-zakritogo-akcionernogo-obshestva-sibakademinvest.html
  • learn.bystrickaya.ru/glava-10-elizabet-strajd-slavilas-v-istende-svoim-burnim-harakterom-i-dovolno-vzrivoopasnimi-otnosheniyami-so.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.