Argument (informatyka)

Argument (parametr aktualny), w informatyce, to element składni w określonym języku programowania, który w wyniku wywołania podprogramu, zostaje utożsamiony (skojarzony) z określonym parametrem podprogramu. Można stwierdzić, że argument konkretyzuje pewien abstrakcyjny parametr (nadając mu konkretną wartość, kojarząc parametr z określonym miejscem pamięci, zwracając konkretną wartość do miejsca wywołania itp.)[1].

Parametry i argumenty

Definiując podprogram programista posługuje się parametrem, czyli informacją (np. wartością), która nie jest znana w momencie definiowania podprogramu, a jedynie zadeklarowaną w jego nagłówku. Argument jest natomiast informacją (np. wartością), znaną, przekazaną z miejsca wywołania, którą posługuje się zdefiniowany wcześniej podprogram.

Sposoby specyfikacji argumentów

Składania języka programowania określa sposób specyfikacji argumentów przy wywołaniu określonego podprogramu. Najczęściej podaje się listę argumentów ujętą w nawiasy po nazwie podprogramu, np. „podprogram(arg1, arg2, …, arg_n);”. Przykładowe języki to: C[2][3][4], C++[2][3][4], Pascal[5][6], PL/1[7][8], Ada[9][10], ALGOL[11][12] i wiele innych. W pewnych językach lista ta nie musi być ujmowana w nawiasy. Jest to więc specyfikacja pozycyjna argumentów, w której to, który argument zostanie skojarzony z którym parametrem decyduje pozycja na liście. Niektóre języki, np. Visual Basic, umożliwiają przypisania argumentu do parametru poprzez identyfikator parametru. Nie ma wtedy znaczenia kolejność specyfikacji argumentów, np. „podprogram parametr3=arg1 parametr2=arg2 paramter1=arg3”.

Rodzaje argumentów

Argumenty mogą zostać podzielone na dwie zasadnicze grupy:

argumenty wymagane
muszą zostać wyspecyfikowanie w wywołaniu podprogramu,
argumenty opcjonalne
mogą zostać wyspecyfikowanie wywołaniu podprogramu, lub mogą zostać pominięte; argumenty opcjonalne mogą posiadać zdefiniowaną domyślną wartość argumentu.

Przekazywanie argumentów

Argumenty przekazywane przez wartość

W tym przypadku parametr zachowuje się w podprogramie jak zmienna lokalna, której przypisano w momencie wywołania podprogramu wartość początkową, równą wartości przekazywanego argumentu. Oznacza to, że argument przekazywany do podprogramu może być wyrażeniem. Po zakończeniu podprogramu, wartość odpowiedniego parametru, nie zostanie zachowana.

Przykładowe języki programowania: Ada (in)[1][9][10], Pascal[1][5][6], C[2][3][4], Modula-2[13], Snobol[14] i inne.

Argumenty przekazywane przez wynik

Parametr zachowuje się jak zmienna lokalna, bez wartości początkowej (a więc należy dokonać przypisania wartości w podprogramie), a po zakończeniu podprogramu, argument (który powinien być zmienną, wskazaniem na zmienną lub innym wyrażeniem dopuszczalnym po lewej stronie operatora przypisania w danym języku programowania) otrzyma wartość nadaną w podprogramie, przekazaną do miejsca wywołania.

Przykładowe języki programowania: Ada (out)[1][9][10], ALGOL W[1]

Argumenty przekazywane przez wartość i wynik

Jest to połączenie metod przekazywania argumentów:

  • przez wartość oraz
  • przez wynik.

Parametr zachowuje się więc jak zmienna lokalna o nadanej w momencie wywołania podprogramu wartości początkowej, równej wartości przekazywanego argumentu, a po zakończeniu podprogramu argument zachowa ostatnio nadaną parametrowi wartość.

Przykładowe języki programowania: Ada (in out)[1][9][10].

Argumenty przekazywane przez referencję

Argumenty przekazywane przez referencję (przez zmienną, przez adres), to nałożenie zmiennej reprezentowanej przez parametr na zmienną reprezentowaną przez argument. Każda zmiana wartości parametru oznacza w rzeczywistości zmianę wartości skojarzonego z nim argumentu. Różnica z przekazywaniem argumentu przez wartość i wynik polega więc na tym, że w tym drugim przypadku istnieje zmienna lokalna, na której wykonywane są wszystkie operacje, przy przekazywaniu przez referencję wszystkie operacje wykonywane są bezpośrednio na argumencie.

