Biểu thị màu đỏ: Câu hỏi
Biểu thị màu đen đậm: Câu trả lời
1. Sử dụng NNLT Pascal. Nhập chuỗi kí tự. Đếm xem trong chuỗi có bao nhiêu kí tự, mỗi kí tự xuất hiện bao nhiêu lần I love you I love you I love you
uses crt;
var
s:string;
solan:array[0..255]of byte;
i:byte;
begin
clrscr; {Xoá màn hình}
write('S = ');readln(s);
for i:=1 to length(s)do
inc(solan[ord(s[i])]);
for i:=0 to 255 do
if solan[i]>0 then
begin
writeln('Ki tu ',chr(i),' xuat hien ',solan[i],' lan'); {Xuất kí tự i và solan[i]}
end;
readln;
end.
2. Sử dụng NNLT Pascal. Nhập 2 số nguyên dương A,B (có thể lên đến 200 chữ số). Tính tổng 2 số đó
uses crt;
var
a,b:string;{a,b kiểu string}
function cong(a,b:string):string;
var
tong:string;
la,lb:byte;
i,c,nho:byte;
begin
la:=length(a);lb:=length(b);
if la
for i:=1 to lb-la do a:='0'+a {Điền lb-la kí tự '0' và trước A}
else for i:=1 to la-lb do b:='0'+b; {Ngược lại điền la-lb kí tự '0' và trước B}
tong:=''; {Gán tong bằng xâu rỗng}
nho:=0; {Gán nho bằng 0}
for i:=length(a) downto 1do {Cho i chạy từ độ dài A xuống 1}
begin
c:=ord(a[i])+ord(b[i])-96+nho;
if c>9 then
begin
nho:=1; {Gán nho bằng 1}
c:=c-10; {Giảm c đi 10}
end
else nho:=0; {NGược lại gán nho bằng 0}
tong:=chr(c+48)+tong; {Thêm kí tự c vào trước tong}
end;
if nho=1 then tong:='1'+tong; {Nếu nho=1 thì thêm '1' vào đầu tong}
cong:=tong;
end;
begin
clrscr;{Xoá màn hình}
write('So A : ');readln(a);
write('So B : ');readln(b);
writeln(cong(a,b));
readln;
end.
3. Trong NNLT Pascal, viết thủ tục đệ quy đảo các chữ số của một số.
Ví dụ đọc vào số : 12345 và In ra : 54321
Procedure daonguoc(so:integer);
Var s:string;
i:integer;
Begin
str(so,s);
For i:=length(s) downto 1 do Write(s[i]);
Readln;