Język C - ćwiczenie 1

Wielkość: px
Rozpocząć pokaz od strony:

Download "Język C - ćwiczenie 1"

Transkrypt

1 Język C - ćwiczenie 1 Podstawy 1 Kompilacja Program napisany w dowolnym języku musi być przed wykonaniem przełożony na kod maszynowy komputera na którym jest wykonywany. Może to odbywać się na dwa sposoby: każdorazowo podczas wykonania - program jest interpretowany; tylko jeden raz po napisaniu - program jest kompilowany. Skrypty powłoki, z którymi miałeś(aś) do czynienia w poprzedniej serii ćwiczeń laboratoryjnych, są programami interpretowanymi. Takie programy są łatwe do przenoszenia między komputerami różnych architektur. Dodatkowo można je łatwo poprawiać między kolejnymi uruchomieniami. Niestety, interpretacja programu zajmuje czas przez co wykonuje się on znacznie wolniej - praktycznie nie spotyka się np. gier napisanych w językach interpretowanych. Jeżeli piszemy złożony program który nie wymaga częstych modyfikacji, lepiej skorzystać z języka kompilowanego. Skompilowany program wykonuje się szybko, ale jest przystosowany tylko do jednej architektury komputera i jednego systemu operacyjnego. Większość dużych programów (pakiety biurowe, przeglądarki internetowe, gry, narzędzia obliczeniowe) są pisane w językach kompilowanych i dostarczane w formie binarnej, czyli gotowej do uruchomienia. Język C, z którym będziesz zapoznawać się do końca tego semestru (a także w następnym semestrze) jest jednym z najpopularniejszych języków kompilowanych. 1.1 Od kodu do pakietu binarnego Kompilacja nie jest jedynym procesem wykonywanym podczas przygotowywania programu napisanego w języku C. Program taki składa się z jednego lub więcej plików tekstowych z rozszerzeniem.c. Są to pliki źródłowe. Program może też zawierać tzw. pliki nagłówkowe z rozszerzeniem.h. Proces przygotowania programu wykonywalnego, nazywany budowaniem programu przedstawia rysunek 1 Pisanie kodu Po zaprojektowaniu funkcjonalności programu (czyli wymyśleniu co i jak ma robić) oraz wybraniu/opracowaniu algorytmów i struktur danych przychodzi pora na pisanie kodu programu. Kod programu jest zapisywany w zwykłych plikach tekstowych i do jego przygotowania wystarczy dowolny edytor tekstu. Częściej stosuje się jednak edytory z Kolorowaniem składni, czyli zaznaczające kolorami poszczególne elementy języka. Podczas pisania kodu należy trzymać się jednego standardu kodowania, określającego sposób umieszczania poszczególnych elementów programu względem siebie. Jest to szczególnie istotne gdy pracuje się w zespole programistów; w takiej sytuacji jednolity styl znacznie ułatwia pracę wszystkich. Dokumentacja kodu Pisany program musi być udokumentowany w sposób umożliwiający jednoznaczne zrozumienie przeznaczenia i działania jego poszczególnych fragmentów. Najprostszym (i bardzo niedocenianym) sposobem jest uzupełnienie kodu o komentarze, czyli fragmenty nie wykorzystywane w procesie budowania i przeznaczone do czytania przez ludzi przeglądających kod. Brak komentarzy często uniemożliwia skorzystanie z kodu nawet jego własnemu autorowi, który wraca do niego po pewnym czasie. Bardziej zaawansowane techniki dokumentacji często polegają na przygotowywaniu dokładnych opisów działania elementów programu. Często stosuje się narzędzia które analizują komentarze opatrzone specjalnymi znacznikami, przygotowując z nich kompletną dokumentację w wybranym formacie (np. pdf lub html). Dokumentacja jest później wykorzystywana na etapie testów. W programach pisanych przez profesjonalne zespoły programistów dokumentacja jest często obszerniejsza niż sam kod programu! 1

