Írjunk függvényt 6 jegyű oktális szám beolvasására. A függvény ellenőrizze, hogy az oktális szám pontosan 6 jegyű legyen, digitjei csak 0..7 közé eshetnek.
A feladat megoldása
A függvény ellenőrzi a beolvasást, hiba esetén a pozícióval együtt kiírja a hibás számjegyet és nem fogad el 6 jegynél nagyobb számot:
static string oct_read(string oct, out int hiba1,
out int hiba2)
{
int i, h, k;
hiba1 = hiba2 = 0;
h = oct.Length;
if (h == 6)
{
for (i = 0; i < h; i++)
{
k = oct[i] - '0';
if (k > 7) // bit vizsgálat
{
hiba1 = i + 1;
return oct;
}
}
}
else
if (h < 6 || h > 6)
hiba2 = h;
return oct;
}
// Ellenőrzött olvasás
private void button1_Click(object sender, EventArgs e)
{
string oct1, oct1_jó = "";
int hiba1 = 0, hiba2 = 0;
textBox2.Text = "";
if (textBox1.Text != "")
{
oct1 = textBox1.Text;
oct1_jó = oct_read(oct1, out hiba1, out hiba2);
if( hiba2 != 0)
{
MessageBox.Show("A szám hatjegyű lehet: ez " +
hiba2.ToString(),"Hibajelzés");
textBox1.Text = "";
}
if (hiba1 != 0)
{
MessageBox.Show("adat: " +oct1.ToString()+"\n"+
hiba1.ToString()+". digit hibás! ",
"Hibajelzés");
textBox1.Text = "";
}
if(hiba1 == 0 && hiba2 == 0)
{
textBox1.Text = oct1_jó;
textBox2.Text = oct1_jó;
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = "";
}
A program futási eredményei: