Stefan Sokołowski JĘZYKIPROGRAMOWANIA. Inst. Informatyki UG, Gdańsk, 2012/2013

Podobne dokumenty
JĘZYKI PROGRAMOWANIA

JĘZYKIFORMALNE IMETODYKOMPILACJI

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

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

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

Praktyka Programowania

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

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 paradygmaty programowania

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

JĘZYKI FORMALNE I METODY KOMPILACJI

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

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

Jerzy Nawrocki, Wprowadzenie do informatyki

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

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

Podstawy programowania C. dr. Krystyna Łapin

Proste algorytmy w języku C

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

Wykład 1

PROGRAMOWANIE w C prolog

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

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

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Jerzy Nawrocki, Wprowadzenie do informatyki

JĘZYKI FORMALNE I METODY KOMPILACJI

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Podstawy programowania strukturalnego (C) SYLABUS A. Informacje ogólne

ZAAWANSOWANE JĘZYKI PROGRAMOWANIA

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

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

Podstawy programowania w języku C i C++

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

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

Wykład 2 Składnia języka C# (cz. 1)

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

Języki i metody programowania. Omówienie języków C, C++ i Java

Błędy leksykalne są na ogół nietrudne do znalezienia.

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

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

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

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

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++

dr inż. Jarosław Forenc

Odczyt danych z klawiatury Operatory w Javie

1 Podstawy c++ w pigułce.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C15

dr inż. Jarosław Forenc

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

2 Przygotował: mgr inż. Maciej Lasota

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, ZAGNIEŻDŻANIE IF-ELSE.

Spis treści JĘZYK C - OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, INSTRUKCJA WARUNKOWA IF. Informatyka 1

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

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

Podstawy programowania w języku C

WSTĘP DO PROGRAMOWANIA

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

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

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

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

Podstawy Programowania C++

Programowanie komputerowe. Zajęcia 1

Rodzaje błędów w programach. Wykład9.UWAGIOGÓLNE,str.1

Język C zajęcia nr 11. Funkcje

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

Warunki logiczne instrukcja if

Elementarne wiadomości o języku C

Język ludzki kod maszynowy

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Metodyki i techniki programowania

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

( wykł. dr Marek Piasecki )

Wstęp do programowania

Wstęp do programowania Laboratorium - wytyczne

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Informatyka 1

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

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

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

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

WYKŁAD 1 - KONSPEKT. Program wykładu:

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

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

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

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

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

Programowanie obiektowe

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

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

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Wstęp do wskaźników w języku ANSI C

Składnia języka EPL. EUCIP Programming Language

Paradygmaty programowania

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

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Transkrypt:

Stefan Sokołowski JĘZYKIPROGRAMOWANIA Inst Informatyki UG, Gdańsk, 2012/2013

Wykład1OGÓLNEINFORMACJEOC,str1 JĘZYKI PROGRAMOWANIA reguły gry Zasadnicze informacje: http://infugedupl/ stefan/dydaktyka/jezprog szkicowy program wykładu i laboratorium spis literatury slajdydowykładów wartorobićnotatki ale nie warto przepisywać slajdów z ekranu zadania z laboratorium w moich grupach itd

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG Zaliczenie przedmiotu: zaliczenie laboratorium, egzamin, znajdowanie błędów w wykładzie Najłatwiej jest zaliczyć laboratoria przez sprawdziany Zaliczenie przez rozbójnika na koniec semestru jest trudniejsze Laboratorium musi być zaliczone przed egzaminem

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG Zaliczenie przedmiotu: zaliczenie laboratorium, egzamin, znajdowanie błędów w wykładzie Najłatwiej jest zaliczyć laboratoria przez sprawdziany Zaliczenie przez rozbójnika na koniec semestru jest trudniejsze Laboratorium musi być zaliczone przed egzaminem

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG Zaliczenie przedmiotu: zaliczenie laboratorium, egzamin, znajdowanie błędów w wykładzie Najłatwiej jest zaliczyć laboratoria przez sprawdziany Zaliczenie przez rozbójnika na koniec semestru jest trudniejsze Laboratorium musi być zaliczone przed egzaminem

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG Zaliczenie przedmiotu: zaliczenie laboratorium, egzamin, znajdowanie błędów w wykładzie Najłatwiej jest zaliczyć laboratoria przez sprawdziany Zaliczenie przez rozbójnika na koniec semestru jest trudniejsze Laboratorium musi być zaliczone przed egzaminem

Wykład1OGÓLNEINFORMACJEOC,str2 JĘZYKI PROGRAMOWANIA reguły gry Kontakt ze mną: konsultacje: czwartki 12:15 13:00 w pok 57 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG Zaliczenie przedmiotu: zaliczenie laboratorium, egzamin, znajdowanie błędów w wykładzie Najłatwiej jest zaliczyć laboratoria przez sprawdziany Zaliczenie przez rozbójnika na koniec semestru jest trudniejsze Laboratorium musi być zaliczone przed egzaminem

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie Wszystkie imperatywne języki programowania ogólnego zastosowania są do siebie podobne Wystarczy zrozumieć, jak działa jeden, żeby umieć stosować wszystkie

Ramowy program Wykład1OGÓLNEINFORMACJEOC,str3 językc szczegółowo podstawowa książka: K&R, czyli Kernighan BW, Ritchie DM Język ANSI C Wydawnictwa Naukowo-Techniczne, Warszawa 2003 ISBN 83-204-2804-1 Należy ją samodzielnie czytać! językjava podstawy inne języki imperatywne informacyjnie Wszystkie imperatywne języki programowania ogólnego zastosowania są do siebie podobne Wystarczy zrozumieć, jak działa jeden, żeby umieć stosować wszystkie

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie 1972: system operacyjny UNIX napisany w C, Ken Thompson& Dennis Ritchie

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie 1972: system operacyjny UNIX napisany w C, Ken Thompson& Dennis Ritchie 1978: The C Programming Language, Brian Kernighan& Dennis Ritchie podręcznik języka, służący jako jego nieformalna specyfikacja

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie 1972: system operacyjny UNIX napisany w C, Ken Thompson& Dennis Ritchie 1978: The C Programming Language, Brian Kernighan& Dennis Ritchie podręcznik języka, służący jako jego nieformalna specyfikacja 1989: standaryzacja języka C89, American National Standards Institute

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie 1972: system operacyjny UNIX napisany w C, Ken Thompson& Dennis Ritchie 1978: The C Programming Language, Brian Kernighan& Dennis Ritchie podręcznik języka, służący jako jego nieformalna specyfikacja 1989: standaryzacja języka C89, American National Standards Institute 1999: poprawiona standaryzacja języka C99, American National Standards Institute

Historia C Wykład1OGÓLNEINFORMACJEOC,str4 1971: pierwsza wersja C, Ken Thompson& Dennis Ritchie 1972: system operacyjny UNIX napisany w C, Ken Thompson& Dennis Ritchie 1978: The C Programming Language, Brian Kernighan& Dennis Ritchie podręcznik języka, służący jako jego nieformalna specyfikacja 1989: standaryzacja języka C89, American National Standards Institute 1999: poprawiona standaryzacja języka C99, American National Standards Institute 2011: następna poprawiona standaryzacja języka C11, American National Standards Institute

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się, pozwala programować blisko maszyny, czyli pisać bardzo wydajne programy(ale to jest żmudne)

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się, pozwala programować blisko maszyny, czyli pisać bardzo wydajne programy(ale to jest żmudne), większość współczesnych języków programowania ma zewnętrzną składnię wzorowaną na C(mimo głębokich różnic)

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się, pozwala programować blisko maszyny, czyli pisać bardzo wydajne programy(ale to jest żmudne), większość współczesnych języków programowania ma zewnętrzną składnię wzorowaną na C(mimo głębokich różnic) Wady C: niektóre jego cechy stoją w sprzeczności z naturalną intuicją i logiką

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się, pozwala programować blisko maszyny, czyli pisać bardzo wydajne programy(ale to jest żmudne), większość współczesnych języków programowania ma zewnętrzną składnię wzorowaną na C(mimo głębokich różnic) Wady C: niektóre jego cechy stoją w sprzeczności z naturalną intuicją i logiką, słabo wspiera programistę w poszukiwaniu i poprawianiu błędów