2 Plik źródłowy Plik nagłówkowy Preprocessing Kompilacja Pliki binarne i biblioteki Plik źródłowy Plik nagłówkowy Preprocessing Kompilacja Łączenie Plik wyjściowy Plik źródłowy Preprocessing Kompilacja Rysunek 1: Ilustracja procesu budowy programu Preprocessing Pierwszą czynnością podczas przygotowania kodu jest preprocessing, czyli wstępna analiza kodu. Jest on wykonywany osobno dla każdego pliku.c przez program nazywany preprocesorem. Działaniem preprocesora steruje programista dodając do programu dyrektywy preprocesora, w języku C oznaczone znakiem #. Najczęstsze zadania preprocesora to dołączenie do plików źródłowych zawartości plików nagłówkowych. Często używa się go też do modyfikacji kodu, np. wyłączania niepotrzebnych fragmentów lub zamieniania fragmentów kodu na zdefiniowane słowa. Preprocesor jest uruchamiany oddzielnie dla każdego pliku źródłowego. Jeżeli zażądano dołączenia pliku nagłówkowego, jest on również analizowany. Kompilacja Po poprawnym zakończeniu działania preprocesora uruchamiany jest kompilator. Poza tłumaczeniem na kod asemblera jego zadaniem jest optymalizacja działania programu. Możliwe jest także dołączenie znaczników, umożliwiających debugowanie programu. Po wykonaniu kompilacji automatycznie uruchamiany jest asembler, który generuje kod maszynowy w formie sekwencji liczb. Podobnie jak preprocesor, kompilator operuje oddzielnie na każdym z plików źródłowych. Efektem jego działania jest zatem zestaw plików binarnych. Łączenie Zanim program będzie mógł być uruchamiany, pliki binarne wytworzone przez kompilator muszą zostać połączone w jedną całość. Jest to zadanie programu łączącego, czyli linkera. Poza połączeniem plików, linker uzupełnia plik wynikowy o dane, informujące system operacyjny o jego przeznaczeniu, czyli czy np. plik jest programem wykonywalnym, biblioteką lub sterownikiem sprzętu. Ponieważ łączeniu podlegają pliki binarne, na tym etapie mogą być dołączane pliki napisane w innym języku programowania oraz biblioteki systemowe. Plik wygenerowany przez linker może być wykonywany, ale jeżeli program ma być rozpowszechniany konieczne są jeszcze dodatkowe kroki. Łączenie dynamiczne Wiele bibliotek systemowych jest stosowana przez niemal wszystkie zainstalowane programy. W takim przypadku zamiast łączyć każdy program z biblioteką lepiej jest zainstalować bibliotekę w formie binarnej w systemie i zastosować łączenie dynamiczne. Polega ono na tym, że w programie znajdują się informacje dla systemu operacyjnego o potrzebnej bibliotece. Gdy zachodzi konieczność użycia biblioteki, system operacyjny ładuje ją do pamięci i umożliwia programowi skorzystanie z niej. Szybkość działania programów łączonych dynamicznie jest porównywalna z programami posiadającymi wbudowane biblioteki (czyli łączonymi statycznie), a ich rozmiar jest znacznie mniejszy. Gdy jednak biblioteki nie ma w systemie, program się nie wykona. 2

3 Debugowanie i testy Poza najprostszymi przypadkami, praktycznie każdy program zaraz po napisaniu ma błędy. Muszą one zostać usunięte zanim program zostanie dostarczony do użytkownika. W tym celu gotowy program jest testowany. Testy programu mogą być prowadzone automatycznie lub ręcznie, i mogą to być testy działania (ładuje się, nie zużywa pamięci w niekontrolowany sposób, korzysta z właściwych danych) oraz testy funkcjonalności (robi to do czego jest przewidziany). W przypadku stwierdzenia błędu musi on zostać usunięty. Niewiele błędów jest jednak oczywiste (takie zwykle wykrywane są na etapie kompilacji lub łączenia i kończą się błędem kompilatora lub linkera). Aby znaleźć błędy, program poddaje się debugowaniu. Może ono w najprostszym przypadku polegać na wypisaniu wybranych danych i stanu pracy na ekran i ich obserwacji. Bardziej zaawansowanym rozwiązaniem jest zastosowanie debuggera. Jest to program, pozwalający na załadowanie badanego programu do pamięci w sposób kontrolowany, i wykonanie go instrukcja po instrukcji. Możliwy jest też podgląd zmiennych oraz ustawianie tzw. pułapek, zatrzymujących wykonanie programu po dojściu do wybranej linii, a także wiele innych udogodnień (podgląd wątków programu, przerwań czy sygnałów systemowych). Program przeznaczony do debugowania musi być niestety odpowiednio przygotowany na etapie kompilacji. Programów takich nie da się optymalizować, przez co działają wolniej, a obecność dodatkowych znaczników zwiększa ich rozmiar. Dostarczenie do użytkownika końcowego Gotowy program, o ile nie jest wprawką programistyczną, powinien być dostarczany użytkownikowi końcowemu. Sposób dostarczenia różni się w zależności od użytkownika. Jeżeli program jest przeznaczony dla użytkowników masowych, to jest on uzupełniany o instalator (w przypadku Windows) lub jest przygotowywany pakiet instalacyjny (dla Mac OS X i Linuksa). Następnie program jest dostarczany użytkownikom wybranym kanałem dystrybucyjnym. W przypadku odbiorców indywidualnych często biorą oni aktywny udział w postawaniu oprogramowania, a dostarczenie może polegać na przekazaniu kodu źródłowego, urządzenia z wgranym programem lub niemal dowolnie innej formie dostawy. Zintegrowane środowisko programisty Jak widać, tworzenie programu jest procesem złożonym, wieloetapowym i wymagającym wielu programów. Programy te mogą być uruchamiane przez programistę ręcznie, przez skrypt powłoki lub specjalizowany program budujący (np. make). Metody te nie są jednak często stosowane, gdyż są na dłuższą metę niewygodne. Zamiast tego stosuje się programy nazywane zintegrowanym środowiskiem programisty lub IDE ang. integrated development environment. Posiada ono przynajmniej edytor tekstu z kolorowaniem składni oraz intefejs graficzny umożliwający automatyczne wykonywanie procesu budowania lub jego wybranych etapów. Kolejnym, niemal zawsze występującym elementem składowym IDE jest interfejs graficzny dla debuggera. Współcześnie jest on zawsze zintegrowany ze wspomnianym edytorem tekstu. Bardziej zaawansowane IDE mają wiele innych elementów składowych. Przykładowo, są wyposażone w narzędzia do współpracy dla grup programistów, edytory interfejsów uzytkownika czy wsparcie dla narzędzi sprzętowych do programowania mikrokontrolerów. W laboratorium podstaw informatyki będziesz korzystał(a) z prostego IDE o nazwie Code::blocks. Jego funkcjonalność jest aż nadto wystarczająca dla wykonywanych zadań, a dużą zaletą jest wieloplatformowowść - Code::blocks jest dostępne zarówno dla systemu Linux, jak i Windows. 2 Program w języku C Przyjrzyjmy się teraz przykładowemu programowi: /* program przykładowy 1 - Podstawy Informatyki Andrzej Wetula, 2012 */ #include <stdio.h> // funkcja fun1 void fun1(int M) if(m<100) return; 3

