Aplikacje konsolowe

Aplikacja konsolowa działa w trybie znakowym i cechuje ją brak dostępu do kreatorów i automatyzacji działań. Wszystko co chcesz napisać, musisz napisać ręcznie. Powstaje więc pytanie, jaki sens ma zajmowanie się aplikacjami konsolowymi skoro w przypadku aplikacji windowsowej mamy do wykorzystania wygodne metody i narzędzia projektowe? Aplikacja konsolowa jest na tyle mało skomplikowana, że najłatwiej jest pokazać na przykładzie działanie prostych funkcji, pętli i  warunków, które w przypadku aplikacji graficznych nie są z regóły widoczne. W trybie znakowym możemy dokładnie prześledzić wywołanie każdej funkcji, zobaczyć w prosty sposób jak modyfikowane są zmienne czy eksperymentować ze źródłem programu.

Aby utworzyć nową aplikację konsolową musisz przejść do tworzenia nowego projektu wciskając kombinację klawiszy Shift+Ctrl+N lub z menu Plik->Nowy->Projekt i w oknie dialogowym wybrać jako typ Aplikacja konsoli. Po zakończeniu kreatora projektu zostaniesz przeniesiony do edytora kodu źródłowego.
Kod ten będzie wyglądał tak:

using System;
using System.Collections.Generic;
using System.Text;
namespace Witaj
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

W języku C# program rozpoczyna się zawsze od funkcji głównej Main(). Dlatego też nas będzie interesować miejsce pomiędzy nawiasami klamrowymi umieszczonymi pod tą funkcją, czyli:

  static void Main(string[] args)
   {
// Tu będziemy wpisywać nasze przykładowe kody
   }

Spróbujmy teraz w zaznaczone miejsce wpisać następującą linię:

Console.WriteLine("Witamy w aplikacji konsolowej C# !");

Teraz uruchom program używając klawisza F5 lub korzystając z opcji Start Debugging w menu Debug. Zapewne program uruchomił się ale nie miałeś zbyt wiele czasu na przyglądnięcie się wynikom działania programu gdyż program pokazał się na krótko, po czym zakończył działanie. Cóż, program wykonał się i nie napotykając żadnych pętli po prostu zakończył działanie. Jest jednak bardzo prosty sposób aby temu zaradzić. Dopisz kolejną linię, która będzie oczekiwała na wciśnięcie dowolnego klawisza:

Console.ReadKey();

Uruchom ponownie program. Teraz możesz już eksperymentować i dowolnie długo przyglądać się wynikom działania programu. Pamiętaj tylko, by polecenie Console.ReadKey()umieszczać zawsze w ostatniej linii przed nawiasem klamrowym co spowoduje, że przy rozbudowie naszego programu, zawsze wykonają się początkowe linie programu. Program zatrzyma się na tej ostatniej linii, umożliwiając ci obejrzenie wyniku jego działania. Będąc w tym miejscu muszę przypomnieć o korzystaniu z narzędzia wspierającego nas przy pisaniu kodu – IntelliSense. Narzędzie to uaktywnia się podczas wpisywania kodu źródłowego. Aby zobaczyć to na przykładzie, wpisz kolejną linię: Console. (zakończ kropką) i zaczekaj.

inelll

Edytor kodu źródłowego automatycznie wyświetli okno wraz z możliwymi metodami i właściwościami obiektu Console. Możesz przemieszczać się po nich strzałkami w górę oraz w dół. Zaznaczając dowolny wiersz podpowiedzi otrzymasz opis metody lub właściwości oraz parametry, jakie mogą przyjmować. Dzięki temu, nie musisz znać na pamięć wszystkich obiektów i ich metod gdyż środowisko Visual Studio 2005 Express  przychodzi ci z pomocą.

Spróbujmy teraz pobrać tekst z klawiatury podstawiając go do zmiennej tekst, a następnie wyświetlić na ekranie. Zmieniamy nasz kod aby wyglądał tak:

static void Main(string[] args)
   {
    Console.Clear();
    Console.Write("Podaj tekst z klawiatury: ");
    String tekst = Console.ReadLine();
    Console.WriteLine(tekst);
    Console.ReadKey();
   }