Dlaczego trzeba znać C? Wykład1OGÓLNEINFORMACJEOC,str5 najbardziej rozpowszechniony język programowania ogólnego zastosowania, stosunkowo prosty, więc nietrudny do nauczenia się, pozwala programować blisko maszyny, czyli pisać bardzo wydajne programy(ale to jest żmudne), większość współczesnych języków programowania ma zewnętrzną składnię wzorowaną na C(mimo głębokich różnic) Wady C: niektóre jego cechy stoją w sprzeczności z naturalną intuicją i logiką, słabo wspiera programistę w poszukiwaniu i poprawianiu błędów Łacina jest piękniejsza i logiczniejsza od angielskiego, ale dzisiaj można nie znać łaciny, a trzeba znać angielski

Wykład1OGÓLNEINFORMACJEOC,str6 Hierarchia bytów w języku programowania WYRAŻENIA reprezentujące wartości(arytmetyczne i inne) Np x, 0, x+y WARUNKI LOGICZNE reprezentujące relacje między wartościami(spełnione lub nie) Np x<0 KOMENDY nakazujące dokonanie zmiany stanu (np zmiany wartości zmiennych) Np if(x<0) x=-x; WYRAŻENIA MODUŁY stanowiące autonomiczne zestawy komend wykonujące pewną logicznie zamkniętą czynność Np double wartbezwzgl(doublex) { if(x<0) x=-x; return x; }

Wykład1OGÓLNEINFORMACJEOC,str6 Hierarchia bytów w języku programowania WYRAŻENIA reprezentujące wartości(arytmetyczne i inne) Np x, 0, x+y WARUNKI LOGICZNE reprezentujące relacje między wartościami(spełnione lub nie) Np x<0 WARUNKI LOGICZNE WYRAŻENIA KOMENDY nakazujące dokonanie zmiany stanu (np zmiany wartości zmiennych) Np if(x<0) x=-x; MODUŁY stanowiące autonomiczne zestawy komend wykonujące pewną logicznie zamkniętą czynność Np double wartbezwzgl(doublex) { if(x<0) x=-x; return x; }

Wykład1OGÓLNEINFORMACJEOC,str6 Hierarchia bytów w języku programowania WYRAŻENIA reprezentujące wartości(arytmetyczne i inne) Np x, 0, x+y KOMENDY WARUNKI LOGICZNE WYRAŻENIA WARUNKI LOGICZNE reprezentujące relacje między wartościami(spełnione lub nie) Np x<0 KOMENDY nakazujące dokonanie zmiany stanu (np zmiany wartości zmiennych) Np if(x<0) x=-x; MODUŁY stanowiące autonomiczne zestawy komend wykonujące pewną logicznie zamkniętą czynność Np double wartbezwzgl(doublex) { if(x<0) x=-x; return x; }

