MCM032101 W

Jest to podstawowy zestaw informacji dla kursu Wprowadzenie do informatyki prowadzonego na Wydziale Mechanicznym Politechniki Wrocławskiej na kierunku Mechatronika — MCM032101W.

Slajdy

  1. Programowanie (Blockly) slajdycoś do czytaniaWprowadzenie. Algorytm. Schematy blokowe. Idea programowania strukturalnego.
  2. Struktura programów w C. Identyfikator, typy danych (typy fundamentalne: całkowite, rzeczywiste, znakowe, logiczny), deklaracja i inicjalizacja zmiennych, definiowanie stałych. Komunikacja poprzez konsolę. Operatory: arytmetyczne, logiczne, inkrementacji, dekrementacji, przypisania. Obliczanie wartości wyrażeń.
  3. Instrukcje sterujące.
  4. Preprocesor: dyrektywy, makrodefinicje. Zazwyczaj temat omawiany jest w sposób skrótowy!
  5. Funkcje: budowa funkcji, argumenty funkcji, wynik wykonania funkcji, definicje i deklaracje globalne, argumenty funkcji main, rekurencja.
  6. Tablice (tablice jedno i wielowymiarowe), łańcuchy znaków.
  7. Wskaźniki. Pamięć dynamiczna.
  8. Kolokwium (czasami go nie ma)
  9. Struktury danych, unie: deklaracja struktury, definiowanie zmiennej strukturalnej, tablice struktur, wskaźniki a struktury danych.
  10. Operacje na plikach: otwieranie, zamykanie plików, czytanie i zapisywanie do plików.
  11. Formatowanie w operacjach wejście/wyjście. Binarne wejście/wyjście.
  12. Operacje na łańcuchach znaków.
  13. Programy pomocnicze: diff, make, systemy rcs i cvs, debugger. Zarządzanie wersjami. Środowiska zintegrowane.
  14. Programowanie strukturalne w praktyce: podział programu na moduły, struktury danych, kompilacja.
  15. Extra:

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,
    Title = {Symfonia {C}++},
    Author = {Grębosz, J.},
    Publisher = {Kallimach},
    Year = {2000},
    Address = {Kraków}
    }

  • D. Griffiths and D. Griffiths, C. Rusz głową!, Gliwice: Helion, 2013.
    [BibTeX]
    @Book{Griffiths2013,
    Title = {C. {R}usz głową!},
    Author = {Griffiths, David and Griffiths, Dawn},
    Publisher = {Helion},
    Year = {2013},
    Address = {Gliwice},
    Note = {Strona księgarni: \url{http://helion.pl/ksiazki/c-rusz-glowa-david-griffiths-dawn-griffiths,cruszg.htm}},
    Owner = {myszka},
    Timestamp = {2016.03.02}
    }

  • D. Griffiths and D. Griffiths, Head first C, O’Reilly, 2011.
    [BibTeX] [Online]
    @Book{Griffiths2011,
    Title = {Head First {C}},
    Author = {David Griffiths and Dawn Griffiths},
    Publisher = {O'Reilly},
    Year = {2011},
    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}.},
    Series = {Head First},
    Owner = {myszka},
    Timestamp = {2011.10.18},
    Url = {http://proquestcombo.safaribooksonline.com/9781449335649}
    }

  • D. Harel and Y. Feldman, Rzecz o istocie informatyki: algorytmika, Warszawa: Wydawnictwa Naukowo-Techniczne, 2001, 2002, 2008.
    [BibTeX]
    @Book{Harel,
    Title = {Rzecz o istocie informatyki: algorytmika},
    Author = {David Harel and Yishai Feldman},
    Publisher = {Wydawnictwa Naukowo-Techniczne},
    Year = {2001, 2002, 2008},
    Address = {Warszawa},
    Series = {Klasyka informatyki},
    Owner = {myszka},
    Timestamp = {2010.10.02}
    }

  • G. Heineman, G. Pollice, and S. Selkow, Algorytmy. almanach, Gliwice: Helion, 2010.
    [BibTeX]
    @Book{Heineman2010,
    Title = {Algorytmy. Almanach},
    Author = {George Heineman and Gary Pollice and Stanley Selkow},
    Publisher = {Helion},
    Year = {2010},
    Address = {Gliwice},
    Owner = {myszka},
    Timestamp = {2016.04.11}
    }

  • S. Holmes, „C programming,” , 1995.
    [BibTeX] [Online]
    @Electronic{Holmes,
    Title = {C Programming},
    Author = {Steve Holmes},
    HowPublished = {\url{http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/}},
    Url = {http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/},
    Year = {1995}
    }

  • T. Jensen, „A tutorial on pointers and arrays in C,” , 2000.
    [BibTeX] [Online]
    @Electronic{Pointers,
    Title = {A tutorial on pointers and arrays in {C}},
    Author = {Ted Jensen},
    Month = {Feb.},
    Note = {Dostępne jako \url{http://pweb.netcom.com/~tjensen/ptr/pointers.htm}},
    Url = {http://pweb.netcom.com/~tjensen/ptr/pointers.htm},
    Year = {2000}
    }

  • R. Kendrick, „Some dark corners of C,” , 2013.
    [BibTeX] [Online]
    @Electronic{Kendrick,
    Title = {Some dark corners of {C}},
    Author = {Rob Kendrick},
    Url = {https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/preview#slide=id.gec7eb408_3500},
    Year = {2013},
    Owner = {myszka},
    Timestamp = {2013.03.09}
    }

  • B. W. Kernighan and D. M. Ritchie, Język ANSI C, Warszawa: WNT, 2007.
    [BibTeX]
    @Book{ansic,
    Title = {Język {ANSI} {C}},
    Author = {Kernighan, B. W. and Ritchie, D. M.},
    Publisher = {WNT},
    Year = {2007},
    Address = {Warszawa}
    }

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

    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,
    Title = {21st Century {C}},
    Author = {Ben Klemens},
    Publisher = {{O'Reilly} Media},
    Year = {2012},
    Note = {\url{http://shop.oreilly.com/product/0636920025108.do}},
    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},
    ISBN = {978-1-449-32714-9},
    Keywords = {1449327141, 1-4493-2714-1, 21st Century C, 9781449327149, 978-1-4493-2714-9, Ben Klemens, oreilly, {O'Reilly}},
    Url = {http://shop.oreilly.com/product/0636920025108.do},
    Urldate = {2013-02-06}
    }

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

  • C. O’Riordan, Learning GNU C, Ciaran O’Riordan, 2002.
    [BibTeX] [Online]
    @Book{riordan,
    Title = {Learning {GNU C}},
    Author = {Ciaran O'Riordan},
    Publisher = {Ciaran O'Riordan},
    Year = {2002},
    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,
    Title = {Wskaźniki w języku {C}: przewodnik},
    Author = {Reese, Richard M.},
    Publisher = {Helion},
    Year = {2014},
    Address = {Gliwice},
    Note = {Dostęp po zalogowaniu w bazie NASBI. \url{http://biblioteka.pwr.wroc.pl/NASBI_Naukowa_Akademicka_Sieciowa_Biblioteka_Internetowa,161.dhtml}},
    Abstract = {Kompendium wiedzy o wskaźnikach w języku C},
    Owner = {myszka},
    Timestamp = {2016.04.09}
    }

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

    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,
    Title = {Understanding and {Using} {C} {Pointers}},
    Author = {Richard M. Reese},
    Publisher = {O'Reilly},
    Year = {2013},
    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},
    Url = {http://shop.oreilly.com/product/0636920028000.do},
    Urldate = {2015-03-17}
    }

  • A. Sapek, W głąb języka C, Gliwice: Helion, 1993.
    [BibTeX] [Online]
    @Book{Sapek,
    Title = {W głąb języka {C}},
    Author = {Adam Sapek},
    Publisher = {Helion},
    Year = {1993},
    Address = {Gliwice},
    Month = {lipiec},
    Note = {Wersja elektroniczna dostępna pod adresem: \url{ftp://ftp.helion.pl/online/wglab/1-3.pdf}},
    Url = {ftp://ftp.helion.pl/online/wglab/1-3.pdf}
    }

  • H. Schildt, Leksykon C/C++, Warszawa: Oficyna Wydawnicza {LTP}, 2002.
    [BibTeX]
    @Book{schildt_leksykon_2002,
    Title = {Leksykon {C/C++}},
    Author = {Herbert Schildt},
    Publisher = {Oficyna Wydawnicza {LTP}},
    Year = {2002},
    Address = {Warszawa},
    ISBN = {8387115185},
    Lccn = {311669},
    Pages = {345}
    }

  • C. Sexton, Język C to proste, Warszawa: Wyd. RM, 2001.
    [BibTeX]
    @Book{Cproste,
    Title = {Język {C} to proste},
    Author = {Sexton, C.},
    Publisher = {Wyd. RM},
    Year = {2001},
    Address = {Warszawa}
    }

  • C. Sexton, Programowanie w C++ — to proste, Warszawa: RM, 2001.
    [BibTeX]
    @Book{SextonCC,
    Title = {Programowanie w {C}++ --- to proste},
    Author = {Sexton, C.},
    Publisher = {RM},
    Year = {2001},
    Address = {Warszawa}
    }

  • P. Stańczyk, Algorytmika praktyczna: nie tylko dla mistrzów, Warszawa: Wydawnictwo Naukowe {PWN}, 2009.
    [BibTeX]
    @Book{staczyk_algorytmika_2009,
    Title = {Algorytmika praktyczna: Nie tylko dla mistrzów},
    Author = {Piotr Stańczyk},
    Publisher = {Wydawnictwo Naukowe {PWN}},
    Year = {2009},
    Address = {Warszawa},
    ISBN = {9788301158217},
    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,
    Title = {Wybrane elementy języka {C}},
    Author = {Stec, K.},
    Publisher = {Wyd. Pol. Śląskiej},
    Year = {2001},
    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,
    Title = {Język {ANSI} {C}: Ćwiczenia I Rozwiązania},
    Author = {Clovis L Tondo and Scott E Gimpel and Danuta Kruszewska},
    Publisher = {Wydawnictwa {Naukowo-Techniczne}},
    Year = {2004},
    Address = {Warszawa},
    Edition = {Wyd. 2},
    ISBN = {8320429498},
    Lccn = {317211},
    Pages = {221}
    }

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

    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,
    Title = {12 predictions for the future of programming},
    Author = {Wayner, Peter},
    Month = feb,
    Url = {http://www.infoworld.com/d/application-development/12-predictions-the-future-of-programming-235292},
    Year = {2014},
    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}},
    Urldate = {2014-02-09}
    }

  • N. Wirth, Algorytmy + struktury danych = programy, Warszawa: WNT, 2001.
    [BibTeX]
    @Book{wirth,
    Title = {Algorytmy + struktury danych = programy},
    Author = {Wirth, N.},
    Publisher = {WNT},
    Year = {2001},
    Address = {Warszawa}
    }

  • P. Wróblewski, Algorytmy: struktury danych i~techniki programowania, Gliwice: Helion, 2010.
    [BibTeX]
    @Book{Wroblewski2010,
    Title = {Algorytmy: struktury danych i~techniki programowania},
    Author = {Piotr Wróblewski},
    Publisher = {Helion},
    Year = {2010},
    Address = {Gliwice},
    Owner = {myszka},
    Timestamp = {2010.10.02}
    }

  • „A gnu manual,” in Using the GNU compiler collection (GCC), Free Software Foundation, Inc., 2015.
    [BibTeX] [Online]
    @InBook{_nested_????,
    Title = {A GNU Manual},
    Chapter = {Nested Functions},
    Publisher = {Free Software Foundation, Inc.},
    Year = {2015},
    Booktitle = {Using the {GNU} Compiler Collection ({GCC)}},
    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},
    Url = {https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Nested-Functions.html#Nested-Functions},
    Urldate = {2013-03-17}
    }

  • „Programowanie w języku C,” , 2007.
    [BibTeX] [Online]
    @Electronic{wiki.pl,
    Title = {Programowanie w języku {C}},
    Note = {Wersja elektroniczna dostępna pod adresem: \url{http://pl.wikibooks.org/wiki/Programowanie:C}},
    Url = {http://pl.wikibooks.org/wiki/Programowanie:C},
    Year = {2007},
    Key = {C},
    Publisher = {Wikibooks}
    }

Ja korzystam głównie z:

  • D. Griffiths and D. Griffiths, Head first C, O’Reilly, 2011.
    [BibTeX] [Online]
    @Book{Griffiths2011,
    Title = {Head First {C}},
    Author = {David Griffiths and Dawn Griffiths},
    Publisher = {O'Reilly},
    Year = {2011},
    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}.},
    Series = {Head First},
    Owner = {myszka},
    Timestamp = {2011.10.18},
    Url = {http://proquestcombo.safaribooksonline.com/9781449335649}
    }

  • G. Heineman, G. Pollice, and S. Selkow, Algorytmy. almanach, Gliwice: Helion, 2010.
    [BibTeX]
    @Book{Heineman2010,
    Title = {Algorytmy. Almanach},
    Author = {George Heineman and Gary Pollice and Stanley Selkow},
    Publisher = {Helion},
    Year = {2010},
    Address = {Gliwice},
    Owner = {myszka},
    Timestamp = {2016.04.11}
    }

  • B. W. Kernighan and D. M. Ritchie, Język ANSI C, Warszawa: WNT, 2007.
    [BibTeX]
    @Book{ansic,
    Title = {Język {ANSI} {C}},
    Author = {Kernighan, B. W. and Ritchie, D. M.},
    Publisher = {WNT},
    Year = {2007},
    Address = {Warszawa}
    }

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

    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,
    Title = {Understanding and {Using} {C} {Pointers}},
    Author = {Richard M. Reese},
    Publisher = {O'Reilly},
    Year = {2013},
    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},
    Url = {http://shop.oreilly.com/product/0636920028000.do},
    Urldate = {2015-03-17}
    }

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ń

Na razie nie dorobiłem się zebranych list zadań. Można natomiast korzystać z list zadań umieszczonych na stronach dr Doroty Aniszewskiej:

Gadżety

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