K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

23 tháng 12 2019

Bài test cho các bạn tham gia tích cực tại môn Tin học .

♛๖ۣۜEɗωαɾɗ ๖ۣۜNεω๖ۣۜGαтε♛ ; Nguyễn Lê Phước Thịnh ; @Luân Trần

const fi='tvh.inp';
fo='tvh.out';
var n,d,dem,sl,s2cs,s3cs,s4cs,s5cs,s6cs,s7cs,k,i,d1:longint;
st,st1,stk:string;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,k);
str(n,st);
d:=length(st);
case d of
1: write(9);
2: begin
sl:=n-9;
dem:=9+sl*2;
end;
3: begin
s2cs:=(99-10)+1;
s3cs:=n-99;
dem:=9+s2cs*2+s3cs*3;
end;
4: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=n-999;
dem:=9+s2cs*2+s3cs*3+s4cs*4;
end;
5: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=n-9999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5;
end;
6: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=n-99999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6;
end;
7: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=(999999-1000000)+1;
s7cs:=n-999999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7;
end;
end;
if k<=dem then
begin
i:=1;
d1:=0;
repeat
str(i,st1);
d1:=d1+length(st1);
i:=i+1;
until d1>=k;
stk:=st1[length(st1)-(d1-k)];
writeln(f2,stk);
end;
close(f1);
close(f2);
end.

Câu 1 (6,0 điểm): Tính giá trị Nhập vào 2 số nguyên dương N và M. Yêu cầu: Tính tổng M các số tận cùng của N. Dữ liệu vào: Cho trong file văn bản CAU1.INP, có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương N. - Dòng 2: Ghi số nguyên dương M (M≤ N) . Dữ liệu ra: Ghi ra file văn bản CAU1.OUT, theo cấu trúc như sau: - Ghi kết quả tổng của M số tận cùng của N. Ví...
Đọc tiếp

Câu 1 (6,0 điểm): Tính giá trị

Nhập vào 2 số nguyên dương N và M.

Yêu cầu: Tính tổng M các số tận cùng của N.

Dữ liệu vào: Cho trong file văn bản CAU1.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N.

- Dòng 2: Ghi số nguyên dương M (M≤ N) .

Dữ liệu ra: Ghi ra file văn bản CAU1.OUT, theo cấu trúc như sau:

- Ghi kết quả tổng của M số tận cùng của N.

Ví dụ:

CAU1.INP

CAU1.OUT

34562

2

8

Câu 2 (7,0 điểm): Tìm số

Dãy các số tự nhiên được viết ra thành một dãy vô hạn trên đường thẳng:

1234567891011121314..... (1)

Yêu cầu: Viết chương trình yêu cầu nhập số K và in lên tệp CAU2.OUT kết quả là số nằm ở vị trí thứ K trong dãy (1) ở trên và số đó thuộc vào số nào?

Dữ liệu vào: Cho trong file văn bản CAU2.INP, có cấu trúc như sau:

- Ghi số nguyên dương K

Dữ liệu ra: Ghi ra file văn bản CAU2.OUT, theo cấu trúc như sau:

- Trên 1 dòng in kết quả số ở vị trí K và số chứa số đó cách nhau ít nhất một dấu cách.

Ví dụ:

CAU2.INP

CAU2.OUT

15

2 12

Câu 3 (7,0 điểm): Đếm ký tự

Cho một văn bản gồm N dòng. Các ký tự được lấy từ tập các chữ cái và chữ số.

Yêu cầu: Tìm số lượng ký tự của dòng ngắn nhất, số lượng ký tự của dòng dài nhất và số lượng ký tự của văn bản.

Dữ liệu vào: Cho trong file văn bản CAU3.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N là số dòng của văn bản (1 ≤ N ≤ 100).

- N dòng tiếp theo: Mỗi dòng ghi một xâu gồm L ký tự (0 < L < 255).

Dữ liệu ra: Ghi ra file văn bản CAU3.OUT, theo cấu trúc như sau:

- Dòng 1: Ghi 3 số nguyên dương x y z. Trong đó: x là số lượng ký tự của dòng ngắn nhất; y là số lượng ký tự của dòng dài nhất, z là số lượng ký tự của văn bản. Các số được ghi cách nhau ít nhất một dấu cách.

Ví dụ:

CAU3.INP

CAU3.OUT

3

ThiHSG09

Nam2015

Vong1

5 8 20

4
5 tháng 9 2019

cau1

uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.

cau3

uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.

6 tháng 9 2019

Câu 2:

*Ý tưởng :

+ Ý 1:

- Bạn không cần chạy đến vô hạn như đề cho đầu , bạn chỉ cần 1 vòng for chạy đến k là được bởi vì nó lấy kí tự thứ k.

- Bạn cho 1 vòng for chạy đến k và chuyển dãy số đó sang xâu và cho 1 biến đếm vào

- Nếu biến đếm bằng với k thì write(s[d]);

+ Ý 2:

- Các số có 1 chữ số chỉ có từ 1 đến 9. Nên nếu d<9 thì write(s[d]);

- Nếu mà d>9 và d là số lẻ thì write(s[d-1],s[d]) ngược là nếu d là số chẵn thì write(s[d],s[d+1]);

Đây là ý tưởng , nếu bạn không hiểu chỗ nào cứ hỏi mình , bạn làm theo ý tưởng mình xem nhé. Nếu không được mình sẽ gửi bài làm của mình cho bạn xem.

uses crt;
const fi='bt.inp';
var a:array[1..100]of real;
i,dem:integer;
f1:text;
begin
clrscr;
assign(f1,fi); reset(f1);
dem:=0;
while not eof(f1) do
begin
inc(dem);
read(f1,a[dem]);
if dem mod 2=0 then readln(f1);
end;
for i:=1 to dem do
write(a[i]:4:1,' ':4);
close(f1);
readln;
end.

CHUYÊN ĐỀ : CÁC BÀI TOÁN VỀ THỜI GIAN (Nhập xuất trên file) 1/ ĐỔI GIỜ Dữ liệu vào : -Dòng 1: ba số h m s tương ứng với số giờ, phút, giây -Dòng 2 : số G là số giây Dữ liệu ra : -Dòng 1: In ra một số S1 là số giây đổi ra từ số giờ, số phút, số giây tương ứng -Dòng 2 : In ra ba số h1 m1 s1 là số giờ, số phút và số giây tương ứng với số giây G Ví dụ...
Đọc tiếp

CHUYÊN ĐỀ : CÁC BÀI TOÁN VỀ THỜI GIAN

(Nhập xuất trên file)

1/ ĐỔI GIỜ

Dữ liệu vào :

-Dòng 1: ba số h m s tương ứng với số giờ, phút, giây

-Dòng 2 : số G là số giây

Dữ liệu ra :

-Dòng 1: In ra một số S1 là số giây đổi ra từ số giờ, số phút, số giây tương ứng

-Dòng 2 : In ra ba số h1 m1 s1 là số giờ, số phút và số giây tương ứng với số giây G

Ví dụ :

DOIGIO.INP

DOIGIO.OUT

0 50 31

8147

3031

2 15 47

2/ XÂU THỜI GIAN

Một xâu kí tự biểu diễn thời gian là xâu kí tự bao gồm các số và các chữ h, m, s tương ứng với giờ, phút và giây.

Ví dụ : cho xâu 1h50m24s nghĩa là : 1 giờ 50 phút 24 giây.

Cho một xâu kí tự biểu diễn thời gian, em hãy cho biết thời gian đó bằng bao nhiêu giây ?

Ví dụ :

XAUTHOIGIAN.INP

XAUTHOIGIAN.OUT

1h50m24s

6624s

3/CỘNG, TRỪ THỜI GIAN

Nhập hai lượng thời gian (mỗi lượng dưới dạng giờ, phút, giây)