Wykład1OGÓLNEINFORMACJEOC,str6 Hierarchia bytów w języku programowania MODUŁY KOMENDY WARUNKI LOGICZNE WYRAŻENIA WYRAŻENIA reprezentujące wartości(arytmetyczne i inne) Np x, 0, x+y WARUNKI LOGICZNE reprezentujące relacje między wartościami(spełnione lub nie) Np x<0 KOMENDY nakazujące dokonanie zmiany stanu (np zmiany wartości zmiennych) Np if(x<0) x=-x; MODUŁY stanowiące autonomiczne zestawy komend wykonujące pewną logicznie zamkniętą czynność Np double wartbezwzgl(doublex) { if(x<0) x=-x; return x; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Npwarunek0>1mawartość0;awarunek0<=1mawartośćróżnąodzera

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Npwarunek0>1mawartość0;awarunek0<=1mawartośćróżnąodzera Przykład: M #include<stdioh> intmain(){ printf(" 1+(0>1) ==%i\n", 1+(0>1)); printf(" 1+(0<=1) ==%i\n", 1+(0<=1)); return 0; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Npwarunek0>1mawartość0;awarunek0<=1mawartośćróżnąodzera Przykład: M #include<stdioh> intmain(){ printf(" 1+(0>1) ==%i\n", 1+(0>1)); printf(" 1+(0<=1) ==%i\n", 1+(0<=1)); return 0; } drukuje 1+(0>1)==1 1+(0<=1) == 2

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str7 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Npwarunek0>1mawartość0;awarunek0<=1mawartośćróżnąodzera Przykład: M #include<stdioh> intmain(){ printf(" 1+(0>1) ==%i\n", 1+(0>1)); printf(" 1+(0<=1) ==%i\n", 1+(0<=1)); return 0; } drukuje 1+(0>1)==1 1+(0<=1) == 2 chociaż warunków logicznych w zasadzie nie powinno się dodawać do liczb

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str8 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str8 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Np komenda if traktuje test-1 jako spełniony; a test 0 jako niespełniony

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str8 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Np komenda if traktuje test-1 jako spełniony; a test 0 jako niespełniony Przykład: M #include<stdioh> intmain(){ if(-1) printf(" spelniony\n"); else printf(" niespelniony\n"); return 0; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str8 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Np komenda if traktuje test-1 jako spełniony; a test 0 jako niespełniony Przykład: M #include<stdioh> intmain(){ if(-1) printf(" spelniony\n"); else printf(" niespelniony\n"); return 0; } drukuje spelniony

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str8 Wszystko poplątane WARUNKI LOGICZNE są również WARTOŚCIAMI, w dodatku całkowitymi warunek jest spełniony, jeśli ma wartość różną od zera; warunek jest niespełniony, jeśli ma wartość zero Np komenda if traktuje test-1 jako spełniony; a test 0 jako niespełniony Przykład: M #include<stdioh> intmain(){ if(-1) printf(" spelniony\n"); else printf(" niespelniony\n"); return 0; } drukuje spelniony chociaż w zasadzie nie powinno się uzależniać drogi w programie od liczby

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr;

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy;

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ double x; printf(" wartosc komendy x = 05+05;:%lf\n", x = 05+05); return 0; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ double x; printf(" wartosc komendy x = 05+05;:%lf\n", x = 05+05); return 0; } drukuje wartosc komendy x = 05+05;: 1000000

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str9 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ double x; printf(" wartosc komendy x = 05+05;:%lf\n", x = 05+05); return 0; } drukuje wartosc komendy x = 05+05;: 1000000 chociaż w zasadzie komendy powinno się wykonywać, a nie drukować

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str10 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intn; doublex,y; n=scanf("%lf%lf",&x,&y); printf(" wartosc komendy czytania:%i\n", n); return 0; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str10 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intn; doublex,y; n=scanf("%lf%lf",&x,&y); printf(" wartosc komendy czytania:%i\n", n); return 0; } drukuje wartosc komendy czytania: 2

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str10 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intn; doublex,y; n=scanf("%lf%lf",&x,&y); printf(" wartosc komendy czytania:%i\n", n); return 0; } drukuje wartosc komendy czytania: 2 chociaż w zasadzie czytanie jest czynnością a nie wartością

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str11 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intk; k=printf("123456789\n"); printf(" wartosc komendy drukowania:%i\n", k); return 0; }

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str11 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intk; k=printf("123456789\n"); printf(" wartosc komendy drukowania:%i\n", k); return 0; } drukuje 123456789 wartosc komendy drukowania: 11

Hierarchia bytów w C Wykład1OGÓLNEINFORMACJEOC,str11 Wszystko poplątane KOMENDY również mają WARTOŚCI wartością przypisania x = wyr; jest wartość wyrażenia wyr; wartością komendy czytania jest liczba wczytanych rzeczy; wartością komendy drukowania jest liczba wydrukowanych znaków Przykład: M #include<stdioh> intmain(){ intk; k=printf("123456789\n"); printf(" wartosc komendy drukowania:%i\n", k); return 0; } drukuje 123456789 wartosc komendy drukowania: 11 chociaż w zasadzie drukowanie również jest czynnością a nie wartością

Wykład1OGÓLNEINFORMACJEOC,str12 Typy wyrażeń całkowity int int 012 - +-*/% ==!=<><=>=

Wykład1OGÓLNEINFORMACJEOC,str13 Typy wyrażeń rzeczywisty double double int 001 1231 602E-23 -fabsfloorsqrtlogexpsincostan +-*/pow ==!=<><=>=

Typy wyrażeń znakowy char Wykład1OGÓLNEINFORMACJEOC,str14 a W @ char ==!=<><=>= int

Wykład1OGÓLNEINFORMACJEOC,str15 Jawne konwersje typów(rzutowania) (int) (char) double int char (double) (int) Przykład: M (int)(char)(int)357 = =(int)(char)35 =(int) # =35

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej Np double x; x=1; powoduje zamianę wartości całkowitej 1 na rzeczywistą 10, a dopiero potem jej przypisanie zmiennej x

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej Np double x; x=1; powoduje zamianę wartości całkowitej 1 na rzeczywistą 10, a dopiero potem jej przypisanie zmiennej x Wyjątek: printf("%lf\n", 1); działa błędnie

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej Np double x; x=1; powoduje zamianę wartości całkowitej 1 na rzeczywistą 10, a dopiero potem jej przypisanie zmiennej x Wyjątek: printf("%lf\n", 1); działa błędnie char int Jak wyżej Ale printf("%i\n", a ); nie drukuje znaku ea tylko liczbę97(kodasciiznakua)

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej Np double x; x=1; powoduje zamianę wartości całkowitej 1 na rzeczywistą 10, a dopiero potem jej przypisanie zmiennej x Wyjątek: printf("%lf\n", 1); działa błędnie char int Jak wyżej Ale printf("%i\n", a ); nie drukuje znaku a tylko liczbę97(kodasciiznakua)

Niejawne konwersje typów Wykład1OGÓLNEINFORMACJEOC,str16 int double Prawie w każdym kontekście, w którym dopuszczalna jest wartość rzeczywista, można użyć wartości całkowitej Np double x; x=1; powoduje zamianę wartości całkowitej 1 na rzeczywistą 10, a dopiero potem jej przypisanie zmiennej x Wyjątek: printf("%lf\n", 1); działa błędnie char int Jak wyżej Ale printf("%i\n", a ); nie drukuje znaku a tylko liczbę97(kodasciiznakua) OinnychtypachwCbędziejeszczemowa

Wykład1OGÓLNEINFORMACJEOC,str17 Priorytety i łączność operatorów w C Ponieważ wszystko ma wartość, do wszystkiego można stosować operacje, trzeba tylko wiedzieć, jakie są ich priorytety

Wykład1OGÓLNEINFORMACJEOC,str17 Priorytety i łączność operatorów w C Ponieważ wszystko ma wartość, do wszystkiego można stosować operacje, trzeba tylko wiedzieć, jakie są ich priorytety Przykład: MCo wydrukuje #include<stdioh> intmain(){ int x,y; x=0; y=1; if(x==y+y) printf(" TAK\n"); else printf("nie\n"); return 0; }

Wykład1OGÓLNEINFORMACJEOC,str17 Priorytety i łączność operatorów w C Ponieważ wszystko ma wartość, do wszystkiego można stosować operacje, trzeba tylko wiedzieć, jakie są ich priorytety Przykład: MCo wydrukuje #include<stdioh> intmain(){ int x,y; x=0; y=1; if(x==y+y) printf(" TAK\n"); else printf("nie\n"); return 0; } Czy test x==y+y oznacza (x==y)+y czy x==(y+y)?

Wykład1OGÓLNEINFORMACJEOC,str18 Priorytety i łączność operatorów w C(K&R, str82) Priorytet Operatory Łączność wysoki () [] -> lewostronna! ++ -- + - * & (typ) sizeof prawostronna * / % lewostronna + - lewostronna << >> lewostronna < <= > >= lewostronna ==!= lewostronna & lewostronna ^ lewostronna lewostronna && lewostronna lewostronna?: prawostronna = += -= *= /= %= ^= = <<= >>= prawostronna niski, lewostronna