Przykładowe języki programowania: C/C++[2][3][4], Pascal (var)[1][5][6], Modula-2[13], PL/I[7][8], COBOL[15], Fortran[11].

Argumenty przekazywane przez nazwę

Ten sposób oznacza użycie argumentu w miejscu parametru, w takiej postaci, w jakiej wystąpił w miejscu wywołania. W uproszczeniu (nie jest to do końca prawdziwe stwierdzenie), obrazowo, można by utożsamić przekazywanie argumentu przez nazwę z tekstowym podstawieniem zapisu argumentu w każdym miejscu podprogramu, w którym odwołano się do parametru.

Dokładniej: w ALGOLu przekazywanie przez nazwę zdefiniowane jest następująco[11]:

  • Procedura jest traktowana podobnie jak makro, czyli jej treść jest wklejana w miejscu wywołania, z zastąpieniem parametrów przekazywanych przez nazwę argumentami.
  • Dla zachowania jednoznaczności parametry aktualne otaczane są nawiasami.
  • Jeśli zmienne lokalne procedury kolidują ze zmiennymi widocznymi w miejscu wywołania, to ich nazwy zostają zmienione na unikatowe.

Przykładowe języki programowania: ALGOL 60[1][11], Simula 67[16].

Zobacz też

Przypisy

  1. a b c d e f g h Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.).
  2. a b c d Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.).
  3. a b c d Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.).
  4. a b c d Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
  5. a b c Michał Iglewski, Jan Madey, Stanisław Matwin: Pascal. Język wzorcowy – Pascal 360. Wyd. trzecie – zmienione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  6. a b c Andrzej Marciniak: Borland Pascal 7.0. Poznań: Nakom, 1994, seria: Biblioteka Użytkownika Mikrokomputerów. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  7. a b Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.).
  8. a b M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.).
  9. a b c d A. Nico Habermann, Dewayne E. Perry: Ada dla zaawansowanych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1989, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1058-4. (pol.).
  10. a b c d Michał Morawski, Antoni M. Zajączkowski: Wstęp do programowania w języku Ada’95. Wyd. drugie. Łódź: 2004. [dostęp 2011-01-29]. (pol.).
  11. a b c d Joanna Jonkisz, Jan Makuch, Stanisław Starzak: Programowanie w językach Algol 60 i Fortran 1900. Łódź: Wydawnictwo Politechniki Łódzkiej, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej, 1982, seria: Skrypty dla szkół wyższych. (pol.).
  12. Jan Małuszyński, Krzysztof Pisecki, A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff,.H. Lindsey, L.G.L.T. Meertens, R.G. Fisker, w tłumaczeniu Jana Małuszyńskiego i Krzysztofa Piseckiego: Algol 68. Wprowadzenie do języka Algol 68. Zmieniony raport o języku algorytmicznym Algol 68. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0161-5. (pol.).
  13. a b Niklaus Wirth: Modula 2. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0828-8. ISSN 0867-6011. (pol.).
  14. Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.).
  15. Eugeniusz Kurzydrem, Andrzej Macieliński, Urszula Szmidt, Eugeniusz Więcek: COBOL. Język programowania. Wyd. drugie. Warszawa: Państwowe Wydawnictwo Ekonomiczne, 1978. (pol.).
  16. Hanna Oktaba, Wiesław Ratajczak: Simula 67. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0128-3. (pol.).

Read other articles:

Suku Bulungan atau Melayu Bulungan adalah kelompok etnis di Kalimantan Utara (Kaltara) yang menduduki wilayah Kesultanan Bulungan, seperti pesisir Kabupaten Bulungan, sebagian Kabupaten Tana Tidung, Kabupaten Malinau, Kabupaten Nunukan, Kota Tarakan, dan Tawau di Sabah, Malaysia. Sejarah suku ini berkaitan erat dengan legenda mengenai kelahiran Kesultanan Bulungan yang dulu menjadi pusat pemerintahan di wilayah ini.[1] Periodisasi Kepemimpinan Suku Bulungan Kisah asal mula suku ini be...

 

US WWII airfields Chico Municipal Airport Chico Army Airfield, a 2006 USGS photo Chico Army Airfield auxiliary fields were a number of airfields used during World War II to support the Chico Army Airfield. On September 11, 1941, the US Army rented from the City of Chico a small 1930's airport that sat on 160 acres (0.65 km2) of land. The Airfield was five miles (8.0 km) north of the city center. The Army built up the small airport into the Chico Army Airfield. From the Chico Army Ai...

 

Haruna, a Kongō-class battlecruiser on its sea trials, on 23 January 1915. The Imperial Japanese Navy (大日本帝国海軍) built four battlecruisers, with plans for an additional four, during the first decades of the 20th century. The battlecruiser was an outgrowth of the armoured cruiser concept, which had proved highly successful against the Russian Baltic Fleet in the Battle of Tsushima at the end of the Russo-Japanese War. In the aftermath, the Japanese immediately turned their focus ...

Bazzi BazziBazzi em 2019. Informação geral Nome completo Andrew Bazzi Nascimento 28 de agosto de 1997 (26 anos) Local de nascimento Dearborn, Michigan, Estados Unidos Gênero(s) Pop e R&B Ocupação(ões) Cantor Compositor Período em atividade 2015–presente Gravadora(s) Atlantic Afiliação(ões) 21 Savage 6lack Camila Cabello Nelly Lil Wayne Página oficial Site oficial Andrew Bazzi, conhecido como Bazzi, é um cantor e compositor americano. Sua canção Mine, lançad...

 

Funktionsprinzip eines Retrofokus-Objektivs (Lichteinfall von links). H ist die bildseitige Hauptebene Der Begriff Retrofokus bezeichnet eine besondere Bauweise von Objektiven mit kurzer Brennweite. Das Wort Retrofokus beschreibt dabei bereits im Kern die wesentliche Eigenschaft dieser Objektive: es leitet sich ab vom lateinischen retro: rückwärts, zurück und focus: Feuerstätte, Herd, im übertragenen Sinne Brennpunkt. Retrofocus bedeutet übersetzt also: Den Brennpunkt zurücksetzen. Inh...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Museum PertanianMuzium PertanianDidirikanOktober 1990LokasiJasin, Melaka, MalaysiaKoordinat2°18′36.4″N 102°25′52.6″E / 2.310111°N 102.431278°E / 2.310111; 102.431278Koordinat: 2°18′36.4″N 102°25′52.6″Eþ...

原来这就是爱啊사랑이라 말해요别名说是爱情类型浪漫、劇情编剧金佳恩导演李光英金智娟主演金英光李聖經盛駿安喜延金叡園制作国家/地区 韩国语言韩语集数16(每集列表)每集长度約61-72分鐘配乐朴世俊制作拍摄/制作年份2022年3月-10月制作人安昌铉(企劃)韓惠妍崔明奎裴俊梧刘正焕金秋石执行制作宋敏珠(總括)金恩智(總括)洪現在朴海民李容碩剪辑俞贤...

 

Historic site in Pinilla de Jadraque, SpainChurch of Nuestra Señora de la AsunciónNative name Spanish: Iglesia de Nuestra Señora de la AsunciónLocationPinilla de Jadraque, SpainCoordinates41°01′13″N 2°56′31″W / 41.020407°N 2.94189°W / 41.020407; -2.94189 Spanish Cultural HeritageOfficial nameIglesia de Nuestra Señora de la AsunciónTypeNon-movableCriteriaMonumentDesignated1965Reference no.RI-51-0001645 Location of Church of Nuestra Señora de la A...

 

Nuclear explosion in a white dwarf star For other uses, see Nova (disambiguation), Novas (disambiguation), and Novae (disambiguation). Not to be confused with luminous red nova, supernova, kilonova, or micronova. Artist's conception of a white dwarf, right, accreting hydrogen from the Roche lobe of its larger companion star A nova (pl.: novae or novas) is a transient astronomical event that causes the sudden appearance of a bright, apparently new star (hence the name nova, which is Latin for ...

Maca Syekh atau Maca Seh dalam pengucapan lain merupakan kegiatan membaca riwayat hidup/biografi ulama besar Ahli Sunnah dan pendiri tarikat Qadiriyah yaitu Syekh Abdul Qadir Al-Jailani. Kegiatan ini umum dilaksanakan oleh masyarakat Pandeglang secara rutin tiap malam Jumat dan juga pada berbagai acara selamatan lain seperti pada acara marhaban (selamatan dan pemberian nama pada bayi yang berumur 40 hari), selamatan pernikahan, selamatan rumah baru, dan lain-lain. Riwayat yang dibaca ditulis ...

 