Teraz wyjaśnię krok po kroku działanie każdej linii. Console.Clear() – Czyści zawartość ekranu. Wyjaśnienia wymaga różnica pomiędzy Write i WriteLine. Pierwsza z nich wyświetla tekst ale nie przenosi na końcu kursora do nowej linii. Druga zaś, po wyświetleniu przechodzi do nowego wiersza. Spróbuj poeksperymentować i zmienić instrukcje w programie za każdym razem testując go klawiszem F5. W wierszu String tekst = Console.ReadLine() definiujemy zmienną tekstową typu String o nazwie tekst i podstawiamy do niej tekst z klawiatury (funkcja ReadLine czyta klawiaturę do naciśnięcia klawisza Enter). Ostatnie dwie funkcję są już zapewne znane i prawie nie wymagają wyjaśnienia. Napisałem prawie, gdyż Write i WriteLine oferują dodatkowo formatowanie wyświetlanej zmiennej tekstowej.

Console.WriteLine("{0:F3} po odcięciu 3 znaków po przecinku", 24.225623);

W tym przypadku liczba 24.225623 zostanie skrócona do 3 znaków po przecinku. Formatowanie występuje w nawiasie klamrowym {0:F3}. Gdybyśmy zamiast litery F wstawili C, to po wyświetleniu 23,225 zostanie dodany znak wartości pieniężnej, co w naszym kraju oznacza zł. zgodnie opisem z Tabela 3.3 Znaki formatujące tekst.. Co jednak, gdy chcemy sformatować więcej zmiennych w jednym wierszu? Nic prostszego – znaki formatujące w nawiasie klamrowym odnoszą się do konkretnej zmiennej w postaci: {numer_zmiennej:format}. Jeśli chcemy wyświetlić cenę netto, podatek VAT oraz cenę brutto w jednym wierszu to napiszemy to tak:

float netto, brutto, vat
  netto = 100
  vat = 22
  brutto = 122
Console.WriteLine("RAZEM NETTO:{0:C2} VAT:{1:F1},  BRUTTO:{2:C2}",netto,vat,brutto)

Można także obliczyć wartość brutto w tym samym wierszu:

Console.WriteLine("RAZEM NETTO:{0:C2} VAT:{1:F1}, BRUTTO:{2:C2}", netto, vat, netto +netto*vat/100);

console221
Znaki formatujące tekst.

C Waluta zgodna z ustawieniami systemu Windows
D Dziesiętne. Istnieje możliwość określenia ilości cyfr
E Wykładnicze
F Zmiennoprzecinkowe. Ustalana jest ilość miejsc po przecinku
N Liczby z ustawień regionalnych
X Format szesnastkowy

Warto zwórić uwagę, że podczas używania Write lub WriteLine mamy możliwość wyświetlania jednej z dwóch możliwości tekstu, w zależności od warunku logicznego.

bool blad = false;
Console.WriteLine("Błąd: {0}", (blad ? "wystąpił błąd" : "nie było błędu"));

Powyższy kod wyświetli słowo Błąd :, i w zależności od zmiennej logicznej blad, wyświetli odpowiednio: „wystąpił błąd”, gdy blad jest równe true, lub „nie było błędu”, gdy zmienna blad przyjmie wartość false.

W następnej częsci będziemy jeszcze zajmować się programowaniem konsoli. Podczas bliższego zapoznawania typu tekstowego, poznasz także instrukcje warunkowe, pętle oraz operacje na plikach. Po opanowaniu niezbędnych podstaw, zaczniemy budować aplikacje okienkowe. Pamiętaj jednak, by dobrze zapoznać się z teoretycznymi podstawami zawartymi w tym rozdziale. Zaowocuje to w przyszłości tym, że nie będziesz już musiał wracać do tego rozdziału po to, aby zrozumieć działanie bardziej skomplikowanych algorytmów.

694total visits,1visits today

Tagi , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

+ 57 = 58

This site uses Akismet to reduce spam. Learn how your comment data is processed.