Środowisko pracy
Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług sieciowych oraz serwisów internetowych, producent: Microsoft, licencja: komercyjna / freeware, oficjalna strona Visual Studio: http://msdn.microsoft.com/vstudio w skład środowiska wchodzą następujące narzędzia: o Microsoft Visual C# o Microsoft Visual C++ o Microsoft Visual Basic o Microsoft Visual J# o Microsoft Visual Web Developer ASP.NET środowisko dostępne jest w następujących edycjach: o Microsoft Visual Studio Express o Microsoft Visual Studio Standard o Microsoft Visual Studio Professional o Microsoft Visual Studio Team System
Środowisko Visual C++ - dlaczego to wybrałem Nazwa produktu i firmy mówi sama za siebie: Visual C++ firmy Microsoft. Lider w wytwarzaniu aplikacji do zastosowań biznesowych i biurowych, mający niemalże monopol na rynku w wielu dziedzinach informatyki. Środowisko Visual C++ Express jest dostępne za darmo do zastosowań prywatnych jak i komercyjnych. Firma Microsoft dostarcza własny kompilator do tego środowiska. Właśnie w tym środowisku powstają największe projekty na świecie pod Windowsa. Całe środowisko Visual C++ można by długo zachwalać i prawdopodobnie w żadnym aspekcie nie przegra ono z innymi dostępnymi środowiskami do C++ - poza jednym: Visual C++ jest tylko i wyłącznie pod Windowsa, a co za tym idzie osoby zainteresowane pracą pod Linuksem nie skorzystają z niego. Dla programistów zajmujących się programowaniem profesjonalnie jest to najlepsze i najwygodniejsze narzędzie do wytwarzania oprogramowania. Możliwości debuggera są ogromne dzięki czemu namierzanie błędów w wytwarzanym oprogramowaniu staje się dużo łatwiejsze i przyjemniejsze aniżeli w jakimkolwiek innym środowisku programistycznym. Poza technicznymi ograniczeniami Visual C++ w postaci systemu operacyjnego jest jeszcze kwestia sformułowań w licencji dającej prawa tworzenia oprogramowania do komercyjnego użytku. Na dzień dzisiejszy wersja Visual C++ Express 2010 daje nam możliwość tworzenia komercyjnych produktów bez ponoszenia opłat, jednak warto zapoznać się ze szczegółami licencji instalowanego programu.
Microsoft Visual Studio 2010 Express Edition: dostępne bezpłatnie, zawiera uproszczone wersje programów dostępnych w płatnych wersjach, przeznaczone głównie dla studentów i hobbystów, licencja pozwala na tworzenie programów komercyjnych, dostępne języki: o Visual Basic 2010 Express Edition o Visual C++ 2010 Express Edition o Visual C# 2010 Express Edition o Visual Web Developer 2008 Express Edition zawiera uproszczoną wersję MSDN - MSDN Express Library, oficjalna strona: http://www.microsoft.com/express download: http://www.microsoft.com/express/downloads/
Pasek narzędziowy Menu główne Start Page - strona startowa Getting Started łącza do dokumentacji pozwalającej zapoznać się z pracą w Visual C++ Recent Projects - skróty do ostatnio otwieranych projektów oraz możliwość otwarcia istniejącego projektu lub utworzenia nowego Microsoft Visual C++ Express - najnowsze informacje dotyczące środowiska
Utworzenie nowego projektu w Visual C++ Rozpoczęcie pracy ze środowiskiem Visual C++ wymaga utworzenia nowego projektu. Nowy projekt można utworzyć na kilka sposobów: o Wybierając w menu głównym File New Project. o Używając klawisza skrótu Ctrl + Shift + N. o Klikając ikonkę na pasku narzędziowym (pierwsza od lewej strony). o Klikając na karcie Start Page Recent Projects opcję Create: Project Wybranie nowego projektu powoduje wyświetlenie poniższego okna przeznaczonego do określenia szablonu tworzonej aplikacji (Template).
Szablony zebrane są w trzy grupy: o CLR - szablony projektów przeznaczonych dla platformy.net. o Win32 - szablony projektów pozwalających tworzyć kod natywny Windows (wykorzystujący WinAPI). o General - inne szablony.
Grupa CLR zawiera następujące szablony: o Class Library - szablon przeznaczony do tworzenia bibliotek klas, które mogą być wykorzystane w innych projektach. o CLR Console Application - szablon przeznaczony do tworzenia aplikacji konsoli systemu Windows. o CLR Empty Project - szablon przeznaczony do generowania pustego projektu. o Windows Forms Application - szablon przeznaczony do tworzenia aplikacji okienkowych (z graficznym interfejsem użytkownika).
Grupa Win32 zawiera następujące szablony: o Win32 Console Application - szablon przeznaczony do tworzenia prostych aplikacji uruchamianych z Wiersza polecenia. o Win32 Project - szablon przeznaczony do tworzenia aplikacji systemu Windows z wykorzystaniem WinAPI.
Grupa General zawiera następujące szablony: o Empty Project - szablon przeznaczony do tworzenia dowolnych aplikacji. o Makefile Project - szablon przeznaczony do tworzenia aplikacji wykorzystujących przy kompilacji plik makefile.
Uwaga: Wszystkie programy pisane na zajęciach będą tworzone w oparciu o szablon Win32 Console Application. Po wybraniu typu szablonu (projektu) należy wprowadzić: o Nazwę projektu (Name), będzie ona jednocześnie nazwą pliku wynikowego exe. o Położenie plików projektu (Location). o Nazwę przestrzeni roboczej (Solution Name).
Przestrzeń robocza (Solution - rozwiązanie, solucja) może składać się z wielu projektów. Każdy taki projekt jest samodzielnym programem. Wszystkie projekty wchodzące w skład przestrzeni roboczej mogą być skompilowane po wybraniu tylko jednego polecenia. Zazwyczaj projekty wchodzące w skład przestrzeni roboczej są ze sobą w pewien sposób powiązane, np. rozwiązują ten sam problem, ale różnymi metodami. Po wybraniu typu projektu uruchamiany jest Kreator projektu (Win32 Application Wizard) składający się z dwóch kroków: o Overview. o Application Settings Pierwszy krok, Overview, ma charakter tylko informacyjny.
Po naciśnięciu przycisku Next > przechodzi się do drugiego kroku kreatora. W drugim kroku, Application Settings, można: o Zmienić typ aplikacji (Application type). o Dodać pliki nagłówkowe (Add common header files for). o Zmienić dodatkowe opcje (Additional options). Zaznaczenie opcji Empty Project spowoduje utworzenie pustego projektu. Należy wtedy samodzielnie dodać do niego nowe pliki. Jeśli w oknie Application Settings nie dokonano żadnych zmian to zostanie utworzony nowy projekt składający się z kilku plików.
Główną część ekranu zajmuje edytor kodu, w którym otwarty jest główny plik projektu (MyApp.cpp).
Lista plików tworzących projekt wyświetlana jest w oknie o nazwie Solution Explorer. Projekt składa się z trzech folderów: o Header Files - pliki nagłówkowe projektu. o Resource Files - pliki zasobów (brak plików, gdyż tworzona jest aplikacja uruchamiana z Wiersza polecenia). o Source Files - pliki źródłowe. Rozpoczęcie edycji wybranego pliku wymaga dwukrotnego kliknięcia jego nazwy. Dodatkowo w skład projektu wchodzi plik ReadMe.txt zawierający opis utworzonego projektu.
Przed wpisaniem własnego programu należy usunąć kod wygenerowany automatycznie przed środowisko Visual C++: int _tmain(int argc, _TCHAR* argv[ ]) { return 0; } Nie należy natomiast usuwać dołączenia pliku nagłówkowego: #include "stdafx.h".
Program w języku C Program w języku C jest to niesformatowany plik tekstowy o odpowiedniej składni mający rozszerzenie.c. Najprostszy program ma następującą postać: Przykład nr 2.1 #include <stdio.h> int main() { printf("witaj swiecie\n"); return 0; } uruchom
Omówienie programu Program w języku C składa się z funkcji i zmiennych. Funkcje zawierają instrukcje określające wykonywane operacje, zaś zmienne przechowują wartości wykorzystywane podczas tych operacji. Powyższy program składa się z jednej funkcji (main), nie ma w nim natomiast zmiennych. Funkcja main składa się z dwóch instrukcji: printf i return. Każda instrukcja zakończona jest średnikiem.
Omówienie programu 2.1 W programie może być zdefiniowanych więcej funkcji, ale zawsze musi istnieć funkcja o nazwie main, gdyż pełni ona szczególna rolę w programie - od początku tej funkcji rozpoczyna się wykonanie całego programu. Funkcja w języku C rozpoczyna się od nagłówka funkcji (pierwszy wiersz). Zawartość funkcji ograniczona jest nawiasami klamrowymi: {, } i nazywana jest ciałem funkcji. Nagłówek funkcji i ciało funkcji tworzą definicję funkcji. Język C rozróżnia wielkość liter, zatem nazwę funkcji main nie możemy zapisać jako, np. Main lub MAIN. Podobnie jest z nazwami pozostałych funkcji i słów kluczowych języka C. Zazwyczaj w programie poza funkcją main występują inne funkcje - mogą to być funkcje napisane przez nas lub funkcje pochodzące z bibliotek. W powyższym programie do wyświetlenia tekstu wykorzystywana jest funkcja o nazwie printf. Skorzystanie z tej funkcji wymaga dołączenia do naszego programu informacji o bibliotece, w której funkcja ta została zdefiniowana. Służy do tego pierwsza linia programu: #include <stdio.h>. stdio.h jest to standardowa biblioteka wejścia/wyjścia (ang. standard input/output library).
Omówienie programu 2.1 Funkcję wywołuje się podając jej nazwę (printf) i (w nawiasach zwykłych) listę argumentów przekazywanych do funkcji ( Witaj swiecie\n ). W powyższym przykładzie do funkcji main nie są przekazywane żadne argumenty, informują o tym puste nawiasy - ( ). Ciąg znaków ujęty w cudzysłów nazywa się stałą napisową (napisem, łańcuchem znaków). W powyższym łańcuchu znaków na samym jego końcu występuje sekwencja \n - reprezentuje ona znak nowego wiersza (jest to jeden znak). Inaczej mówiąc powoduje ona przerwanie wypisywania tekstu w bieżącym wierszu i wznowienie wypisywania od lewego marginesu w następnym wierszu.
Kompilacja i uruchomienie programu w środowisku Visual C++ Podczas kompilacji programu tworzony jest plik wynikowy exe. Do kompilacji programu można wybrać jedną z pozycji znajdujących się w menu głównym Build. Poszczególne pozycje wykonują następujące operacje: o Build Solution (F7) - buduje wszystkie projekty znajdujące się w przestrzeni roboczej, o Rebuild Solution (Ctrl + Alt + F7) - przebudowuje wszystkie projekty znajdujące się w przestrzeni roboczej (normalnie kompilowane są tylko te pliki, które uległy zmianie od czasu ostatniej kompilacji), o Clean Solution - usuwa wszystkie pliki będące wynikiem budowania projektów wchodzących w skład przestrzeni roboczej,
o Build MyApp - buduje aktywny projekt (o nazwie MyApp), o Rebuild MyApp - przebudowuje aktywny projekt, o Clean MyApp - usuwa wszystkie pliki będące wynikiem budowania aktywnego projektu, o Project Only - podmenu zawierające pozycje przeznaczone do budowania (Build Only MyApp), przebudowania (Rebuild Only MyApp), czyszczenia (Clean Only MyApp) i linkowania (Link Only MyApp) tylko aktualnego projektu, o Batch Build - otwiera okno budowania wsadowego, o Configuration Manager - otwiera okno menadżera konfiguracji projektu, o Compile (Ctrl + F7) - kompiluje edytowany plik z kodem źródłowym.
Jeśli w przestrzeni roboczej znajduje się tylko jeden projekt to najprostszym jest wybranie pozycji Build Solution, gdyż można wtedy użyć klawisza skrótu F7. Skompilowany program można uruchomić poprzez wybieranie pozycji Start Without Debugging z menu głównego Debug lub wciśnięcie klawisza skrótu Ctrl + F5. Uruchomienie programu odbywa się automatycznie w oknie Wiersza polecenia. Przed uruchomieniem programu system operacyjny tworzy takie okno, a następnie uruchamia w nim program. Program wyświetla tekst Witaj swiecie. Dodatkowo środowisko Visual C++ zatrzymuje na koniec program i wyświetla tekst: Aby kontynuować, naciśnij dowolny klawisz. Po naciśnięciu dowolnego klawisza okno Wiersza polecenia jest zamykane. Jeśli uruchomimy skompilowany program z poziomu systemu operacyjnego, to nie zobaczymy efektów jego działania. System operacyjny utworzy okno, uruchomi w nim program, program zakończy się i okno zostanie natychmiast zamknięte. Aby zaobserwować wyniki działania programu należy zatrzymać go przed zakończeniem działania. Można to zrobić na kilka sposobów.
Metoda pierwsza - przed instrukcją return, wywołujemy polecenie systemowe pause. #include <stdio.h> #include <stdlib.h> int main() { printf("witaj swiecie\n"); system("pause"); return 0; } funkcja system() uruchamia polecenie o nazwie (ujętej w cudzysłów) przekazanej do niej jako argument, polecenie pause zawiesza wykonywanie programu i wyświetla komunikat: Aby kontynuować, naciśnij dowolny klawisz... użycie w programie funkcji system() wymaga dołączenia pliku nagłówkowego stdlib.h, po wyświetleniu komunikatu, naciśnięcie dowolnego klawisza spowoduje zakończenie programu i zamknięcie okna.
Metoda druga - przed instrukcją return, wywołujemy funkcję getch(). #include <stdio.h> #include <conio.h> int main() { printf("witaj swiecie\n"); getch(); return 0; } zobacz funkcja getch() zatrzymuje wykonywanie programu i czeka na wciśnięcie dowolnego klawisza, użycie w programie funkcji getch() wymaga dołączenia pliku nagłówkowego conio.h.
Sposób zapisu kodu programu: Sposób zapisu kodu programu wpływa tylko na jego przejrzystość, a nie na wykonanie. W tym celu w programie z Przykładu nr 2.1 występują dodatkowe spacje przed funkcją printf() i słowem kluczowym return. Powyższy program można zapisać także tak: #include <stdio.h> int main(){printf("witaj swiecie\n");return 0;} Wyświetlanie tekstu przy zastosowaniu funkcji printf(): Jak już wcześniej wspomniano, występująca w łańcuchu znaków sekwencja \n powoduje przerwanie wypisywania tekstu w bieżącym wierszu i wznowienie wypisywania od lewego marginesu w następnym wierszu. Sekwencja \n może występować w dowolnym miejscu łańcucha znaków:
Wyświetlanie tekstu przy zastosowaniu funkcji printf(): W języku C istnieje kilka znaków, które pełnią specjalną funkcję w łańcuchu znaków. Znaki te zostały przedstawione w poniższej tabeli:
Istnieją także znaki, które pełnią specjalną funkcję w kodzie źródłowym i nie można ich wyświetlić w tradycyjny sposób. Znaki te oraz sposób ich zapisu w łańcuchu znaków zostały przedstawione w poniższej tabeli: Najczęściej popełniane błędy i reakcje kompilatora: W początkowej fazie nauki programowania większość popełnianych błędów są to literówki oraz błędy składni. Pouczającym może być samodzielne zrobienie błędów i zaobserwowanie reakcji kompilatora na te błędy.
Poniżej przedstawione są wyniki kompilacji programów zawierających błędy.
Poniżej przedstawione są wyniki kompilacji programów zawierających błędy.
Proszę zwrócić uwagę, że Visual C++ oznaczył jako błędny następny wiersz po tym, w którym brakuje średnika.