Trang 1 trong tổng số 1

Bài tập: Đếm số lượng từ và tìm từ dài nhất trong xâu

Đã gửi: CN 05 Th9, 2021 19:09
bởi huynhbuutam
Mỗi từ cách nhau bởi ít nhất một kí tự trống, ví dụ xâu "Xin chao cac ban nhe!" có 5 từ, trong đó, từ dài nhất là "chao" hoặc "nhe!" với độ dài là 4
Mã nguồn (Đếm số từ):

Mã: Chọn tất cả

Program DemTu;
Uses Crt;

Procedure Trim(Var St: AnsiString);
Begin
	While (Length(St) > 0) And (St[1] = ' ') Do Delete(St, 1, 1);
	While (Length(St) > 0) And (St[Length(St)] = ' ') Do Delete(St, Length(St), 1);
	While (Length(St) > 0) And (Pos('  ', St) > 0) Do Delete(St, Pos('  ', St), 1);
End;

Var St : AnsiString;
	Dem : Integer;
Begin
	ClrScr;
	Write('Nhap xau: ');
	ReadLn(St);
	Trim(St);
	Dem := 0;
	If Length(St) > 0 Then Begin
		St := St + ' ';
		While (Length(St) > 0) And (Pos(' ', St) > 0) Do Begin
			Inc(Dem);
			Delete(St, 1, Pos(' ', St));
		End;
	End;	
	Write('Ket qua: ', Dem);	
	ReadLn;
End.

Mã nguồn (Từ dài nhất):

Mã: Chọn tất cả

Program TuDaiNhat;
Uses Crt;

Procedure Trim(Var St: AnsiString);
Begin
	While (Length(St) > 0) And (St[1] = ' ') Do Delete(St, 1, 1);
	While (Length(St) > 0) And (St[Length(St)] = ' ') Do Delete(St, Length(St), 1);
	While (Length(St) > 0) And (Pos('  ', St) > 0) Do Delete(St, Pos('  ', St), 1);
End;

Var St : AnsiString;
	KQ : String;
Begin
	ClrScr;
	Write('Nhap xau: ');
	ReadLn(St);
	Trim(St);
	KQ := '';
	If Length(St) > 0 Then Begin
		St := St + ' ';
		While (Length(St) > 0) And (Pos(' ', St) > 0) Do Begin
			If Pos(' ', St) - 1 > Length(KQ)
			Then KQ := Copy(St, 1, Pos(' ', St) - 1);
			Delete(St, 1, Pos(' ', St));
		End;
	End;	
	Write('Ket qua: ', KQ);	
	ReadLn;
End.