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



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

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Co nie powinno być umieszczane w plikach nagłówkowych:

Wstęp do programowania

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

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

Język C - podstawowe informacje

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1

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

Funkcja (podprogram) void

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

Podział programu na moduły

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

#line #endif #ifndef #pragma

Programowanie 2. Język C++. Wykład 1.

Języki programowania obiektowego Nieobiektowe elementy języka C++

Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)...

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie strukturalne i obiektowe

Języki programowania obiektowego Nieobiektowe elementy języka C++

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

Język ludzki kod maszynowy

Lab 1. Wstęp do programowania w C. Zintegrowane środowisko programistyczne Visual Studio.

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Wprowadzenie do programowania w języku C

Tablice, funkcje - wprowadzenie

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

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

1 Podstawy c++ w pigułce.

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

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

1 Podstawy c++ w pigułce.

Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19

Wstęp do programowania 1

Podstawy programowania C. dr. Krystyna Łapin

Wykład 1

2 Przygotował: mgr inż. Maciej Lasota

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

Microsoft IT Academy kurs programowania

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

zastępować zarezerwowane słowa lub symbole innymi,

Stałe, tablice dynamiczne i wielowymiarowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Podstawy programowania - 1

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

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

Programowanie Proceduralne

Abstrakcyjne struktury danych w praktyce

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Konsolidacja (linking)

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Podstawy programowania komputerów

Preprocesor. natychmiast następuje \n są usuwane następny wiersz zostaje połączony z tym, w którym był znak \ o usuwane są wszystkie komentarze są

Tworzenie oprogramowania

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

Wstęp do programowania

PROGRAMOWANIE w C prolog

Zofia Kruczkiewicz, ETE8305_2 1

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Wprowadzenie do szablonów klas

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

ISO/ANSI C - biblioteki ISO/ANSI C. ISO/ANSI C - biblioteki. ISO/ANSI C - biblioteki. ISO/ANSI C - biblioteki. ISO/ANSI C - biblioteki

PMiK Programowanie Mikrokontrolera 8051

Poprzedni wykład [ ] :

Podstawy Programowania.

Zmienne, stałe i operatory

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy programowania w języku C++

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Wstęp. do języka C na procesor (kompilator RC51)

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

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

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

1. Wprowadzenie do C/C++

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

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

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

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

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

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

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

C++. Leksykon kieszonkowy

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

Wstęp do programowania

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

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

Programowanie strukturalne język C - wprowadzenie

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

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Podstawy Programowania. Wykład 1

Podstawy programowania w języku C i C++

Transkrypt:

Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik

Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor część składowa kompilatora. Przetwarza plik źródłowy zgodnie z dyrektywami zapisanymi przez programistę. Dyrektywy są poprzedzone znakiem #. Każdy plik źródłowy jest kompilowany do oddzielnego pliku pośredniego. Konsolidator (linker) łączy pliki pośrednie i pliki bibliotek tworząc postać wykonywalną.

Biblioteki Biblioteka - zbiór konstrukcji programistycznych (m. in. funkcji) biblioteka statyczna - łączona jest z programem w momencie konsolidacji. W systemach z rodziny Windows pliki bibliotek mają zazwyczaj rozszerzenia.lib lub.obj, natomiast w systemach z rodziny Unix.a lub.o. biblioteka dynamiczna - łączona jest z programem wykonywalnym dopiero w momencie jego wykonania. Łączenie odbywa się na poziomie systemu operacyjnego. Rozszerzenia:.dll,.so biblioteka uruchomieniowa (runtime library) - wspomagają współpracę programu wykonywalnego z systemem operacyjnym w celu dostarczenia odpowiednich funkcji wejścia, wyjścia, matematycznych, zarządzanie pamięcią, itp.

Dyrektywy preprocesora #include "nazwa" #include <nazwa> #define LICZBA 56 #define max(a,b) (a>b)?a:b #ifdef TEST //pierwszy fragment kodu #else //drugi fragment kodu #endif #undef LICZBA

Jednokrotne dołączanie pliku #ifndef _funkcje.h_ #define _funkcje.h_... #endif Microsoft Visual C++ dopuszcza: #pragma once Każdy preprocesor ignoruje nieznane mu dyrektywy: #pragma bzdury

Nazwy predefiniowane DATE data w momencie kompilacji TIME godzina w momencie kompilacji FILE nazwa pliku, który aktualnie jest kompilowany przez kompilator LINE definiuje numer linii STDC w kompilatorach zgodnych ze standardem ANSI C ma wartość 1 STDC_VERSION wersja standardu

Przykład #if STDC_VERSION >= 199901L /* kod w C99 */ #else /* kod w ANSI */ #endif

Słowo kluczowe - typedef Słowo kluczowe typedef służy do definiowania typów pochodnych typedef stara_nazwa nowa_nazwa; typedef int Int32; typedef int* WskNaInt; Użycie nowego typu: WskNaInt t = NULL;

Stałe Stała zadanego typu - jej wartość nie może ulec zmianie const float Pi = 3.14; Stałe wyliczeniowe - enum enum { BIALY, CZARNY, ZIELONY = 12, NIEBIESKI }; // 0, 1, 12, 13 enum Kierunek { GORA, DOL, PRAWO, LEWO };

Słowo kluczowe const a wskaźniki Wskaźnik do stałego elementu: const char *s = "Napis"; Przykład: void drukuj( const char *s ) { // tutaj elementy wskazywane przez s nie mogą // ulec zmianie s++; // dobrze // *s = A ; źle printf( "\n%s", s ); }

Słowo kluczowe const a wskaźniki Stały wskaźnik: char z[10]; char* const t = &z[5]; // t++; błędne *t = A ; // jest poprawne Stały wskaźnik do stałego elementu: char z[] = "informatyka"; const char* const t = &z[5]; printf( "%c", *t );

Kod w dobrym stylu Pisz kod tak, aby nie było w nim magicznych wartości liczbowych. if( kolor == 12 )... Czyli dla jakiego zadanego koloru? Liczbowe wartości stałe pisz dużymi literami.

Przykład for( i=0; i<13; i++ ) t[i] = i; Co to jest 13? Dlaczego tyle? #define ROZMIAR_TABLICY 13... for( i=0; i<rozmiar_tablicy; i++ ) t[i] = i; Tutaj, nawet jeśli nie widzę definicji stałej, to wiem jaki jest sens zakresu zmiennej indeksującej pętlę.

Pliki nagłówkowe Plik nagłówkowy - (rozszerzenie.h) zawiera deklaracje funkcji, struktur danych, stałych. Dołączenie tego pliku do innych plików zwiększa zasięg widoczności elementów w nim zadeklarowanych. #include <nazwa_biblioteki.h> #include <ścieżka\nazwa_biblioteki.h> #include "własny_plik.h"

Podział kodu na pliki main.c: #include <stdio.h> #include <stdlib.h> #include "funkcje.h" main() { printf( "%d\n", c ); printf( "%d\n", nasza( 2 )); } system("pause"); return 0; funkcje.h: const int c = 4; int nasza( int ); funkcje.c: #include "funkcje.h" int b = 10; int nasza( int a ) { return a+b+c; }

Słowo kluczowe extern main.c: #include <stdio.h> #include <stdlib.h> #include "funkcje.h" extern int b; main() { printf( "%d\n", c + b ); printf( "%d\n", nasza( 2 )); } system("pause"); return 0; funkcje.h: const int c = 4; int nasza( int ); funkcje.c: #include "funkcje.h" int b = 10; int nasza( int a ) { return a+b+c; }

Koniec