In ra tổng hai thời gian, và hiệu hai thời gian (thời gian lớn trừ thời gian bé)

Ví dụ :

ADDTIME.INP

ADDTIME.OUT

2h43m18s

0h54m23s

3h37m41s

1h48m55s

11h25m3s

23h4m19s

34h29m22s

11h39m16s

4/AI CHẠY NHANH NHẤT

Trong một cuộc thi chạy người ta đánh số thứ tự các vận động viên từ 1 đến N, và ghi lại thời gian chạy của từng vận động viên tương ứng.

Nhiệm vụ của em là tìm ra số thứ tự của người chạy nhanh nhất

Dữ liệu vào : Gồm N + 1 dòng

-Dòng 1: Ghi N là số lượng các vận động viên

Dòng 2 ..Dòng N + 1: Dòng i +1 ghi thời gian chạy của vận động viên thứ i (giờ, phút, giây)

Dữ liệu ra :

-Dòng 1: Ghi số K là số thứ tự của vận động viên chạy nhanh nhất, nếu có nhiều vận động viên chạy nhanh nhất thì ghi tất cả các thứ tự tương ứng trên cùng một dòng

Ví dụ :

CHAYNHANH.INP

CHAYNHANH.OUT

5

1h24m56s

2h08m01s

1h32m0s

0h59m34s

1h15m49s

4

5/NĂM NHUẬN

-Nhập vào một số nguyên dương N

Hãy kiểm tra xem năm N có là năm nhuận hay không ?

-Nếu có ghi ‘Yes’

-Nếu không thì ghi ‘No’ và năm nhuận gần năm N nhất là năm nào ? In độ chênh lệch tương ứng

Ví dụ :

NAMNHUAN.INP

NAMNHUAN.OUT

1994

Yes

1999

No

+1

6/(5.1)SỐ NGÀY CỦA MỘT THÁNG

Nhập vào số tháng.

In ra số ngày của tháng đó.

Ví dụ :

DAYSOFM.INP

DAYSOFM.OUT

12

31

2 1990

28

7/(5.2) NGÀY HỢP LỆ

Nhập vào ba số a b c tương ứng là ngày tháng năm .

Hãy kiểm tra xem ngày đó có hợp lệ không

(Thế nào là ngày tháng hợp lệ ?)

Ví dụ :

DAYLIFE.INP

DAYLIFE.OUT

12 8 2013

1

31 4 1999

0

8/(5.3) NGÀY HỢP LỆ PRO

Nhập vào một xâu kí tự chỉ bao gồm các chữ số từ 0 đến 9 biểu diễn một ngày nào đó có thể hợp lệ hay không

Ví dụ :

- xâu 2311990 biểu diễn ngày 23 tháng 1 năm 1990, dễ thấy xâu kí tự này không thể biểu diễn hợp lệ một ngày tháng nào khác ?

- xâu 2112013 biểu diễn hai ngày khác nhau là :

ngày 2 – 11 – 2013 và ngày 21 – 1 2013

- xâu 5442014 không biểu diễn một tháng nào hợp lệ.

DAYLIFEPRO.INP

DAYLIFEPRO.OUT

2122013

Yes

2 – 11 – 2013

21 – 1 – 2013

5442014

No.

9/ TỔNG SỐ NGÀY

Tính tổng số ngày tính từ ngày A tháng B đến ngày C tháng D trong cùng một năm

Dữ liệu vào :

-Dòng 1: hai số nguyên A và B (A: số ngày, B: số tháng).

-Dòng 2: hai số nguyên C và D (C: số ngày, D: số tháng).

Dữ liệu ra :

-Dòng 1: tổng số ngày

Ví dụ :

SUMDAYS.INP

SUMDAYS.OUT

16 3

20 4

36

10/ SẮP XẾP NGÀY

Cho một danh sách N ngày (ngày-tháng-năm) .

