ARM031007 W

Jest to podstawowy zestaw informacji dla kursu Informatyka I prowadzonego na Wydziale Mechanicznym Politechniki Wrocławskiej na kierunku Automatyka i Robotyka — ARM031007W.

Slajdy

Najlepiej korzystać ze slajdów do wykładu dla Mechatroniki. Tu pojawią się slajdy w takiej postaci jak pojawiły się na wykładzie.

  1. Wykład pierwszy: Programowanioe (Blockly)Wprowadzenie.
  2. Wykład drugi: Zmienne, operacje, instrukcje sterujące.
  3. Wykład trzeci: Funkcje. Tablice. Wskaźniki.
  4. Wykład czwarty: Pamięć dynamiczna, Struktury danych.
  5. Wykład piąty: Pliki.
  6. Wykład szósty: Teksty.
  7. Wejście/wyjście w C.

Podręczniki

Poniżej lista bardzo wielu dostępnych w księgarni/bibliotece/Internecie źródeł informacji na temat programowania w języku C.

  • J. Grębosz, Symfonia C++, Kraków: Kallimach, 2000.
    [BibTeX]
    @Book{Grebosz,
    author = {Grębosz, J.},
    title = {Symfonia {C}++},
    year = {2000},
    publisher = {Kallimach},
    address = {Kraków},
    }

  • D. Griffiths and D. Griffiths, C. Rusz głową!, Gliwice: Helion, 2013.
    [BibTeX]
    @Book{Griffiths2013,
    author = {Griffiths, David and Griffiths, Dawn},
    title = {C. {R}usz głową!},
    year = {2013},
    note = {Strona księgarni: \url{http://helion.pl/ksiazki/c-rusz-glowa-david-griffiths-dawn-griffiths,cruszg.htm}},
    publisher = {Helion},
    address = {Gliwice},
    owner = {myszka},
    timestamp = {2016.03.02},
    }

  • D. Griffiths and D. Griffiths, Head first C, O’Reilly, 2011.
    [BibTeX] [Download PDF]
    @Book{Griffiths2011,
    author = {David Griffiths and Dawn Griffiths},
    title = {Head First {C}},
    year = {2011},
    series = {Head First},
    note = {Są szanse, żeby ksiazka byłą dostępna pod tym adresem: \url{http://proquestcombo.safaribooksonline.com/9781449335649}. Można się o nią „dobijać” zgodnie z instrukcją na \href{http://www.bg.pwr.wroc.pl/600576.dhtml}{stronie biblioteki}.},
    publisher = {O'Reilly},
    url = {http://proquestcombo.safaribooksonline.com/9781449335649},
    owner = {myszka},
    timestamp = {2011.10.18},
    }

  • D. Harel and Y. Feldman, Rzecz o istocie informatyki: algorytmika, Warszawa: Wydawnictwa Naukowo-Techniczne, 2001, 2002, 2008.
    [BibTeX]
    @Book{Harel,
    author = {David Harel and Yishai Feldman},
    title = {Rzecz o istocie informatyki: algorytmika},
    year = {2001, 2002, 2008},
    series = {Klasyka informatyki},
    publisher = {Wydawnictwa Naukowo-Techniczne},
    address = {Warszawa},
    owner = {myszka},
    timestamp = {2010.10.02},
    }

  • G. Heineman, G. Pollice, and S. Selkow, Algorytmy. almanach, Gliwice: Helion, 2010.
    [BibTeX]
    @Book{Heineman2010,
    author = {George Heineman and Gary Pollice and Stanley Selkow},
    title = {Algorytmy. Almanach},
    year = {2010},
    publisher = {Helion},
    address = {Gliwice},
    owner = {myszka},
    timestamp = {2016.04.11},
    }

  • S. Holmes, „C programming,” , 1995.
    [BibTeX] [Download PDF]
    @Electronic{Holmes,
    author = {Steve Holmes},
    title = {C Programming},
    year = {1995},
    url = {http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/},
    howpublished = {\url{http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/}},
    }

  • T. Jensen, „A tutorial on pointers and arrays in C,” , 2000.
    [BibTeX] [Download PDF]
    @Electronic{Pointers,
    author = {Ted Jensen},
    title = {A tutorial on pointers and arrays in {C}},
    year = {2000},
    url = {http://pweb.netcom.com/~tjensen/ptr/pointers.htm},
    note = {Dostępne jako \url{http://pweb.netcom.com/~tjensen/ptr/pointers.htm}},
    month = {Feb.},
    }

  • R. Kendrick, „Some dark corners of C,” , 2013.
    [BibTeX] [Download PDF]
    @Electronic{Kendrick,
    author = {Rob Kendrick},
    title = {Some dark corners of {C}},
    year = {2013},
    url = {https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/preview#slide=id.gec7eb408_3500},
    owner = {myszka},
    timestamp = {2013.03.09},
    }

  • B. W. Kernighan and D. M. Ritchie, Język ANSI C, Warszawa: WNT, 2007.
    [BibTeX]
    @Book{ansic,
    author = {Kernighan, B. W. and Ritchie, D. M.},
    title = {Język {ANSI} {C}},
    year = {2007},
    publisher = {WNT},
    address = {Warszawa},
    }

  • B. Klemens, 21st century C, {O’Reilly} Media, 2012.
    [BibTeX] [Abstract] [Download PDF]

    Throw out your old ideas of C, and relearn a programming language that’s substantially outgrown its origins. With 21st Century C, you’ll learn how to dump old habits that made sense on mainframes, and pick up the tools you need to use thi…

    @Book{ben_klemens_21st_2012,
    author = {Ben Klemens},
    title = {21st Century {C}},
    year = {2012},
    note = {\url{http://shop.oreilly.com/product/0636920025108.do}},
    publisher = {{O'Reilly} Media},
    isbn = {978-1-449-32714-9},
    url = {http://shop.oreilly.com/product/0636920025108.do},
    urldate = {2013-02-06},
    abstract = {Throw out your old ideas of C, and relearn a programming language that’s substantially outgrown its origins. With 21st Century C, you’ll learn how to dump old habits that made sense on mainframes, and pick up the tools you need to use thi...},
    file = {Snapshot:/home/myszka/.zotero/zotero/my63giux.default/zotero/storage/4P2R6AQX/0636920025108.html:text/html},
    keywords = {1449327141, 1-4493-2714-1, 21st Century C, 9781449327149, 978-1-4493-2714-9, Ben Klemens, oreilly, {O'Reilly}},
    }

  • M. J. Kubiak, Programuję w językach Turbo Pascal i C/C++: programowanie strukturalne z elementami programowania obiektowego, Warszawa: Mikom, 2001.
    [BibTeX]
    @Book{kubiak,
    author = {Kubiak, M. J.},
    title = {Programuję w językach {T}urbo {P}ascal i {C/C}++: programowanie strukturalne z elementami programowania obiektowego},
    year = {2001},
    publisher = {Mikom},
    address = {Warszawa},
    }

  • C. O’Riordan, Learning GNU C, Ciaran O’Riordan, 2002.
    [BibTeX] [Download PDF]
    @Book{riordan,
    author = {Ciaran O'Riordan},
    title = {Learning {GNU C}},
    year = {2002},
    publisher = {Ciaran O'Riordan},
    url = {http://www.faqs.org/docs/learnc/},
    }

  • R. M. Reese, Wskaźniki w języku C: przewodnik, Gliwice: Helion, 2014.
    [BibTeX] [Abstract]

    Kompendium wiedzy o wskaźnikach w języku C

    @Book{Reese2014,
    author = {Reese, Richard M.},
    title = {Wskaźniki w języku {C}: przewodnik},
    year = {2014},
    note = {Dostęp po zalogowaniu w bazie NASBI. \url{http://biblioteka.pwr.wroc.pl/NASBI_Naukowa_Akademicka_Sieciowa_Biblioteka_Internetowa,161.dhtml}},
    publisher = {Helion},
    abstract = {Kompendium wiedzy o wskaźnikach w języku C},
    address = {Gliwice},
    owner = {myszka},
    timestamp = {2016.04.09},
    }

  • R. M. Reese, Understanding and Using C Pointers, O’Reilly, 2013.
    [BibTeX] [Abstract] [Download PDF]

    Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and…

    @Book{richard_m._reese_understanding_2013,
    author = {Richard M. Reese},
    title = {Understanding and {Using} {C} {Pointers}},
    year = {2013},
    publisher = {O'Reilly},
    url = {http://shop.oreilly.com/product/0636920028000.do},
    urldate = {2015-03-17},
    abstract = {Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and...},
    file = {Snapshot:/home/myszka/.mozilla/firefox/7m2m4ye2.default/zotero/storage/S5RWUJWX/0636920028000.html:text/html},
    }

  • A. Sapek, W głąb języka C, Gliwice: Helion, 1993.
    [BibTeX] [Download PDF]
    @Book{Sapek,
    author = {Adam Sapek},
    title = {W głąb języka {C}},
    year = {1993},
    note = {Wersja elektroniczna dostępna pod adresem: \url{ftp://ftp.helion.pl/online/wglab/1-3.pdf}},
    publisher = {Helion},
    url = {ftp://ftp.helion.pl/online/wglab/1-3.pdf},
    address = {Gliwice},
    month = {lipiec},
    }

  • H. Schildt, Leksykon C/C++, Warszawa: Oficyna Wydawnicza {LTP}, 2002.
    [BibTeX]
    @Book{schildt_leksykon_2002,
    author = {Herbert Schildt},
    title = {Leksykon {C/C++}},
    year = {2002},
    publisher = {Oficyna Wydawnicza {LTP}},
    isbn = {8387115185},
    pages = {345},
    address = {Warszawa},
    lccn = {311669},
    }

  • C. Sexton, Język C to proste, Warszawa: Wyd. RM, 2001.
    [BibTeX]
    @Book{Cproste,
    author = {Sexton, C.},
    title = {Język {C} to proste},
    year = {2001},
    publisher = {Wyd. RM},
    address = {Warszawa},
    }

  • C. Sexton, Programowanie w C++ –- to proste, Warszawa: RM, 2001.
    [BibTeX]
    @Book{SextonCC,
    author = {Sexton, C.},
    title = {Programowanie w {C}++ --- to proste},
    year = {2001},
    publisher = {RM},
    address = {Warszawa},
    }

  • P. Stańczyk, Algorytmika praktyczna: nie tylko dla mistrzów, Warszawa: Wydawnictwo Naukowe {PWN}, 2009.
    [BibTeX]
    @Book{staczyk_algorytmika_2009,
    author = {Piotr Stańczyk},
    title = {Algorytmika praktyczna: Nie tylko dla mistrzów},
    year = {2009},
    publisher = {Wydawnictwo Naukowe {PWN}},
    isbn = {9788301158217},
    address = {Warszawa},
    lccn = {339077},
    owner = {myszka},
    shorttitle = {Algorytmika Praktyczna},
    timestamp = {2010.09.18},
    }

  • K. Stec, Wybrane elementy języka C, Gliwice: Wyd. Pol. Śląskiej, 2001.
    [BibTeX]
    @Book{Stec,
    author = {Stec, K.},
    title = {Wybrane elementy języka {C}},
    year = {2001},
    publisher = {Wyd. Pol. Śląskiej},
    address = {Gliwice},
    }

  • C. L. Tondo, S. E. Gimpel, and D. Kruszewska, Język ANSI C: ćwiczenia i rozwiązania, Wyd. 2 ed., Warszawa: Wydawnictwa {Naukowo-Techniczne}, 2004.
    [BibTeX]
    @Book{tondo_jzyk_2004,
    author = {Clovis L Tondo and Scott E Gimpel and Danuta Kruszewska},
    title = {Język {ANSI} {C}: Ćwiczenia I Rozwiązania},
    year = {2004},
    edition = {Wyd. 2},
    publisher = {Wydawnictwa {Naukowo-Techniczne}},
    isbn = {8320429498},
    pages = {221},
    address = {Warszawa},
    lccn = {317211},
    }

  • P. Wayner, „12 predictions for the future of programming,” InfoWorld, 2014.
    [BibTeX] [Abstract] [Download PDF]

    We gaze into our coding crystal ball to find the sure bets and intriguing developments developers should target in the next five years

    @Electronic{Wayner,
    author = {Wayner, Peter},
    title = {12 predictions for the future of programming},
    year = {2014},
    url = {http://www.infoworld.com/d/application-development/12-predictions-the-future-of-programming-235292},
    month = feb,
    urldate = {2014-02-09},
    abstract = {We gaze into our coding crystal ball to find the sure bets and intriguing developments developers should target in the next five years},
    file = {Snapshot:/home/myszka/.mozilla/firefox/nm4svl2b.default/zotero/storage/HGJ8ZBBZ/12-predictions-the-future-of-programming-235292.html:text/html},
    journal = {{InfoWorld}},
    }

  • N. Wirth, Algorytmy + struktury danych = programy, Warszawa: WNT, 2001.
    [BibTeX]
    @Book{wirth,
    author = {Wirth, N.},
    title = {Algorytmy + struktury danych = programy},
    year = {2001},
    publisher = {WNT},
    address = {Warszawa},
    }

  • P. Wróblewski, Algorytmy: struktury danych i~techniki programowania, Gliwice: Helion, 2010.
    [BibTeX]
    @Book{Wroblewski2010,
    author = {Piotr Wróblewski},
    title = {Algorytmy: struktury danych i~techniki programowania},
    year = {2010},
    publisher = {Helion},
    address = {Gliwice},
    owner = {myszka},
    timestamp = {2010.10.02},
    }

  • „A gnu manual,” in Using the GNU compiler collection (GCC), Free Software Foundation, Inc., 2015.
    [BibTeX] [Download PDF]
    @InBook{_nested_????,
    title = {A GNU Manual},
    booktitle = {Using the {GNU} Compiler Collection ({GCC)}},
    year = {2015},
    publisher = {Free Software Foundation, Inc.},
    chapter = {Nested Functions},
    url = {https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Nested-Functions.html#Nested-Functions},
    urldate = {2013-03-17},
    file = {Nested Functions - Using the GNU Compiler Collection (GCC):/home/myszka/.zotero/zotero/my63giux.default/zotero/storage/M2WE9T9D/Nested-Functions.html:text/html},
    howpublished = {http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html\#Nested-Functions},
    owner = {myszka},
    timestamp = {2016.04.11},
    }

  • „Programowanie w języku C,” , 2007.
    [BibTeX] [Download PDF]
    @Electronic{wiki.pl,
    title = {Programowanie w języku {C}},
    year = {2007},
    url = {http://pl.wikibooks.org/wiki/Programowanie:C},
    note = {Wersja elektroniczna dostępna pod adresem: \url{http://pl.wikibooks.org/wiki/Programowanie:C}},
    key = {C},
    publisher = {Wikibooks},
    }

  • N. Parlante, „Essential C,” , 2003.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2003,
    author = {Nick Parlante},
    title = {Essential {C}},
    year = {2003},
    url = {http://cslibrary.stanford.edu/101/EssentialC.pdf},
    }

  • N. Parlante, „Pointers and memory,” , 2000.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2000,
    author = {Nick Parlante},
    title = {Pointers and Memory},
    year = {2000},
    url = {http://cslibrary.stanford.edu/102/PointersAndMemory.pdf},
    }

  • N. Parlante, „Linked list problems,” , 2002.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2002,
    author = {Nick Parlante},
    title = {Linked List Problems},
    year = {2002},
    url = {http://cslibrary.stanford.edu/105/LinkedListProblems.pdf},
    }

  • N. Parlante, „Binary trees,” , 2001.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2001,
    author = {Nick Parlante},
    title = {Binary Trees},
    year = {2001},
    url = {http://cslibrary.stanford.edu/110/BinaryTrees.pdf},
    }

  • N. Parlante, „The great tree-list recursion problem,” , 2001.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2001a,
    author = {Nick Parlante},
    title = {The Great Tree-List Recursion Problem},
    year = {2001},
    url = {http://cslibrary.stanford.edu/109/TreeListRecursion.html},
    }

  • N. Parlante, „Pointer basics,” , 1999.
    [BibTeX] [Download PDF]
    @Electronic{Parlante1999,
    author = {Nick Parlante},
    title = {Pointer Basics},
    year = {1999},
    url = {http://cslibrary.stanford.edu/106/},
    }

  • N. Parlante and J. Zelenski, „Unix programming tools,” , 2001.
    [BibTeX] [Download PDF]
    @Electronic{Parlante2001b,
    author = {Nick Parlante and Julie Zelenski},
    title = {Unix Programming Tools},
    year = {2001},
    url = {http://cslibrary.stanford.edu/107/UnixProgrammingTools.pdf},
    }

Ja korzystam głównie z:

  • D. Griffiths and D. Griffiths, Head first C, O’Reilly, 2011.
    [BibTeX] [Download PDF]
    @Book{Griffiths2011,
    author = {David Griffiths and Dawn Griffiths},
    title = {Head First {C}},
    year = {2011},
    series = {Head First},
    note = {Są szanse, żeby ksiazka byłą dostępna pod tym adresem: \url{http://proquestcombo.safaribooksonline.com/9781449335649}. Można się o nią „dobijać” zgodnie z instrukcją na \href{http://www.bg.pwr.wroc.pl/600576.dhtml}{stronie biblioteki}.},
    publisher = {O'Reilly},
    url = {http://proquestcombo.safaribooksonline.com/9781449335649},
    owner = {myszka},
    timestamp = {2011.10.18},
    }

  • B. W. Kernighan and D. M. Ritchie, Język ANSI C, Warszawa: WNT, 2007.
    [BibTeX]
    @Book{ansic,
    author = {Kernighan, B. W. and Ritchie, D. M.},
    title = {Język {ANSI} {C}},
    year = {2007},
    publisher = {WNT},
    address = {Warszawa},
    }

  • R. M. Reese, Understanding and Using C Pointers, O’Reilly, 2013.
    [BibTeX] [Abstract] [Download PDF]

    Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and…

    @Book{richard_m._reese_understanding_2013,
    author = {Richard M. Reese},
    title = {Understanding and {Using} {C} {Pointers}},
    year = {2013},
    publisher = {O'Reilly},
    url = {http://shop.oreilly.com/product/0636920028000.do},
    urldate = {2015-03-17},
    abstract = {Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and...},
    file = {Snapshot:/home/myszka/.mozilla/firefox/7m2m4ye2.default/zotero/storage/S5RWUJWX/0636920028000.html:text/html},
    }

Bryk

Powstała pierwsza wersja czegoś w rodzaju bryku do wykładu. Po angielsku nazywa się to zwykle Lecture Notes. Materiał powstał na podstawie slajdów do wykładu i będzie stale uzupełniany o różne komentarze (których na slajdach nie ma i nie będzie). Nie warto jeszcze tego chyba drukować (tym bardziej, że to prawie 200 stron). Na razie nie przewiduję innej wersji niż PDF.

Do pobrania:

Na stronie tytułowej znajdują się informacje na temat daty ostatnich zmian. Informacje takie dostępne są również dla każdego rozdziału.

Listy zadań

Niezależnie od zajęć laboratoryjnych/projektowych można próbować programować zadania dodatkowe. Lista tych zadań znajduje się na stronach dr Doroty Aniszewskiej:

  1. Lista 1: Funkcja main, instrukcja warunkowa if. Pierwszy program: wyświetlający tekst Program czyparzysta.c.
  2. Lista 2: Pętle for, while, do-while. Przykładowe programy: silnia.c,liczbapierwsza.c.
  3. Lista 3: Funkcje. Przykładowy program: silnia2.c, silnia3.c, silnia4.c.
  4. Lista 4: Tablice. Przykładowy program z wykorzystaniem tablic o stałym rozmiarze: tablice.c. Przykładowy program dotyczący tablic o zmiennym rozmiarze: tablicedynamicznie.c.
  5. Lista 5: Tablice znaków. Przykładowy program: tabliceznakow.c.
  6. Lista 6: Tablice dwuwymiarowe. Pliki. Przykładowy program: tablice2D.c. Przykładowe programy: pliki1.c, pliki2.c, pliki3.c.
  7. Lista 7: Struktury.

Gadżety

  1. ANSI C Reference Card (najważniejsze polecenia języka C do wydrukowania na jednej kartce)

Inne informacje: