Preprocesor języka C: dyrektywy, makrodefinicje
|
|
- Kamil Wieczorek
- 7 lat temu
- Przeglądów:
Transkrypt
1 Preprocesor języka C: dyrektywy, makrodefinicje wer. 8 z drobnymi modyfikacjami! Wojciech Myszka :34:
2 Od kodu do programu wykonywalnego 1. Kod źródłowy 2. Preprocesor (gcc -E) 3. Kompilacja (konwersja do języka wewnętrznego) (gcc -S) 4. Assembler (tworzy pliki wynikowe) (gcc -c) 5. Konsolidowanie (przeglądanie bibliotek, budowa pliku wykonywalnego). 6. Uruchomienie 7. Debugowanie
3 Preprocesor 1. Pierwszym krokiem kompilacji jest przetwarzanie programu za pomocą preprocesora.
4 Preprocesor 1. Pierwszym krokiem kompilacji jest przetwarzanie programu za pomocą preprocesora. 2. Najczęściej stosowanymi poleceniami preprocesora są:
5 Preprocesor 1. Pierwszym krokiem kompilacji jest przetwarzanie programu za pomocą preprocesora. 2. Najczęściej stosowanymi poleceniami preprocesora są: #include
6 Preprocesor 1. Pierwszym krokiem kompilacji jest przetwarzanie programu za pomocą preprocesora. 2. Najczęściej stosowanymi poleceniami preprocesora są: #include #define
7 Preprocesor 1. Pierwszym krokiem kompilacji jest przetwarzanie programu za pomocą preprocesora. 2. Najczęściej stosowanymi poleceniami preprocesora są: #include #define polecenia kompilacji warunkowej (#if, #ifdef, #ifndef, #endif, #else, #elif)
8 Wstawianie plików 1. Każdy wiersz programu o postaci: jest zastępowany zawartością pliku o wskazanej nazwie.
9 Wstawianie plików 1. Każdy wiersz programu o postaci: #include "nazwa-pliku" jest zastępowany zawartością pliku o wskazanej nazwie.
10 Wstawianie plików 1. Każdy wiersz programu o postaci: #include "nazwa-pliku" #include <nazwa-pliku> jest zastępowany zawartością pliku o wskazanej nazwie.
11 Wstawianie plików 1. Każdy wiersz programu o postaci: #include "nazwa-pliku" #include <nazwa-pliku> jest zastępowany zawartością pliku o wskazanej nazwie. 2. Jeśli nazwa pliku ograniczona jest cudzysłowami poszukiwanie pliku rozpoczyna się tam gdzie znaleziono plik źródłowy.
12 Wstawianie plików 1. Każdy wiersz programu o postaci: #include "nazwa-pliku" #include <nazwa-pliku> jest zastępowany zawartością pliku o wskazanej nazwie. 2. Jeśli nazwa pliku ograniczona jest cudzysłowami poszukiwanie pliku rozpoczyna się tam gdzie znaleziono plik źródłowy. 3. Jeśli nazwa pliku ograniczona jest nawiasami kątowymi <, > plik szukany jest wśród plików systemowych (w miejscach zależnych od implementacji).
13 Wstawianie plików 1. Każdy wiersz programu o postaci: #include "nazwa-pliku" #include <nazwa-pliku> jest zastępowany zawartością pliku o wskazanej nazwie. 2. Jeśli nazwa pliku ograniczona jest cudzysłowami poszukiwanie pliku rozpoczyna się tam gdzie znaleziono plik źródłowy. 3. Jeśli nazwa pliku ograniczona jest nawiasami kątowymi <, > plik szukany jest wśród plików systemowych (w miejscach zależnych od implementacji). 4. Plik włączany poleceniem #include może zawierać kolejne polecenia #include.
14 Standardowe pliki nagłówkowe I ANSI C library header files Ważne pliki nagłówkowe: 1. <assert.h> Contains the assert macro, used to assist with detecting logical errors and other types of bug in debugging versions of a program. 2. <complex.h> A set of functions for manipulating complex numbers. (New with C99) 3. <ctype.h> Contains functions used to classify characters by their types or to convert between upper and lower case in a way that is independent of the used character set (typically ASCII or one of its extensions, although implementations utilizing EBCDIC are also known). 4. <errno.h> For testing error codes reported by library functions.
15 Standardowe pliki nagłówkowe II ANSI C library header files 5. <fenv.h> For controlling floating-point environment. (New with C99) 6. <float.h> Contains defined constants specifying the implementation-specific properties of the floating-point library, such as the minimum difference between two different floating-point numbers (_EPSILON), the maximum number of digits of accuracy (_DIG) and the range of numbers which can be represented (_MIN, _MAX). 7. <inttypes.h> For precise conversion between integer types. (New with C99) 8. <iso646.h> For programming in ISO 646 variant character sets. (New with NA1)
16 Standardowe pliki nagłówkowe III ANSI C library header files 9. <limits.h> Contains defined constants specifying the implementation-specific properties of the integer types, such as the range of numbers which can be represented (_MIN, _MAX). 10. <locale.h> For setlocale() and related constants. This is used to choose an appropriate locale. 11. <math.h> For computing common mathematical functions 12. <setjmp.h> Declares the macros setjmp and longjmp, which are used for non-local exits 13. <signal.h> For controlling various exceptional conditions 14. <stdarg.h> For accessing a varying number of arguments passed to functions.
17 Standardowe pliki nagłówkowe IV ANSI C library header files 15. <stdbool.h> For a boolean data type. (New with C99) 16. <stdint.h> For defining various integer types. (New with C99) 17. <stddef.h> For defining several useful types and macros. 18. <stdio.h> Provides the core input and output capabilities of the C language. This file includes the venerable printf function. 19. <stdlib.h> For performing a variety of operations, including conversion, pseudo-random numbers, memory allocation, process control, environment, signalling, searching, and sorting. 20. <string.h> For manipulating several kinds of strings. 21. <tgmath.h> For type-generic mathematical functions. (New with C99)
18 Standardowe pliki nagłówkowe V ANSI C library header files 22. <time.h> For converting between various time and date formats. 23. <wchar.h> For manipulating wide streams and several kinds of strings using wide characters - key to supporting a range of languages. (New with NA1) 24. <wctype.h> For classifying wide characters. (New with NA1)
19 Makrorozwinięcia I 1. Makrorozwinięcia to definicje które pozwalają duży fragment tekstu zastąpić krótkim: #define nazwa z a s t e p u j a c y _ t e k s t 2. Każde użycie ciągu znaków nazwa zostanie zamienione przez zastepujacy_tekst. 3. Definicja może korzystać z poprzednich definicji. 4. Makrorozwinięcia nie obowiązują wewnątrz stałych tekstowych (ograniczonych znakami cudzysłowów). 5. Makrorozwinięcia stosuje się do całych jednostek leksykalnych. Zatem jeżeli zdefiniowane jest coś takiego:
20 Makrorozwinięcia II #define YES "Tak" to każde wystąpienie YES zostanie zamienione na "Tak", ale nie będzie to dotyczyło p r i n t f ( "YES" ) ; albo wystąpienia napisu YESMAN A co będzie w przypadku p r i n t f ( YES ) ;
21 Makrorozwinięcia z parametrami I 1. Istnieje możliwość definiowania makr z argumentami zastępujący tekst może być różny dla różnych wywołań: #define max(a, B) ( (A) > (B)? (A) : (B) ) Bardzo przypomina wywołanie funkcji, ale realizowane będzie w sposób następujący: Pojawienie się w tekście programu napisu x = max( p+q, r+s ) ; zostanie rozwinięte jako x = ( ( p+q ) > ( r+s )? ( p+q ) : ( r+s ) )
22 Makrorozwinięcia z parametrami II Rozwiązanie takie ma wadę: wyrażenia obliczane są dwukrotnie, zatem w z = max( i ++, j ++); wartości i, j zostaną zwiększone dwukrotnie! 2. W przypadku gdy makrorozwinięcia używane są do prowadzenia obliczeń, pamiętać należy o odpowiednim stosowaniu nawiasów. #define s q u a r e ( x ) x x tłumaczone jest rozsądnie w najprostszym przypadku y = square(v); na y = v v ; ale w przypadku y = square(v + 1); na y = v + 1 v + 1 ;
23 Makrorozwinięcia z parametrami III 3. Poprawna definicja powinna wyglądać jakoś tak: #define s q u a r e ( x ) ( x ) ( x ) 4. Uwaga: pomiędzy nazwą a nawiasem otwierającym nie może być odstępu! 5. Makra rozwijanie są przed kompilacją!
24 Makrorozwinięcia z parametrami I 1. Jeżeli nazwę parametru w zastępującym tekście poprzedzimy znakiem # to cała kombinacja (parametr i znak) zostaną rozwinięte w ciąg znaków ograniczonych cudzysłowami. 2. Przyjmijmy, że mamy taką definicję: #define d r u k u j ( t e k s t ) p r i n t f ( #t e k s t ) to wywołanie d r u k u j ( a l a ma kota ) ; jest rozwijane w p r i n t f ( " a l a ma kota " ) ;
25 Makrorozwinięcia z parametrami II 3. Znaków ## można używać do sklejania parametrów formalnych. Makro #define s k l e j ( przod, t y l ) przod ## t y l wywołane s k l e j ( a, 1) zostanie rozwinięte jako a1
26 Makrorozwinięcia Prosty przykład #i f d e f DEBUG # include <s t d i o. h> # define w y p i s z ( x ) do { p r i n t f ( " Zmienna " # x \ " = %d\n", x ) ; } \ while ( 0 ) ; #e l s e # define w y p i s z ( x ) #e n d i f Użycie #define DEBUG... w y p i s z ( a ) ;
27 Odwoływanie makra Jeżeli jakaś definicja przestaje być potrzebna można ją zlikwidować za pomocą polecenia #undef Na przykład tak: #define DEBUG 1 / Wydruki d i a g n o s t y c z n e / /... / #i f d e f DEBUG /... / #endif /... / #undef DEBUG /... /
28 Makrorozwinięcia Przykład #i f d e f DEBUG # include <s t d i o. h> # define D( x ) do { p r i n t f ( "%s :%d (%s ) ",\ FILE, LINE, \ FUNCTION ) ; \ p r i n t f x ; \ f p u t c ( \n, s t d o u t ) ; \ f f l u s h ( s t d o u t ) ; } \ while ( 0 ) ; #e l s e # define D( x ) #endif
29 Użycie makra D D(("z= %d ", z)) Czemu tak?
30 Kompilacja warunkowa I Preprocesor został wyposażony w kilka poleceń pozwalających na sterowanie przetwarzaniem kodu źródłowego. Są to: #i f warunek /... / #endif #i f warunek /... / #e l s e /... / #endif
31 Kompilacja warunkowa II #i f warunek1 /... / #e l i f warunek2 /... / #e l i f warunek3 /... / #e l s e /... / #endif Dodatkowo sprawdzać można czy zostały zdefiniowane makra poleceniami
32 Kompilacja warunkowa III #i f d e f makro /... / #endif Oraz czy makro nie zostało zdefiniowane #i f n d e f makro /... / #endif
33 Kompilacja warunkowa Po co? 1. Warunkowe włączanie kodu na potrzeby uruchomienia (DEBUG). 2. Tworzenie kodu przenośnego w zależności od wersji systemu (kompilatora) standardowy zestaw makrodefinicji zawarty może być w plikach nagłówkowych. 3. Zakomentowanie dużego fragmentu kodu.
34 Zmienne preprocesora Wiele z tego zależy od implementacji, ale zazwyczaj zdefiniowane są następujące zmienne: LINE FILE DATE TIME cplusplus STDC 1. LINE i FILE oznaczają, odpowiednio, numer linii źródłowej kompilowanego pliku i jego nazwę.
35 Zmienne preprocesora Wiele z tego zależy od implementacji, ale zazwyczaj zdefiniowane są następujące zmienne: LINE FILE DATE TIME cplusplus STDC 1. LINE i FILE oznaczają, odpowiednio, numer linii źródłowej kompilowanego pliku i jego nazwę. 2. Zmienna DATE zawiera datę precyzyjniej datę kiedy dokonywana jest kompilacja.
36 Zmienne preprocesora Wiele z tego zależy od implementacji, ale zazwyczaj zdefiniowane są następujące zmienne: LINE FILE DATE TIME cplusplus STDC 1. LINE i FILE oznaczają, odpowiednio, numer linii źródłowej kompilowanego pliku i jego nazwę. 2. Zmienna DATE zawiera datę precyzyjniej datę kiedy dokonywana jest kompilacja. 3. Zmienna TIME zawiera czas precyzyjniej czas kiedy dokonywana jest kompilacja.
37 Zmienne preprocesora Wiele z tego zależy od implementacji, ale zazwyczaj zdefiniowane są następujące zmienne: LINE FILE DATE TIME cplusplus STDC 1. LINE i FILE oznaczają, odpowiednio, numer linii źródłowej kompilowanego pliku i jego nazwę. 2. Zmienna DATE zawiera datę precyzyjniej datę kiedy dokonywana jest kompilacja. 3. Zmienna TIME zawiera czas precyzyjniej czas kiedy dokonywana jest kompilacja. 4. Zmienna cplusplus zdefiniowana jest tylko wtedy, gdy kompilowany jest program w języku C++.
38 Zmienne preprocesora Wiele z tego zależy od implementacji, ale zazwyczaj zdefiniowane są następujące zmienne: LINE FILE DATE TIME cplusplus STDC 1. LINE i FILE oznaczają, odpowiednio, numer linii źródłowej kompilowanego pliku i jego nazwę. 2. Zmienna DATE zawiera datę precyzyjniej datę kiedy dokonywana jest kompilacja. 3. Zmienna TIME zawiera czas precyzyjniej czas kiedy dokonywana jest kompilacja. 4. Zmienna cplusplus zdefiniowana jest tylko wtedy, gdy kompilowany jest program w języku C Zmienna STDC zdefiniowana jest wtedy, gdy kompilowany jest program w języku C.
39 Inne przydatne stałę _WIN32 Windows, wersja 32 bity, _WIN64 Windows, wersja 64 bity, APPLE Apple, linux Linux, unix inny Unix,... Pełniejsza lista definicji akceptowanych przez większość kompilatorów: a lista definicji rozpoznawanych przez kompilator gcc tu:
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
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
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
PROGRAMOWANIE w C prolog
PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014
Funkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Poprzedni wykład [ ] :
Poprzedni wykład [ 20.11.2018 ] : - Funkcje w języku C (definicje i prototypy) - Struktura programu: Zmienne zewnętrzne, zasięg nazw; programy wieloplikowe (wprowadzenie) - Klasy pamięci: static, register
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów mgr inż. Arkadiusz Chrobot 10 listopada 2010 1 Preprocesor Preprocesor jest programem uruchamianym przed właściwym procesem kompilacji
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)...
Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
#line #endif #ifndef #pragma
8.1 Instrukcje preprocesorowe... 1 8.1.1 Instrukcja #define... 1 8.1.2 Instrukcje #pragma... 2 8.2 Polecenie _asm... 3 8.3 Polecenie declspec... 4 8.4 Definiowanie makr... 5 8.5 Programy wieloplikowe,
Wykład 1
Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
zastępować zarezerwowane słowa lub symbole innymi,
Wykład 7 7. Preprocesor i dyrektywy kompilatora 7.1. Makrodefinicje proste 7.2. Makrodefinicje parametryczne 7.3. Usuwanie definicji makra 7.4. Włączanie innych zbiorów do tekstu programu 7.5. Dyrektywy
Języki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Preprocesor koncepcja, rola zasady wykorzystania Co to jest
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
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ą
Preprocesor włącza się automatycznie, bez udziału uŝytkownika poprzedza kompilację dokonuje konwersji tekstu realizuje dyrektywy (linie zaczynające się od znaku #) dyrektywy mogą wystąpić w dowolnym miejscu
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!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch
INFORMATOR TECHNICZNY WONDERWARE Informator Techniczny nr 60 04-12-2002 Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch Wstęp PoniŜsza dokumentacja oparta na przykładach stworzonych
Programowanie Proceduralne
Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1
Funkcje czyli jak programować proceduralne. Programowanie Proceduralne 1 Struktura programu w C # include # define PI 3. 1415 float g =. 5 ; float kwadrat ( float x ) { return x x ; } int
Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1
Funkcje czyli jak programować proceduralne. Programowanie Proceduralne 1 Struktura programu w C # include / Dyrektywy p r e p r o c e s o r a / #define PI 3.1415 float g =. 5 ; / Zmienne
Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym
Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy
Informatyka I : Tworzenie projektu
Tworzenie nowego projektu w programie Microsoft Visual Studio 2013 Instrukcja opisuje w jaki sposób stworzyć projekt wykorzystujący bibliotekę winbgi2 w programie Microsoft Visual Studio 2013. 1. Otwórz
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
WYKŁAD 1 - KONSPEKT. Program wykładu:
mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu
Mikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Szablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Fragment wykładu z języka C ( )
Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Sieciowa komunikacja procesów - XDR i RPC
*** abc.x Przyklad pliku RPCGEN Obliczanie sumy, roznicy i iloczynu dwoch liczb calkowitych *** ************************************ Wywolanie procedury odleglej dopuszcza tylko jeden argument wywolania
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Język C - podstawowe informacje
Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły
Lab 1. Wstęp do programowania w C. Zintegrowane środowisko programistyczne Visual Studio.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 1. Wstęp do programowania w C. Zintegrowane środowisko programistyczne Visual Studio. Podstawowe pojęcia: 1. C imperatywny, strukturalny
Elementarne wiadomości o języku C
Elementarne wiadomości o języku C 1. Wprowadzenie Oprac.: Zbigniew Rudnicki Pierwszą wersję języka C opracował Dennis Ritchie w roku 1972 (wykorzystując niektóre rozwiazania z opracowanych w latach1967-1970
Podstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
Języki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Wstęp do programowania
Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część piąta suplement Funkcje i struktura programu preprocesor Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
OSI Data Link Layer. Network Fundamentals Chapter 7. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1
OSI Data Link Layer Network Fundamentals Chapter 7 Version 4.0 1 Warstwa Łącza danych modelu OSI Network Fundamentals Rozdział 7 Version 4.0 2 Objectives Explain the role of Data Link layer protocols in
Podział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Automatyzacja kompilacji. Automatyzacja kompilacji 1/40
Automatyzacja kompilacji Automatyzacja kompilacji 1/40 Automatyzacja kompilacji 2/40 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c
C++. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK CZYTELNIA SPIS TRECI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY
Programowanie strukturalne język C - wprowadzenie
Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Wstęp. #define include include include include include include
1 FW WSTĘP 1 1. Wstęp. Przedstawiany tu program po wczytaniu tekstu ze standardowego wejścia wypisuje uporządkowaną alfabetycznie listę słów wraz z liczbą ich wystąpień w podanym tekście. Przez słowo rozumiemy
Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Warsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
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ęzyk C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla
Wstęp. do języka C na procesor 8051. (kompilator RC51)
Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje
Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski
Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 1 O mnie prowadzący wykład i laboratoria: Dariusz Wardowski pokój: 102
Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Inżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność
Automatyzacja kompilacji. Automatyzacja kompilacji 1/28
Automatyzacja kompilacji Automatyzacja kompilacji 1/28 Automatyzacja kompilacji 2/28 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c
Podstawy programowania. Wykład Funkcje raz jeszcze. Biblioteka standardowa. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje raz jeszcze. Biblioteka standardowa. Krzysztof Banaś Podstawy programowania 1 Rekurencja W języku C funkcja może wywoływać sama siebie int funkcja_rekur(int nr_wyw){
System operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Konsolidacja (linking)
Konsolidacja (linking) 1 Ostatni etap budowania programu PRE- PROCESSING KOMPILACJA ASEMBLACJA LINKING Łączenie osobnych fragmentów kodu maszynowego w plik wykonywalny Wykonywana przez linker ld w systemie
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:
W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:
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: int i,j,n; double x, tab[1000]; przykładowe deklaracje w C Pierwsze
Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21
Programowanie w C++ Wykład 10 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Makefiles K.Grzelak (Wykład 10) Programowanie w C++ 2 / 21 Kompilacja programu zapisanego w
Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski
Sposoby wykrywania i usuwania błędów Tomasz Borzyszkowski Mylić się jest rzeczą ludzką Typy błędów: błędy specyfikacji: źle określone wymagania błędy projektowe: nieodpowiednie struktury danych i algorytmy
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19
Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19 Lab 1. Wstęp do programowania w C. Zintegrowane środowisko programistyczne Visual Studio. Wyrażenia arytmetyczne, relacyjne, logiczne.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Wstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
MS Visual Studio 2005 Team Suite - Performance Tool
MS Visual Studio 2005 Team Suite - Performance Tool przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A 15-351 Białystok Streszczenie: Dokument
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
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 5 6 7 Charakter wykładu ˆ zakłada znajomość idei programowania strukturalnego (np. w Pascalu) oraz podstaw używania środowiska UNIX (wykonywanie
Popularne biblioteki C++
Popularne biblioteki C++ Biblioteka standardowa 1. Biblioteki odziedziczone z C (assert.h) (ctype.h) (errno.h) (fenv.h) (float.h) (inttypes.h)
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Programowanie w elektronice: Podstawy C
Programowanie w elektronice: Podstawy C Projekt Matematyka dla Ciekawych Świata, Robert Ryszard Paciorek 2019-05-05 C / C++ są najpopularniejszymi językami kompilowanymi do kodu maszynowego
Programowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 04 X 2011 Wszelkie uwagi, poprawki, braki czy sugestie najlepiej wysyłać na maila. 1. wprowadzenie do Linuksa: kompilacja
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
KURS C/C++ WYKŁAD 1. Pierwszy program
KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji
Programowanie I C / C++ laboratorium 01 Organizacja zajęć
Programowanie I C / C++ laboratorium 01 Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-12 Program zajęć Zasady zaliczenia Program operacje wejścia i wyjścia instrukcje
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:
Deklaracje Wykład5TYPYDANYCH,str1 W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: int i,j,n; double x, tab[1000]; } przykładowe
I - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Kompilacja i scalanie programów w linii poleceń gcc i make
Kompilacja i scalanie programów w linii poleceń gcc i make Małgorzata Stankiewicz kwiecień 2012 Małgorzata Stankiewicz () gcc i make kwiecień 2012 1 / 26 GCC - GNU Compiler Collection GCC Zestaw kompilatorów
2018 Marcin Kukliński. Niesforne bity i bajty
Niesforne bity i bajty 2 Kilka słów O mnie @ senghe@gmail.com https://www.linkedin.com/in/marcin-kukliński 3 2017 InspiraSign - Template All rights reserved Ekipa cpp-polska 5 Marcin Kukliński Wojciech
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera
Pobieranie argumentów wiersza polecenia
Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Ćwiczenia nr 11. Translatory. Wprowadzenie teoretyczne
J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw11-tr.doc; Data: 2009-01-15 09:47:00 Ćwiczenia nr 11 Translatory Wprowadzenie teoretyczne Wiele dokumentów wprowadzających do języków Lex oraz
Utworzenie pliku. Dowiesz się:
Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program