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 3 2022

var n,T,m,i : byte;

       s:string;

       code:integer;

 begin 

 write('n = '); readln(n); str(n,S);

 write(n, ' có ',length(s),' chữ số');  {Hết câu a}

for i:=1 to length(S) do begin

                                     val(S[i],m,code);

                                      if m mod 2 = 0 then T:=T+m;

                                      end;

write('Tổng các chữ số chẵn của ',n,' bằng : S = ',S); {Hết câu b}

readln

end.

 

23 tháng 3 2022

Ở dòng 'Hết câu b' sửa S thành T giúp mình

const fi='bai1.inp';

fo='bai1.out';

var f1,f2:text;

a:array[1..100]of integer;

n,i,t,dem: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]);

t:=0;

dem:=0;

for i:=1 to n do 

  begin

if a[i] mod 2<>0 then t:=t+a[i]

else inc(dem);

end;

writeln(f2,'Tong cac so le la: ',t);

writeln(f2,'So so chan la: ',dem);

close(f1);

close(f2);

end.

15 tháng 5 2023

Program HOC24;

var i,n: integer;

t: longint;

f1,f2: text;

begin

assign(f1,'BAI1.INP');

reset(f1);

read(f1,n);

t:=0;

for i:=1 to n do if i mod 2=0 then t:=t+i;

close(f1);

assign(f2,'BAI1.OUT');

rewrite(f2);

write(f2,t);

close(f2);

end.

BÀI TẬP THỰC HÀNH – DỮ LIỆU KIỂU TỆP Câu 1: Cho tệp BAI1.INP có cấu trúc như sau:- Gồm 1 dòng chứa độ dài 2 cạnh của hình chữ nhậtEm hãy lập chương trình tính diện tích hình chữ nhật đó . Kết quả in ra màn hình đúng đến 2 chữ số thập phân? Câu 2: Cho tệp BAI2.INP có cấu trúc như sau:- Gồm 1 dòng chứa độ dài 2 cạnh của hình chữ nhậtEm hãy lập chương trình tính diện tích hình chữ...
Đọc tiếp

BÀI TẬP THỰC HÀNH – DỮ LIỆU KIỂU TỆP

 

Câu 1: Cho tệp BAI1.INP có cấu trúc như sau:

- Gồm 1 dòng chứa độ dài 2 cạnh của hình chữ nhật

Em hãy lập chương trình tính diện tích hình chữ nhật đó . Kết quả in ra màn hình đúng đến 2 chữ số thập phân?

 

Câu 2: Cho tệp BAI2.INP có cấu trúc như sau:

- Gồm 1 dòng chứa độ dài 2 cạnh của hình chữ nhật

Em hãy lập chương trình tính diện tích hình chữ nhật đó . Kết quả ghi vào tệp BAI2.OUT

đúng đến 2 chữ số thập phân?

 

Câu 3: Cho tệp BAI3.INP có cấu trúc như sau:

- Gồm N  dòng chứa độ dài 2 cạnh của hình chữ nhật

Em hãy lập chương trình tính diện tích hình chữ nhật đó . các kết quả ghi vào tệp BAI3.OUT đúng đến 2 chữ số thập phân?

 

Câu 4: Cho tệp BAI4.INP chứa 3 số nguyên a,b,c lần lượt là độ dài của 3 cạnh tam giác. Hãy lập chương trình tính chu vi, diện tích của tam giác đó .Kết quả ghi vào tệp BAI4.OUT có cấu trúc như sau:

BAI4.INP

BAI4.OUT

3   4     5

Chu vi=…..

Dien tich =……

 

 

Câu 5: Cho tệp BAI5.INP chứa duy nhất số nguyên dương M . Hãy lập chương trình kiểm tra M là số chẵn hay số lẻ .Kết quả ghi vào tệp BAI5.OUT có cấu trúc như sau:

BAI5.INP

BAI5.OUT

7

7 la so le

 

Câu 6: Cho tệp BAI6.INP có cấu trúc như sau :

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

-Dòng 2: là dãy N số nguyên dương a1, a2, …..an

Hãy lập chương trình ghi vào tệp BAI6.OUT :

-Dòng 1: Dãy số nguyên a1,a2,a3,…,an

-Dòng 2: Các số chẵn của dãy số

-Dòng 3: Số phần tử >10

-Dòng 4: Tổng các phần tử của dãy

BAI6.INP

BAI6.OUT

5

4     6     23      1       5

Dãy số nguyên có dạng :4    16     23      1       5

Các số chẵn của dãy số là  4      16

Số phần tử lớn hơn 10 là:  2

Tổng các phần tử của dãy là: 49

Câu 7: Cho tệp BAI7.INP có cấu trúc như sau :

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

-Dòng 2: là dãy N số nguyên dương a1, a2, …..an

Hãy lập chương trình ghi vào tệp BAI7.OUT :

-Dòng 1: Dãy số nguyên a1,a2,a3,…,an

-Dòng 2: Các số lẻ của dãy số

-Dòng 3: Số phần tử =0

-Dòng 4: Tổng các phần tử của dãy

BAI7.INP

BAI7.OUT

8

4      0     6     23      0      1       5      0   

