Cześć, tworzę w Visualu generator peselu na zajęcia do szkoły i złamałem się na ostatniej, jedenastej cyfrze (kontrolnej).
Domyślam się że popełniam jakiś śmiesznie głupi, banalny błąd ale noo.. nie potrafię tego zrobić, a jest mi to bardzo potrzebne działające w pelni na lekcje.
Suma na końcu kodu wychodzi jakaś zaczarowana, ponadto nie do końca chyba ogarniam konwersję str - int oraz int - str, i konwersji pojedynczych indeksów.
Czy mogę prosić o pomoc jak to rozwiązać? Muszę przemnożyć każdą z dziesięciu pierwszych cyfr peselu przez odpowiednią wagę i zsumować wyniki, tak jak w instrukcji na zdjęciu.
Z góry bardzo dziękuję !
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 Generator_peselu
{
public partial class Form1 : Form
{
char plec;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Random pierwsza = new Random();
int liczbaPorz1 = pierwsza.Next(0, 10);
int liczbaPorz2 = pierwsza.Next(0, 10);
int liczbaPorz3 = pierwsza.Next(0, 10);
int liczbaPorz4 = pierwsza.Next(0, 10);
bool blad = false;
if (textBoxDataUr.Text == "")
{
MessageBox.Show("Nie podano daty urodzenia.");
blad = true;
}
if (radioButtonM.Checked == true)
{
while (liczbaPorz4 % 2 == 0)
{
liczbaPorz4 = pierwsza.Next(0, 10);
}
}
else if (radioButtonK.Checked == true)
{
while (liczbaPorz4 % 2 != 0)
{
liczbaPorz4 = pierwsza.Next(0, 10);
}
}
else
{
MessageBox.Show("Nie zaznaczono płci.");
blad = true;
}
if (blad == false)
{
string peselStr = textBoxDataUr.Text[2].ToString() + textBoxDataUr.Text[3].ToString() + textBoxDataUr.Text[5].ToString() + textBoxDataUr.Text[6].ToString() + textBoxDataUr.Text[8].ToString() + textBoxDataUr.Text[9].ToString() + liczbaPorz1.ToString() + liczbaPorz2.ToString() + liczbaPorz3.ToString() + liczbaPorz4.ToString();
int[] peselInt = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i <= 9; i++)
{
peselInt[i] = peselStr[i];
}
int[] waga = { 1, 3, 7, 9, 1, 3, 7, 9, 1, 3 };
int suma = 0;
for (int i=0; i<=9; i++)
{
suma += (waga[i] * peselInt[i]);
}
}
}
}
}