Blog (55)
Komentarze (1.1k)
Recenzje (0)

Własna aplikacja? Program? Tak!

@arlidWłasna aplikacja? Program? Tak!27.12.2012 16:56

Dzisiaj troszkę inny temat. Czy żeby napisać własną aplikację, program trzeba znać tysiące linii kodu? Czy to jest aż tak bardzo konieczne? Nie do końca...

Chciałbym pokazać jak można stworzyć co prawda prostą aplikację, lecz bez posiadania ogromnej wiedzy z zakresu programowania. Do tego celu użyjemy oprogramowania

Co będziemy robić?

Nasza aplikacja będzie liczyła obwód i pole trójkąta prostokątnego. By usprawnić pracę stwórzmy...

Założenia

Tutaj zobaczmy co nam będzie potrzebne. Z pewnością użytkownik naszego małego programu będzie musiał podać nam długości boków trójkąta, więc potrzebne nam są trzy zmienne, w których je przechowamy. Warto byłoby także dodać opis, co nasz program robi oraz jak go używać. Razem potrzebujemy około 4-5 pól tekstowych.

Przyda się również jakiś element graficzny, by użytkownik wiedział, którego boku długość podaje aktualnie. Wystarczy prosty szkic takiego trójkąta. Oczywiście nic nie stanie się samo, więc potrzebujemy także elementu, który wywoła obliczenia i pokaże wynik. Do tego celu przyda nam się np. Przycisk.Także nasz ogólny "Worek potrzeb" wygląda tak:

  • 5 pól tekstowych
  • 1 przycisk
  • 1 obrazek

Działamy

uruchamiamy Visual Studio i przystępujemy do prac. Na początku wybieramy "New Project...",a następnie Visual C# ->Windows Form Application. Na dole nadajemy jej nazwę i zatwierdzamy. Czekamy chwilkę, aż program stworzy projekt.

Po chwili powinniśmy ujrzeć taki widok:

By móc dodawać elementy z naszego "Worka potrzeb" musimy dostać się do przybornika (Toolbox). Najeżdżamy więc po lewej stronie na nazwę Toolbox, klikamy ją, a następnie przypinamy nas przybornik klikając na pinezkę. Możemy przystąpić do pracy.

Na początku zmieńmy nazwę naszego okienka. W tym celu w prawej zakładce Properties szukamy opcji Text, gdzie zmieniamy nazwę Form1 na nasza własną. W przykładzie "Program do obliczania trójkąta". Z racji tego, że chciałem, by aplikacja miała wszystkie elementu w jednym oknie, rozszerzyłem pole okienka, by wszystko zmieścić.

Worek potrzeb

Dodajemy kolejno elementu naszego "worka potrzeb" wybierając je z przybornika (Toolbox) i przeciągając na nasze okienko. Potrzebujemy:

  • 5 x Label
  • 3 x numericUpDown
  • 1 x Button
  • 1 x PictureBox

Oczywiście nie musimy dodawać wszystkiego naraz. Możemy to robić po kolei. Ja na początku dodałem opis tej małej aplikacji. By lepiej pogrupować elementy możemy nadać im własne nazwy. W tym celu klikamy LPM raz na danym elemencie i w prawej zakładce Properties znajdujemy gałąź DataBindings. Rozwijamy ja i w polu Name wpisujemy własną nazwę.

Dla zachowania porządku nazwy w przykładzie to:

  • label1 -> Opis
  • label2 ->Działanie
  • numericUpDown1 -> dl_boku_A
  • numericUpDown2 -> dl_boku_B
  • numericUpDown3 -> dl_boku_C
  • button1 -> przycisk_Oblicz
  • picturebox -> trojkat

Ustawiamy wszystko. Wszelkich zmian w parametrach elementów dokonujemy w prawej zakładce Properties. W polu Text możemy zmienić domyślny tekst pól tekstowych czy przycisków.

Natomiast w przypadku elementu PictureBox, możemy tam załadować obrazem klikając na przycisk przy parametrze Image.

Gdy już uporamy się w "poskładaniem" elementów na ekranie naciskamy klawisz F5 lub zielona strzałkę w pasku narzędziowym. Jak widzimy nasz program uruchomił się, jednak jak nożna się tego spodziewać, po kliknięciu na przycisk "Oblicz" nic się nie dzieje.

Czas to zmienić..

Trochę kodu

Na początku wyłączmy nasz program zamykając go. By stworzyć funkcję wywołująca określone zdarzenia po naciśnięciu przycisk "Oblicz" klikamy go podwójnie LPM. Przechodzimy do pisania kodu. Ukaże nam się taki widok:

private void przycisk_Oblicz_Click(object sender, EventArgs e)
{
	// Tutaj wstawiamy zdarzenia
}

to funkcja, która wywoła określone przez nas zdarzenia po naciśnięciu przycisku "Oblicz" (nazwanego przez nas przycisk_Oblicz). Zdarzenia do wykonania wpisujemy wewnątrz nawiasów klamrowych.

Na początek dodajmy zdarzenie, które wyświetli zdefiniowany przez nas tekst po naciśnięciu przycisku za pomocą wyskakującego okienka. Tak więc w nawiasach klamrowych wpisujemy:

MessageBox.Show("Tutaj zobaczysz swój wynik");

Całość powinna wyglądać tak:

Ponownie uruchamiamy nasz program poprzez F5 i naciskamy przycisk Oblicz. Efektem jest ukazanie się okienka z naszym tekstem.

Zmienne

No dobrze, ale zamiast wyniku, chcemy liczny. Sprawdźmy jak to zrobić. Po pierwsze wiemy, ze trójkąt ma 3 boki. Przypiszmy do nich litery a,b,c z czego c będzie przeciwprostokątną trójkąta. Po drugie chcemy poznać obwód i pole tego trójkąta. Razem potrzebujemy pięciu zmiennych, które nam te wartości przechowają. Wprowadźmy to przed naszą informacją o wyniku.

Przykładowo wprowadzona przez użytkownika długość boku A odczytamy następująco.

decimal a = dl_boku_A.Value;

Tłumacząc: decimal – typ zmiennej dl_boku_A – nazwa elementu jaką przypisaliśmy obiektowi, w którym użytkownik podaje nam długość tego boku (domyślnie był to obiekt numericUpDown1). Vale – wartość wskazana, wpisana przez użytkownika do elementu dl_boku_A

Podobnie postępujemy także ze zmienna obwód i pole. Są to po prostu wzory matematyczne

decimal obwod=(a+b+c);
deciaml pole=((a*b)/2);

Ta wygląda nasz kawałek kodu po wpisaniu zmiennych. Zmieńmy teraz nasz tekst wyświetlany w wyskakującym okienku na wiadomość pokazująca nasz wynik:

MessageBox.Show("Obwód tego trójkąta wynosi: " + obwod + ", a tego pole jest równe: " + pole);

Po ponownym uruchomieniu programu, wprowadzeniu losowych danych i kliknięciu przycisku "Oblicz" otrzymujemy następującą informację:

Mała rzecz, a jak ważna

Jak wiadomo trójkąt prostokątny jest specyficznym rodzajem trójkąta. Więc co się stanie, gdy użytkownik poda nam długości, które nie tworzą tego trójkąta? Musimy się przed tym zabezpieczyć. Skorzystajmy więc z twierdzenia Pitagorasa , które mówi nam o tym, że trójkąt prostokątny otrzymamy wtedy, gdy suma kwadratów jego przyprostokątnych, będzie równa kwadratowi przeciwprostokątnej. Innymi słowy nasz warunek, jaki podane wartości muszą spełnić, by trójkąt został uznany za trójkąt prostokątny to:

a*a+b*b = c*c

Tutaj podziękowania dla lukasamd za zauważenie oczywistego błędu, jakiego tutaj nie zaimplementowałem. Bok nie może być równy 0, więc spełnione muszą być łącznie 4 założenia:

  • a*a+b*b = c*c
  • a>0
  • b>0
  • c>0

Skorzystajmy z instrukcji warunkowej if, by sprawdzić czy nasz warunek zaszedł

if (warunek) {

	//zdarzenie, jeżeli warunek jest prawdziwy

}

else{

//zdarzenie w przeciwnym wypadku – warunek jest nieprawdziwy

};

W tym celu "przerabiamy" nasz kod wiadomości na instrukcję if.

           if (a>0 && b>0 && c>0 && (a * a + b * b == c * c)) {

	MessageBox.Show("Obwód tego trójkąta wynosi: " + obwod + ", a tego pole jest równe: " + pole);

}

else{

MessageBox.Show("Podane przez Ciebie długości nie tworzą trójkąta prostokątnego!");

};

Całość prezentuje się następująco:

Sprawdźmy teraz:

Jak widać program działa poprawnie i jedynie w przypadku trójkąta Pitagorasa (np. 3,4,5) dostajemy prawidłowy wynik. W innym przypadku program pokazuje nam okienko z drugą wiadomością, mówiąca o tym, że wprowadziliśmy złe dane. Teraz wystarczy tylko wykonać Build naszego programu i mamy gotowy plik .exe z nasza małą działająca aplikacją.

Jak widać nie jest to jakiś super złożony projekt, który policzy za nas od razu wszystko, ale myślę, ze wykonanie czegoś takiego i tak daje satysfakcję i pozwala poznać trochę mechanizmy, działanie i zdobyć jakąś wiedzę :)

Oczywiście każdy ma własne zdanie dotyczące danych kwestii nie zamierzam go w żaden sposób podważać, czy obrażać kogokolwiek w jakikolwiek sposób. Przepraszam także za ewentualne błędy.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.