Hãy sắp xếp các ngày theo thứ tự từ xa nhất đến gần nhất.

Dữ liệu vào :gồm N + 1 dòng

-Dòng 1: Ghi số nguyên dương N

-Dòng 2 .. Dòng N+1 : mỗi dòng ghi ba số A, B và C tương ứng với ngày – tháng – năm.

Dữ liệu ra :

-N dòng, mỗi dòng là một ngày – tháng – năm đã được sắp xếp.

Ví dụ :

SORTDATE.INP

SORTDATE.OUT

4

15 4 2013

8 9 2014

15 1 2003

7 2 1999

7 2 1999

15 1 2003

15 4 2013

8 9 2014

10

23 1 1900

02 12 2000

14 7 545

20 10 545

02 1 545

10 3 1900

27 4 2000

12 1 1900

12 5 2000

1 1 545

1
17 tháng 9 2019

Mình sẽ nêu ý tưởng nhé.

1/ Bạn chỉ cần áp dụng

1h=60p ; 1p=60 giây thôi

Ý 1: Bạn đổi h và p ra

Ví dụ : g=g+h*60*60;

g:=g+p*60;

Ý 2: Như ý 1 bạn chỉ cần chia tối đa của phút là 60 nếu > thì + dồn cho giờ

2/ Bạn đổi xâu sang thành số và nếu s[1] hoặc s[2] là số thì chuyển qua biến giờ . Tiếp theo chuyển phút. Và nhân như theo ý 1 bài 1.

3/ Áp dụng ý tưởng các câu 1 và 2 .

Các bài còn lại tương tự

17 tháng 9 2019

ok

Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương. Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn...
Đọc tiếp

Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương.

Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn nhất.

Dữ liệu vào: File tên HCN.OUT

- Dòng 1 ghi bốn số n, m, p, q được ghi cách nhau bởi dấu cách.

- n dòng tiếp theo, mỗi dòng ghi m số nguyên dương và cách nhau bởi dấu cách.

Dữ liệu ra: File HCN.OUT, chứa 1 dòng ghi một số nguyên duy nhất S là diện tích lớn nhất cần tìm.

HCN.INP

HCN.OUT

4 7 3 3

1 2 3 1 1 3 4

5 3 1 4 0 1 2

4 6 3 4 7 1 1

9 3 8 10 0 1 0

84

Ví dụ:

1

2

3

1

1

3

4

5

3

1

4

0

1

2

4

6

3

4

7

1

1

9

3

8

10

0

1

0

0
Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương. Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn...
Đọc tiếp

Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương.

Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn nhất.

Dữ liệu vào: File tên HCN.OUT

- Dòng 1 ghi bốn số n, m, p, q được ghi cách nhau bởi dấu cách.

- n dòng tiếp theo, mỗi dòng ghi m số nguyên dương và cách nhau bởi dấu cách.

Dữ liệu ra: File HCN.OUT, chứa 1 dòng ghi một số nguyên duy nhất S là diện tích lớn nhất cần tìm.

HCN.INP

HCN.OUT

4 7 3 3

1 2 3 1 1 3 4

5 3 1 4 0 1 2

4 6 3 4 7 1 1

9 3 8 10 0 1 0

84

Ví dụ:

1

2

3

1

1

3

4

5

3

1

4

0

1

2

4

6

3

4

7

1

1

9

3

8

10

0

1

0

1
1 tháng 5 2020

var n,m,i,j,p,q,k,tam:byte;
a:array[1..100,1..100] of integer;
b:array[1..10000] of integer;
f:text;
function tong(x,y:integer):integer;
var i,j:integer;
begin
tong:=0;
for i:=x to x+p-1 do
for j:=y to y+q-1 do
tong:=tong+a[i,j];
exit(tong);
end;
begin
assign(f,'HCN.inp');reset(f);
readln(f,n,m,p,q);
for i:=1 to n do
begin
for j:=1 to m do read(f,a[i,j]);
readln(f);
end;
close(f);
assign(f,'HCN.out');rewrite(f);
k:=0;
for i:=1 to n-q+1 do
begin
for j:=1 to m-p+1 do
begin
inc(k);
b[k]:=tong(i,j);
end;
end;
for i:=1 to k-1 do
for j:=k downto i+1 do
if b[j]>b[j-1] then
begin
tam:=b[j];
b[j]:=b[j-1];
b[j-1]:=tam;
end;
writeln(f,b[1]+b[2]);
close(f);
readln;
end.

vui

Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương. Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn...
Đọc tiếp

Cho một bảng các ô vuông đơn vị có kích thước nxm (n, m ≤ 100; n số hàng, m số cột của bảng). Trên mỗi ô vuông đơn vị chứa các số nguyên dương.

Yêu cầu: Hãy tìm ở bảng trên hai hình chữ nhật (có thể giao nhau nhưng không trùng khít lên nhau) có kích thước pxq (p<n; q<m; p là số hàng, q là số cột của hai hình chữ nhật con) sao cho tổng của tất cả các số trên hai hình chữ nhật là lớn nhất.

Dữ liệu vào: File tên HCN.OUT

- Dòng 1 ghi bốn số n, m, p, q được ghi cách nhau bởi dấu cách.

- n dòng tiếp theo, mỗi dòng ghi m số nguyên dương và cách nhau bởi dấu cách.

Dữ liệu ra: File HCN.OUT, chứa 1 dòng ghi một số nguyên duy nhất S là diện tích lớn nhất cần tìm.

HCN.INP

HCN.OUT

4 7 3 3

1 2 3 1 1 3 4

5 3 1 4 0 1 2

4 6 3 4 7 1 1

9 3 8 10 0 1 0

84

Ví dụ:

1

2

3

1

1

3

4

5

3

1

4

0

1

2

4

6

3

4

7

1

1

9

3

8

10

0

1

0

1
12 tháng 2 2020

bài này làm bằng Pascal hả anh?

13 tháng 2 2020

uk

Một trò chơi dành cho nhiều đội chơi được Ban tổ chức quy định như sau: bắt đầu cuộc chơi, Ban tổ chức cho chạy N số trên màn hình từ trái sang phải và yêu cầu đội chơi nào trả lời nhanh nhất số cách chia dãy số trên thành nhiều dãy con nhất sao cho các dãy con có tổng bằng nhau. Ví dụ: Trên màn hình chạy dòng 19 số: 1 0 2 0 0 3 1 1 1 0 2 1 0 0 2 1 2 0 1. Kết quả trả lời đúng là: tổng các...
Đọc tiếp

Một trò chơi dành cho nhiều đội chơi được Ban tổ chức quy định như sau: bắt đầu cuộc chơi, Ban tổ chức cho chạy N số trên màn hình từ trái sang phải và yêu cầu đội chơi nào trả lời nhanh nhất số cách chia dãy số trên thành nhiều dãy con nhất sao cho các dãy con có tổng bằng nhau.

Ví dụ: Trên màn hình chạy dòng 19 số: 1 0 2 0 0 3 1 1 1 0 2 1 0 0 2 1 2 0 1. Kết quả trả lời đúng là: tổng các số mỗi dãy con là 3, số dãy con nhiều nhất là 6, bao gồm các dãy con là: 1 0 2, 0 0 3, 1 1 1, 0 2 1, 0 0 2 1, 2 0 1

+Dữ liệu vào: File văn bản GAMESHOW.INP

- Dòng 1 chứa số nguyên dương N.

- Dòng 2 chứa N số chạy trên màn hình, các số cách nhau bởi dấu cách.

+ Dữ liệu ra: Ghi ra file văn bản GAMESHOW.OUT

- Dòng 1 là tổng các số của một dãy con.

- Dòng 2 là số K (số dãy con nhiều nhất chia được).

- Dòng 3 là các vị trí cuối cùng của từng dãy con, các số vị trí này cách nhau bởi dấu cách.

Ví dụ:

GAMESHOW.INP

GAMESHOW.OUT

19

1 0 2 0 0 3 1 1 1 0 2 1 0 0 2 1 2 0 1

3

6

3 6 9 12 16 19

1

const fi='gameshow.inp';
fo='gameshow.out';
var f1,f2:text;
a,b:array[1..100]of integer;
n,i,tg,d,s,x,j,vtd,vt:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{----------------------xu-ly------------------}
tg:=0;
for i:=1 to n do
tg:=tg+a[i];
for i:=n downto 1 do
if tg mod i=0 then
begin
d:=0;
s:=0;
x:=tg div i;
for j:=1 to n do
begin
s:=s+a[j];
if s=x then
begin
vt:=j;
inc(d);
b[d]:=vt;
s:=0;
end;
end;
if s=0 then
begin
b[d]:=n;
break;
end;
end;
writeln(f2,x);
writeln(f2,d);
for i:=1 to d do
write(f2,b[i],' ');
close(f1);
close(f2);
end.

8 tháng 4 2017

Mình thử trả lời các bạn xem có đúng ko nha!!!

__________

program CP;

var scs,tong,m,i,z,k:longint;

A:array[1..10000000] of longint;

f:text;

begin

assign(f, 'CP.INP');

reset(f);

readln(f,m);

for i:=1 to m do read(f,A[i]);

close(f);

tong:=0;

scs:=0;

for z:=1 to m do

for k:=1 to A[z] do

if (k*k=A[z]) then

begin

scs:=scs+1;

tong:=tong+A[z];

end;

assign(f, 'CP.OUT');

rewrite(f);

if (scs<>0) then writeln(f, tong) else writeln(f, '0');

close(f);

end.

câu 1 Một bạn học sinh Trường THCS A nhận đánh máy một đoạn văn bản không dấu, ở dạng nét liền (Dạng văn bản nét liền là dạng văn bản được đánh máy chỉ với các từ, không có khoảng trắng ngăn cách (dấu cách)), nhưng do sơ xuất nên đoạn văn bản này được đánh máy không ở dạng như yêu cầu. Em hãy chuyển đoạn văn bản trên về dạng theo yêu cầu và kiểm tra xem đoạn văn bản...
Đọc tiếp

câu 1

Một bạn học sinh Trường THCS A nhận đánh máy một đoạn văn bản không dấu, ở dạng nét liền (Dạng văn bản nét liền là dạng văn bản được đánh máy chỉ với các từ, không có khoảng trắng ngăn cách (dấu cách)), nhưng do sơ xuất nên đoạn văn bản này được đánh máy không ở dạng như yêu cầu. Em hãy chuyển đoạn văn bản trên về dạng theo yêu cầu và kiểm tra xem đoạn văn bản đó có phải là xâu Palindrome hay không? (xâu Palindrome là xâu mà khi viết nó theo thứ tự ngược lại thì xâu đó không thay đổi)

Dữ liệu vào từ file: hsg2.inp

Dòng 1: Đoạn văn bản

Dữ liệu ra file: hsg2.out

Dòng 1: Đoạn văn bản theo yêu cầu.

Dòng 2: Trả lời xâu Palindrome?

Ví dụ:

Dữ liệu vào từ file: hsg2.inp

Dòng 1: Tam mat

Dữ liệu ra file: hsg2.out

Dòng 1: Tammat

Dòng 2: Là xâu Palindrome

Dữ liệu vào từ file: hsg2.inp

Dòng 1: 12 12

Dữ liệu ra file: hsg2.out

Dòng 1: 1212

Dòng 2: Không là xâu Palindrome

câu 2

