Podstawy Programowania ZŁOŻONE TYPY DANYCH, LOGIKA CYFROWA I MACIERZE

Podobne dokumenty
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania Programowanie Obiektowe

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

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Java Podstawy. Michał Bereta

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pracownia Komputerowa wykład VI

Programowanie Niskopoziomowe

Właściwości i metody obiektu Comment Właściwości

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

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

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

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

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

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Architektura komputerów

Algorytmy i struktury danych. wykład 1

Algorytmika i Programowanie VBA 1 - podstawy

Pracownia Komputerowa wyk ad VI

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Podstawy Programowania C++

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

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

Programowanie obiektowe

1 Podstawy c++ w pigułce.

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

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

MATERIAŁY DO ZAJĘĆ II

Podstawy programowania w języku C i C++

Kiedy i czy konieczne?

Mikrooperacje. Mikrooperacje arytmetyczne

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

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

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

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

Wstęp do programowania

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

Programowanie, algorytmy i struktury danych

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

Wstęp doinformatyki. Systemy liczbowe i arytmetyka komputerów. System dziesiętny. Inne systemy. System dwójkowy

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

Podstawowe elementy języka Python III. Wykład 3. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 50 / 277

Zapis liczb binarnych ze znakiem

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

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

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

SYSTEMY LICZBOWE 275,538 =

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Wstęp do programowania. Różne różności

Podstawy Informatyki

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Pracownia Komputerowa wykład IV

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Naturalny kod binarny (NKB)

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Tworzenie aplikacji w języku Java

Microsoft IT Academy kurs programowania

2018 Marcin Kukliński. Niesforne bity i bajty

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

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

Podstawy programowania w języku C

Podstawowe części projektu w Javie

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

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

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Wykład 4. Klasa List Kolejki Stosy Słowniki

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

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

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

Języki i paradygmaty programowania

Wstęp do informatyki- wykład 2

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

Wprowadzenie do języka Java

1.1. Pozycyjne systemy liczbowe

Struktury, unie, formatowanie, wskaźniki

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

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

dr inż. Jarosław Forenc

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Tranzystor JFET i MOSFET zas. działania

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Oczywiście plik musi mieć rozszerzenie *.php

Platformy Programistyczne Podstawy języka Java

Język ludzki kod maszynowy

Podstawy Programowania

Kod U2 Opracował: Andrzej Nowak

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

Odczyt danych z klawiatury Operatory w Javie

Transkrypt:

Podstawy Programowania ZŁOŻONE TYPY DANYCH, LOGIKA CYFROWA I MACIERZE Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 27 godziny przyjęć: środy i czwartki 1:-11: http://www.eletel.p.lodz.pl/bujacz/ 1

Pytania z ostatniego wykładu: o Instrukcja (Instruction) o Zmienna (Variable), nazwa (Identifier) o Słowo kluczowe (Keyword) o Wyrażenie (Expression) o Operator (Operator) o Komentarz (Comment) 2

Pytania z ostatniego wykładu: o Integer / short / long co to two s complement o Floating point / double co to mantysa i wykładnik o Char o Boolean

Pytania z ostatniego wykładu: o Jaka jest największa liczba całkowita jaką możemy zapisać na 2 bajtach Ze znakiem Bez znaku o Zapisz liczbę FF34 binarnie i dziesiętnie o Ile spacji powinno oddzielać każdy poziom kodu w Pythonie

Logika cyfrowa

Operatory cyfrowe x << y x >> y x & y x y ~ x x ^ y przesuń bity o y w lewo po prawej wchodzą zera to samo co mnożenie przez 2 y przesuń bity o y w prawo po lewej wchodzą zera to samo co dzielenie przez 2 y AND OR negacja bitowa liczbowo to -x - 1 XOR

Maskowanie bitowe o Rejestr R R7 R6 R5 R4 R3 R2 R1 R o Jak sprawdzić co siedzi w R4 o Jak przestawić R4 na 1 o Jak przestawić R4 na

Maskowanie odczyt bitu o Jak sprawdzić co siedzi w R4 R7 R6 R5 R4 R3 R2 R1 R AND 1 = 11111 1111 AND 1 1 = 1

Maskowanie ustawianie bitu Jak przestawić R 4 na 1 R7 R6 R5 R4 R3 R2 R1 R OR = 11111 1111 OR 1 1 = 11111 11111 1 1

Maskowanie zerowanie bitu Jak przestawić R 4 na R7 R6 R5 R4 R3 R2 R1 R AND 1 1 1 1 1 1 1 = 11111 1111 AND 1111111 1111111 = 1111 1111