4 else printf("m wynosi %d\n",m); // funkcja main int main(void) int L; for(l=0;l<10;l++) printf("%d ",L); printf("\n"); fun1(100); return 0; Każdy program w C jest podzielony na funkcje. Funkcja jest fragmentem kodu, któremu programista nadał nazwę, i który może być wykonany dowolną ilość razy. W powyższym przypadku program składa się z dwóch funkcji: main oraz fun1. Program operuje na danych, które są przechowywane w zmiennych, mających określony typ. Zmienną w programie jest L; służy ona do przechowywania liczb całkowitych ze znakiem (typ int). Podstawową częścią każdego języka są słowa kluczowe. Określają one operacje jakie ma wykonać komputer. Słowami kluczowymi w powyższym programie są for, if wraz z else oraz return. Poza słowami kluczowymi w kodzie można znaleźć wywołania funkcji. Każde wywołanie polega na wpisaniu nazwy funkcji z parametrami w nawiasie okrągłym (jeżeli funkcja nie przyjmuje parametrów, wpisujemu pusty nawias). Wywołaniami funkcji są na przykład printf( %d,l); i fun1(100);. Zauważ, że funkcja printf nie występuje w kodzie, ale jest używana. Jest ona dostępna dzięki obecności w dynamicznie łączonej bibliotece systemowej, do której odwołanie wpisano do kodu w formie dyrektywy preprocesora #include <stdio.h>. Ostatnim (ale ważnym) fragmentem kodu są komentarze. Mogą one mieć postać tekstu ograniczonego znacznikami / i / albo linii rozpoczętych znacznikiem //. Formatowanie kodu i standardy kodowania Kod podzielony jest na linie, z których każda jest zakończona średnikiem. Zapomnienie wpisania średnika to najczęstszy błąd poczkątkującego (i nie tylko) programisty!. Do grupowania fragmentów kodu służą nawiasy klamrowe i. Kod objęty takimi nawiasami nazywany jest instrukcją złożoną i jest traktowany jak pojedyncza instrukcja. Wcięcia w kodzie nie są interpretowane przez kompilator i służą wyłącznie poprawie czytelności programu. Innymi słowy, powyższy kod mógłby wyglądać tak: void fun1(int M) if(m<100) return; else printf("m wynosi %d\n",m); int main(void) int L; for(l=0;l<10;l++) printf("%d ",L); printf("\n"); fun1(100); return 0; Jeżeli nie wierzysz, możesz sprawdzić że taki kod też się skompiluje. Jednak możliwość zrozumienia co on robi jest znikoma. Dlatego pamiętaj o wcięciach! Jak widzisz, C nie wymusza układu kodu. Z tego powodu robią to ludzie, ustalając standardy kodowania. Standard kodowania określa wymagania dotyczące formatowania kodu (czyli stylu wcięć i położenia nawiasów klamrowych), nazewnictwa funkcji i zmiennych czy sposobu budowania często spotykanych konstrukcji programistycznych. Podczas zajęć w laboratorium nie jest wymagane trzymanie się konkretnego standardu kodowania, ale kod powinien być czytelny i jednoznaczny, a styl powtarzalny między kolejnymi pisanymi programami. 2.1 Zmienne i typy danych Zmienne służą do przechowywania danych na których operuje program. Nazwy zmiennych wraz z typem są określane przez programistę. Określenie takie ma formę deklaracji zmiennej: int L; W powyższym przykładzie zdefiniowano zmienną o nazwie L do przechowywania liczb całkowitych ze znakiem (int). Deklaracja zmiennej powinna znajdować się na początku kodu, tuż po nazwie funckji i otwierającym nawiasie klamrowym. Nazwa zmiennej może składać się z dużych i małych liter, cyfr 4

