Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Podobne dokumenty
Wstęp do Informatyki i Programowania

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Wstęp do Programowania, laboratorium 02

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Podstawy programowania skrót z wykładów:

Zmienne, stałe i operatory

Podstawy Programowania C++

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

1 Podstawy c++ w pigułce.

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

2 Przygotował: mgr inż. Maciej Lasota

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

1 Podstawy c++ w pigułce.

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do programowania

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Tablice, funkcje - wprowadzenie

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie strukturalne i obiektowe

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Zapis algorytmów: schematy blokowe i pseudokod 1

Część 4 życie programu

Wstęp do informatyki- wykład 11 Funkcje

Podstawy programowania w języku C

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Podstawy Programowania Podstawowa składnia języka C++

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Programowanie komputerowe. Zajęcia 4

Wskaźniki. Informatyka

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Podstawy programowania C. dr. Krystyna Łapin

Języki i metodyka programowania. Wprowadzenie do języka C

KURS C/C++ WYKŁAD 1. Pierwszy program

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Funkcja (podprogram) void

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wstęp do programowania

Programowanie - wykład 4

I - Microsoft Visual Studio C++

Programowanie komputerowe. Zajęcia 1

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Wstęp do programowania

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Biblioteka standardowa - operacje wejścia/wyjścia

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Lab 9 Podstawy Programowania

Programowanie komputerowe. Zajęcia 3

Co nie powinno być umieszczane w plikach nagłówkowych:

Wskaźniki w C. Anna Gogolińska

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zasady programowania Dokumentacja

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Microsoft IT Academy kurs programowania

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania komputerów

Programowanie Obiektowe i C++

Języki programowania - podstawy

INSTRUKCJE REPETYCYJNE PĘTLE

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Podstawy Programowania

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Podstawy Programowania.

Transkrypt:

Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146

deklaracje zmiennych instrukcja podstawienia instrukcje wejścia/wyjścia instrukcje warunkowe instrukcje pętli deklaracja, definicja i wywołanie funkcji J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 76 / 146

Deklaracje zmiennych Każda użyta w programie zmienna musi być zadeklarowana. Deklaracja w języku C ma następującą postać: Typ NazwaZmiennej; W deklaracji zmiennej możliwe jest zainicjowanie jej wartości: Typ NazwaZmiennej = WartośćPoczątkowa; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 77 / 146

Deklaracje zmiennych: zasięg deklaracji 01 #include <stdio.h> 0 i =1; 03 main() 04 05 prf("%d\n", i); 06 i = ; 07 prf("%d\n", i); 08 09 i = 3; 10 prf("%d\n", i); 11 1 prf("%d\n", i); 13 return 0; 14 15 16 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 78 / 146

Instrukcja podstawienia Instrukcja podstawienia ma w C następującą postać: NazwaZmiennej = Wyrażenie; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 79 / 146

Instrukcje wejścia/wyjścia Dołączenie do źródeł pliku nagłówkowego zawierającego deklaracje funkcji dostępnych w standardowej bibliotece wejścia/wyjścia: #include <stdio.h> Wywołanie funkcji scanf() ma następującą postać: scanf(format, &NazwaZmiennej); gdzie Format jest łańcuchem znaków ujętym między dwoma cudzysłowami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 80 / 146

Instrukcje wejścia/wyjścia Format Tabela : Wybrane formaty do czytania danych Opis %d Przeczytanie liczby całkowitej. %f Przeczytanie liczby rzeczywistej pojedynczej precyzji. %lf Przeczytanie liczby rzeczywistej podwójnej precyzji. %s Przeczytanie łańcucha znaków do białego znaku (spacja, tabulacja albo nowa linia). J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 81 / 146

Instrukcje wejścia/wyjścia Example Rozpatrzmy następujący fragment programu w C: wiek; char imie[10]; scanf("%d", &wiek); scanf("%s", imie); Przed zmienną wiek należy podać ampersand. Nie trzeba podawać ampersanda przed nazwą tablicy znaków imie. Na końcu przeczytanego napisu zostanie dodany znak \0 o kodzie 0. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 8 / 146

Instrukcje wejścia/wyjścia Do drukowania wartości wyrażeń służy funkcja prf(): prf(format, Wrażenie 1, Wyrażenie,...,Wyrażenie n ); gdzie Format jest łańcuchem znaków ujętym w cudzysłowy a Wyrażenie i, dla i = 1,,...,n, jest wyrażeniem, którego wartość będzie drukowana. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 83 / 146

Instrukcje wejścia/wyjścia Tabela : Wybrane formaty do drukowania danych Format Opis %c Drukowanie jednego znaku. %d Drukowanie liczby całkowitej. %f Drukowanie liczby rzeczywistej. %s Drukowanie łańcucha znaków zakończonego znakiem o kodzie 0. Format drukowania może zawierać dowolny tekst oraz następujące znaki specjalne: \n przejście do nowego wiersza, \t przejście do kolejnej pozycji tabulacji, \a krótki sygnał dźwiękowy (ang. bell character). J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 84 / 146

