Politechnika
Wrocławska, Wydział Informatyki i Telekomunikacji, Kierunek Informatyka
Techniczna, 1 rok studiów,
sem. zimowy 2023/2024
ARCHIWUM: "PODSTAWY
PROGRAMOWANIA"
|
Termin:
Poniedziałki godz.15:15-16:55 (USOS: W04ITE-SI0037G) Miejsce: sala 205/C1 Prowadzący: dr Marek Piasecki Konsultacje: http://marek.piasecki.staff.iiar.pwr.wroc.pl/dydaktyka/ogloszenia ePortal: W04ITE-SI0037G # W # Podstawy programowania - Wykład |
|||
Wykład | Ćwiczenia | Laboratorium | |
Liczba godzin / sem. (h) : | 30 | 15 | 15 |
ECTS : | 4 |
– | – |
CNPS (h) : | 40 | 40 | 40 |
Karta opisu przedmiotu : | INEW17001 |
I. 4 grudnia 2023- przykładowe zadania 1 (na pierwszy sprawdzian)
II. 29 stycznia 2024- przykładowe zadania 2 (na sprawdzian końcowy)
Pierwsza grupa - godz. 15:15-16:00 - osoby o nazwiskach na literę A - Me
Druga grupa - godz. 16:10-16:55 - osoby o nazwiskach na literę Mi - Z
III. 6 lutego 2024- termin poprawkowy (sala wykładowa 23/C3, godz. 15:00-16:30)
(dla osób które nie pisały kolokwium, nie zaliczyły, lub chcą poprawić ocenę)
Materiały do
wykładu '2023/24: Podstawy
programowania (z przykładami w języku C i C++)
Rekomendowane
darmowe podręczniki elektroniczne / Wikibooks (w języku Angielskim, Polskim i kilku
innych) - C programming [EN] lub Język C [PL] ( lub wersja do wydruku C PDF ) - C++ programming [EN] lub Język C++ [PL] ( lub wersja do wydruku C++ PDF ) Podręczniki interaktywne ( + examples + "Try it yourself" ) - W3schools "C Tutorial" - W3schools "C++ Tutorial" |
Wprowadzenie:
Algorytmiczne języki programowania. Program komputerowy i proces jego
opracowywania.
Struktura
programu źródłowego w C/C++. Przykłady prostych programów.
Podstawowe
typy całkowite i rzeczywiste . Definiowanie i inicjacja
zmiennych prostych.
Operatory
i wyrażenia:
Operator przypisania.
Operatory i wyrażenia arytmetyczne.
Operatory
przypisania arytmetycznego, inkrementacji i dekrementacji.
Operatory relacji, wyrażenia logiczne.
slajdy
do wykładu: ( W1.PDF
)
wiki:
programming
paradigms ,
comparison
of programming languages
,
C
/ C++
standards,
Podstawowe
operacje wejścia i wyjścia: Podejście
proceduralne -
funkcje standardowe scanf i printf.
Podejście obiektowe - strumienie standardowe cin, cout,
operatory pobierania i wstawiania do strumienia.
Sterowanie wykonaniem programu.
Instrukcje
warunkowe if, if-else,
konstrukcja else-if.
Zagniezdżanie instrukcji if. Instrukcja switch.
slajdy
do wykładu: ( W2.PDF
)
( Dodatkowe
przykłady
ilustrujące if/else )
Materiały pomocnicze:
- Wikibooks/Język C: Podstawowe
procedury wejścia/wyjścia
- dokumentacja
online
funkcji printf oraz scanf (ze
strony www.cplusplus.com)
-
Wikibooks/Język C: Instrukcje
sterujące
Do przeczytania:
- Wikipedia → Programowanie
strukturalne
- C Programming / Program flow control → "Last
thing: goto"
(ilustracja jak
wyglądałoby programowanie bez strukturalnych instrukcji if-else oraz
instrukcji pętli)
- Programowanie
niskopoziomowe / asembler (dr Tomasz
Kapela, kurs na Uniwersytecie Jagielońskim)
(ilustracja jak
wygląda programowanie w kodzie maszynowym, z instrukcjami: jmp, jz ,
jnz , loop, . . .)
Dla
zaawansowanych: Do przeczytania i przemyślenia: Why aren't "variable-length" arrays part of the C++ standard?, tzn. dyskusja dlaczego są problemy z konstrukcją dopuszczoną w wersji C99: int rozmiar; double tablica[rozmiar]; zwłaszcza jak ktoś próbuje w dlaszej części programu modyfikować zmienną "rozmiar": np. scanf("%d", &rozmiar); lub rozmiar = rozmiar+1; + artykuł "Legitimate Use of Variable Length Arrays" by Chris Wellons " . . . In general, VLAs not useful. They’re time bombs. VLAs are nearly always the wrong choice . . . " |
.
. . (kolejne
materiały będą zamieszczane sukcesywnie, w miarę postępu wykładów)
Wskaźniki
a tablice wielowymiarowe. Tablice wskaźników,
wskaźniki na
tablice.
Wskaźniki na
funkcje.
Funkcja qsort.
Porównanie różnych kombinacji / zastosowań wskaźników.
slajdy
do wykładu:
( W11.PDF
)
Literatura:
Jerzy
Grębosz
“Symfonia
C++”
Robert
Lafore
“Programowanie w języku C przy użyciu Turbo C++”
Andrzej
Zalewski
“Programowanie
w
językach C i C++ z wykorzystaniem pakietu Borland C++”
Kris
Jamsa
“Wygraj z C++”
----------------------------------------------
Bjarne
Stroustrup
“Język C++
“
Robert
Sedgewick “Algorytmy w C
++ “
----------------------------------------------
Brian Kernigham,
Dennis
Ritchie “Język ANSI C“
Zagadnienia do opracowania na laboratorium:
-
Poznanie wybranego środowiska
programistycznego
(Falcon C++, Microsoft Visual Studio, Visual
Studio Code, CLion, Dev-C++ , CodeBlock,)
- Pisanie i
uruchamianie
programów konsolowych z użyciem:
a) zmiennych prostych oraz instrukcji warunkowych
b) pętli i tablic (zapis indeksowy)
c) definiowanie funkcji oraz przekazywanie parametrów,
d) przetwarzanie łańcuchów (zapis indeksowy i wskaźnikowy),
e) tablic struktur - wczytywanie, wyświetlanie, wyszukiwanie,
obliczenia
g) składowanie danych w pliku dyskowym (tekst oraz binarnie)
h)
dynamicznej alokacji pamięci,
dynamicznych
struktur danych