Với mong muốn giúp các bạn sinh viên đạt kết quả cao trong kì thi hết học phần, HOC247.Net đã sưu tầm và chọn lọc gửi đến các bạn Bài tập môn Tin học đại cương có lời giải. Hy vọng với tài liệu này sẽ cung cấp những kiến thức bổ ích cho các bạn trong quá trình ôn tập nâng cao kiến thức trước khi bước vào kì thi của mình.
BÀI TẬP MÔN TIN HỌC ĐẠI CƯƠNG CÓ LỜI GIẢI
Bài 1 : Cho dãy x1,x2…xn. Tính giá trị trung bình của dãy
Giải
var i,n : integer;
x:array[1..100] of real;
tong : real;
begin
write('n = ');readln(n);
for i:=1 to n do
begin
write('x[',i,']= ');
readln(x[i]);
end;
for i:=1 to n do
tong:=tong+x[i];
writeln('TB = ',tong/n);
readln;
end.
Bài 2 : Cho dãy x1,x2…xn. Tác dãy trên thành 2 dãy : 1 dãy gồm các phần tử >=0, 1 dãy gồm các phần tử <0
Giải
var i,n,k,l : integer;
x,y,z : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
write('x[',i,'] = ');
readln(x[i]);
end;
for i:=1 to n do
if x[i]>=0 then
begin
k:=k+1;
y[k]:=x[i];
end
else
begin
l:=l+1;
z[l]:=x[i];
end;
Writeln('Day ca phan tu >=0 la :');
for i:=1 to k do
writeln('y[',i,'] = ',y[i]:4:1);
Writeln('Day ca phan tu <0 la :');
for i:=1 to l do
writeln('z[',i,'] = ',z[i]:4:1);
readln;
end.
Bài 3 : Cho dãy x1,x2…xn. Sắp xếp dãy số sao cho phần tử >=0 về đầu, phần tử <0 về cuối, trật tự các phần tử không thay đổi
Giải
var i,n,k : integer;
x,y : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
write('x[',i,'] = ');
readln(x[i]);
end;
for i:=1 to n do
if x[i]>=0 then
begin
k:=k+1;
y[k]:=x[i];
end;
for i:=1 to n do
if x[i]<0 then
begin
k:=k+1;
y[k]:=x[i];
end;
for i:=1 to k do
writeln('y[',i,'] = ',y[i]:4:1);
readln;
end.
Bài 4 : Cho dãy x1,x2…xn. Xóa phần tử xk
Giải
var i,n,k : integer;
x,y : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
write('x[',i,'] = ');
readln(x[i]);
end;
write('Nhap vi tri k :');readln(k);
for i:=k to n-1 do
x[i]:=x[i+1];
for i:=1 to n-1 do
writeln('x[',i,']= ',x[i]:4:1);
readln;
end.
Bài 5 : Cho dãy x1,x2…xn. Chèn M vào vị trí k
Cách 1 :
var i,n,k,m : integer;
x,y : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
write('x[',i,'] = ');
readln(x[i]);
end;
write('Nhap vi tri k :');readln(k);
write('Nhap so can chen M :');readln(m);
for i:=1 to n+1 do
if i<k then
y[i]:=x[i]
else if i=k then
y[i]:=m
else
y[i]:=x[i-1];
for i:=1 to n+1 do
writeln('y[',i,']= ',y[i]:4:1);
readln;
end.
Cách 2 : Dino
uses crt;
var i,k,m,n:integer;
a:array[1..100] of integer;
Begin
clrscr;
write('Nhap so phan tu day: ');
readln(n);
For i:=1 to n do
begin
write('A[',i,']= ');
readln(a[i]);
end;
write('Nhap vi tri k: ');
readln(k);
write('Nhap so m: ');
readln(m);
for i:=n downto k do a[i+1]:=a[i];
a[k]:=m;
writeln('Day sau khi chen la: ');
for i:=1 to n+1 do write(a[i]:4);
readln;
End.
Bài 6 : Kiểu mảng - Cho bảng sau :
STT |
Họ tên |
Điểm |
||
1 |
….. |
m |
||
|
1..n |
|
|
|
- Tính điểm trung bình của từng sinh viên
- Tìm ra những sinh viên có điểm trung bình cao nhất
- Sắp xếp lại bảng trên theo trật tự tăng dần của điểm trung bình
Giải :
var n,m,i,j,k :integer;
ht:array[1..20] of string[20];
diem:array[1..20,1..10] of real;
tong,tb:array[1..20] of real;
tg,tg2,s,max:real;
tg1:string[20];
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
begin
write('HTSV ',i,' la ');
readln(ht[i]);
for j:=1 to m do
begin
write('DT mon ',j,' la ');
readln(diem[i,j]);
end;
end;
for i:=1 to n do
begin
tong[i]:=0;
for j:=1 to m do
tong[i]:=tong[i]+diem[i,j];
tb[i]:=tong[i]/m;
end;
max:=tb[1];
for i:=1 to n do
if tb[i]>max then
max:=tb[i];
write('Danh sach cac hoc sinh co TB max bang ',max:6:1,' la :');
for i:=1 to n do
if tb[i]=max then
write(ht[i],', ');
for i:=1 to n-1 do
for k:=i+1 to n do
if tb[i]>tb[k] then
begin
tg:=tb[i];
tb[i]:=tb[k];
tb[k]:=tg;
tg1:=ht[i];
ht[i]:=ht[k];
ht[k]:=tg1;
for j:=1 to m do
begin
tg2:=diem[i,j];
diem[i,j]:=diem[k,j];
diem[k,j]:=tg2;
end;
end;
writeln('Danh sach sau khi sap xep la :');
for i:=1 to n do
begin
writeln;
write(ht[i]);
for j:=1 to m do
write(' ',diem[i,j]:4:1,' ');
end;
readln;
end.
Bài 7 : Cho ma trận Anxm, tính tổng từng hàng, từng cột của ma trận
Giải
var i,m,n,j : integer;
a:array[1..10,1..10] of real;
b1:array[1..10] of real;
b2:array[1..10] of real;
begin
write('Nhap so hang : ');readln(n);
write('Nhap so cot : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
for i:=1 to n do
b1[i]:=0;
for i:=1 to m do
b2[i]:=0;
for i:=1 to n do
for j:=1 to m do
begin
b1[i]:=b1[i]+a[i,j];
b2[j]:=b2[j]+a[i,j];
end;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4:1,' ');
end;
writeln;
writeln('Tong tung hang la : ');
for i:=1 to n do
writeln('Hang ',i,'= ',b1[i]:4:1);
writeln('Tong tung cot la : ');
for j:=1 to m do
writeln('Cot ',j,'= ',b2[j]:4:1);
readln;
end.
Bài 8 : Cho ma trận Anxm, xóa hàng thứ k của ma trận.
Giải
var i,m,n,k,j:integer;
a:array[1..100,1..100] of real;
begin
write('Nhap so hang :');readln(n);
write('Nhap so cot :');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
write('Nhap hang can xoa :');readln(k);
for j:=1 to m do
for i:=k to n-1 do
a[i,j]:=a[i+1,j];
for i:=1 to n-1 do
for j:=1 to m do
writeln('a[',i,',',j,']= ',a[i,j]:4:1);
readln;
end.
Bài 9 : Cho ma trận Anxm tìm giá trị lớn nhất của ma trận, xóa hàng đầu tiên chứa giá trị lớn nhất đó.
Giải
var n,m,i,j,max,k : integer;
x:array[1..10,1..10] of integer;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('x[',i,',',j,']= ');
readln(x[i,j]);
end;
k:=1; max:=x[1,1];
for i:=1 to n do
for j:=1 to m do
if x[i,j]>max then
begin
max:=x[i,j];
k:=i;
end;
for j:=1 to m do
for i:=k to n-1 do
x[i,j]:=x[i+1,j];
for i:=1 to n-1 do
begin
writeln;
for j:=1 to m do
write(x[i,j],' ') ;
end;
readln;
end.
Bài 10: Cho ma trận Anxm tìm giá trị lớn nhất của ma trận, xóa cột đầu tiên chứa giá trị lớn nhất đó.
Giải
var i,j,m,n,k,max:integer;
a:array[1..10,1..10] of integer;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
k:=1; max:=a[1,1];
for j:=1 to m do
for i:=1 to n do
if a[i,j]>max then
begin
max:=a[i,j];
k:=j;
end;
for i:=1 to n do
for j:=k to m-1 do
a[i,j]:=a[i,j+1];
for i:=1 to n do
begin
writeln;
for j:=1 to m-1 do
write(a[i,j],' ');
end;
readln;
end.
{-- Xem đầy đủ nội dung tại Xem online hoặc Tải về--}
Trên đây là trích dẫn một phần Bài tập môn Tin học đại cương có lời giải, để xem đầy đủ nội dung đề thi và đáp án chi tiết các em vui lòng đăng nhập website hoc247.net chọn Xem online hoặc Tải về máy tính. Chúc các em học tốt và thực hành hiệu quả!
Tư liệu nổi bật tuần
-
Giáo trình Tin học đại cương - Tập 3
24/07/20192707 -
Giáo trình Tin học đại cương - Tập 2
24/07/20191878 -
Tổng hợp câu hỏi trắc nghiệm môn Tin học đại cương có đáp án
04/07/20192468 -
Câu hỏi ôn thi môn Tin học đại cương có đáp án
04/07/20191820
ERROR:connection to 10.20.1.101:9312 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.101:9312 failed (errno=111, msg=Connection refused)