Wątek przeniesiony 2016-01-06 20:21 z Delphi i Pascal przez furious programming.

Wczytanie palindromów z pliku tekstowego.

0

Witam. Napisałem program który ma z pliku tekstowego ma wypisywać wszystkie palindromy. Niestety mój program nie chce działać, kompiluje się, ale po kliknięciu przycisku run pojawia się błąd lub zawiesza się, o to mój program:

var f,g:text;
s: string;
c: char;
function sprawdz(s:string):boolean;
var i: integer;
begin 
	sprawdz:=true;
	for i:=1 to length(s) div 2 do 
	if s[i]<>s[length(s)-i+1] then
		 begin sprawdz:=false; break; 
	end;
end;
begin assign(f,’nowy.txt’); 
reset(f); 
assign(g,’nowy1.txt’); 
rewrite(g);
while not eof(f) do begin 
	while not eoln (f)do begin
	read(f,c); 
	if not (c in [' ']) then s:=s+c else begin 
		if sprawdz(s) then writeln (g,s); 
		s:=’ ’;
		end;
	 end;
       end;

 close(f);
close(g); 
end.
0

Za poznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
Po zastosowaniu formatowania, błąd będzie oczywisty.

0

Nie bardzo rozumiem.
Nie znam się totalnie na programowaniu, po prostu muszę wysłać taki program, więc jeśli możesz jaśniej to będę ukontentowany.

0

@tancerz1234 - nie wiesz co to znaczy "sformatować kod"? Zapisz go tak, aby był czytelny; Co to za nazwy f, g, s, c? Klawiatura Ci się rozpada, że oszczędzasz klawisze, czy masz 32KB pamięci? Poza tym używasz w kodzie znaków, które nie opisują składni języka:

s:=’ ’;

Albo jakiś edytor to zmienił, albo masz przemapowaną klawiaturę; No i brakuje Ci jednego End, więc popraw ten kod, bo w obecnej postaci nie da się go nawet skompilować.

0

f to plikt tekstowy wejściowy, g to plik tekstowy do którego będą przepisywane palindromy.
c to zmienna, która będzie przechodziła kolejno po znakach w pliku f. s to zmienna typu string, która będzie tworzona przed znaki które nie są spacjami.
a s:=' ' to chciałem, aby s stawał się słowem pustym

0

Nie tłumacz mi kodu, tylko go popraw - identyfikatory zmiennych mają być czytelne, a nie jak najkrótsze; Nikt nie będzie co chwilę kukał na deklarację zmiennej, aby dowiedzieć się czym jest i jakie typu dane przechowuje;

Identyfikatory to dopiero wierzchołek góry lodowej; Dalej dochodzą inne rzeczy, jak randomowe wcięcia, jednolinijkowce, zostawianie Begin na końcu linii zamiast przenoszenie do nowej i stosowanie 20-letniej konstrukcji zwracania rezultatu funkcji, zamiast użycia niejawnej zmiennej Result;

Więc najpierw doprowadź ten kod do porządku, a dopiero później zajmiemy się szukaniem błędów.

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