PROGRAMOWANIE w C prolog



Podobne dokumenty
Wykład 1

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

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

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

Język C - podstawowe informacje

Wstęp do programowania 1

Programowanie strukturalne język C - wprowadzenie

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

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

Programowanie strukturalne i obiektowe

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Język ludzki kod maszynowy

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

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

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Funkcja (podprogram) void

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

Programowanie Proceduralne

ROZDZIAŁ 2. Operatory

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

Programowanie obiektowe

( wykł. dr Marek Piasecki )

Microsoft IT Academy kurs programowania

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

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

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

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

Języki programowania - podstawy

Szkolenia specjalistyczne

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

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

Wstęp do Programowania 2

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

Programowanie Proceduralne

Zaawansowane programowanie w języku C++ Podstawy programowania w C++

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

Programowanie w języku C++

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!

Podstawy programowania w języku C

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

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

Podstawy Programowania

Zaawansowane programowanie w języku C++ Przeciążanie operatorów

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

Programowanie mikrokontrolerów AVR

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie w elektronice: Podstawy C

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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

Preprocesor języka C: dyrektywy, makrodefinicje

1 Podstawy c++ w pigułce.

Zmienne, stałe i operatory

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

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

1 Podstawy c++ w pigułce.

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

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

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

Wstęp do programowania

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

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

Język C : szkoła programowania / Stephen Prata. Gliwice, cop Spis treści

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

2 Przygotował: mgr inż. Maciej Lasota

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy programowania C. dr. Krystyna Łapin

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

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

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

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

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

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

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

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 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

Podstawy języka C++ Marek Pudełko

Programowanie strukturalne język C

Zaawansowane programowanie w języku C++ Wstęp

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

3 Przygotował: mgr inż. Maciej Lasota

Słowa kluczowe i nazwy

Język C. Szkoła programowania. Wydanie VI

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Część 4 życie programu

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015.

Inżynieria Wytwarzania Systemów Wbudowanych

Wstęp do programowania

external Data Representation

Informatyka Stosowana

Transkrypt:

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 1/12 12

literatura Do wykładu nie ma żadnej wymaganej publikacji. Rekomendowane: Brian W. Kernighan, Dennis M. Ritchie Język ANSI C. Programowanie. Helion 2010, wydanie II. aktualna norma języka: ISO/IEC 9899:2011 (C11) ostatni dostępny draft (n1579) dostępny na mojej stronie 2 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 2/12 12

literatura Na mojej stronie: http://gen.up.wroc.pl/stanczyk/ dostępnych jest kilka darmowych książek do C. Nieograniczone zasoby w Internecie: serwisy poświęcone C, książki, artykuły, przykłady... np. http://www.cplusplus.com/reference/ 3 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 3/12 12

literatura Na mojej stronie: http://gen.up.wroc.pl/stanczyk/ dostępnych jest kilka darmowych książek do C. Nieograniczone zasoby w Internecie: serwisy poświęcone C, książki, artykuły, przykłady... np. http://www.cplusplus.com/reference/ 3 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 3/12 12

środowisko pracy, narzędzia i warsztat dotyczy ćwiczeń! Wszystkie programy muszą być: kompilowalne przy użyciu kompilatora GNU gcc urchamiane w systemie linux (ubuntu 14.04) IDE: dowolne, polecam Eclipse CDT http://www.eclipse.org/cdt/ 4 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 4/12 12

środowisko pracy, narzędzia i warsztat dotyczy ćwiczeń! Wszystkie programy muszą być: kompilowalne przy użyciu kompilatora GNU gcc urchamiane w systemie linux (ubuntu 14.04) IDE: dowolne, polecam Eclipse CDT http://www.eclipse.org/cdt/ 4 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 4/12 12

środowisko pracy, narzędzia i warsztat dotyczy ćwiczeń! Wszystkie programy muszą być: kompilowalne przy użyciu kompilatora GNU gcc urchamiane w systemie linux (ubuntu 14.04) IDE: dowolne, polecam Eclipse CDT http://www.eclipse.org/cdt/ ale wystarczy sam dobry edytor (vim czy emacs) 4 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 4/12 12

środowisko pracy, narzędzia i warsztat dotyczy ćwiczeń! Wszystkie programy muszą być: kompilowalne przy użyciu kompilatora GNU gcc urchamiane w systemie linux (ubuntu 14.04) IDE: dowolne, polecam Eclipse CDT http://www.eclipse.org/cdt/ ale wystarczy sam dobry edytor (vim czy emacs) 4 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 4/12 12

środowisko pracy, narzędzia i warsztat dotyczy ćwiczeń! Wszystkie programy muszą być: kompilowalne przy użyciu kompilatora GNU gcc urchamiane w systemie linux (ubuntu 14.04) IDE: dowolne, polecam Eclipse CDT http://www.eclipse.org/cdt/ ale wystarczy sam dobry edytor (vim czy emacs) konfiguracja kompilowania poprzez: GNU make (wymagane!) 4 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 4/12 12

środowisko pracy, narzędzia i warsztat narzędzia dodatkowe (będą wymagane sukcesywnie): debuger: GNU gdb formatowanie: indent dokumentowanie kodu: doxygen 5 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 5/12 12

środowisko pracy, narzędzia i warsztat narzędzia dodatkowe (będą wymagane sukcesywnie): debuger: GNU gdb formatowanie: indent dokumentowanie kodu: doxygen Dodatkowo? Przy pracy nad projektami przyda się: system wersjonowania np. git narzędzie do testów jednostkowych np. CUnit narzędzie do integracji ciągłej np. Jenkins narzędzie do testów akceptacyjnych, regresyjnych, etc.... niestety to już wykracza poza zakres tego wykładu :) 5 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 5/12 12

historia 1969-1973 początki... 1978 Kernighan and Ritchie (K&R) C 1983 normalizacja: ANSI/POSIX/ISO 1989 norma ANSI X3.159-1989 (c89) 1990 ISO/IEC 9899:1990 (c90) 1999 ISO/IEC 9899:1999 (c99) 2011 ISO/IEC 9899:2011 (c11) embedded C: 2004 (n1021) i 2006 (n1169) 6 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 6/12 12

historia 1969-1973 początki... 1978 Kernighan and Ritchie (K&R) C 1983 normalizacja: ANSI/POSIX/ISO 1989 norma ANSI X3.159-1989 (c89) 1990 ISO/IEC 9899:1990 (c90) 1999 ISO/IEC 9899:1999 (c99) 2011 ISO/IEC 9899:2011 (c11) embedded C: 2004 (n1021) i 2006 (n1169) Dennis Ritchie i Ken Thompson przy PDP-11 w 1972. 6 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 6/12 12

spojżenie prosty język (dość) wysokiego poziomu mała ilość słów kluczowych c89 = 32: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while c99 + 5: Bool Complex Imaginary inline restrict c11 + 7: Alignas Alignof Atomic Generic Noreturn Static assert Thread local 7 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 7/12 12

spojżenie Bogaty zestaw operatorów: arytmetyczne: +, -, *, /, % przypisania := zwiększania/zmniejszania: +=, -=, *=, /=, %=, &=, =, =, <<=, >>= bitowe logiczne:, &,, bitowe przesunięcie: <<, >> logiczne:!, &&, warunkowy:? : porównania: ==,!= wywołania funkcji: ( ) inkrementacji i dekrementacji: ++, -- selekcji:., -> wielkości objektu: sizeof relacji: <, <=, >, >= referencji i dereferenji: &, *, [ ] sekwencji:, groupowania: ( ) konwersji typów: (nazwa-typu) 8 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 8/12 12

spojżenie Szereg typów podstawowych: bool, char, unsigned char, signed char, int, unsigned int, short int, unsigned short int, long int, unsigned long int, long long int, unsigned long long int, float, double, long double, float Complex, double Complex, long double Complex, float Imaginary, double Imaginary, long double Imaginary, void i złożonych wyliczeniowy, struktura, unia, pole bitowe, tablica, wskaźnik 9 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 9/12 12

spojżenie biblioteka standardowa zawiera makra, definicje typów i funkcji API zdefiniowane w 29 plikach nagłówkowych: <assert.h> <complex.h> <ctype.h> <errno.h> <fenv.h> <float.h> <inttypes.h> <iso646.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdalign.h> <stdarg.h> <stdatomic.h> <stdbool.h> <stddef.h> <stdint.h> <stdio.h> <stdlib.h> <stdnoreturn.h> <string.h> <tgmath.h> <threads.h> <time.h> <uchar.h> <wchar.h> <wctype.h> 10 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 10/12 12

spojżenie kompilacja - używamy gcc najprościej $ gcc hallo.c wynik: a.out do zadanego pliku $ gcc -o hallo hallo.c włączając ostrzeżenia -pedantic -Wall -Wextra (można także -Werror) kompilować wg. standardu c89, c90, c99 c11? -std=c11 włączyć optymalizację kodu? (przełączniki -O, -O2, -O3, -Os) inne przełączniki/inne możliwości kompilatora? jeśli macie ochotę :) 11 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 11/12 12

spojżenie formtowanie kodu - dowolne kilka przykładów z International Obfuscated C Code Contest www.de.ioccc.org: http://www.de.ioccc.org/2004/kopczynski.c http://www.de.ioccc.org/2000/dhyang.c http://www.de.ioccc.org/2000/rince.c http://www.de.ioccc.org/2004/anonymous.c http://www.de.ioccc.org/2004/newbern.c 12 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014 12/12 12