Садржај
3 Променљиве, подаци, типови
3.5 Текстуални подаци (стрингови, ниске)
4 Гранања
4.7 Гранања - разни задаци
5 Петље
5.1 Врсте петљи
5.2 Наредбе break и continue
6 Статички методи
6.4 Корист од метода
7 Низови
7.2 Низови - вежбање
8 Матрице
9 Кориснички дефинисани типови
10 Фајлови

Извршавање метода

У приручнику Увод у програмирање у програмском језику C# погледајте поглавље 5.5 (стране 121-128).


Поновимо укратко најважније појмове из ове лекције:

Аргументе у заглављу метода зовемо формални аргументи, а аргументе на месту позива метода зовемо стварни аргументи, или актуелни аргументи. Формални аргументи служе да у телу функције опишемо поступак рачунања, а стварни аргументи доносе вредности које ће бити додељене формалним аргументима метода.

Терминологија: Формални аргументи се често називају параметрима метода, а под аргументима се подразумевају само стварни аргументи. Пошто ова конвенција није стопостотно прихваћена, на местима где може доћи до забуне ми ћемо користити мање елегантне, али једнозначне термине: формални и стварни аргументи.

На месту позива метода као (стварни) аргументи могу да се наведу константе, изрази или променљиве са истим или другачијим именима од имена формалних аргумената из декларације функције. Са становишта извршавања метода нису битна имена стварних аргумената него само њихове вредности.

Поступак извршавања метода тече овако:

  • Приликом позива метода, метод резервише меморијски простор за своје параметре и локалне променљиве. Овај простор се резервише у меморији посебно намењеној за ове сврхе, која се зове програмски стек, или кратко стек. Параметар или локална променљива једног метода сме да се зове исто као и променљива неког другог метода (укључујући и метод Main) и неће доћи до збрке јер метод не види меморијски простор других метода.

  • Пренесу се аргументи: вредности израза који се јављају у позиву метода се израчунају и упишу у простор предвиђен за параметре метода.

  • Изврши се тело метода. Ако метод током извршавања позива неки други метод, тај други метод добија свој део меморије на програмском стеку и извршава се на исти овај начин, а први метод који га је покренуо чека на његов завршетак и затим наставља са својим извршавањем.

  • Ако се ради о методу који враћа вредност и позив се јавља као део неког израза, позив метода се „замени” резултатом рачунања функције, наведеним иза речи return. Овде не долази стварно до замене позива вредношћу, али нам је за сада лакше да овако размишљамо.

  • Ослободи се простор на програмском стеку, који је био резервисан за параметре и локалне променљиве метода.

Све ово се може видети при извршавању програма корак по корак у окружењу Visual Studio. Једна наредба програма се извршава притиском на тастер F10 или F11. Разлика између ова два начина извршавања наредбе се види када наиђемо на наредбу у којој се позива неки метод. Притиском на F10 цео се метод извршава у једном кораку, а притиском на F11 се улази у тело метода и свака његова наредба може да се изврши као посебан корак.

Током извршавања корак по корак, можемо да пратимо шта се за то време дешава са променљивама. За увид у стање програма треба пратити садржај ова три прозора:

  • Прозор са програмским кодом, у коме видимо која наредба ће се извршити следећа.

  • Прозор Autos, у коме видимо вредности локалних променљивих и параметара метода који се тренутно извршава.

  • Прозор Call Stack (стек позива, програмски стек), у коме видимо све методе чије извршавање је започето. При томе је метод на врху онај који се управо извршава, а они испод чекају да се изврше методи који су из њих ланчано позивани (то су методи који су изнад њих на стеку), да би они наставили са својим извршавањем.

У следећој галерији приказано је извршавање програма корак по корак. На сликама се виде три поменута прозора окружења Visual Studio (прозор са кодом је десно, прозор Autos је лево горе, а прозор Call Stack лево доле). Осим тога, приказан је и шематски изглед меморије пре и после сваке наредбе - бледоплави правоугаоник преко прозора Call Stack.

Проучите слике у галерији која следи. Прођите кроз галерију напред-назад и пратите промене у свим прозорима приказаним на слици.

Испробајте сада и извршавање програма корак по корак и у окружењу Visual Studio. Када дођете до позива метода, испробајте и извршавање целог метода у једном кораку (F10) и извршавање наредби метода једну по једну (F11). Пратите шта приказују прозори Call Stack и Autos. Ако ови прозори нису видљиви током извршавања корак по корак, затражите њихово приказивање, нпр. тако што отворите мени Debug / Windows и изаберете прозор који желите да видите.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+