Người ta định nghĩa, một hằng số được coi là số thực nếu ngoài các số chữ số ra nó còn có dấu chấm ( . ) hoặc một số mũ ( bắt đầu bởi e hay E thường được gọi là số luỹ thừa ) hoặc cả hai. Nếu có dấu chấm ( . ) thì mỗi bên của dấu chấm phải có ít nhất một chữ số. Ngoài ra, ở trước số và trong số mũ còn có thể có một dấu cộng ( + ) hoặc trừ ( - ). Phần số luỹ thừa phải là số nguyên. Số thực có thể có các khoảng trống ở trước hoặc sau nhưng bên trong thì không. Hằng số thực không có giới hạn về giá trị.

Viết chương trình kiểm tra xem các chuỗi kí tự cho trước có phải là những số thực theo định nghĩa trên đây hay không?

Dữ liệu vào:

Dữ liệu vào cho trong tập tin văn bản HSG4.INP gồm nhiều dòng cho nhiều trường hợp cần kiểm tra. Mỗi dòng chứa một chuỗi kí thự Si là chuỗi cần kiểm tra. Dòng cuối cùng chứa kí tự ' * ', dòng này không được xét trong chương trình.Mỗi dòng tối đa 255 kí tự. Dữ liệu ra:

Kết quả ghi trong tập tin văn bản HSG4.OUT gồm nhiều dòng. Mỗi dòng chứa câu trả lời là "DUNG" hoặc "SAI" tương ứng với một dòng trong tập tin HSG4.INP.

Ví dụ:

HSG4.INP

HSG4.OUT

1.2

5.300

1

1.0e55

+1e-12

2011

e-12 *.

DUNG

DUNG

SAI

DUNG

DUNG

SAI

SAI

câu 3

Nhập một xâu kí tự S khác rỗng.

Yêu cầu: - Đếm trong xâu có bao nhiêu từ.

- Thực hiện chuẩn hoá xâu. Tức là xoá các dấu cách thừa và chuyển các chữ cái đầu thành chữ hoa, những ký tự khác thành chữ thường.

Dữ liệu vào: Được cho trong tệp BAI1.INP gồm 1 dòng ghi xâu S

Dữ liệu ra: Kết quả ghi ra tệp BAI1.OUT có cấu trúc như sau:

- Dòng 1: Ghi số lượng từ có trong xâu S.

- Dòng 2: Ghi xâu S sau khi đã được chuẩn hoá.

Ví dụ:

BAI1.INP

BAI1.OUT

pHong giAo duC vA daO tAo vInh tUong

8

Phong Giao Duc Va Dao Tao Vinh Tuong

1
27 tháng 8 2019

1: while pos(#32,s)>0 do delete(s,pos(#32,s),1);

Còn kiểm tra palindom thì đầu tiên cho kiểm tra là true, chạy for từ đầu đến length div 2, nếu s[i] khác s[length-i+1] thì kiểm tra false, còn lại tự biết.

2: Các trường hợp sai

-Không có chấm hoặc nhiều hơn 1 chấm.

-1 trong 2 bên dấu chấm không phải là số hoặc 1 trong 2 bên không có số.

-dấu + hoặc - đặt sai vị trí (ko đặt đầu xâu, bên phải chữ e, giữa số mũ).

-Xuất hiện 1 kí tự khác e, +, -, số, khoảng cách.

-Xuất hiện khoảng cách giữa xâu

(Mình nghĩ vậy)

3. S:=lowercase(s); đưa s về xâu thường.

Chèn khoảng cách (#32) vô đầu xâu cho dễ xử lí: gọi s là xâu nhập vào, i là biến chạy, nếu s[i+1] không phải khoảng cách và s[i] là khoảng cách thì tăng đếm và upcase s[i+1] lên, đếm là số in ra

Cuối cùng là xóa khoảng cách thừa bằng:

While pos(#32#32,s)>0 do deletes(s,pos(#32#33,s),1);

If s[1]=#32 then delete(s,1,1);

If s[length(s)]=#32 then delete(s,length(s),1);

(#32 là dấu khoảng cách theo bảng mã ascii)

28 tháng 8 2019

có thể viết rõ ra từng chi tiết hơn không