Dãy số nguyên có dạng : 4      0     6     23      0      1       5      0   

Các số lẻ của dãy số là  23       1            5

Số phần tử bằng 0   là:  3

Tổng các phần tử của dãy là: 49

 

 

 

 

 

 

 

 

7

Câu 1: 

uses crt;

const fi='bai1.inp';

var f1:text;

a,b:real;

begin

clrscr;

assign(f1,fi); reset(f1);

readln(f1,a,b);

writeln(a*b:4:2);

close(f1);

readln;

end.

Câu 2: 

const fi='bai2.inp';

fo='bai2.out';

var f1,f2:text;

a,b:real;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,a,b);

writeln(f2,a*b:4:2);

close(f1);

close(f2);

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

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.

6 tháng 4 2017

uses crt;
const finp='Bai1.inp';
fout='Bai1.out';
type mangc=array[1..10000] of char;
mangl=array[1..10000] of longint;
var f:text;
ch:mangc; a:mangl;
n:longint;
procedure doc;
var i:longint;
begin
assign(f,finp);
reset(f);
readln(f,n);
for i:=1 to n do read(f,ch[i]);
close(f);
end;
procedure ghi;
begin
assign(f,fout);
rewrite(f);
end;
procedure tim;
var i,j,d,k,l:longint;
begin
for i:=n-2 downto 1 do
begin
a[i]:=1;
d:=0;
for j:=i+1 to n do
begin
l:=a[j];
if ch[i]=ch[j] then a[j]:=d+2
else if a[j-1]>a[j] then a[j]:=a[j-1];
d:=l;
end;
end;
end;
procedure xuly;
var i:longint;
begin
fillchar(a,sizeof(a),0);
if n=1 then a[n]:=1
else begin
a[n-1]:=1;
a[n]:=ord(ch[n]=ch[n-1])+1;
end;
if n>2 then tim;
write(f,n-a[n]);
end;
begin
doc;
ghi;
xuly;
close(f);
end.

ai có thể giải thích cho mình bài này đc không

nhất là cái "procedure tim" và mục đích của mảng số nguyên a

mk cảm ơn nhiều

uses crt;

const fi='dulieu.inp';

var f1:text;

a:array[1..100]of integer;

n,i,t1,t2:integer;

begin

clrscr;

assign(f1,fi); reset(f1);

readln(f1,n);

for i:=1 to n do 

  read(f1,a[i]);

t1:=0;

t2:=0;

for i:=1 to n do 

 begin

if a[i]>0 then t1:=t1+a[i];

if a[i]<0 then t2:=t2+a[i];

end;

writeln('Tong cac so duong la: ',t1);

writeln('Tong cac so am la: ',t2);

close(f1);

readln;

end.

QT
Quoc Tran Anh Le
Giáo viên
9 tháng 11 2023

Có thể tạo tệp “bangDiem.txt" bằng cách chỉnh sửa và bổ sung bảng trong Hình la ở Bài 2; từ Word hay Excel, thao tác Copy\Paste vào cửa sổ của Notepad hay cửa sổ soạn thảo của Python; ghi lưu thành tệp có định dạng text.

- Đọc từng dòng của tập đầu vào.

- Chuyển đổi mỗi mục của danh sách sang kiểu dữ liệu cần thiết và nối thêm vào danh sách tương ứng trong chương trình (tham khảo chương trình ở Hình 4).

Trong Python, nếu một dòng gồm nhiều mục khác kiểu dữ liệu, xen kẽ nhau, thì phải truy cập từng phần tử của danh sách và chuyển từ xâu kí tự thành kiểu dữ liệu đúng mô tả.

Các thao tác với tệp dữ liệu

Đầu vào là tệp thuần văn bản chữ và số (đuôi tên tệp “txt”) gồm nhiều dòng; mỗi dòng gồm nhiều từ, mỗi từ là một mục dữ liệu, phân cách bằng khoảng trống.

Các bước thực hiện như sau:

Bước 1. Mở tệp để đọc hay viết, sử dụng hàm open () như ví dụ ở Hình 5.

Bước 2. Đọc từ tệp, có thể dùng các phương thức read(), readline(), readlines() kết hợp với split():

read().split() : Đọc từng từ và nối liền toàn bộ các dòng thành một danh sách các từ. Sử dụng khi tệp ngắn và cần xử lí toàn bộ nội dung tệp.

readline().split() : Đọc một dòng, trả về danh sách các từ, thường dùng nhất. readlines() : Đọc toàn bộ tệp, trả về danh sách các dòng, mỗi dòng là một xâu kí tự, kết thúc bằng ‘\n (dấu xuống dòng).

Bước 3. Xuất ra tệp thuần văn bản: có thể dùng hàm print, sau khi đã chuyển đầu ra chuẩn từ màn hình sang tệp đã mở để viết vào như sau:

Bước 4. Đóng tệp, dùng phương thức close().

Lưu ý: Nếu giữa các từ được phân cách nhau bằng dấu phẩy thì ta có tệp kiểu “csv” (comma separated value) và cần dùng split(',') thay vì dạng mặc định split(). Cần chuyển thành kiểu danh sách (hay mảng) nên sẽ kết hợp xử lí bằng split(',').