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

Podobne dokumenty
Wyrażenia arytmetyczne

ROZDZIAŁ 2. Operatory

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

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

Odczyt danych z klawiatury Operatory w Javie

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

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

MATERIAŁY DO ZAJĘĆ II

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 i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy programowania C. dr. Krystyna Łapin

2 Przygotował: mgr inż. Maciej Lasota

dr inż. Jarosław Forenc

Podstawy programowania w języku C

Podstawy programowania w języku C i C++

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

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

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

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

ZMIENNE P R O G R A M O W A N I E C + +

Stałe oznaczane są słowem kluczowym final. Do stałej wartość można przypisać tylko raz. Dobrą konwencją jest nazywanie stałych wielkimi literami

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

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

Algorytmika i Programowanie VBA 1 - podstawy

Zmienne, stałe i operatory

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

Programowanie Komputerów

Języki i paradygmaty programowania

Część 4 życie programu

( wykł. dr Marek Piasecki )

I - Microsoft Visual Studio C++

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

C++ wprowadzanie zmiennych

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Wstęp do Programowania, laboratorium 02

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

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

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

1 Podstawy c++ w pigułce.

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

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

J ZYK C: STAŁE I ZMIENNE, TYPY DANYCH, OPERATORY I WYRA ENIA ARYTMETYCZNE

Język ludzki kod maszynowy

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

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

Wstęp do programowania

Język C zajęcia nr 11. Funkcje

Podstawy i języki programowania

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

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

Przeciążenie operatorów

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

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

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Programowanie strukturalne i obiektowe

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

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

Proste programy w C++ zadania

Programowanie obiektowe

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Programowanie C# mgr in. Dariusz Ku. p. 119A

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Adres komórki-nazwa kolumny i nazwa wiersza, na przecięciu których znajduje się komórka. B3- adres aktywnej komórki

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

Operatory, wyrażenia i typy proste

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

Programowanie Delphi obliczenia, schematy blokowe

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

Programowanie w języku C++

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

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

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

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

Cw.12 JAVAScript w dokumentach HTML

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

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

1 Podstawy c++ w pigułce.

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

Języki i metody programowania I

Stałe. Funkcje standardowe. Niektóre stałe i funkcje z pliku nagłówkowego math.h. M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

3. Instrukcje warunkowe

Warunki logiczne instrukcja if

Język C - podstawowe informacje

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

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

Instrukcje sterujące. Programowanie Proceduralne 1

Klasyfikacja typów w C++

IX. Wskaźniki.(3 godz.)

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Struktura pliku projektu Console Application

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?

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Transkrypt:

http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Operatory arytmetyczne * / + - % operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania Każdy operator ma ustalony priorytet wykonania Operator jest lewostronnie (prawostronnie) łączny, jeżeli w wyrażeniu zawierającym dwa takie operatory najpierw jest wykonany operator lewy obliczenie wyrażenia w kolejności od lewej do prawej (prawy obliczenie wyrażenia w kolejności od prawej do lewej).

http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Zmiana kolejności obliczenia wyrażenia wprowadzenie nawiasów okrągłych. Operator ( - ) jest jednoargumentowym, inne arytmetyczne operatory mają dwa argumenty.

Priorytety i łączność operatorów Priorytet największy Operator Łączność () []. -> Pierwotne - ~! Unarne Prawostronne ++ - - sizeof() Unarne (<typ>) Unarne Multiplikatywne Addytywne Przesunięcie bitowe < > <= >= Relacji == Relacji & Bitowa koniunkcja ^ Bitowa różnica symetryczna Bitowa alternatywa && Koniunkcja Alternatywa? : Operacje warunkowa Prawostronne Przypisanie Prawostronne Sekwencyjne obliczenie * / + - << Priorytet najmniejszy Nazwa * & % >>!= = += -= *= /=,

Stałe liczba, znak (symbol) lub ciąg (tablice) znaków. Stałe mogą być całkowite, zmienno-przyczynkowe, znakowe i tablicy znakowe. Przykład: całkowite dziesiętne 2-4 6 całkowite ósemkowe 012 036 0777 calkowite szesnastkowe: 0x120AF 0x000000 0xFFFFFFF zmienno-przyczynkowe 3.48 2.0e-06-1.23e+5 znakowe a b c ciąg znaków slowo C:\\My_Folder\\my_plik.exe

