utorok, 24 apríl 2012 16:04 Written by 12551 times
Rate this item
(2 votes)

C# - Jednoduchá aplikácia na zistenie, či je číslo prvočíslo

 

*aplikácia je vytvorená pomocou Microsoft Visual C# 2010 Express

 

V tomto článku si ukážeme ako vytvoriť jednoduchú aplikáciu, ktorá nám zistí, či je zadané číslo prvočíslo.

Vytvoríme si nový projek WPF application.

Vytvorí sa nám "MainWindow" (okno aplikácie)

-v okne aplikácie si vytvoríme 2 x textBox

1. bude mať názov textBox1 - ten bude slúžiť na zadávanie čísla

2. bude mať názov textBox2 - ten bude slúžiť na výsledok či je číslo prvočíslo alebo nie

-dalej v okne aplikácie vytvoríme tlačítko (Button) s názvom Button1 v ktorom zmeníme zobrazovaný text z "Button" na "Je prvocislo?"

Dvojklikom na novovytvorené tlačítko Button1 nás editor prenesie do samotnej programovej časti našej aplikácie a zároveň vytvorí metódu button1_click().

Do metódy button1_click zapíšeme nasledujúci kód:

int cislo = 0; //deklarujeme si novu premennu
string vysledok; //deklarujeme si novu textovu premennu
cislo = System.Int32.Parse(textBox1.Text);//do premennej cislo sa ulozi cislo ktore zadal uzivatel do textBox1
vysledok = metodaPrvocislo(cislo); //do premmenej vysledok ulozim vystup z metody metodaPrvocislo
textBox2.Text = vysledok.ToString(); //zapisem vysledok do texBox2


Ďalej vytvoríme metódu metodaPrvocislo ktorá bude vyzerať nasledovne:


private string metodaPrvocislo (int cislo)//Vstup do metody bude typu int, vystup metody bude string
    { //zistenie ci ide o prvocislo
        int pomocneCislo;   //deklarujeme si novu premennu
        if (cislo <= 1) return "Nie";   //vsetky cisla mensie ako 2 sa nepovazuju za prvocisla
        if (cislo == 2) return "Ano";   //2 je prvocislo
        if (cislo % 2 == 0) return "Nie";   //kazde parne cislo okrem 2 nieje prvocislo
        for (pomocneCislo = 3; pomocneCislo < cislo/2; pomocneCislo = pomocneCislo+2)
        {   
            if (cislo % pomocneCislo == 0) return "Nie";
        }
        //aplikacia postupne vydeli vlozene cislo kazdym neparnym cislo pocnuc 3-kou, 
        //az pokial nenajde cislo po deleni ktorym vznikne zvysok 0. 
        //Ak nenajde ziadne taketo cislo, tak je vlozene cislo prvocislo
        return "Ano";
    }

Do aplikácie tiež môžeme pridať tlačítko na vypnutie aplikácie.
Celý kód našej aplikácie by mohol vyzerať takto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
     
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            textBox1.Text = "Vstup";    //pri spusteni programu ulozi do texBox1 text
            textBox2.Text = "Vystup";   //pri spusteni programu ulozi do texBox2 text
        }
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            this.Close(); //vypnutie aplikacie
        }
        private void button1_Click(object sender, RoutedEventArgs e) //tuto metodu aktivuje stlačenie tlacitka Button1
        {
            int cislo = 0;  //deklarujeme si novu premennu
            string vysledok;    //deklarujeme si novu textovu premennu
            cislo = System.Int32.Parse(textBox1.Text); 
            //do premennej cislo sa ulozi cislo ktore zadal uzivatel do textBox1
            vysledok = metodaPrvocislo(cislo); 
            //do premmenej vysledok ulozim vystup z metody metodaPrvocislo
            textBox2.Text = vysledok.ToString();    //zapisem vysledok do texBox2
            
        }
        private string metodaPrvocislo (int cislo)  //Vstup do metody bude typu int, vystup metody bude string
            { //zistenie ci ide o prvocislo
                int pomocneCislo;   //deklarujeme si novu premennu
                if (cislo <= 1) return "Nie";   //vsetky cisla mensie ako 2 sa nepovazuju za prvocisla
                if (cislo == 2) return "Ano";   //2 je prvocislo
                if (cislo % 2 == 0) return "Nie";   //kazde parne cislo okrem 2 nieje prvocislo
                for (pomocneCislo = 3; pomocneCislo < cislo/2; pomocneCislo = pomocneCislo+2)
                {   
                    if (cislo % pomocneCislo == 0) return "Nie";
                }
                //aplikacia postupne vydeli vlozene cislo kazdym neparnym cislo pocnuc 3-kou, 
                //az pokial nenajde cislo po deleni ktorym vznikne zvysok 0. 
                //Ak nenajde ziadne taketo cislo, tak je vlozene cislo prvocislo
            return "Ano";
            }
    }
}
Last modified on pondelok, 19 december 2016 21:26