Jerzy F. Kotowski1 Informatyka I Wykład 9 TABLICE PREPROCESOR OPERATORY c.d. (nie tylko binarne)

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Język C/C++ Funkcje.
Klasa listy jednokierunkowej Przekazywanie parametrów do funkcji
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Czy procesor musi się grzać? Np. dodawanie 2 liczb 1-bitowych. Możliwych stanów początkowych: cztery Możliwych stanów końcowych: dwa to można opisać jako.
formatowanie kodu źródłowego
Dyrektywy preprocesora #define identyfikator znacznik (definiowanie stałych symbolicznych) #define MAXL 512 for( i=1; i
Struktura programu dyrektywy preprocesora
Funkcje Modularyzacja : program główny , funkcje Funkcje :
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Tablice.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Ćwiczenie (1) Dostosuj poniższy program do wymogów programu zaliczeniowego #include typedef struct{ char imie[30]; char nazwisko[50]; int rokUrodzenia;
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Podstawy programowania PP – WYK2 Wojciech Pieprzyca.
Podstawy programowania PP – LAB5 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
Programowanie obiektowe III rok EiT
Jerzy F. Kotowski1 Informatyka I Wykład 7 STEROWANIE c.d. n switch n Pętle.
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Podstawy informatyki 2013/2014
Podstawy informatyki 2012/2013
Podstawy programowania
Wczytywanie danych z klawiatury, komentarze, zmienne.
Podstawy programowania w języku C i C++
Informatyka I Wykład 10 WSKAŹNIKI I ADRESY Jerzy F. Kotowski.
GOSPODARKA PAMIĘCIĄ, STRUMIENIE (i nie tylko)
Podstawy informatyki Struktury, operatory, wyjątki
Jerzy F. Kotowski1 Informatyka I Wykład 11 STRUKTURY I UNIE.
Generator analizatorów leksykalnych
Informatyka I - Wykład ANSI C
Jerzy F. Kotowski1 Informatyka I Wykład 8 STRUKTURA PROGRAMU n Funkcje n Klasy zmiennych n Projekt.
Podstawy programowania w języku C i C++
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład VIII.
Tematyka zajęć Zintegrowane środowisko programistyczne i proces tworzenia programu Identyfikatory, słowa kluczowe, zmienne, typy danych – typy proste Instrukcja.
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Jerzy F. Kotowski1 Informatyka I Wykład 15 PIERWSZE KROKI.
Programowanie obiektowe III rok EiT
STEROWANIE Ale nie tylko
Jerzy Kotowski Politechnika Wrocławska
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Kurs języka C++ – wykład 3 ( )
Kurs języka C++ – wykład 9 ( )
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
1 struktura #include struct complex {double real; double img; } alfa; struct complex beta={2.0,2.0}, delta; struct complex multi (struct complex x, struct.
Wykład 2 Klasa Zesp i jej hermetyzacja 1.Przykład definicji klasy Zesp 2.Zmiana definicji klasy 3.Zmienne i funkcje statyczne PO2-1 / 28.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Wstęp do programowania Wykład 8 Łańcuchy, struktury i pliki Metoda dziel i zwyciężaj Metoda zachłanna.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
1 Czy procesor musi się grzać? Np. dodawanie 2 liczb 1-bitowych. Możliwych stanów początkowych: cztery Możliwych stanów końcowych: dwa to można opisać.
Patryk Jasik pok. 415 GB Języki programowania Patryk Jasik pok. 415 GB
Czy procesor musi się grzać?
PODSTAWY INFORMATYKI Wykład 4.
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
Założenia projektowe Javy
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
struktura #include <stdio.h> #include <stdlib.h>
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Jerzy F. Kotowski1 Informatyka I Wykład 9 TABLICE PREPROCESOR OPERATORY c.d. (nie tylko binarne)

Jerzy F. Kotowski2 type_name identifier[const_expr]; type_name – nazwa typu elementu tablicy identifier – nazwa tablicy const_expr – liczba elementów tablicy. Musi to być wyrażenie stałe (obliczane przez kompilator) Indeksy: 0, 1, 2, …, const_expr - 1 Przykłady:int Ala[10]; double Ola[2*7+5]; struct Ula Ela[100];– kiedyś będzie Ula Ela[100];– C++ Ala[4] = 3; Tablice jednowymiarowe

Jerzy F. Kotowski3 Jak sama nazwa wskazuje preprocesor to narzędzie, które funkcjonuje przed rozpoczęciem procesu właściwego. Proces – proces kompilacji programu. Preprocesor przygotowuje program źródłowy do kompilaacji. Przykłady:#include #include c:\Jurek\\C\inf_8_1.cpp #define S(x) ((x)*(x)) #define Ala #define N 10 Dyrektywy preprocesora

Jerzy F. Kotowski4 Przykład:#define N 10 ……………… float Ula[N], Ela[N*N+2]; int i; for(i=0;i<N;i++) Ula[i] = 2*i; Zaleta: Modyfikujemy w jednym miejscu a nie w wielu. Wady: Tak określona stała nie ma typu. To nie jest nazwa OBIEKTU - nie można testować wartości wyrażeń. C++: Słowo kluczowe const const float pi = 3.14; Dyrektywa define a wyrażenia stałe 9_1

Jerzy F. Kotowski5 Przykłady:float Ula[5] = {0, 3, 4.5, 7.1, -1}; float Ula[6] = {0, 3, 4.5, 7.1, -1}; - ostrzeżenie float Ula[4] = {0, 3, 4.5, 7.1, -1}; - ERROR!! float Ula[ ] = {0, 3, 4.5, 7.1, -1}; - policz sobie Tablice znakowe: char Ala[12] = {A,l,a,,m,a,,k,o,t,a,\0}; - HELP!! char Ala[12] = Ala ma kota; Dużo lepiej! Terminating null będzie dodany automatycznie. Trzeba o tym pamiętać, jeżeli go nie chcemy. Inicjalizacja wartości początkowych

Jerzy F. Kotowski6 type ident[const_ex1] [const_ex2]; Przykład: float Ala[N][N+1]; [ ] – operator indeksowy 15 A[2][3] – przykład użycia. Co to jest B[2,3]? (A[2])[3] – operator indeksowy jest lewostronnie łączny Wniosek: Tablice wielowymiarowe w C są tablicami tablic. Nie ma ograniczenia na wymiar (poza rozsądkiem). Inicjalizacja: int Ala[2][3]={{1,3,5},{8,2,4}}; Niepełna inicjalizacja: int Ala[2][3]={1,3,8,2,4}; Tablica znakowa: char Ola[3][5]={Ala,ma,kota}; Policz sobie sam: char Ola[3][ ]={Ala,ma,kota}; Tablice wielowymiarowe

Jerzy F. Kotowski7 Operatory bitowe - jak sama nazwa wskazuje - działają na poszczególnych bitach swoich argumentów Argumentami tych operatorów nie mogą być dane typu float oraz double Operator jednoargumentowy (jeden) ~ bitowe uzupełnienie zerojedynkowe14 Operatory dwuargumentowe (pięć) & - bitowa koniunkcja 8 |- bitowa alternatywa 6 ^- bitowa różnica symetryczna 7 <<- przesunięcie w lewo 11 >>- przesunięcie w prawo 11 Operatory bitowe

Jerzy F. Kotowski8 Bitowa koniunkcja służy do zasłaniania pewnych bitów: y = x & m; m - maska y = x & 0177; Przesłania wszystko za wyjątkiem siedmiu najmłodszych bitów Operatory bitowe - przykłady char s[20]; int x, m=1, i=0; scanf(%d,&x); while(m) { if(x&m) s[i++] = 1; else s[i++] = 0; m = m<<1; } // Trzeba odwrócić s w miejscu

Jerzy F. Kotowski9 Int x = 2, y, z; y = x & 1; z = x && 1; y = 0 z = 1 x = 10&7;2 x = 10|7;15 x = 10^7;11 Operatory bitowe - przykłady c.d. Definicja funkcji zwracającej n bitów liczby x zaczynając od pozycji p unsigned getbits(x, p, n) unsigned x, p, n; { return(x>>(p+1-n)&~(~0<<n); } ~0<<n ~ ~(~0<<n)

Jerzy F. Kotowski10 Operatory arytmetyczneOperatory bitowe (2 argumentowe) + - * / % & | ^ >. Definicja operatora e1 op= e2 e1 = e1 op (e2) Przykłady: x /= y x = x/y Cechy: Zwięzłość, bliskie językowi naturalnemu Niebezpieczeństwo!!x = 15; x = x*2/3;( x: 10) x *= 2/3;(x: 0) !! Operatory i wyrażenia przypisania

Jerzy F. Kotowski11 Jest to jedyny w języku C operator trójargumentowy (i tak jest czasami nazywany) Oznaczenie: ?:Priorytet: 3 Definicja operatora y = e1 ? e2 : e3; if(e1) y=e2; else y=e3; Korzyści: zwięzłość i czytelność programu for(i=0;i<N;i++) printf(%d%c,a[i],(i%10==9||i==N-1)?\n: ); if(x&m) s[i++]=1; else s[i++]=0; s[i++] = x&m ? 1 : 0; y = a>b ? a : b; Operator warunkowy

Jerzy F. Kotowski12 char s[20]; int x, m =1, i=0, j=0; printf(x = ); scanf(%d,&x); while(m) { s[i++] = x&m ?1:0; m <<= 1; } x[i--] = 0;// term. null Nasz ulubiony przykład printf(binarnie = ); for(;j<i;j++,i--) { m = s[i]; s[i] = s[j]; s[j] = m; } printf(s);