Руйнування шатуна з алюмінієвого сплаву. Темна зона: втомне руйнування. Світла зона: зона крихкого доламу Вто́мне руйнува́ння — руйнування матеріалу під дією повторно-перемінних (часто циклічних) навантажень[1]. Фізичні причини втомного руйнування матеріалів доси

 

Town in Louisiana, United StatesSt. FrancisvilleTownTown of St. FrancisvilleOne of several former plantation houses near St. FrancisvilleLocation of St. Francisville in West Feliciana Parish, Louisiana.Location of Louisiana in the United StatesCoordinates: 30°47′05″N 91°22′50″W / 30.78472°N 91.38056°W / 30.78472; -91.38056CountryUnited StatesStateLouisianaParishWest FelicianaEstablished1807Government • MayorBobbee LeakeArea[1] •&#...

Lasowice Małe wieś Kościół Wniebowzięcia NMP w Lasowicach Małych Państwo  Polska Województwo  opolskie Powiat kluczborski Gmina Lasowice Wielkie Wysokość 200–220 m n.p.m. Liczba ludności (2005) 553 Strefa numeracyjna 77 Kod pocztowy 46-280[1] Tablice rejestracyjne OKL SIMC 0497696 Położenie na mapie gminy Lasowice WielkieLasowice Małe Położenie na mapie PolskiLasowice Małe Położenie na mapie województwa opolskiegoLasowice Małe Położenie na mapie powiat...

 

Костенко Євдокія ЛеонтіївнаНародилася 14 березня 1922(1922-03-14)Троїцьке, Городищенська волость (Павлоградський повіт), Павлоградський повіт, Катеринославська губернія, Українська СРРПомерла 8 лютого 1992(1992-02-08) (69 років)Троїцьке, Павлоградський район, Дніпропетровська область...

 

Chairperson of the Qatar Foundation This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (July 2020) (Learn how and when to remove this template message) This articl...

NakulaनकुलNakula dalam lukisan India.Tokoh MahabharataNamaNakulaEjaan DewanagariनकुलEjaan IASTNakulaNama lainMadreya, Grantika, Damagranti, AswinisutaKitab referensiMahabharataAsalHastinapura, Kerajaan KuruKastaKsatriaDinastiCandraKlanKuruSenjataPedangAyahAswin (de facto)Pandu (sah)IbuMadriIstriDropadi, KarenumatiAnakSatanika (dari Dropadi) Nakula (Dewanagari: नकुल; ,IAST: Nakula, नकुल), adalah seorang tokoh protagonis dalam wiracarita Mahabharata. Ia...

 

Kosal Kranti Dal (KKD) is a regional political outfit of Odisha with particular focus on western Odisha which is known for its separatist movement for a separate Koshal state as per article 2 & 3 of Indian Constitution. KKD is mainly focusing on the creation of a separate Kosal state by the bifurcation of Odisha.The KKD was formed in the year 2007 with veteran Koshalbadi leader and potential advocate Pramod Mishra became its first president. Later on Bunde Dharua of Jharsuguda became the ...

 

Balkan Air ForceSpitfire Vc's of the Yugoslav-manned No 352 (Y) Squadron RAF before first mission on 18 August 1944, from airport Canne - ItalyCountry United KingdomBranch Royal Air ForceMilitary unit The Balkan Air Force (BAF) was an Allied air formation operating in the Balkans during World War II. Composed of units of the Royal Air Force and South African Air Force under the Mediterranean Allied Air Forces command, it was active from 7 June 1944 until 15 July 1945. Air Vice Marshal William...

Koordinat: 48°12′02″N 16°21′57″E / 48.200465°N 16.365746°E / 48.200465; 16.365746 Gedung SecessionWiener SecessionsgebäudeGedung SecessionInformasi umumJenisBalai pameranGaya arsitekturArt NouveauLokasiWina, AustriaKoordinat48°12′1.86″N 16°21′56.43″E / 48.2005167°N 16.3656750°E / 48.2005167; 16.3656750Mulai dibangun1897Rampung1898DimensionsDiameter40 m × 30 m (131 ft × 98 ft)Data teknisLua...

 

У Вікіпедії є статті про інші значення цього терміна: Нарва (значення). Не плутати з Нарвою — притокою Вісли. Нарва 58°59′14″ пн. ш. 27°43′49″ сх. д. / 58.98730000002777274° пн. ш. 27.73030000002777840° сх. д. / 58.98730000002777274; 27.73030000002777840Витік Чудське озеро• координа...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!