cho tệp văn bản songuyen.inp gồm một dong lưu hai số nguyên x, y phân cách nhau ít nhất một dấu cách.
yêu cầu đọc dữ liệu từ tệp. tìm và đưa ra ƯCLN ra màn hình
cho tệp songuyen.inp chứa dãy các số nguyên ( mỗi số cách nhau một dấu cách). Đọc dữ liệu từ tệp đã cho và
a) Tính tổng các số lẻ trong tệp và đưa kết quả lên màn hình.
b) tính tổng các số lẻ trong tệp và ghi kết quả vào tệp songuyen2
c) đưa ra màn hình các số lẻ trong tệp
uses crt;
const fi='songuyen.inp'
fo='songuyen2.out'
var a:array[1..100]of integer;
i,n,t1:integer;
f1,f2:text;
begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do readln(f1,a[i]);
t1:=0;
for i:=1 to n do if a[i] mod 2<>0 then t1:=t1+a[i];
writeln(t1);
writeln(f2,t1);
for i:=1 to n do
if a[i] mod 2<>0 then write(a[i]:4);
close(f1);
close(f2);
readln;
end.
Cho tệp văn bản HCN.INP gồm nhiều dòng, mỗi dòng chứa 2 số nguyên (các số cách nhau ít nhất một dấu cách) tương ứng là chiều dài và chiều rộng của một hình chữ nhật. Lập trình đọc dữ liệu từ tệp này, tính chu vi và diện tích hình chữ nhật. Kết quả ghi ra tệp HCN.OUT, mỗi dòng ghi hai giá trị tương ứng là chu vi và diện tích của hình chữ nhật, các giá trị cách nhau ít nhất một dấu cách.
const fi='hcn.inp'
fo='hcn.out'
var f1,f2:text;
a,b:array[1..100]of integer;
i,j,n:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eof(f1) do
begin
inc(n);
readln(f1,a[n],b[n]);
end;
for i:=1 to n do
writeln(f2,2*(a[i]+b[i]),' ',a[i]*b[i]);
close(f1);
close(f2);
end.
Cho tệp văn bản HCN.INP gồm nhiều dòng, mỗi dòng chứa 2 số nguyên (các số cách nhau ít nhất một dấu cách) tương ứng là chiều dài và chiều rộng của một hình chữ nhật. Lập trình đọc dữ liệu từ tệp này, tính chu vi và diện tích hình chữ nhật. Kết quả ghi ra tệp HCN.OUT, mỗi dòng ghi hai giá trị tương ứng là chu vi và diện tích của hình chữ nhật, các giá trị cách nhau ít nhất một dấu cách.
mọi người ơi giúp em với ạ
const fi='hcn.inp'
fo='hcn.out'
var f1,f2:text;
a,b:array[1..100]of integer;
i,j,n:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eof(f1) do
begin
inc(n);
readln(f1,a[n],b[n]);
end;
for i:=1 to n do
writeln(f2,2*(a[i]+b[i]),' ',a[i]*b[i]);
close(f1);
close(f2);
end.
Cho tệp SN3.INP chứa n số nguyên dương (mỗi số cách nhau một dấu cách trên một dòng). Viết chương trình đọc dữ liệu từ tệp đã cho Tính ƯCLN dãy các số nguyên dương đó và lưu kết quả vào tệp UC.OUT .
#include <bits/stdc++.h>
using namespace std;
unsigned long long a[1000],i,n,uc;
//chuongtrinhcon
unsigned long long ucln(long long a,long long b)
{
if (b==0) return(a);
else return(ucln(b,a%b));
}
//chuongtrinhchinh
int main()
{
freopen("sn3.inp","r",stdin);
freopen("uc.out","w",stdout);
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
uc=ucln(a[1],a[2]);
for (i=3; i<=n; i++)
uc=ucln(uc,a[i]);
cout<<uc;
return 0;
}
tệp sn.inp gồm các số nguyên dương ngăn cách nhau bởi ít nhất một dấu cách. các số nguyên là cạnh a,b của hình chữ nhật. viết chương trình đọc dữ liệu từ tệp sn.inp vào hai biến a,b. tính diện tích hình chữ nhật. ghi kết quả vào tệp cn.out
#include <bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
freopen("sn.inp","r",stdin);
freopen("cn.out","w",stdout);
cin>>a>>b;
cout<<a*b;
return 0;
}
cho tẹp dulieu.txt gồm nhiều dòng, chứa 2 số nguyên. viết ct đọc dữ liệu từ tệp DULIEU.TXT tìm max mỗi dòng rồi đưa ra màn hình
uses crt;
const fi='dulieu.txt'
var f1:text;
a,b:array[1..100]of integer;
i,n:integer;
begin
clrscr;
assign(f1,fi); reset(f1);
n:=0;
while not eof(f1) do
begin
n:=n+1;
readln(f1,a[n],b[n]);
end;
for i:=1 to n do
if a[i]<b[i] then writeln(b[i])
else writeln(a[i]);
readln;
end.
Cho dãy số nguyên A[1], A[2], …, A[n], các số đôi một khác nhau và số nguyên dương k (1 ≤ k ≤ n). Hãy đưa ra gá trị nhỏ thứ k trong dãy.
Dữ liệu vào: Tệp văn bản MINK.INP gồm:
+ Dòng đầu ghi hai số nguyên n và k (1 ≤ k ≤ n ≤ 105) cách nhau một dấu cách.
+ Dòng thứ hai ghi n số nguyên A[1], A[2], …, A[n] có giá trị tuyệt đối không vượt quá 106, giữa các số cách nhau một dấu cách.
Kết quả ra: Đưa ra tệp văn bản MINK.OUT, chỉ ghi một số duy nhất là số nhỏ thứ k trong dãy. Ví dụ dãy: 6, 7,8, 4, 3, 2 và k = 4 thì giá trị nhỏ thứ k là 6.
MINK.INP | MINK.OUT |
6 46 7 8 4 3 2 | 6 |
c++ ạ
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,k;
cin >> n >> k;
int a[n];
for (int i=0;i<n;i++)
cin >> a[i];
sort(a,a+n);
cout << a[k-1];
return 0;
}
cho tệp văn bản baitap.inp gồm 3 dòng
dòng 1 hiện số a.b
dòng 2 hiện số c
dòng 3 hiện số d
yêu cầu : đọc a,b,c,d từ tệp và đưa ra màn hình số lớn nhất
uses crt;
const fi='baitap.inp'
var f1:text;
a,b,c,d,ln:integer;
begin
clrscr;
assign(f1,fi); reset(f1);
readln(f1,a,b);
readln(f1,c);
readln(f1,d);
ln:=a;
if ln<b then ln:=b;
if ln<c then ln:=c;
if ln<d then ln:=d;
writeln(ln);
close(f1);
readln;
end.
Đọc dữ liệu từ tệp đầu vào và viết ra tệp
Cho tệp “bangDiem.txt" gồm nhiều dòng; các mục dữ liệu cách nhau khoảng trống:
- Dòng thứ nhất: Hai số nguyên dương n và m; với n là số học sinh, m là số môn học.
- Dòng thứ hai: TênHS Toán Văn Tin Li... gồm (m+1) từ.
- n dòng tiếp theo, mỗi dòng có tên học sinh và điểm các môn học của học sinh đó.
Hãy viết một hàm nhapTuTep() để đọc tệp dữ liệu đầu vào “bangDiem.txt" và khởi tạo dữ liệu sẵn sàng để tính toán phân tích kết quả học tập:
a) Một mảng hai chiều n x m các số thực.
b) Hai danh sách: danh sách tên học sinh và danh sách tên môn học.
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(',').