Chủ đề F. Bài 13. Thực hành dữ liệu kiểu xâu

Thực hành dữ liệu kiểu xâu sách bài tập Tin Học lớp 10Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 13. Thực hành dữ liệu kiểu xâu.

Câu F63

Xoá kí tự. Xét bài toán: Cho xâu s và kí tự c. Tạo xâu mới từ s bằng cách xoá các kí tự c trong xâu s. Viết chương trình nhập xâu s và kí tự c vào từ bàn phím và thực hiện bài toán trên.

Dữ liệu: Nhập vào từ bàn phím xâu s và kí tự c.

Kết quả: Đưa ra màn hình kết quả nhận được.

Ví dụ:

InputOutput
123c45c6c78c
c
12345678

Đáp án:

Tham khảo chương trình sau:

s = input()
c = input()
w = s.replace(c, ' ')
print(w)

Câu F64

Rút ngắn xâu. Xét bài toán: Cho xâu s. Tạo xâu mới từ s bằng cách xoá các kí tự tại những vị trí chia hết cho 3. Viết chương trình nhập xâu s từ bàn phím và thực hiện bài toán trên.

Dữ liệu: Nhập vào từ bàn phím xâu s.

Kết quả: Đưa ra màn hình kết quả nhận được.

Ví dụ:

InputOutput
12345678901234235689124

Đáp án:

Tham khảo chương trình sau:

s = input()
r = ' '
for i in range (len(s)):
   if i%3 != 0:
      r = r + s[i]
print(r)

Câu F65

Tìm và thay thế xâu con

a) Xét bài toán: Cho văn bản t. Tìm và thay thế xâu con old bằng xâu con new trong t. Việc thay thế sẽ được thực hiện cho đến khi văn bản không còn chứa old. Viết chương trình nhập xâu t vào từ bàn phím và thực hiện bài toán trên.

Dữ liệu: Nhập vào từ bàn phím

  • Dòng thứ nhất chứa văn bản t.
  • Dòng thứ hai chứa xâu old.
  • Dòng thứ ba chứa xâu new.

Kết quả: Đưa ra màn hình văn bản sau khi thay thế

Ví dụ:

InputOutput
BBc Aaa bBbc caa Bbc DEF
Bbc
BBc
BBc Aaa bBBc caa BBC DEF

b) Bàn phím và màn hình là thiết bị vào – ra chuẩn của hệ thống. Khi thực hiện chương trình với dữ liệu kích thước lớn, việc nhập dữ liệu từ bàn phím là không khả thi hoặc không thuận lợi. Dữ liệu có thể chuẩn bị sẵn trên file văn bản và dùng file đó thay thế cho bàn phím. Tương tự như vậy, kết quả có thể đưa ra file văn bản thay thế cho màn hình. Nếu file input có tên “input.txt” và file output có tên là “output.txt” thì việc thay thế thiết bị chuẩn có dạng:

import sys
fi = open("input.txt")
f0 = open("output.txt","w", encoding="utf-8")
sys.stdin = fi
sys.stdout = fo

Em hãy soạn file “input.txt” với nội dung nêu ở mục a) và thực hiện nhiệm vụ nêu ở mục a) với việc thay thế bàn phím, màn hình bằng các file “input.txt”, “ouput.txt”.

Đáp án:

a) Tham khảo chương trình sau:

t = input()
old = input()
new = input()
k = len(old)
p = t.find(old)
while p >= 0:
   t = t[:p] + new + t[p+k:]
   p = t.find(old)
print(t)

b) Tham khảo chương trình sau:

import sys
fi = open("input.txt")
fo = open("output.txt", "w", encoding="utf-8")
sys.stdin = fi
sys.stdout = fo
t = input()
old = input()
new = input()
k = len(old)
p = t.find(old)
while p >= 0:
   t = t[:p] + new + t[p+k:]
   p = t.find(old)
print(t)
fo.close() #Câu lệnh phải có
fi.close() #Không nhất thiết phải có

Câu F66