5 oraz znaku, przy czym nie może zaczynać się od cyfry. Długość nazwy zmiennej może być dowolna, ale dla kompilatora znaczenie mają tylko pierwsze 32 znaki. Jeżeli stosuje się wiele zmiennych (czyli niemal zawsze), ich nazwy powinny umożliwiać łatwe określenie przeznaczenia zmiennej. Często użwyane zmienne (np. licznikowe) mogą mieć krótkie nazwy. Przed użyciem należy do zmiennej przypisać wartość. Można to zrobić podczas deklarowania: int L = 0; lub później. Jeżeli do zmiennej nie przypisano wartość, zawiera ona wartość która w momencie ładowania programu była w danej komórce pamięci, czyli w praktyce losową. Niektóre zmienne mają wartość automatycznie ustawianą na 0, ale o tym później. Typ danych określa jaki rodzaj danej może być przechowywany w zmiennej. W języku C można spotkać następujące typy danych: char - liczba całkowita 8-bitowa ze znakiem lub pojedyncza litera w kodzie ASCII (zamiennie) int - liczba całkowita ze znakiem o długości zależnej od architektury (przynajmniej 16 bitów) float - liczba zmiennoprzecinkowa 32-bitowa (zapis postaci X 2 ˆN) double - liczba zmiennoprzecinkowa 64-bitowa Dodatkowo typ można zmodyfikować przy użyciu specyfikatorów - długości: short - tylko dla typu int, wymusza długość słowa 16 bitów; long - dla typu int wymusza długość słowa 32 bity, dla double wymusza 128 bitów; long long - tylko dla typu int, wymusza długość słowa 64 bity; oraz znaku (dla typów całkowitoliczbowych): signed - wymusza znak (tak jest domyślnie); unsigned - dla typów całkowitoliczbowych, wymusza brak znaku. Przykładowo: unsigned long int Wynik; deklaruje 32-bitową zmienną całkowitoliczbową ze znakiem o nazwie Wynik. Ponieważ modyfikatory long i short są używane głównie dla typu int, można przy nich pominąć typ. Dlatego deklaracja: unsigned long Wynik; odpowiada deklaracji przedstawionej poprzednio. 2.2 Operatory i słowa kluczowe Operatory służą do wykonywania operacji na zmiennych. Operacją w najprostszym przypadku może być działanie matematyczne na zmiennych, jednak operatory służą też do porównywania wartości, wskazywania na elementy złożonych struktur czy grupowania działań (nawiasy okrągłe). W języku C jest ustalone pierwszeństwo operatorów, czyli kolejność w jakiej operacje zostaną wykonane w przypadku braku nawiasów. Wszystkie operatory języka C zestawiono w tabeli 1. Część operatorów może z początku być niezrozumiała; ich przeznaczenie zostanie wyjaśniona na przykładach w następnych terminach zajęć. Niektóre operatory z tabeli są używane rzadko, i być może na zajęciach nie spotkasz się z koniecznością ich użycia. Operatory mogą być jednoargumentowe, czyli działające na pojedynczej zmiennej, lub wieloargumentowe - działające na wielu zmiennych. W praktyce wszystkie operatory wieloargumentowe poza jednym działają na dwóch zmiennych. Zauważ że występuje wiele operatorów zapisywanych takim samym znakiem, ale wykonujących różne działania w zależności od tego czy użyto je jako jedno- czy wieloargumentowe. Np. operator - może oznaczać odejmowanie (a-b) albo odwrócenie znaku zmiennej (-a), a operator służy do mnożenia (dwuargumentowy) lub pobrania wartości wskaźnika (jednoargumentowy). 5