Instrukcje wejścia/wyjścia Przy każdym formacie można podać informację ile znaków ma zajmować drukowana wartość. Example W wyniku wykonania następującego fragmentu kodu: double d = 3.1415967; prf(" Liczba d=%f\n", d); prf(" Ta sama liczba na polu dziesieciu znaków d=%10f\n", d); prf("ta sama liczba z trzema cyframi po przecinku d=%.3f\n", d); zostaną wydrukowane następujące wiersze: Liczba d=3.141593 Ta sama liczba na polu dziesieciu znaków d= 3.141593 Ta sama liczba z trzema cyframi po przecinku d=3.14 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 85 / 146

Instrukcja pętli: pętla while-do Warunek W sterujący wykonywaniem się pętli może być w języku C dowolnym wyrażeniem dostarczającym wartość będącą liczbą całkowitą. Jeśli wartość W jest równa zero, to warunek nie jest spełniony, natomiast każda wartość różna od zera oznacza spełnienie warunku. Schemat blokowy Pseudokod Język C S NIE W TAK 1: while W do : S 3: end while while(w) S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 86 / 146

Instrukcja pętli: pętla do-while Schemat blokowy Pseudokod Język C S TAK W NIE 1: repeat : S 3: until W do S; while(!w); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 87 / 146

Instrukcja pętli: pętla for Schemat blokowy Pseudokod Język C i i 0 i i+1 S TAK NIE i i 1 1: for i i 0, i 1 do : S 3: end for for(i=i0; i<=i1; i++) S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 88 / 146

Instrukcja pętli: pętla for Pętla for w języku C jest jedynie skróconym zapisem pętli while-do. Example Rozpatrzmy następującą pętlę for: for(s1; W; S) S; Można zapisać ją jako następująca pętla while-do: S1; while(w) S; S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 89 / 146

Instrukcje warunkowe: instrukcja if-then Schemat blokowy Pseudokod Język C TAK W NIE S 1 1: if W then : S 1 3: end if if(w) S1; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 90 / 146

Instrukcje warunkowe: instrukcja if-then-else Schemat blokowy Pseudokod Język C TAK W NIE S 1 S 1: if W then : S 1 3: else 4: S 5: end if if(w) S1; else S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 91 / 146

Instrukcje warunkowe: instrukcja switch W języku C dostępna jest instrukcja switch, która przenosi sterowanie w różne miejsca w zależności od wartości danego wyrażenia W : switch(w) case W1: S1; break; case W: S; break;... case Wn: Sn; break; default: S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 9 / 146

Instrukcje warunkowe: instrukcja switch Fraza case Wi: jest etykietą miejsca gdzie nastąpi skok gdy wyrażenie W będzie miało wartość W i. #include <stdio.h> main() i, n; scanf("%d", &n); switch(n) case 0: for(i=0; i<10; i++) case 1: prf("i=%d\n", i); // co gdy n = 1? return 0; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 93 / 146

Deklaracje funkcji Niech T będzie typem wartości n-argumentowej funkcji f a T 1, T,...,T n będą typami kolejnych parametrów formalnych x 1, x...,x n. W następujący sposób deklaruje się funkcję f : Tf(T 1 x 1, T x,...,t n x n ); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 94 / 146

Deklaracje funkcji Example Niech w pliku dekl.c znajduje się następująca deklaracja i wywołanie funkcji suma(): suma( x, y); main() n; n = suma(, ); return 0; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 95 / 146

Deklaracje funkcji Example (cd.) Próba skompilowania źródeł programu dekl.c kończy się niepowodzeniem: $ gcc -o dekl dekl.c Undefined symbols for architecture x86_64: "_suma", referenced from: _main in ccra9xzb.o ld: symbol(s) not found for architecture x86_64 collect: ld returned 1 exit status J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 96 / 146

Definicja funkcji Załóżmy, że po wykonaniu instrukcji S, wartośćwyrażeniaw jest wartością n-argumentowej funkcji o typie wyniku T i parametrach x 1, x,...,x n typów T 1, T,...,T n. Definicję funkcji f zapisuje się w C w sposób następujący: Tf(T 1 x 1, T x,...,t n x n ) S; return W ; W szczególnym przypadku, jeśli samo wyrażenie W definiuje wartość funkcji f,instrukcje S można pominąć: Tf(T 1 x 1, T x,...,t n x n ) return W ; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 97 / 146

Definicja funkcji Example Niech w pliku def.c znajduje się następująca definicja i wywołanie funkcji suma(): suma( x, y) return x+y; main() n; n = suma(, ); return 0; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 98 / 146

Definicja funkcji Example Czasami nie da się zdefiniować funkcji bez ich deklaracji: double f()... g()... // nieznana funkcja g() float g()... f()... J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 99 / 146

Definicja funkcji Example (cd.) Należy zadeklarować funkcję g() przed jej pierwszym użyciem: float g(); double f()... g()... float g()... f()... J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 100 / 146

