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.
uses crt;
const fi='baitap.txt';
var f1:text;
x,y:integer;
begin
clrscr;
assign(f1,fi); reset(f1);
readln(f1,x,y);
writeln(sqrt(x*x+y*y):4:2);
close(f1);
readln;
end.
Để chứng minh tính đúng đắn của thuật toán sắp xếp chèn với các lệnh thay đổi trên, ta cần chứng minh hai điều kiện sau đây:
Điều kiện ban đầu (trước khi bắt đầu vòng lặp): Sau khi thực hiện lệnh j = 1, giá trị của j đang là 1, và dãy con A[0] chỉ gồm một phần tử là A[0] (vì j-1 là 0). Do đó, dãy con này đã được sắp xếp đúng.
Điều kiện duy trì (trong quá trình vòng lặp): Trong mỗi vòng lặp của while, nếu A[j] < A[j-1], ta hoán đổi giá trị của A[j] và A[j-1] bằng lệnh Đổi chỗ A[j] và A[j-1]. Sau đó, ta giảm giá trị của j đi 1 đơn vị bằng lệnh j = j - 1. Lúc này, giá trị của A[j] là giá trị của A[j-1] trước khi hoán đổi, và giá trị của A[j-1] là giá trị của A[j] trước khi hoán đổi. Điều này đồng nghĩa với việc dãy con A[0], A[1], ..., A[j-1] đã được sắp xếp đúng sau mỗi vòng lặp.
Vậy nên, dãy con A[0], A[1], ..., A[j-1] luôn được sắp xếp đúng sau mỗi vòng lặp của while, và dãy con này sẽ không bị thay đổi giá trị trong quá trình hoán đổi. Do đó, tính đúng đắn của thuật toán sắp xếp chèn vẫn được duy trì sau khi thay toàn bộ phần chèn A[i] vào vị trí đúng của dãy con A[0], A[1], ..., A[i-1] bằng các lệnh trên.
# Đọc dữ liệu từ file muahang.inp
with open('muahang.inp', 'r') as file:
lines = file.readlines()
mat_hangs = []
for line in lines:
data = line.strip().split(',')
ten = data[0]
don_gia = float(data[1])
so_luong = int(data[2])
thanh_tien = don_gia * so_luong
mat_hangs.append((ten, thanh_tien))
# Sắp xếp danh sách các mặt hàng theo thứ tự thành tiền tăng dần
n = len(mat_hangs)
for i in range(n - 1):
for j in range(0, n - i - 1):
if mat_hangs[j][1] > mat_hangs[j + 1][1]:
mat_hangs[j], mat_hangs[j + 1] = mat_hangs[j + 1], mat_hangs[j]
# In danh sách các mặt hàng và thành tiền tương ứng ra màn hình
print("Danh sách các mặt hàng và thành tiền tương ứng:")
for mat_hang in mat_hangs:
print("Tên mặt hàng: ", mat_hang[0])
print("Thành tiền: ", mat_hang[1])
print("-----")
Bài 1:
uses crt;
var x,i,t,dem:longint;
tbc:real;
begin
clrscr;
write('nhap x=');readln(x);
t:=0;
dem:=0;
for i:=1 to x do
if x mod i=0 then
begin
t:=t+i;
inc(dem);
end;
tbc:=t/dem;
writeln('trung binh cong cac phan tu la uoc cua ',x,' la: ',tbc:4:2);
readln;
end.
Bài 3:
uses crt;
var a:array[1..100]of integer;
m,n,i:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
write('m='); readln(m);
for i:=1 to n do
if a[i]<0 then a[i]:=m;
for i:=1 to n do
write(a[i]:4);
readln;
end.
Bài 4:
uses crt;
var a:array[1..100]of integer;
n,i,j:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
for i:=1 to n do
for j:=i+1 to n do
if (a[i] mod a[j]=0) then writeln(a[i],' ',a[j]);
if a[j] mod a[i]=0 then writeln(a[j],' ',a[i]);
readln;
end.
Bài 5:
uses crt;
var a:array[1..100]of integer;
n,i,j:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
for i:=1 to n do
for j:=i+1 to n do
if a[i]=sqr(a[j]) then writeln(a[i],' ',a[j]);
if a[j]=sqr(a[i]) then writeln(a[j],' ',a[i]);
readln;
end.
Bài 6:
uses crt;
var a:array[1..100]of integer;
n,i,j:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
for i:=1 to n do
for j:=i+1 to n do
if sqr(a[i])+sqr(a[j])=100 then writeln(a[i],' ',a[j]);
if sqr(a[j])+sqr(a[i])=100 then writeln(a[j],' ',a[i]);
readln;
end.
Bài 7:
uses crt;
var a:array[1..100]of integer;
n,i,t1,t2:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
t1:=0;
t2:=0;
for i:=1to n do
begin
if i mod 2=0 then t1:=t1+a[i]
else t2:=t2+a[i];
end;
if t1=t2 then writeln('thoa man')
else writeln('khong thoa man');
readln;
end.
Bài 8:
uses crt;
var a,b:array[1..100]of integer;
n,i,kt,j,dem:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
dem:=0;
for i:=1 to n do
if i mod 2=0 then
begin
dem:=dem+1;
b[dem]:=a[i];
end;
kt:=0;
for j:=1 to dem-1 do
if a[j]>a[j+1] then kt:=1;
if kt=0 then writeln('cac phan tu o vi tri chan cua day tang dan')
else writeln('cac phan tu o vi tri chan cua day khong tang dan');
readln;
end.
Bài 9:
uses crt;
var a,b,c:array[1..100]of integer;
n,i,j,dem,dem1:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{----------------------------------------------------}
for i:=1 to n do
begin
if i mod 2=1 then
begin
dem:=dem+1;
b[dem]:=a[i];
end
else begin
dem1:=dem1+1;
c[dem1]:=a[i];
end;
end;
for i:=1 to dem do
write(b[i]:4);
for j:=1 to dem1 do
write(c[j]:4);
readln;
end.
1.Thuật toán tìm kiếm tuần tự:
- Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự là O(n)
- Giá trị lớn nhất của n với thời gian thực thi là 1 giây: n = 1 giây * (106 us / phép tính) = 106
- Giá trị lớn nhất của n với thời gian thực thi là 1 phút: n = 1 phút * (60 giây / phút) * (106us / phép tính) = 6 * 107
- Giá trị lớn nhất của n với thời gian thực thi là 1 giờ: n = 1 giờ * (60 phút / giờ) * (60 giây / phút) * (106us / phép tính) = 3.6 * 109
2.Thuật toán sắp xếp chèn:
- Độ phức tạp thời gian của thuật toán sắp xếp chèn là O(102
- Giá trị lớn nhất của n với thời gian thực thi là 1 giây: n = sqrt(1 giây * (106us / phép tính)) =103
- Giá trị lớn nhất của n với thời gian thực thi là 1 phút: n = sqrt(1 phút * (60 giây / phút) * (106us / phép tính)) = 6 * 104
- Giá trị lớn nhất của n với thời gian thực thi là 1 giờ: n = sqrt(1 giờ * (60 phút / giờ) * (60 giây / phút) * (106us / phép tính)) = 3.6 * 106
3. Thuật toán sắp xếp chọn:
- Độ phức tạp thời gian của thuật toán sắp xếp chọn là O(n2)
- Giá trị lớn nhất của n là: n = sqrt(1 giây * (106us / phép tính)) = 1000.
Thời gian thực thi là 1 phút:
Giá trị lớn nhất của n là: n = sqrt(1 phút * (60 giây / phút) * (106us / phép tính)) = 60000.
Thời gian thực thi là 1 giờ:
Giá trị lớn nhất của n là: n = sqrt(1 giờ * (60 phút / giờ) * (60 giây / phút) * (106us / phép tính)) = 3.6 * 106