6 Poza pierwszeństwem, określa się też łączność operatorów. Oznacza ona od której strony będą wykonywane operacje opisywane przez operatory o tym samym priorytecie. W przypadku łączności lewostronnej operacje wykonywane są od lewej strony. Przykładowymi operatorami łączonymi lewostronnie są operatory dodawania i odejmowania. Oznacza to, że działania zapisane a+b-c zostanie wykonany w kolejności (dodawanie, odejmowanie). Gdyby te operatory były łączone prawostronnie, działania zostałyby wykonane w kolejności (odejmowanie, dodawanie). Operatorami łączonymi prawostronnie jest np. operatory negacji bitowej i odwrócenia znaku. Przykładowo, zapis a oznacza, że najpierw zostanie wykonana negacja a następnie odwrócenie znaku. Szczególnym przypadkiem jest operator przypisania =. Każdy inny operator co prawda zwraca wartość, jednak normalnie nie jest ona przypisywana do niczego. Innymi słowy, zapis: a + b; jest poprawny z punktu widzenia języka, ale nic nie robi. Należy zapisać: Wynik = a + b; Operator przypisania jest łączony prawostronnie. Pozwala to na zastosowanie zapisu: Wynik = a = a + b; Ze względu na to że dodawanie ma pierwszeństwo wykonania przed przypisaniem, najpierw zostanie policzona suma. Następnie wynik zostanie przypisany do zmiennej a, a następnie nowa wartość zmiennej a zostanie przypisana do zmiennej Wynik. W razie potrzeby, kompletny zestaw reguł pierwszeństwa i łączenia operatorów języka C możesz znaleźć w internecie. 2.3 Funkcje Funkcje są elementami składowymi programu w języku C. Służą one grupowaniu często używanych fragmentów kodu. Szczególnym przypadkiem jest funkcja main, czyli główna funkcja programu. System operacyjny po załadowaniu programu zaczyna jego wykonanie przez wywołanie funkcji main. Oznacza to, że main jest jedyną funkcją która musi znaleźć się w każdym programie. Pozostałe funkcje mogą być nazwane dowolnie przez programistę, a ich nazwy podlegają takim samym ograniczeniom jak nazwy zmiennych. Nazwanie funkcji, podobnie jak dla zmiennej, ma postać deklaracji: int funkcja1(int); Powyżej zadeklarowano funkcję o nazwie funkcja1, która przyjmuje jedną zmienną typu int i zwraca jedną wartość typu int. Deklaracja musi znaleźć się w programie przed pierwszym użyciem funkcji, gdyż w przeciwnym wypadku kompilator zgłosi błąd. Poza deklaracją trzeba określić co dana funkcja ma robić, czyli napisać jej definicję: int funkcja1(int Indeks) kod funkcji Przy definicji trzeba nazwać zmienną przyjmowaną przez funkcję. Nazwa ta jest używana tylko w kodzie funkcji, i nie jest widoczna nigdzie indziej - czyli jest zmienną lokalną dla tej funkcji. Kod funkcji ma postać pojedynczej instrukcji złożonej. Należy pamiętać, że zamiast deklaracji funkcji można od razu napisać ich definicje. Innymi słowy, deklaracja nie jest obowiązkowa o ile definicja występuje przed pierwszym użyciem funckji. Czyli kod: int funkcja1(int Indeks) kod funkcji int main(void) 6

7 Nazwa operatora Znak Przykład operacji Opis Operatory arytmetyczne dodawanie + a + b Dodawanie arytmetyczne odejmowania - a - b Odejmowanie arytmetyczne mnożenia a b Mnożenie arytmetyczne dzielenia / a / b Dzielenie; dla liczb całkowitych wynik jest całkowity modulo % a % b Reszta z dzielenia liczb całkowitych minus - -a Odwraca znak zmiennej preinkrementacji ++ ++a Zwiększa wartość o 1 - tylko dla liczb całkowitych postinkrementacji ++ a++ Jak poprzedni, różni się pierwszeństwem predekrementacji -- --a Zmniejsza wartość o 1 - tylko dla liczb całkowitych Operatory logiczne logiczna negacja!!a Wynik zerowy dla a niezerowych i niezerowy dla zerowych logiczny iloczyn (AND) && a && b Zero jeżeli a lub b zerowe logiczna suma (OR) a b Zero jeżeli a i b zerowe Operatory bitowe bitowa negacja ~ ~a Wszystkie bity zmieniają wartość na przeciwną bitowy iloczyn & a & b Iloczyn logiczny liczony dla odpowiadających sobie bitów obu liczb bitowa suma a b Suma logiczna liczona dla odpowiadających sobie bitów obu liczb bitowy XOR ^ a ^b Bit wyniku zerowy jeżeli odpowiadające sobie bity operatorów różne przesunięcie w lewo << a <<b Bity w zmiennej a są przesuwane w lewo (w stronę najbardziej znaczącego) o b pozycji przesunięcie w prawo >> a >>b Bity w zmiennej a są przesuwane w prawo (w stronę najmniej znaczącego) o b pozycji Operatory przypisania przypisanie proste = a = b a przyjmuje wartość b przypisanie z dodawaniem += a += b Odpowiada operacjom a = a + b przypisanie z odejmowaniem -= a -= b Odpowiada operacjom a = a - b przypisanie z mnożeniem = a = b Odpowiada operacjom a = a b przypisanie z dzieleniem /= a /= b Odpowiada operacjom a = a / b przypisanie z modulo %= a %= b Odpowiada operacjom a = a % b przypisanie z iloczynem bitowym &= a &= b Odpowiada operacjom a = a & b przypisanie z sumą bitową = a = b Odpowiada operacjom a = a b przypisanie z XOR ^ a ^b Odpowiada operacjom a = a ˆb Operatory wskaźnikowe element tablicy [] a[b] wybiera b-ty element z tablicy a wskazanie a odwołanie do obiektu wskazywanego przez a referencja & &a adres (wskaźnik) do a element struktury. a.b element b struktury a element struktury (przez wskaźnik) -> a ->b jak wyżej, struktura dostępna przez wskaźnik a Operatory porównania równości == a == b Zwraca wartość niezerową jeżeli a równe b różnicy!= a!= b Zwraca wartość niezerową jeżeli a różne od b mniejszy < a <b Zwraca wartość niezerową jeżeli a mniejsze od b mniejszy lub równy <= a <= b Zwraca wartość niezerową jeżeli a mniejsze lub równe b większy > a >b Zwraca wartość niezerową jeżeli a większe od b większy lub równy >= a >= b Zwraca wartość niezerową jeżeli a większe lub równe b Operatory pozostałe grupowanie () (a + b) Działa jak nawias w arytmetyce - zmienia kolejność operacji wywołanie funkcji () a() Wywołuje funkcję o nazwie a przecinek, a, b Służy do oddzielania zmiennych w wywołaniu funkcji i przy deklaracjach warunkowy? : a : b? c Zwraca a jeżeli c niezerowe, b w przeciwnym wypadku rozmiaru sizeof sizeof(a) Zwraca ilość pamięci w bajtach zajmowaną przez zmienną a rozmiaru sizeof sizeof(typ) Zwraca ilość pamięci w bajtach zajmowaną przez dowolną zmienną typu (typ) rzutowanie () (typ)a Konwertuje a do typu (typ) Tablica 1: Operatory w języku C 7

8 Wynik = funkcja1(idx); działa tak samo jak kod: int funkcja1(int); int main(void) Wynik = funkcja1(idx); int funkcja1(int Indeks) kod funkcji W powyższych przykładach przy okazji pojawił się sposób wywołania funkcji. Używa się do tego operatora (), pisanego po nazwie funkcji. Wartość przesyłana do funkcji jest pisana w nawiasie, bez typu. Jeżeli wartości jest więcej, przy deklaracji, definicji i wywołaniu są one oddzielane przecinkami. Wartość zwracana z funkcji jest dostępna tak jak zmienna, i może być poddana dalszym operacjom. W powyższym przykładzie użyto przypisania do zmiennej Wynik, ale prawidłowe są też na przykład działania: Wynik = 2 * funkcja1(idx); Wynik2 += funkcja1(funkcja1(idx)); Zmienne lokalne i globalne Wróćmy na chwilę do zmiennych. Teraz, gdy już wiesz o funkcjach, zapewne zauważyłeś że w kodzie zmienne można deklarować w dwóch miejscach: w funkcji lub poza nią. Jeżeli zmienna jest zadeklarowana wewnątrz funkcji: int funkcja1(int Indeks) int zmienna = 0; kod funkcji to jest to zmienna lokalna dla danej funkcji. Zmienna taka jest tworzona każdorazowo przy uruchomieniu funkcji i kasowana przy jej zakończeniu. Jest ona dostępna tylko podczas działania funkcji; dotyczy to również funkcji main(). Jak napisałem powyżej, parametry funkcji są jej zmiennymi lokalnymi. Oznacza to, że przy każdorazowym wywołaniu funkcji tworzona jest lokalna kopia przesyłanych do niej zmiennych. Dzięki temu dowolne operacje wykonane wewnątrz funkcji nie wpływają na wartość tych zmiennych w kodzie wywołującym funkcję. W powyższym przykładzie zmienna Idx nie ulegnie zmianie, niezależnie od tego co wewnątrz funkcji dzieje się ze zmienną Indeks. W przykładzie pojawiło się też słowo void. Mówi ono, że funkcja nie zwraca lub nie przyjmuje żadnych zmiennych. Jeżeli chcemy aby zmienna była dostępna tylko dla danej funkcji, ale nie była kasowana pomiędzy wykonaniami funkcji, możemy użyć modyfikatora static: int funkcja1(int Indeks) static int zmienna; kod funkcji 8

