Zliczanie anagramów danego ciągu - problem z wyświetleniem odpowiedzi.

0

Witam,
tym razem w Pascalu musiałem opracować programik, który by wczytywał jakiś ciąg znaków, następnie na wyjściu wypisywał liczbę wszystkich anagramów, które można utworzyć z podanego łańcucha liter. Udało mi się zakodzić coś takiego:

const
	P:array [1..50] of word = (2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229);
var
	A:string;
	T:array['a'..'z'] of byte;
	R:array[1..50] of byte;
	Zn:char;
	N,K,S,W:longint;
begin
	readln(a);
	N:=length(a);
	For k:=1 to N do T[A[K]]:=T[A[K]]+1;
	For K:=2 to N do
		begin
			s:=1; w:=k;
			while w>1 do
				begin
					while w mod P[S]=0 do
						begin R[S]:=R[S]+1;w:=w div P[S] end;
					s:=s+1
				end
		end;
	For Zn:='a' to 'z' do
		if t[Zn]>1 then
			begin
				s:=1; w:=t[zn];
				while w>1 do
					begin R[S]:=R[S]-1;w:=w div P[S] end;
				s:=s+1;
			end
		end.
	s:=50;
	while R[S]=0 do s:=s-1;
	for k:=1 to s do write(R[K], ' ');
	writeln
end.

Jednak program nic nie wypisuje. Prosiłbym o wskazówki, gdzie popełniam błąd :)

Gdyby coś okazało się nie przejrzyście przeze mnie napisane, w załączniku dodaję oryginalną treść polecenia.

0

Radzę to zrobić bardziej matematycznie, a nie przez głupie zliczanie.

0

Taką mi metodę podsunięto i tak zrobiłem :) spróbuję potem jeszcze raz napisać, tak jak mówisz, jednak obecnie muszę dokończyć przez zliczanie niestety. Wracając do pytania, czemu program nic nie zwraca? :)

0

Paskudne formatowanie... Masz dwa endy z kropką

0

Gdy przy pierwszym end stawiam średnik, kompilator wywala fatal error; mówiąc, że w tym miejscu musi być kropka.

1

Zrobiłeś sobie zły nawyk nie stawiania średnika po end i przed ostatnią instrukcją przed end. Trzeba tego umieć używać.
end z kropką kończy definitywnie program, wszystko co jest za nią nie będzie brane pod uwagę. Poza tym sformatuj ten kod wg. tego artykułu: Formatowanie kodu w Delphi to zobaczysz sam co i jak. Nie czytałem całego twojego kodu bo nie mam na to siły.

0

A powiedz mi co ten pierwszy end z kropką zamyka którego begina?

0

@ szopenfx
Dzięki za link do artykułu, na pewno wiele z niego zaczerpnę.
@ _13_th_Dragon
Eh, moja nie uwaga. Zgodnie z przedmówcami ten end. kończył program. Przepraszam za zamieszanie.
Jednak niezbyt wiem, czemu tylko 3 na 10 testów przechodzi pozytywnie. Wszystkie przykłądy przechodzą ok. Obecny kod: http://ideone.com/ceT6Nc

1 użytkowników online, w tym zalogowanych: 0, gości: 1