Wykład1OGÓLNEINFORMACJEOC,str18 Priorytety i łączność operatorów w C(K&R, str82) Priorytet Operatory Łączność wysoki () [] -> lewostronna! ++ -- + - * & (typ) sizeof prawostronna * / % lewostronna + - lewostronna << >> lewostronna < <= > >= lewostronna ==!= lewostronna & lewostronna ^ lewostronna lewostronna && lewostronna lewostronna?: prawostronna = += -= *= /= %= ^= = <<= >>= prawostronna niski, lewostronna Ponieważ priorytet porównania == jest niższy od priorytetu dodawania +, test x==y+y oznacza x==(y+y)

Wykład1OGÓLNEINFORMACJEOC,str19 Priorytety i łączność operatorów w C Ponieważ wszystko ma wartość, do wszystkiego można stosować operacje, trzeba tylko wiedzieć, jakie są ich priorytety Przykład: MCo wydrukuje #include<stdioh> intmain(){ printf(" 4-2-1 ==%i\n", 4-2-1); return 0; }

Wykład1OGÓLNEINFORMACJEOC,str19 Priorytety i łączność operatorów w C Ponieważ wszystko ma wartość, do wszystkiego można stosować operacje, trzeba tylko wiedzieć, jakie są ich priorytety Przykład: MCo wydrukuje #include<stdioh> intmain(){ printf(" 4-2-1 ==%i\n", 4-2-1); return 0; } Czy wyrażenie 4-2-1 oznacza (4-2)-1 czy 4-(2-1)?

Wykład1OGÓLNEINFORMACJEOC,str20 Priorytety i łączność operatorów w C(K&R, str82) Priorytet Operatory Łączność wysoki () [] -> lewostronna! ++ -- + - * & (typ) sizeof prawostronna * / % lewostronna + - lewostronna << >> lewostronna < <= > >= lewostronna ==!= lewostronna & lewostronna ^ lewostronna lewostronna && lewostronna lewostronna?: prawostronna = += -= *= /= %= ^= = <<= >>= prawostronna niski, lewostronna Ponieważ odejmowanie - łączy do lewej, wyrażenie 4-2-1 oznacza (4-2)-1 ijegowartościąjest 1

Wykład1OGÓLNEINFORMACJEOC,str21 Priorytety i łączność operatorów w C Trzebauważać

Wykład1OGÓLNEINFORMACJEOC,str21 Priorytety i łączność operatorów w C Trzebauważać Przykład: MCo wydrukuje #include<stdioh> intmain(){ if(! 1==2) printf(" nierowne\n"); else printf(" rowne\n"); return 0; }

Wykład1OGÓLNEINFORMACJEOC,str21 Priorytety i łączność operatorów w C Trzebauważać Przykład: MCo wydrukuje #include<stdioh> intmain(){ if(! 1==2) printf(" nierowne\n"); else printf(" rowne\n"); return 0; } Jesteśmy skłonni tak czytać: Jeśli nieprawdą jest, że 1==2, to drukować nierowne, w przeciwnym razie drukować rowne Ponieważ 1==2 jest nieprawdą, więc powinno zostać wydrukowane nierowne

Wykład1OGÓLNEINFORMACJEOC,str21 Priorytety i łączność operatorów w C Trzebauważać Przykład: MCo wydrukuje #include<stdioh> intmain(){ if(! 1==2) printf(" nierowne\n"); else printf(" rowne\n"); return 0; } Jesteśmy skłonni tak czytać: Jeśli nieprawdą jest, że 1==2, to drukować nierowne, w przeciwnym razie drukować rowne Ponieważ 1==2 jest nieprawdą, więc powinno zostać wydrukowane nierowne

Wykład1OGÓLNEINFORMACJEOC,str21 Priorytety i łączność operatorów w C Trzebauważać Przykład: MCo wydrukuje #include<stdioh> intmain(){ if(! 1==2) printf(" nierowne\n"); else printf(" rowne\n"); return 0; } Jesteśmy skłonni tak czytać: Jeśli nieprawdą jest, że 1==2, to drukować nierowne, w przeciwnym razie drukować rowne Ponieważ 1==2 jest nieprawdą, więc powinno zostać wydrukowane nierowne Tymczasem: Program drukuje rowne!

Wykład1OGÓLNEINFORMACJEOC,str22 Priorytety i łączność operatorów w C(K&R, str82) Priorytet Operatory Łączność wysoki () [] -> lewostronna! ++ -- + - * & (typ) sizeof prawostronna * / % lewostronna + - lewostronna << >> lewostronna < <= > >= lewostronna ==!= lewostronna & lewostronna ^ lewostronna lewostronna && lewostronna lewostronna?: prawostronna = += -= *= /= %= ^= = <<= >>= prawostronna niski, lewostronna Ponieważ priorytet negacji! jest wyższy niż priorytet równości ==, test! 1==2 oznacza (!1)==2 i jego wartością jest fałsz

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4?

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]?

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]? Testnamoimkomputerzedaje0wa[0],alenainnychmożebyćinaczej

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]? Testnamoimkomputerzedaje0wa[0],alenainnychmożebyćinaczej programowanie w poprzek naturalnej hierarchii logicznej

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]? Testnamoimkomputerzedaje0wa[0],alenainnychmożebyćinaczej programowanie w poprzek naturalnej hierarchii logicznej, naruszanie dyscypliny typów

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]? Testnamoimkomputerzedaje0wa[0],alenainnychmożebyćinaczej programowanie w poprzek naturalnej hierarchii logicznej, naruszanie dyscypliny typów, korzystanie z komend o nieustalonej kolejności wykonania

Wykład1OGÓLNEINFORMACJEOC,str23 Priorytety nie rozstrzygają wszystkich wątpliwości Przykład: MCzykomenda y=(x=1)+(x=2); nadazmiennej y wartość2,czy3, czy4? Testnamoimkomputerzedaje4,alenainnychmożebyćinaczej Przykład: MCzykomenda i=0;a[i]=i++; wpisze0czy1,doa[0]czydoa[1]? Testnamoimkomputerzedaje0wa[0],alenainnychmożebyćinaczej programowanie w poprzek naturalnej hierarchii logicznej, naruszanie dyscypliny typów, korzystanie z komend o nieustalonej kolejności wykonania to złe praktyki, których nie wolno stosować

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej; n++ oznacza n=n+1,n-- oznacza n=n-1

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej; n++ oznacza n=n+1,n-- oznacza n=n-1 Np a[n++]=0; oznacza a[n]=0; n=n+1; a[++n]=0; oznacza n=n+1; a[n]=0; Toniejesttosamo!

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej; n++ oznacza n=n+1,n-- oznacza n=n-1 Np a[n++]=0; oznacza a[n]=0; n=n+1; a[++n]=0; oznacza n=n+1; a[n]=0; Toniejesttosamo! +=,-=,*=,/=,%= połączenie operacji z przypisaniem

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej; n++ oznacza n=n+1,n-- oznacza n=n-1 Np a[n++]=0; oznacza a[n]=0; n=n+1; a[++n]=0; oznacza n=n+1; a[n]=0; Toniejesttosamo! +=,-=,*=,/=,%= połączenie operacji z przypisaniem; Np n+=1 oznacza n=n+1 lubn++ n*=4 oznacza n=n*4

Wykład1OGÓLNEINFORMACJEOC,str24 Operatory charakterystyczne dla C ++,-- dodanie(odjęcie) jedynki od zmiennej całkowitej; n++ oznacza n=n+1,n-- oznacza n=n-1 Np a[n++]=0; oznacza a[n]=0; n=n+1; a[++n]=0; oznacza n=n+1; a[n]=0; Toniejesttosamo! +=,-=,*=,/=,%= połączenie operacji z przypisaniem; Np n+=1 oznacza n=n+1 lubn++ n*=4 oznacza n=n*4 &,,, ˆ,<<,>> operacjebitowe(koniunkcja,alternatywa,negacja, różnica symetryczna, przesunięcia)