9 Zmienna statyczna jest dostępna tylko w funkcji, ale jej wartość jest zachowywana pomiędzy wywołaniami. Najprostszy przykład zastosowania takiej zmiennej to licznik wywołań danej funkcji. Zauważ że w powyższym kodzie nie ma przypisania do zmiennej przy deklaracji. To dlatego, że zmienne statyczne mają automatycznie przypisywaną wartość 0. Jeżeli zmienna została zadeklarowana poza jakąkolwiek funkcją, to jest to zmienna globalna. Zmienna taka jest widziana przez wszystkie funkcje i może być przez nie modyfikowana, przy czym obowiązują tutaj takie same reguły jak dla deklaracji funkcji. Z tego powodu zmienne globalne zwykle deklaruje się na początku pliku z kodem programu. Dodatkowo zmienna globalna ma przy utworzeniu (czyli na starcie programu) automatycznie przypisywaną wartość 0 (podobnie jak zmienna statyczna). Zmienne globalne są wykorzystywane do wymiany danych pomiędzy funkcjami programu, jednak praktycznie wszystkie zestawy reguł programowania zalecają ograniczenie ich stosowania do niezbędnego minimum, gdyż nadmiar zmiennych globalnych stwarza duże zagrożenie przypadkowego zmodyfikowania danych. Ostatnią kwestią dotyczącą zmiennych jest tzw. przysłanianie. W rozdziale o zmiennych napisałem że zmienne powinny mieć unikalne nazwy. Otóż dotyczy to tylko zmiennych lokalnych dla danej funkcji; inna funkcja może mieć dokładnie tak samo nazwane zmienne lokalne, gdyż i tak są one widoczne tylko podczas jej wykonywania. Zmienne globalne również powinny mieć unikalne nazwy. Jeżeli jednak w funkcji wystąpi zmienna lokalna o takiej samej nazwie jak jedna ze zmiennych globalnych, to w tej funkcji widoczna będzie tylko zmienna lokalna a zmienna globalna będzie niedostępna. Mówimy wtedy że zmienna globalna została przysłonięta przez zmienną lokalną. Z tego powodu zmienne globalne zwykle wyróżnia się nadając im charakterystyczne nazwy nie wykorzystywane dla zmiennych lokalnych. Przykładowym rozwiązaniem jest zapis nazw zmiennych lokalnych małymi literami, a zmiennych globalnych dużymi. 2.4 Wyrażenia warunkowe Wyrażenia warunkowe służą kontroli działania programu, umożliwiając podejmowanie działań w zależności od wartości zmiennych. Poza opisanym wcześniej operatorem warunkowym?:, w języku C są dwa inne rodzaje wyrażeń warunkowych. Są to konstrukcje ifelse oraz switchcase. Pierwsza z nich ma postać: if(warunek) instrukcja lub instrukcja złożona (w klamrach) else instrukcja lub instrukcja złożona Działa ono w następujący sposób: najpierw obliczana jest wartość wyrażeń tworzących warunek. Może to być po prostu zmienna, ale może to też być np. odwołanie do funkcji. Jeżeli wartość ta jest niezerowa, wykonywana jest instrukcja znajdująca się bezpośrednio po wyrażeniu if(warunek). W przeciwnym razie wykonywana jest instrukcja prosta lub złożona znajdująca się po wyrażeniu else, przy czym wyrażenie to wraz z odpowiadającą mu instrukcją nie musi występować. Dopuszcza się zagnieżdżanie wyrażeń ifelse: if(warunek1) instrukcja złożona else if(warunek2) instrukcja złożona else instrukcja złożona Drugim typ konstrukcji warunkowej, switchcase, ma postać: switch(wyrażenie) case wartość1: kod1 break; case wartość2: kod2 break; default: 9

10 kodn break; Na początku określana jest wartość wyrażenia wyrażenie, przy czym musi ona być liczbą całkowitą; niedopuszczalne są liczby zmiennoprzecinkowe czy tekst. Następnie wykonywany jest kod znajdujący się pomiędzy słowem case z odpowiednią wartością, a najbliższym słowem break. Oznacza to, że można zrobić taką konstrukcję: switch(wyrażenie) case wartość1: case wartość2: kod do wykonania gdy wyrażenie == wartość1 lub wartość2 break; case wartość3: kod do wykonania gdy wyrażenie == wartość3 case wartość4: kod do wykonania gdy wyrażenie == wartość3 lub wartość4 break; default: kod do wykonania gdy wyrażenie nie jest równe żadnej z wymienionych wartości break; Kod wpisany po słowie default jest wykonywany gdy wartość wyrażenia nie odpowiada żadnej instrukcji case. Default nie jest obowiązkowe. 2.5 Pętle Pętle służą do wielokrotnego powtarzania wykonania wybranego kodu, przy czym ilość powtórzeń może ale nie musi być znana w momencie rozpoczęcia pętli. W języku C istnieją trzy konstrukcje służące do realizacji pętli: for(;;), while() oraz dowhile(). Konstrukcja for(;;) jest używana najczęściej do realizacji pętli o z góry znanej liczbie wykonań. Ma ona postać: for(inicjalizacja; warunek zakończenia; krok) instrukcja prosta lub złożona Przed rozpoczęciem pętli wykonywana jest inicjalizacja, następnie następuje sprawdzenie warunku zakończenia. Jeżeli jest on spełniony (wartość niezerowa), wykonanie pętli na tym się kończy. W przeciwnym wypadku wykonywana jest instrukcja pętli, a następnie krok. Później następuje sprawdzenie warunku zakończenia i cały cykl się powtarza. Dobrze to ilustruje przykład: for(l=0; L<10; L++) instrukcja W którym zmienna L służy jako licznik iteracji, na początku ustawiany na zero, porównywany z wartością 10 i inkrementowany po każdym wykonaniu instrukcji. Taka pętla wykona się 10 razy (dla wartości L od 0 do 9). Warto zauważyć, że pętla for może nie wykonać się ani razu, jeżeli warunek będzie od razu spełniony. Dopuszczalne jest też pominięcie dowolnej części pętli, czyli: for(l=0; L<10; ) instrukcja zakłada że L zmienia się gdzieś indziej (np. jest zmieniane przez instrukcję), a for(;;) instrukcja 10

