Proste warunki logiczne
Proste warunki logiczne oparte są na wykorzystaniu funkcji warunku logicznego if. Aplikacja utworzona w tym temacie pozwoli sprawdzić:
- czy wprowadzona liczba jest dodatnia
- która z wprowadzonych liczb jest większa
- czy można wykonać działanie dzielenia (zabezpieczenie przed dzieleniem przez zero)
Aby aplikacja zrealizowała powyższe cele będziemy potrzebować takiego układu kontrolek
Kontrolkom przypisujemy tekst związany z ich przeznaczeniem
Działanie całej aplikacji oprzemy na trzech zmiennych typu rzeczywistego (float) o proponowanych nazwach a, b i c. Zmienne deklarujemy jako zmienne o zasięgu lokalnym w klasie tworzonej formatki.
Wskazówka:
public partial class Form1 : Form
{
float a, b, c;
public Form1()
{
InitializeComponent();
}
}
Sprawdzamy czy wprowadzona liczb a jest większa od zera
Liczbę a będziemy pobierać z kontrolki TextBox jako łańcuch znaków, który po konwersji będzie zamieniony na typ rzeczywisty. Tę cześć programu zrealizujemy w zdarzeniu kliknięcia wybranego klawisza (kontrolka Button)
W ciele funkcji zdarzenia Click wprowadzamy poniższy kod
Wskazówka:
private void button1_Click(object sender, EventArgs e)
{
//odczytaj liczbę a
a=float.Parse(textBox1.Text);
if (a > 0) label3.Text =
"Liczba a = " + a.ToString() + " jest dodatnia";
else if(a<0) label3.Text =
"Liczba a = " + a.ToString() + " jest ujemna";
else label3.Text =
"Liczba a = " + a.ToString() + " jest równa zeru";
}
Skompiluj program i sprawdź efekt działania programu. Prawidłowo działający program potrafi określić czy liczba jest dodatnia, ujemna lub równa zero.
Sprawdzamy która z wprowadzonych liczb jest większa, mniejsza lub równa.
Ta część ćwiczenia jest analogiczna do poprzedniej. Różnicą jest wykonanie testu porównania pomiędzy dwoma wartościami liczbowymi. Przeprowadzenie testu zrealizujemy przy użyciu zdarzenia Click kolejnego przycisku Button
Wskazówka:
private void button2_Click(object sender, EventArgs e)
{
//odczytaj liczbę a
a = float.Parse(textBox1.Text);
//odczytaj liczbę b
b = float.Parse(textBox2.Text);
if (a > b) label3.Text =
a.ToString() + " jest większe od "+ b.ToString();
else if (a < b) label3.Text =
a.ToString() + " jest mniejsze od " + b.ToString();
else label3.Text =
a.ToString() + " jest równe " + b.ToString(); ;
}
Skompiluj program i sprawdź efekt działania programu.
Warunek zabezpieczenia przed dzieleniem przez zero
Wykonując tę część ćwiczenie przyjmij, że licznikiem jest liczba a, a mianownikiem liczba b. Działanie dzielenia wykonamy w zdarzeniu Click kolejnej kontrolki Button. Przykładowy kod sprawdzający czy można wykonać dzielenie.
Wskazówka:
private void button3_Click(object sender, EventArgs e)
{
//odczytaj liczbę a, czyli licznik
a = float.Parse(textBox1.Text);
//odczytaj liczbę b, czyli mianownik
b = float.Parse(textBox2.Text);
if (b != 0)
{
c = a / b;
label3.Text=a.ToString()
+"/"+b.ToString()
+"="+c.ToString();
}
else
{
label3.Text = "Dzielenie jest niemożliwe";
}
}
Skompiluj program i sprawdź efekt działania programu.
Postać gotowej aplikacji oraz jej kod
Formatka tworzonego okna aplikacji wykorzystującej proste warunki logiczne wygląda jak poniżej
Pełny kod pliku Form1.cs klasy Form ma postać
Wskazówka:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _1bInstrukcjaWarunkowa
{
public partial class Form1 : Form
{
float a, b, c;
private void button1_Click(object sender, EventArgs e)
{
//odczytaj liczbę a
a = float.Parse(textBox1.Text);
if (a > 0) label3.Text =
"Liczba a = " + a.ToString() + " jest dodatnia";
else if (a < 0) label3.Text =
"Liczba a = " + a.ToString() + " jest ujemna";
else label3.Text =
"Liczba a = " + a.ToString() + " jest równa zeru";
}
private void button2_Click(object sender, EventArgs e)
{
//odczytaj liczbę a
a = float.Parse(textBox1.Text);
//odczytaj liczbę b
b = float.Parse(textBox2.Text);
if (a > b) label3.Text =
a.ToString() + " jest większe od "+ b.ToString();
else if (a < b) label3.Text =
a.ToString() + " jest mniejsze od " + b.ToString();
else label3.Text =
a.ToString() + " jest równe " + b.ToString(); ;
}
private void button3_Click(object sender, EventArgs e)
{
//odczytaj liczbę a, czyli licznik
a = float.Parse(textBox1.Text);
//odczytaj liczbę b, czyli mianownik
b = float.Parse(textBox2.Text);
if (b != 0)
{
c = a / b;
label3.Text=a.ToString()
+"/"+b.ToString()
+"="+c.ToString();
}
else
{
label3.Text = "Dzielenie jest niemożliwe";
}
}
public Form1()
{
InitializeComponent();
}
}
}