Języki i paradygmaty programowania

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

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Podstawy programowania w języku C i C++

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

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

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

Odczyt danych z klawiatury Operatory w Javie

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

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

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

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

Spis treści JĘZYK C - OPERATORY BITOWE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Mikrooperacje. Mikrooperacje arytmetyczne

Języki i metody programowania I

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

Podstawy i języki programowania

Język C zajęcia nr 11. Funkcje

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

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

3. Instrukcje warunkowe

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

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

dr inż. Jarosław Forenc

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

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

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

Podstawy programowania w języku C

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

while(wyrażenie) instrukcja

dr inż. Jarosław Forenc

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

KURS C/C++ WYKŁAD 7. struct Punkt { int x, y; int kolor; };

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

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

2 Przygotował: mgr inż. Maciej Lasota

Zapis liczb binarnych ze znakiem

Powtórka algorytmów. Wprowadzenie do języka Java.

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Operatory. Dorota Pylak

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Wyrażenie warunkowe operator selekcji Instrukcja switch

Arytmetyka liczb binarnych

Wstęp do informatyki- wykład 2

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Podstawy programowania C. dr. Krystyna Łapin

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

MATERIAŁY DO ZAJĘĆ II

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05

ROZDZIAŁ 2. Operatory

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

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

Materiały pomocnicze do wykładu 3 - Elementy języka Java

( wykł. dr Marek Piasecki )

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Technologie Informacyjne

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

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Wprowadzenie do informatyki - ć wiczenia

1.1. Pozycyjne systemy liczbowe

Języki i metody programowania Java. Wykład 2 (część 2)

Słowa kluczowe i nazwy

1. Operacje logiczne A B A OR B

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

Warunki logiczne instrukcja if

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Wyrażenia arytmetyczne

Różności w C++ Marek Pudełko

Wstęp do informatyki- wykład 6

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

Stan wysoki (H) i stan niski (L)

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Operatory 1. Priorytety i wiązanie

Wstęp do programowania

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

Technologie Informacyjne Wykład 4


Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

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

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

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Termin Egzaminu (Język C): ??? >> CZWARTEK, 7 LUTEGO << GODZ

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Python wstęp do programowania dla użytkowników WCSS

Transkrypt:

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 w C/C++ - dużo różnorodnych operatorów podstawowe grupy: operatory arytmetyczne operatory logiczne operatory bitowe każdy operator jest określony przez: liczbę i typ argumentów sposób działania priorytet typ łaczności

podstawowe to operatory addytywne: + - oraz multiplikatywne: * / sa to operatory dwuargumentowe, składnia: arg1 op arg2 wynik może zależeć od typu - na przykład dla operatora dzielenia (przeładowanie operatorów) priorytety zgodne z intuicja łaczność lewostronna operator % - reszta z dzielenia określony tylko dla argumentów całkowitych priorytet jak dla podstawowych operatorów multiplikatywnych operatory znaku + operatory inkrementacji i dekrementacji: ++ -- notacja przedrostkowa (++k) - najpierw zmieniamy wartość zmiennej, następnie tę zmodyfikowana wartość stosujemy w wyrażeniu notacja przyrostkowa (k++) - najpierw obliczamy wartość wyrażenia z pierwotna wartościa argumentu, a następnie modyfikujemy argument

Inkrementacja i dekrementacja int x,n=5; x=n++; printf("%d %d\n",n,x); int x,n=5; x=++n; printf("%d %d\n",n,x); 6 5 6 6 uwaga: nie należy inkrementować lub dekrementowć tej samej wartości w jednym wyrażeniu więcej niż raz - zabronione sa instrukcje typu: x = (2 * y++) * (6 - ++y); wynik zależy od implementacji język nie określa prawidłowej interpretacji tego typu wyrażeń zasada zmień potem użyj lub użyj potem zmień niejednoznaczna

Operatory przypisania podstawowy operator przypisania = dwuargumentowy, prawostronnie łaczny priorytet niższy niż dla operatorów arytmetycznych każde przypisanie samo w sobie jest wyrażeniem majacym wartość równa wartości przypisywanej inne operatory przypisania w C/C++ szereg innych operatorów przypisania postaci op=, na przykład wyrażenia x=x+2 możemy zapisać x+=2 to mozna uogólnić na inne operatory dwuargumentowe, takie jak + - * dla tych operatorów zapis wyr1 op= wyr2 jest równoważny zapisowi wyr1 = (wyr1) op (wyr2) zalety: zwartość zapisu, przespieszenie działania (ustalenie adresu lewego argumentu tylko raz)

Operatory relacji Operatory w C/C++ nierówności: < <= > >= maja równy priorytet, niższy niż operatory arytmetyczne (poza przypisaniami) łaczne lewostronnie operatory równości ==!= maja równy priorytet, niższy niż operatory nierówności,wyższy niż przypisania łaczne lewostronnie częsty bład użycie operatora przypisania = zamiast rowności == w wyrażeniach logicznych int a=5, b=100; if (a==b) //if(a=b) cout<<"te liczby sa rowne\n"; else cout << Te liczby sa rozne\n"; cout<<" a = " << a << " b = " << b << "\n";

Logiczna suma i iloczyn Zagadka - co wypisze program? int a=-2, b=-1, c=0; if(a<b<c) cout << "Prawda!!!\n"; else cout << "Falsz!!!\n"; konstrukcja wyrażeń logicznych - operatory suma logicznej i logicznego iloczynu && priorytety niższe od operatorów relacji, wyższe od przypisań; priorytet iloczynu logicznego wyższy niż logicznej sumy ustalony sposób obliczania: od lewej do prawej; obliczenia sa przerywane, gdy wartość wyrażenia jest rozstrzygnięta (a==0) && (k>10) && n++ (a>0) (k<5) && i++ operator negacji!, odwraca wartość logiczna wyrażenia; często stosowana fraza: zamiast: if (a==0) stosujemy: if (!a) priorytet - wyższy od wszystkich operatorów arytmetycznych i logicznych

pozwalaja na manipulowanie poszczególnymi bitami słowa maszynowego działaja tylko na argumenty całkowite numeracja bitów w słowie: od skrajnego prawego bitu (najmłodszy bit o numerze 0) w lewo wartość numeryczna bitu na pozycji p (czyli o numerze (p-1)) = 2 p 1 przesunięcie w lewo operator dwuargumentowy, składnia: zmienna << ile_przesun działanie: przesuwa wzorzec bitowy zmiennej względem maski o ile_przesun short a=0x4072, w; w= a << 3; przesuń uzupłnij obetnij

Przesunięcie w prawo działania podobne do przesunięcia w lewo dla zmiennych bez znaku, oraz dodatnich liczb ze znakiem short a=0x4072, w; w= a >> 3; przesuń uzupłnij obetnij dla ujemnych liczb typów ze znakiem niejednoznaczność; uzupełnienie z lewej może zawierać zera, lub jedynki (zależeć od implementacji ) short b=0xff00, w; w= b >> 3; przesuń uzupłnij obetnij

Pozostałe operatory bitowe bitowa suma, iloczyn, różnica symetryczna (XOR) dwuargumentowe operatory bitowe; wartość określonego bitu wyjścia wyznaczona przez odpowiednia elementarna operację bitowaa na właściwych bitach wejścia przykłady - definicje: short int m = 0x0f0f; short int k = 0x0ff0; short int a, b, c, d; a = m k; //suma bitowa, a = 0x0fff b = m&k; //iloczyn bitowy, b = 0x0f00 c = m^k; //bitowe XOR, c = 0x00ff negacja bitowa jednoargumentowy operator bitowy - każdy bit w wyniku to negacja bitowa wejscia d= ~m; //negacja bitowa, d = 0x0f0f0;

- zastosowania przyspieszenie wykonania programu wyrażenie if(n&1) szybsze niż if(n%2)=1) wyrażenie n<<=1 szybsze niż n*=2 maskowanie niech c stała (maska), której forma bitowa to ciag jedynek od pozycji zero, do ustalonej pozycji pozostałe wartości to 0; (przykład c=0177) jak wyglada reprezentacja bitowa zmiennej całkowitej n po wykonaniu instrukcji n &=p jak wygada postać bitowa maski, która ma 10 najmłodszych bitów ustawionych, poza tym zera napisz instrukcję, która daje maskę z jedynkami na skrajnych prawych k bitach

- zastosowania - c.d. ustawianie bitów niech SETON - stała; wtedy x =SETON ustastawia bity x na pozycjach, których SETON ma jedynki manipulacje bitami - przykład: funkcja getbits(unsigned x, int, int n), która ze zmiennej x wycina n-bitowe pole od pozycji p, dosunięte do prawej strony wyniku unsigned getbits(unsigned x, int, int n) { return( x >> (p+1-n)) & ~(~0 << n); } triki bitowe jaki warunek sprawdza poniższe wyrażenie? if(v&(v-1)==0) {..};

Pozostałe operatory Operatory w C/C++ operator trójargumentowy (wyrażenie warunkowe): składnia: wyr1? wyr2 : wyr3 działanie: oblicz wyrażenie wyr1, jeżeli jest ono prawdziwe to oblicz wyr2, które staje się wartościa całego wyrażenia, w przeciwnym razie będzie nim wyr3 może być użyty zamiast instrukcji if... else zalety: zwartość zapisu, możliwość tworzenia bardziej złożonych wyrażeń operator przecinkowy - kilka wyrażeń oddzielonych przecinkami - wyrażenie przecinkowe ustalony sposób obliczania (od lewej do prawej) oraz wartość (wartość skrajnego prawego wyrażenia) operator sizeof wyznacza rozmiary obiektów operator & - pobierania adresu