11 będzie wykonywać instrukcję aż do wyłączenia programu. Konstrukcja while() najczęściej służy do realizacji pętli których warunek zakończenia nie jest z góry znany i które mogą nie wykonać się ani razu. Ma ona postać: while(warunek) instrukcja prosta lub złożona W pętli tej najpierw sprawdzany jest warunek. Jeżeli wynik sprawdzenia jest niezerowy, następuje wykonanie instrukcji. Cykl powtarza się dopóki warunek nie będzie zerowy. W odróżnieniu od pętli for, w tej pętli nie ma inicjalizacji ani kroku; powinny one być realizowane przez programistę przed pętlą (inicjalizacja) oraz wewnątrz niej (krok). Konstrukcja dowhile() jest podobna do while(), jednak warunek zakończenia znajduje się na końcu: do instrukcja prosta lub złożona while(warunek) W tym przypadku najpierw wykonywana jest instrukcja, a następnie sprawdzany warunek. Oznacza to, że pętla tego rodzaju zawsze wykona się co najmniej raz, nawet jeżeli warunek jest od razu zerowy. 2.6 Dyrektywy preprocesora Dyrektywy preprocesora służą sterowaniu jego działaniem. Jest ich wiele, ale dwie najczęściej spotykane to #include oraz #define. Dyrektywa #include służy dołączaniu do pliku źródłowego plików nagłówkowych. Ma ona postać: #include <nazwapliku.h> lub #include "nazwapliku.h" W pierwszym przypadku plik nagłówkowy jest poszukiwany w ścieżce systemowej (dołączamy bibliotekę), a w drugim tylko w ścieżce lokalnej (dołączamy własny plik nagłówkowy). Dołączony plik nagłówkowy jest przetwarzany przez preprocesor natychmiast po dołączeniu. Dyrektywa #define służy przypisywaniu wartości dowolnie wybranym nazwom. Ma ona postać: #define nazwa wartość We wszystkich liniach poniżej tej dyrektywy nazwę i wartość można stosować zamiennie. 3 Zadania 3.1 Zadanie 1 Napisz program, który wypisze informacje o rozmiarze wszystkich znanych Ci typów danych. Zrealizuj to na dwa sposoby: poprzez użycie operatora sizeof z argumentem będącym typem danych, oraz z argumentem będącym zmienną danego typu. Wykorzystaj gotowy program rozmiary.c (dołączony do instrukcji), z przykładowym wywołaniem funkcji bibliotecznej printf. 3.2 Zadanie 2 Na podstawie programu przykładowego petla1.c (dołączony do instrukcji) napisz program, który będzie wypisywał kolejne liczby (nieujemne) w kolejnych liniach, ale tak aby przed każdą liczbą występowało tyle spacji ile wynosi wypisana liczba. (przykładowo przed liczbą zero - zero spacji, przez jedynką jedna spacja itp.):

12 3.3 Zadanie 3 Zmodyfikuj program z zadania 3 tak, aby korzystał z pętli while. 12

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

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

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne

Bardziej szczegółowo

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

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

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

Bardziej szczegółowo

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

Bardziej szczegółowo

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

Bardziej szczegółowo

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

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

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

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Proste algorytmy w języku C

Proste algorytmy w języku C Proste algorytmy w języku C Michał Rad AGH Laboratorium Maszyn Elektrycznych 2016-12-01 Outline Język C Zadanie pierwsze - obliczanie miejsc zerowych wielomianu Zadanie drugie - znajdowanie największego

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 1: Podstawy języka c dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 12 października 2017 1. Wprowadzenie Instrukcja zawiera informacje o podstawowych konstrukcjach w języku c. Część pierwsza

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2018/2019 Wykład nr 7 (12.04.2019) Rok akademicki 2018/2019, Wykład

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

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

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

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

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium, EE1-DI)

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

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

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

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

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 02 Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 2012.10.07 Program w języku C Program w języku C jest pisany w pliku tekstowym, następnie przetwarzany przez kompilator do pliku

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

Wyrażenia arytmetyczne

Wyrażenia arytmetyczne Wyrażenia arytmetyczne Do budowania wyrażeń w języku C używa się operatorów jednoargumentowych oraz dwuargumentowych. Podstawowy operator jednoargumentowy to operator zmiany znaku (-), który jest prawostronnie

Bardziej szczegółowo

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

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo