Języki programowania C/C++



Pobieranie 39.83 Kb.
Data06.05.2016
Rozmiar39.83 Kb.
Przedmiot: Języki programowania C/C++

Informacje organizacyjne:


● Wydział: - Fizyki, Matematyki i Informatyki Stosowanej

● Kierunek studiów: - Informatyka, studia niestacjonarne, I stopnia,

● Rok studiów / semestr - I / 2,

II / 3


● Rok akademicki - 2007/08,

2008/09


● Wymiar godzin: W/Ć/L/P ( ) - 18/ 0 / 15 / 0 /

W/Ć/L/P (E) - 18/ 0 / 18 / 0 / E

● Punkty ECTS – 5

ECTS – 6


Cel zajęć:

Wykształcenie umiejętności konstruowania programowania proceduralnego i obiektowego na przykładzie języka C/C++.


Wymagania:

Zaliczenie przedmiotów. Algorytmy i struktury danych


Warunki zaliczenia:

Uruchomienie zadań i ćwiczeń podanych w przykładowych programach,

Wykonanie i pozytywne zaliczenie I i II - go etapu wybranego projektu

Ponad 80% obecność na ćwiczeniach i laboratoriach.

Uzyskanie pozytywnej oceny na kolokwium zaliczeniowym.
Literatura:

Danuta Zboś, "Podstawy programowania w C",

B. Kernighan, M.Ritchie „Język C”

S.Kochan Język C. ”Wprowadzenie do programowania”,

Jerzy Grębosz ” Pasja C++”, ”Symfonia C++”, Jan Rusek ”ABC programowania w C++”,

Jesse Liberty ”C++ dla każdego”, Bruce Eckel ”Thinking in C++. Edycja polska”, Jesse Liberty C++. ”Księga eksperta”

Nicolai M. Josuttis ”C++ Programowanie zorientowane obiektowo. Vademecum profesjonalisty”,

Kayshav Dattatri ”Język C++. Efektywne programowanie obiektowe”
Program wykładu: C

1.Pierwsze programy – wprowadzanie danych i wyprowadzania wyników:

- budowa programu, podstawowe pojęcia: identyfikatora, instrukcji, instrukcji grupującej, funkcji i komentarza,

- funkcja main(),instrukcja funkcji drukującej printf, dyrektywa - #include

- kompilacja, linkowanie i wykonywanie programu

- funkcja wprowadzania danych scanf,

2.Podstawowe typy zmiennych - obliczanie wyrażeń arytmetycznych::

- typy: całkowity int, specyfikacja przekształcenia typu całkowitego

- typ rzeczywisty double, modyfikatory typów podstawowych, formatowanie wydruków

- postać stałej, podstawowe operatory, priorytet i łączność operatorów

- wyrażenie i instrukcja przypisania, biblioteka funkcji matematycznych

3.Instrukcja warunkowa if, if...else:

- postać i algorytm działania instrukcji,

- funkcja exit, blok instrukcji (instrukcja grupująca),

- operatory i wyrażenia logiczne,

- efektywność obliczeń w złożonych operacjach warunkowych.

4.Funkcje, argumenty i wskaźniki przekazywane w argumentach funkcji:

- postacie: definicji, odwołania i prototypu funkcji, instrukcja return,

- argumenty formalne i aktualne, przekazywanie argumentów przez wartość.

- typ wskaźnika do zmiennej - operatory adresu i wskazania pośredniego (&, *) ,

- definiowanie i inicjalizacja wskaźników, odwołanie się do wskazywanego obiektu

- typ void,

- preprocesor: identyfikator wartosci stałej i definicje makropoleceń.

5.Instrukcja pętli for w tablicowaniu funkcji i while z obsługą operacji plikowych

- algorytm działania pętli for, porównywanie wartości rzeczywistych,

- rozszerzone operatory przypisania.

- składnia, algorytm i zastosowanie pętli while,

- typ plikowy, funkcje: fopen, fprintf i scanf z obsługą błędów,

6.Obliczanie szeregów z zastosowaniem pętli do...while:

- składnia, algorytm i zastosowanie pętli do...while,

- definicja zmiennej z inicjalizacją, zmienna zewnętrzna,

- operatory ++ i --,

7. Zmienne i stałe znakowe

- typ znakowy - char, kody znakowe, specyfikacja przekształcenie typu znakowego,

- przyrostkowy i przedrostkowy operator ++ i --,

- specyfikacja przekształcenia typu znakowego.

8.Tablice znakowe, stałe tekstowe.

- reprezentacja w pamięci stałej tekstowej

- tekst jako tablica znakowa, identyfikator tablicy i wskaźnik

- wprowadzanie tekstów (funkcja gets)

- specyfikacja przekształcenia tekstu.

9.Tablice i wskaźniki, instrukcje wyboru i skoku, wskaźniki w argumentach funkcji

- definicja tablicy jednowymiarowej

- identyfikator tablicy, wskaźnik do tablicy, operacje na wskaźnikach.

- składnia i algorytm instrukcji switch case

- zastosowanie instrukcji break, continue i operatora przecinkowego w pętlach

- obsługa tablic znakowych w funkcjach,

- elementy tablicy i wskazanie pośrednie.

10.Tablice znakowe o dwóch indeksach, tablice wskaźników z alokacją pamięci.

- definicja tablicy, dostęp do wierszy i elementów tablicy poprzez wskaźniki

- czytanie danych tekstowych z pliku funkcja fgets

- algorytm wprowadzania danych z dynamicznym przydziałem pamięci dla tablicy tekstowej o wielu wierszach

- typ unsigned int,

- funkcje malloc, strlen, strcpy

11.Tablice dwuwymiarowe i podwójne wskaźniki w argumentach funkcji.

- algorytm z wykorzystaniem funkcji z tablicą dwuwymiarową.

- deklaracja i wywołanie funkcji z obsługą tablicy dwuwymiarowej

- wyrażenie warunkowe,

- inicjalizacja tablic i wskażników.

- argumenty funkcji main

12.Budowa wielomodułowego programu

- klasy pamięci auto i static,

- zmienne i funkcje zewnętrzne, inicjalizacja zmiennych tablic i wskazników,

- kompilacja i linkowanie wielomodułowego programu - program make.

13.Alokacja pamięci dla tablic typu double o jednym indeksie.

- elementy tablic i wskazniki,

- funkcja free operator sizeof, funkcja sprintf

- błędy w obsłudze tablic przekazywanych do funkcji

- alokacja pamięci dla tablic o dwóch indeksach

- porównanie definicji i alokacji tablicy.

- tworzenie funkcji bibliotecznych dla wektorów i tablic

- przykład wykorzystania funkcji bibliotecznych w operacjach wektorowo-macierzowych

14.Funkcje w argumentach innych funkcji.

- omówienie metody Newtona

- przykład przekazania funkcji do innej funkcji,

- identyfikator funkcji jako wskaźnik.

15.Struktury.

- deklaracja struktury, deklaracja typedef

- definicje zmiennych strukturalnych

- dostęp do składowych struktury.

- wskaźnik i dostęp poprzez wskaźnik operatory dostępu do składowych

- tablice struktur

- ograniczenia w obsłudze struktur w funkcjach

16.Kolejka struktur

- struktura z wskaźnikiem do struktury

- zastosowanie struktury w obsłudze kolejki

- zastosowania w modelowaniu sieci

- obsługa pliku, przegląd dwukierunkowy,

- porządkowanie i przeszukiwanie

17.Rekurencja, drzewo binarne.

- zasady rekurencyjnego wywoływania funkcji

- cechy rekurencji (porównanie z algorytmem iteracyjnym)

- przykłady rekurencji

- zasady budowy drzewa binarnego,

- operacje wstawiania i wyprowadzania elementów drzewa

18.Operacje bitowe, projektowanie wielomodułowych aplikacji.

- bitowe operacje logiczne,

- wykorzystanie operacji bitowych

- analiza rozproszonego systemu monitoringu i sterowania

- podział na moduły wg założonych zadań systemu

- struktura danych i obsługa wybranych operacji binarnych

Program wykładu: C++


  1. Wprowadzenie do modelowania obiektowego, operacje wejścia / wyjścia

- różnice programowanie proceduralne i obiektowe

- pojęcia: klasa – obiekt, abstrakcja danych, hermetyzacja (enkapsulacja)

- polimorfizm (automatyczna obsługa związana z typem )

- dziedziczenie (wielokrotne wykorzystywanie kodu )

- zalety modelowania obiektowego

- podstawowe obiekty biblioteki iostream,

- użycie przestrzeni nazw - using namespace.


  1. Rozszerzenia i uzupełnienia dot. języka C / C++

- modyfikacje typu - const

- typ wyliczeniowy - enum,

- domyślne wartości argumentów funkcji,

- przeładowanie nazw funkcji, pojęcie sygnatury funkcji,

- funkcje rozwijalne w miejscu wywołania - inline .

- reprezentacja typu referencyjnego w pamięci operacyjnej

- zastosowania typu referencyjnego, zalety i porównanie z typem wskaźnikowym

- zasady przy zwracaniu wartości, referencji i wskaźnika przez funkcje.



  1. Dynamiczny przydział pamięci na stercie

- operator new, delete,

- błędy w obsłudze pamięci.



  1. Wprowadzenie do klasy i obiektów:

- podstawowe ogólne cechy programowania obiektowego

- pojęcie nowego typu - klasa różnice w stosunku do struktury w standardzie języka C

- ogólna składnia,

- dostęp do składowych klasy: private i public ,

- implementowanie metod klasy.

- deklaracja klasy i definicje metod

- definiowanie obiektu, klasy a obiekty.

- wady i zalety metod rozwijalnych w miejscu wywołania – rozmiar obiektu.



  1. Konstruktory i destruktory :

- inicjalizacja obiektów,

- ograniczenia w użyciu domyślnego konstruktora.

- destruktor i jego zastosowania

- czas życia obiektu



  1. Składowe stałe obiektu - const,:

- ochrona zmiennych przed modyfikacją

- stałe pola i metody składowe ,

- lista inicjalizacyjna konstruktora.


  1. Zakresy dostępu do składowych:

- zasłanianie składowych i ich odsłanianie, zmiennych globalnych przeładowanie,

- użycie wskaźnika this i operatora zakresu ::.



  1. Referencje do obiektów i zaawansowany dostęp do obiektów::

- operator adresu z referencją, zastosowania: zerowe wskaźniki i referencje.

- przekazywanie argumentów funkcji przez referencję, referencja do obiektu.

- metody zwracające referencję obiektu

- ochrona argumentów przed modyfikacją

- dostęp obiektów do wspólnych danych - pola i metody składowe static

- budowa wieloplikowego programu: moduły obiektów.

- zastosowanie programu make i pliku Makefile

- obsługa obiektów na stercie: użycie wskaźnika const i const this



  1. Selektywny eksport z klas - związek przyjaźni friend

- globalne funkcje zaprzyjaźnione

- składowe funkcje zaprzyjaźnione.

- klasy zaprzyjaźnione.

- konsekwencje związku przyjaźni

- problemy: interakcji, składniowe i komunikacji


  1. Funkcje operatorowe, kopiowanie i konwersje obiektów

- typ standardowy a definiowany

- standardowe operatory

- przeciążone operatory w j. c++

- operator obsługujący strumień we/wy dla obiektu

- ograniczenia i zakresy zastosowań operatorów działających na obiektach

- składnia funkcji operatorowych jedno- i dwu- argumentowych

- unikanie niejednoznaczności i tworzenia obiektów tymczasowych

- domyślne konstruktory, jawne konstruktory kopiujące i konwertujące

- konwersja: typ standardowy na typ definiowany

- konwersja: typ definiowany na typ standardowy



  1. Wstęp do konstruowania oprogramowania obiektowego

- cel klasy : co może być klasą a co nie jest

- stan obiektu, jego kontrola i zachowanie

- etapy: analizy problemu, projektowania i programowania ( notacje, modele ).

- podstawowe relacje pomiędzy obiektami: asocjacja, kompozycja, uogólnianie

- narzędzia wspomagające - scenariusze, diagramy stanu, współpracy,


  1. Dziedziczenie

- składnia wyprowadzania, zabezpieczony (chroniony) dostęp do składowych - protected.

- konstruktory i destruktory: przekazywanie argumentów do konstruktorów bazowych.

- przesłanianie, ukrywanie i wywoływanie metod klasy bazowej, składowe prywatne kontra chronione


  1. Dziedziczenie wielokrotne ( wielobazowe ).

- znaczenie, rozwiązywanie konfliktów, problemy wieloznaczności,

- wprowadzanie zmian w istniejących klasach,

- wyprowadzenie prywatne, dziedziczenie a zawieranie


  1. Metody wirtualne - virtual. pojęcie polimorfizmu.

- zalety wirtualnych klas bazowych

- konstruktory, eliminowanie niejednoznaczności, dziedziczenie ze wspólnej klasy bazowej,

- problemy z pojedynczym dziedziczeniem: przenoszenie w górę, rzutowanie w dół,

- problemy dziedziczenia wielokrotnego.

- abstrakcyjne typy danych: czyste funkcje wirtualne, złożone hierarchie abstrakcji.


  1. Obsługa wyjątków.

- cele związane z obsługą wyjątków, wyjątek a kod błędu,

- model wyjątków mechanizmy obsługi wyjątków

- klauzule sterujące try, throw, catch


  1. Zastosowanie szablonów funkcji.

- funkcje szablonowe - postać, zastosowania, parametry i argumenty

- definicje i deklaracje szablonu funkcji

- szablony wieloparametrowe

- ograniczenia: zmienne globalne, statyczne

- specjalizacja i przeładowanie


  1. Szablony klas

- definicja szablonu, konstruktor i destruktor,

- parametry, zastosowanie typedef i enum w szablonach

- specjalizacja i przyjaźń

- dziedziczenie klasy szablonowej przez zwykłą klasę

- klasa szablonowa dziedzicząca klasę zwykłą

- związek przyjaźni w klasach szablonowych

18 Standardowe klasy pojemnikowe ( kontenery ) .

- ogólny podział klas kontenerowych

- wektor, lista i talia

- organizacja danych na przykładzie stosu i kolejki

- zastosowanie iteratorów

- pojemniki kojarzące zbiór i mapa



- podstawowe algorytmy obsługi kontenerów


©absta.pl 2016
wyślij wiadomość

    Strona główna