Konwersja little-big endian Jak wykonać operację x y dla 4 bajtowych liczb x = 4F 52 17 1 y = 1 17 52 4F y1 = x >> 24 # 4F y2 = x & FF # 52 y2 = y2 >> 8 # 52 y3 = x & FF # 17 y3 = y3 << 8 # 17 y4 = x << 24 # 1 y = y1 y2 y3 y4 # 1 17 52 4F

Złożone typy danych Jedna zmienna może odnosić się do zbioru danych jednego lub kilku różnych typów o Tablice/Sekwencje (list, str, buffer, np.matrix) o Zbiory/słowniki (set,dict) o Struktury/Rekordy o Klasy/obiekty 12

Tablice/Sekwencje o zmienne indeksowane, uporządkowane o indeksy zaczynają się od (wyjątki Matlab, Mathematica, Fortran, zaczynają od 1) o indeks podawany w kwadratowych klamrach o zazwyczaj jeden typ danych o jedno lub wielowymiarowe

Tablice w Pytonie o Dość nietypowe w porównaniu z większością języków (np. Java czy C) o mogą trzymać dowolne i różne typy danych (heterogenous) o mogą dynamicznie zmieniać rozmiar i typ danych (mutable) o indeksowane od o można używać ujemnych indeksów

Tworzenie tablic/list o lista = [1, 3.14, a, b, c ] o lista [1, 3.14, a, b, c ] o lista[] 1 o lista[-1] c

Tworzenie tablic (2) o lista2 = []*5 #tworzy tablicę o 5 elementach równych SIZE = 124 bufor = []*SIZE

Metody do użycia na tablicach <lista>.append(x) <lista>.sort() <lista>.reverse() <lista>.index(x) <lista>.insert(i, x) <lista>.count(x) <lista>.remove(x) <lista>.pop(i) dodaj wartość x do końca listy (wydłuża tablicę o 1) sortuj listę (parametr decyduje o kolejności) odwraca kolejność elementów w liście zwraca indeks kiedy wartość x pojawia się pierwszy raz wstawia wartość x pod indeks i (wydłuża tablicę o 1) liczy ile razy wartość x pojawia się w liście usuwa pierwszy element równy x (skraca tablicę o 1) usuwa element o indeksie i, zwraca jego wartość (skraca tablicę o 1)

Operatory na listach <lista> + <lista> <lista> * <liczba> <lista>[i] len(<lista>) <lista>[:] for <zmienna> in <lista>: <x> in <lista> scalenie (concatenation) powielenie wartość pod indeksem i długość listy cięcie (slicing) zwraca nową listę od (włacznie) do pętla po liście sprawdza czy wartość jest w sekwencji (zwraca prawdę/fałsz)

Używanie listy jako stosu o o o Stos to popularna struktura programistyczna typu Last-in, first-out Odkładamy na stos - powiększamy listę o element Zdejmujemy ze stosu -> skracamy listę > stos = [1] > stos.append(2) # push > stos [1, 2] > stos.pop() #kasuje i zwraca ostatni element 2

Zbiory, słowniki Jak sekwencje, tylko nie indeksowane liczbowo Zbiory (set) nie zawierają powtarzających się elementów Słowniki (dict) zawierają pary klucz:wartość

Zbiory, przykład >>> koszyk = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] #lista owocow >>> owoce = set(basket) #zbior owocow >>> owoce set(['orange', 'pear', 'apple', 'banana']) >>> 'orange' in owoce #czy cos jest w zbiorze True >>> pineapple' in owoce False

Operacje na zbiorach >>> a = set('abracadabra') >>> b = set('alacazam') >>> a # litery w a set(['a', 'r', 'b', 'c', 'd']) >>> a - b # litery w a, ale nie w b set(['r', 'd', 'b']) >>> a b # litery w a lub w b set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l']) >>> a & b # litery w a i w b set(['a', 'c']) >>> a ^ b # (a b) (a & b) set(['r', 'd', 'b', 'm', 'z', 'l'])

Przykład słownika >>> tel = {'jack': 498, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 498} >>> tel['jack'] 498 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'guido': 4127, 'irv': 4127, 'jack': 498} >>> list(tel.keys()) ['irv', 'guido', 'jack'] >>> sorted(tel.keys()) ['guido', 'irv', 'jack'] >>> 'guido' in tel True >>> 'jack' not in tel False

Łańcuchy (string) o w prezentacji Marka

Programing exercises PROGRAMMING EXERCISE 25