cho tệp thiHK.dat gồm 10 dòng mỗi dòng gồm ba giá trị a,b,c trong đó a là số báo danh b là điểm lí thuyết c là điểm thực hành viết chương trình đọc dữ liệu từ tệp thiHK.dat rồi tính tổng điểm của thí sinh ( tổng điểm = lí thuyết + thực hành x2 ) ghi kết quả vào tệp kết quả.dat gồm hai thông tin (sbd và tổng điểm )

1 câu trả lời

chippi thường xuyên tham gia thi lập trình trên mạng. Vì đạt được thành tích cao nên được gửi tặng một phần mềm diệt virus. Nhà sản xuất phần mềm cung cấp cho  một mã số là một dãy gồm các bộ ba chữ số ngăn cách nhau bởi dấu chấm và có chiều dài không quá 255 (kể cả chữ số và dấu chấm). Để cài đặt được phần mềm, chippi phải nhập vào mật khẩu của phần mềm. Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các bộ ba chữ số trong dãy mã số, các bộ ba này được đọc từ phải sang trái.

-          Yêu cầu: Cho biết mã số của phần mềm, hãy tìm mật khẩu của phần mềm đó.

-          Dữ liệu vào: Cho từ tệp văn bản có tên BL2.INPgồm một dòng chứa xâu ký tự S (độ dài xâu không quá 255 ký tự) là mã số của phần mềm.

-          Kết quả: Ghi ra tệp văn bản có tên BL2.OUTgồm một số nguyên là mật khẩu tìm được.

Chương trình tham khảo:

ProgramBL2;

Constfin ='BL2.INP';

fout='BL2.OUT';

VarS:String;

i,Sum,T:Longint;

f:Text;

Begin

Assign(f,fin);

Reset(f);

Read(f,S);

Close(f);

Sum:=0;

T:=0;

Fori:=Length(S) downto1 do

IfS[i] in['0'..'9'] thenT:=T*10+(ord(S[i])-48)

Else

Begin

Sum:=Sum+T;

T:=0;

End;

Sum:=Sum+T;

Assign(f,fout);

ReWrite(f);

Write(f,Sum);

Close(f);

End.

TRÒ CHƠI VỚI BĂNG SỐ.

Trên một cuộn giấy dài, người ta lần lượt viết N số nguyên dương, giá trị mỗi

số không vượt quá 10000000.

-          Yêu cầu: Hãy cắt cuộn giấy thành nhiều đoạn nhất sao cho tổng các số được

-          viết trong các đoạn là bằng nhau.

-          Dữ liệu vào: Cho từ tệp văn bản có tên BL3.INPcó dạng như sau:

·         Dòng đầu tiên ghi số nguyên dương N(1≤N≤10000).

·         Dòng thứ hai ghi N số nguyên theo thứ tự là các số được viết trên cuộn giấy, các số nguyên cách nhau ít nhất một dấu cách.

-          Kết quả: Ghi ra tệp văn bản có tên BL3.OUTgồm một dòng ghi một số nguyên là số đoạn nhiều nhất có thể chia được.

Ví dụ:

BL3.INP

BL3.OUT

8

10 2 6 2 5 2 1 2

3

Giải thích:

+ Đoạn 1: 10

+ Đoạn 2: 2 + 6 + 2 =10

+ Đoạn 3: 5 + 2 + 1 + 2 = 10

Chương trình tham khảo:

ProgramBL3;

Constfin ='BL3.INP';

fout='BL3.OUT';

Vara:array[1..1000] ofLongint;

N,K,i,S,tong:Longint;

f:Text;

Begin

Assign(f,fin);

Reset(f);

Readln(f,N);

Fori:=1 toN doRead(f,a[i]);

Close(f);

S:=0;

Fori:=1 toN doS:=S+a[i];

ForK:=N downto1 do

IfS modK=0 then

Begin

tong:=0;

Fori:=1 ton do

Begin

tong:=tong+a[i];

Iftong=S divK thentong:=0;

End;

Iftong=0 thenBreak;

End;

Assign(f,fout);

ReWrite(f);

Write(f,K);

Close(f);

End.

 

 

KHOẢNG CÁCH

Trong soạn thảo văn bản, theo quy ước giữa các từ chỉ nên cách nhau bằng một khoảng cách. Tuy nhiên trên thực tế vẫn có những trường hợp ngoại lệ.

-          Yêu cầu: Cho trước một xâu ký tự S chỉ gồm các chữ cái và các khoảng cách. Hãy cho biết có nhiều nhất bao nhiêu khoảng cách đi liền nhau trong xâu S.

-          Dữ liệu vào: Cho từ tệp văn bản có tên BL3.INPgồm một dòng ghi xâu S (độ dài xâu không quá 250 ký tự).

-          Kết quả: Ghi ra tệp văn bản có tên BL3.OUTgồm một số nguyên duy nhất là số khoảng cách nhiều nhất đi liền nhau.

Chương trình tham kh ảo:

Program BL3;

Const fin ='BL3.INP';

fout='BL3.OUT';

Var S:String;

i,d,max:Integer;

f:Text;

Begin

Assign(f,fin);

Reset(f);

Read(f,S);

Close(f);

max:=0;

d:=0;

S:=S+'a';

For i:=1 to length(S) do

If S[i]=' ' then d:=d+1

Else

Begin

If d>max then max:=d;

d:=0;

End;

Assign(f,fout);

ReWrite(f);

Write(f,max);

Close(f);

End.

DÃY TĂNG

Một dãy số a1, a2, …, anđược gọi là dãy tăng nếu như nó thỏa điều kiện:

a1< a2< … < an

-          yêu cầu; Cho dãy số nguyên a1, a2, …, an. Hãy cho biết dãy số này có phải là dãy tăng hay không? Nếu không phải dãy tăng thì hãy cho biết chỉ số k nhỏ nhất của phần tử làm cho dãy không có tính chất của dãy tăng.

-          Dữ liệu vào: Cho từ tệp văn bản có tên BL4.INPcó dạng như sau:

·         Dòng đầu tiên ghi số nguyên n(1<n≤1000)

·         Dòng thứ hai ghi dãy n số nguyên a1, a2, …, an(-1000 ≤ ai≤ 1000, i=1..n)

-          Kết quả: Ghi ra tệp văn bản có tên BL4.OUTgồm một số nguyên duy nhất k.

Trường hợp dãy đã cho là dãy tăng thì ghi số 0.

Chương trình tham khảo:

Program BL4;

Const fin ='BL4.INP';

fout='BL4.OUT';

Var A:Array[0..1001] of Longint;

n,i:Longint;

f:Text;

Begin

Assign(f,fin);

Reset(f);

Readln(f,n);

For i:=1 to n do Read(f,a[i]);

Close(f);

i:=1;

While (i<=n-1) and (a[i]<a[i+1]) do i:=i+1;

Assign(f,fout);

ReWrite(f);

If i<=n-1 then Write(f,i+1)

Else Write(f,0);

Close(f);

Câu hỏi trong lớp Xem thêm