Definicja funkcji W języku C nie ma procedur takich jak w pseudokodzie. Aby zapisać w języku C procedurę p oparametrachx 1, x,...,x n typów T 1, T,...,T n,definiujemyfunkcjęopustymtypiewartości void: void p(t 1 x 1, T x,...,t n x n ) S; J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 101 / 146

Wywołanie funkcji Example Rozpatrzmy następujący fragment kodu dla funkcji suma() zwracającej sumę dwóch swoich argumentów będących liczbami całkowitymi: n; n = suma(suma(1, ), suma(4, 5)); W wyniku jego wykonania pod zmienną n zostanie podstawiona wartość 1: 1 Zostanie policzona wartość suma(1, ) równa 3. Zostanie policzona wartość suma(4, 5) równa 9. 3 Zostanie policzona wartość suma(3, 9) równa 1. 4 Wyliczona wartość 1 zostanie podstawiona pod n. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 10 / 146

Przekazywanie parametrów WCjesttylkojedensposóbprzekazywaniaparametrów:przez wartość (odpowiednik parametru in zpseudokodu). Jeśli w parametrze wywołania y ma się znaleźć odebrana z funkcji wartość, to należy zamiast wartości zmiennej y przekazać jej adres &y. Deklaracja parametru T *y oznacza, że parametr y jest wskazaniem na wartość typu T (adresem miejsca, gdzie przechowywana jest wartość typu T), natomiast *y jest wskazywaną przez y wartością typu T. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 103 / 146

Przekazywanie parametrów Example Rozpatrzmy następującą funkcję (procedurę) podwajacz: void podwajacz( x, y) y = x+x; Jeśli zmienna a ma wartość i zmienna b ma wartość 3, to po takim wywołaniu funkcji podwajacz: podwajacz(a, b); wartość zmiennej b nie ulegnie zmianie (nadal będzie równa 3). J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 104 / 146

Przekazywanie parametrów Example (cd.) Aby wyliczona wartość została przekazana na zewnątrz, funkcja podwajacz musi dostać nie wartość drugiego parametru ale miejsce gdzie wyliczoną wartość należy odłożyć: void podwajacz( x, *y) *y = x+x; Jeśli teraz wywołamy funkcję podwajacz wnastępującysposób: podwajacz(a, &b); to w zmiennej b znajdzie się podwojona wartość zmiennej a. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 105 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu!a,!b; a!=!; b!=!1; p(a,!&b); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 106 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość!a,!b; a!=!; b!=!1; p(a,!&b); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 107 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1!a,!b; a!=!; b!=!1; p(a,!&b); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 108 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p!a,!b; a!=!; b!=!1; p(a,!&b); J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 109 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu!a,!b; a!=!; b!=!1; p(a,!&b); x J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 110 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu *!a,!b; a!=!; b!=!1; p(a,!&b); * x y J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 111 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a!a,!b; a!=!; b!=!1; p(a,!&b); * x y J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 11 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b!a,!b; a!=!; b!=!1; p(a,!&b); * x y J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 113 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1; pamięć komputera 1 a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p!a,!b; a!=!; b!=!1; p(a,!&b); * x y J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 114 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); * pamięć komputera 1 3 a b x y 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 115 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); * pamięć komputera 3 a b x y 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 116 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); * pamięć komputera 3 a b x y 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 117 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); pamięć komputera 3 a b x 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p 13. usuwana jest zmienna lokalna y J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 118 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p 13. usuwana jest zmienna lokalna y 14. usuwana jest zmienna lokalna x J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 119 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p 13. usuwana jest zmienna lokalna y 14. usuwana jest zmienna lokalna x 15. sterowanie powraca do miejsca za wywołaniem funkcji p J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 10 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p 13. usuwana jest zmienna lokalna y 14. usuwana jest zmienna lokalna x 15. sterowanie powraca do miejsca za wywołaniem funkcji p 16. zmienna a nie zmieniła wartości J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 11 / 146

Przekazywanie parametrów void!p(!x,!!*y)!!x!=!x+1;!!*y!=!*y+1;!a,!b; a!=!; b!=!1; p(a,!&b); pamięć komputera a b 1. w pamięci znajdują się zmienne a i b typu. pod a podstawiana jest wartość 3. pod b podstawiana jest wartość 1 4. wywoływana jest funkcja p 5. tworzona jest zmienna lokalna x typu 6. tworzona jest zmienna lokalna y typu * 7. pod x podstawiana jest wartość zmiennej a 8. pod y podstawiany jest adres zmiennej b 9. rozpoczyna się wykonywanie funkcji p 10. zwiększa się wartość x o 1 11. zwiększa się wartość pod adresem pamiętanym w zmiennej y o 1 1. kończy się wykonanie funkcji p 13. usuwana jest zmienna lokalna y 14. usuwana jest zmienna lokalna x 15. sterowanie powraca do miejsca za wywołaniem funkcji p 16. zmienna a nie zmieniła wartości 17. zmienna b zmieniła wartość z 1 na J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 1 / 146