Số chữ số 0. Xét bài toán: Cho số nguyên dương n. Hãy xác định số chữ số 0 có trong dạng biểu diễn thập phân của n giai thừa. Viết chương trình nhập vào số nguyên dương n từ bàn phím và thực hiện bài toán trên.

Dữ liệu: Nhập vào từ bàn phím số nguyên dương n.

Kết quả: Đưa ra màn hình một số nguyên là số lượng chữ số 0 xác định được.

Gợi ý: Dùng hàm factorial () trong thư viện math và hàm đổi số sang xâu str (n).

Ví dụ:

InputOutput
164

Đáp án:

Tham khảo chương trình sau:

from math import fatorial
n = int(input())
s = str(factorial(n))
print(s.count('0'))

Câu F67

Chuẩn hoá. Xét bài toán: Cho xâu chứa nhiều từ, mỗi từ là dãy các kí tự liên tiếp không chứa dấu cách, giữa các từ cách nhau một số dấu cách. Hãy đưa xâu về dạng chuẩn hoá với các đặc điểm:

Không có các dấu cách trước từ đầu tiên và sau từ cuối cùng

Các từ cách nhau đúng một dấu cách.

Chữ cái đầu tiên của mỗi từ được viết hoa.

Các chữ cái còn lại trong từ được viết thường.

Viết chương trình nhập vào từ bàn phím một xâu chưa chuẩn hoá và thực hiện chuẩn hoá xâu.

Dữ liệu: Nhập vào từ bàn phím một dòng chứa xâu cần chuẩn hoá.

Kết quả: Đưa ra màn hình xâu đã chuẩn hoá.

Gợi ý: Sử dụng các lệnh upper(), lower() để có kí tự hoa hay thường.

Ví dụ:

Inputbuôn tÀU buôn bè kHônG bằng ăn dè hà tiện
OutputBuôn Tàu Buôn Bè Không Bằng Ăn Dè Hà Tiện

Đáp án:

Tham khảo chương trình sau:

import sys
fi = open("input.txt", encoding="utf-8")
f0 = open("output.txt", "w", encoding="utf-8")
sys.stdin = fi
sys.stdout = fo
r = ' '
sp = ' '
for w in input().split():
   r = r + sp + w[0].upper() + w[1:len(w)].lower()
   sp = ' '
print(r)
fo.close()

Câu F68

Đảo dấu vàng. Thuyền trưởng Flint cho tàu ghé lại một hòn đảo để chôn dấu bớt vàng bạc châu báu cướp được. Để giữ bí mật nơi chôn kho báu, sau khi xuống tàu, Flint dẫn thuộc hạ đi về phía trước, được một đoạn ra lệnh rẽ phải hoặc trái rồi đi tiếp, theo hướng nhìn. Một thuộc hạ của Flint đã bí mật ghi lại đường đi dưới dạng xâu kí tự từ tập {E, N, W, S}, mỗi kí tự tương ứng với một hướng đi (Đông, Bắc, Tây, Nam) và tương ứng với một đơn vị độ dài của đường đi. Cho biết xâu ghi nhận đường đi. Hãy viết chương trình xác định khoảng cách từ bến tàu đến nơi chôn kho báu và đưa ra với độ chính xác đến hai chữ số thập phân sau dấu phẩy.

Dữ liệu: Gồm một dòng chứa xâu kí tự xác định đường đi được nhập vào từ thiết bị vào chuẩn của hệ thống.

Kết quả: Đưa ra thiết bị ra chuẩn khoảng cách tìm được với độ chính xác đến hai chữ số thập phân sau dấu phẩy.

Ví dụ:

InputOutput
EENNNWWWNNEESSEEEENN7.07

Đáp án:

Tham khảo chương trình sau:

import sys
fi = open("input.txt", encoding="utf-8")
fo = open("output.txt", "w", encoding="utf-8")
sys.stdin = fi
sys.stdout = fo
from math import sqrt
s = input()
x = s.count('E') - s.count('W')
y = s.count('N') - s.count('S')
print(round(sqrt(x*x + y*y),2))
fo.close()

Xem thêm các bài khác tại Giải Sách bài tập Tin học Lớp 10 – Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x