Wyrażenie ciąg znaków, operatorów (instrukcji), zmiennych, stałych zadaje sposób obliczenia wartości. Wyrażenie przypisania (podstawienia): Zmienna = wyrażenie double a, b, c;.. c = a+b; Proszę nie mieszać z relacją równoważności z matematyki: Na przykład: double a, b; a = 1.25; b = 0.25; a = a+b; //po tej instrukcji a przyjmuje wartość 1.5. Najpierw będzie //obliczone a+b, dalej wykonane przypisanie a = a+b

W wielu językach programowania specjalnie pozostał wprowadzony symbol =: //przypisać. W języku C po prostu trzeba przyzwyczaić się do tego, że operator przypisania po kształcie jest podobny do relacji równoważności, przecież oznacza inne. Operator przypisania prawostronnie łączny: xx = yy = a+b; Oznacza to, że najpierw będzie obliczona wartość a+b, dalej jest wykonane przypisanie yy = wartość(a+b) i tylko w końcu xx = yy. Każda instrukcja w C mysi być zakończona średnikiem ;

Modyfikator const. Wzbrania zmieniać znaczenie zmiennej. Jest zastosowany dla tego, żeby zabezpieczyć od zmiany to znaczenie w okresie czasu życia zmiennej. const double PI = 3.141593; const int64 max_file_len = 9 223 372 036 854 775 807; PI = 5.26; //błąd kompilacji Przy próbie zmiany wartości zmiennej, zabezpieczonej takim modyfikatorem, występuje błąd kompilacji.

Biblioteka matematyczna: #include <math.h> Nazwa, typ funkcji, typ argumentu funkcja double exp(double x) expotencjalna double log(double x) logarytm naturalny double log10(double x) logarytm dziesiętny double pow(double x,double y) x do potęgi y double sqrt(double x) pierwiastek stopnia drugiego double fabs(double x) moduł double sin(double x) sinus double cos(double x) cosinus double tan(double x) tangens double asin(double x) arcus sinus double acos(double x) arcus cosinus double atan(double x) arcus tangens int abs(int i) moduł

Przykład W3: obliczyć wartości wyrażeń arytmetycznych: a+b-c, c ac, b a, bc æ a+b+c 2 ö lnçç + a + sin a + cos b 2 è ø 1 + a2 ælö int ç, èkø l, l mod k k

Konwersja typów. Domyślna konwersja typów zmiennych jest wykonywana przez kompilator automatycznie na tej zasadzie, że w arytmetycznym wyrażeniu, zawierającym zmienne różnych typów, zmienne typów z mniejszą precyzją będą konwertowane do typów z większą precyzją. Na przykład: short is = 10; long la=20, lb; lb = is + la; //is: short à long; long tmp = is + la; lb = tmp; float ff = 3.14; double da = 6.28, db; int ic = 25; db = ff + ic + da; //ic: int à float; float tmp1 = ff + ic; //double tmp1 ß floar tmp1; double tmp2 = tmp1 + da; db = tmp2;

Konwersja typów. Następujące konwersje typów doprowadzają do zgubienia precyzji: int i; double a = 3.14, b = 6.3; i = a + b; //i dostanie wartość 9, ułamek będzie odrzucony, //kompilator w tym miejscu zgłosi ostrzeżenie. A to jawna konwersja typów: i = (int)(a + b); //tu kompilator nic nie zgłosi. Przy jawnej konwersji typów programista sam podejmuje decyzje. Istnieją przypadki, kiedy konwersja typów może być tylko jawną. Przy użyciu różnych typów w wyrażeniu arytmetycznym trzeba być bardzo ostrożnym, ponieważ są przypadki, kiedy dla jednych danych my dostajemy wynik poprawny, jednak dla innych już nie. Przykład: Konversja_typow

