Licznik w VB 2005
WItam!
Musze do szkoly napisac program w ktorym po wpisaniu jakiegokolwiek slowa poda on ile liter jest i na jakiej pozycjo te litery sa w danym slowie. Np jesli sie wpisze "hipopotam" to program powie cos takiekie:
w slowie "Hipopotam" jest 9 liter wtym 1-h na pozycji 1, 1-i na pozycji 2, 2-p na pozycji 3 i 5, 2-o na pozycji 4 i 6, 1-t na pozycji 7, 1-a na pozycji 8, 1-m na pozycji 9.
Udalo mi sie zrobic aby program podawal ile liter ma wyraz i nawet udalo mi sie cos wykombinowac ze podaje jaka litera jest na jakiej pozycji ale podaje mi pojedyncze litery wiec jesli jakies sie powtarzaja to jest kiszka i w moim przypadku program dziala tylko z 8 literowymi wyrazami a powinien dzialac z obojetnie jak krotkimi czy dlugimi wyrazami.
To co udalo mi sie zrobic mozna sciagnac tutaj:
http://www.sendspace.com/file/dpzr6y
Jesli ktos bylby tak mily i chcial mi pomoc to dzieki wielkie.
Pozdrawiam!
Odpowiedzi: 2
Sprawdzalem i dziala. To jest stosunkowo latwy kod wiec jak wrzucisz to do jakiegos konwertera C# to VB to powinienes otrzymac dzialajacy kod pod Visual Basic.Oczywiscie dobry posunieciem byloby zastosowanie ArrayList zamiast zwyklej deklaracji tablicy. Pozwoliloby Ci to na dynamiczne przydzielanie pamieci dla tablicy :]
Powodzenia
[code]int z = 0;
int a = 0;
string wyraz = "onomatopeja";
string rezultat = "";
string pozycje = "";
int[] tab = new int[15];
for (int i = 0; i < wyraz.Length; i++)
{
// to sprawdza czy aktualny znak nie byl juz na wczesniejszej pozycji
for (int j = 0; j < i; j++)
{
if (wyraz[j] == wyraz[i])
{
a = 1;
break;
}
else
{
a = 0;
}
}
// jesli nie byl to dodaje do tablicy wystapienia tego znaku w wyrazie
if (a == 0)
{
for (int k = 0; k < wyraz.Length; k++)
{
if (wyraz[k] == wyraz[i])
{
tab[z]++;
pozycje = pozycje + (k+1).ToString() + " ";
}
}
rezultat = rezultat + wyraz[i] + " wystapilo " + tab[z].ToString() + " razy na pozycjach: " + pozycje + "\n";
z++;
pozycje = "";
}
}
MessageBox.Show("Wyraz: " + wyraz + "\n" + "Długość wyrazu: " + wyraz.Length.ToString() + "\n" + rezultat);[/code]
Ok udalo mi sie zrobic aby program pokazywal liczbe liter kazdego jednego wyrazu skladajacego sie od 1 do 15 liter z tym ze nie dziala tak jak powinno bo nie wiem jak zrobic aby sumowalo takie same litery i podawalo ile ich jest i na jakiej pozycji one sa.
A to link do nowej wersji programiku:
http://www.sendspace.com/file/a27fvg
Jesli ktos ma jakies pomysly prosze o kontakt!
PS: Dla jasnosci program ma byc napisany w Visual Basic (jak ktos ma Microsoft Visual Studio 2005, albo darmowy Visual Basic 2005 Express Edition)
Strona 1 / 1