Instrukcja warunkowa if ( wyrażenie ) instrukcja 1 [else instrukcja 2] Jeśli wyrażenie!= 0, będzie wykonana instrukcja 1. Jeśli wyrażenie == 0, to: else jest obecne będzie wykonana instrukcja 2. else pominięte pierwsza linia kodu za instrukcją 1 wyrażenie arytmetyczne wyrażenie albo wskaźnik

Operatory relacji: < <= >= ==!= > większy priorytet Wyrażenie relacyjne: mniejszy priorytet wyrazenie_1 operator_relacji wyrazenie_2 Wynik wyrażenia relacyjnego (typ int) 1 (TRUE relacja jest prawdziwa), lub 0 (FALSE relacja jest fałszywą). Typy operandów: zmienne całe, zmienno- przyczynkowe lub wskaźniki. Typy mogą być różnymi przekształcenie domyślne do typu jednego. (Patrz MSDN - Standard Conversions)

Operatory logiczne: (w kolejności malującego priorytetu)! Negacja && koniunkcja (i, iloczyn logiczny) alternatywa (lub, suma logiczna) Typy operandów: zmienne całe, zmienno-przyczynkowe lub wskaźniki. Wyrażenia logiczne!wyrażenie wyrazenie_1 && wyrazenie_2 wyrazenie_1 wyrazenie_2 Wynik wyrażenia logicznego to jest zmienna typu int. Przyjmuje wartość 1 (TRUE), jeśli zdanie logiczne jest prawdziwe, lub 0 (FALSE) w przeciwnym wypadku.

Przykłady: x Î [a, b] if(x<y && y<z) printf( x mniej od z\n ); if(x >= a && x <= b) printf( x nalezy przedzialowi [a,b] );.. If(x == y x == z) printf( x = y lub x = z ); x 2 + y2 < r2 if(x*x+y*y < r*r) printf( punkt (x,y) leży w kole prom. r );

Przykład 1 if ( i > 0 ) y = x / i; else { x = i; y = f( x ); } if ( i > 0 ) /* Without braces */ if ( j > i ) x = j; else x = i;. //Przy i <= 0 zmiennej x nic nie //będzie przypisane if ( i > 0 ) { /* With braces */ if ( j > i ) x = j; } else x = i;. // Przy i <= 0 zmiennej x // //będzie przypisane //znaczenie zmiennej i

Przykład 2 double *A = NULL; A = (double *)malloc(2500*sizeof(double)); if(!a) { printf( Memory allocation error\n ); exit(1); }.

Przykład 3 int main() { int x = 0; if ( 1 ) { if (!x ) //x = 0 jest FALSE, więc!x jest TRUE printf("!x\n"); else printf("x\n"); } } Wydruk:!x

Przykład 4 if(z <= 0) l = 2; l = 3; // l = 3 nie zależnie od wartości z. l = 3; if(z <= 0) l = 2; // l = 3 dla z > 0, l = 2 dla z <= 0.. If(z <= 0) l = 2; else l = 3; // l = 3 dla z > 0, l = 2 dla z <= 0

Błąd typowy: If(x = a) //to jest przypisanie, które zmienia wartość zmiennej x { //ten blok będzie wykonany, jeśli a!= 0, i nigdy nie będzie wykonany, jeśli a == 0.. } If(x == a) //to wyrażenie relacyjne. Zmienna x nie zmienia wartości. { }

Przykład 4: Algorytm rozwiązania równania kwadratowego a x2 + b x + c = 0

void exit( int status ); Zakończenie roboty procesu, poprawne zamykanie wszystkich buforów i plików (flushing) status = 0 zakończenie normalne; = 1 (2, 3, ) - awaryjne. Przykład W4

Często są używana taka konstrukcja ( Przełącznik ) If(wyrażenie_1) {..fragment kodu 1 } else if(wyrażenie_2) {..fragment kodu 2 } else if(wyrażenie_3) {..fragment kodu 3 } i tak n razy [ else { fragment kodu n+1 } ]

Przełącznik schemat blokowy

Przykład: int key = 0; int res = -1;. if(key == 0) res = 0; else if(key == 1) res = 1; else if(key == 2) res = 2; else res = 3;