Chủ Nhật, 17 tháng 11, 2019

Bài tập mảng 1



+Khai báo biến mảng
var
<tên biến mảng>:array[x..y] of <kiểu dữ liệu>;
trong đó:
-tên biến mảng: đặt theo quy tắc
-x chỉ số đầu, y chỉ số cuối (x và y là các số nguyên, x<y)
ví dụ1:
var
a:array[1..8]of integer;
khai báo biến mảng a gồm 8 phần tử kiểu số nguyên. Phần tử đầu tiên có chỉ số là 1, phần tử cuối có chỉ số là 8
ví dụ 2:
var
c:array[3..10]of real;
khai báo biến mảng c gồm 8 phần tử kiểu số thực. Phần tử đầu tiên có chỉ số là 3, phần tử cuối có chỉ số là 10
+Làm việc với các phần tử của biến mảng
ví dụ:
-cần gán giá trị cho phần tử thứ 3 của biến mảng trong ví dụ 1 thì ta thực hiện lệnh sau
         a[3]:=9;
-cần in: write(a[3]);
-cần nhập từ bàn phím: readln(a[3]);


                                      BÀI TẬP
Bài 1: Nhập dãy n số nguyên từ bàn phím
-in dãy vừa nhập ra màn hình
-tính tổng các phần tử trong dãy vừa nhập
-tính tổng các số chẵn, số lẻ trong dãy
-đếm các số chẵn, số lẻ trong dãy
ví dụ:
Nhập
Xuất
N=9
9 2 6 7 8 9 6 5 20
Day vua nhap la:
9 2 6 7 8 9 6 5 20
Tong cac phan tu trong day la:72
Tong so chan trong day:42
Tong so le trong day:30
So luong so chan:5
So luong so le:4

Bài 2: nhập dãy n số nguyên
-tìm giá trị lớn nhất và và giá trị nhỏ nhất của dãy vừa nhập
ví dụ:

Nhập
Xuất
N=9
9 2 6 7 68 9 6 5 11
Gia tri lon nhat la: 68
Gia tri nho nhat la: 2
Bài 3: Nhập dãy n số nguyên
-sắp xếp dãy vừa nhập thành dãy tăng (hoặc dãy giảm)

Nhập
Xuất
N=9
9 2 6 7 68 9 6 5 1
Day sau khi sap xep tang
1 2 5 6 6 7 9 9 68
Bài 4: Nhập dãy n số nguyên
-nhập số nguyên x. Hỏi trong dãy có bao nhiêu số nguyên có giá trị bằng x
ví dụ

Nhập
Xuất
N=9, x=6
9 2 6 7 68 9 6 5 11
có 2 phần tử bằng 6
Bài 5: Nhập dãy n số nguyên

Hỏi trong dãy có số âm không. Nếu có in ra 1 ngược lại in ra 0
ví dụ

Nhập
Xuất
N=8
9 2 -6 7 8 9 6 -5 
1
Bài 6: Nhập dãy n số nguyên
-Nhập số nguyên x và k. Chèn x vào vị trí k
ví dụ:

Nhập
Xuất
N=9, x=12, k=3
9 2 6 7 68 9 6 5 1
9 2 12 6 7 68 9 6 5 1

Bài 7: Nhập dãy n số nguyên

in ra các số là nguyên tố có trong dãy vừa nhập
ví dụ

Nhập
Xuất
N=8
9 2 -6 7 8 9 1 -5 
 2 7
Bài 8: (*) Nhập dãy n số nguyên

Tìm số âm lớn nhất trong dãy. Nếu không có số âm ghi chữ No
ví dụ

nhập
xuất
9
20 10 -3 9 -1 -20  39 7 8
So am lon nhat la: -1
4
10 68 22 39
So am lon nhat la:No
Bài 9: Nhập dãy n số nguyên

đếm xem trong dãy có bao nhiêu cặp mà các phần tử cạnh nhau là số chẵn
ví dụ

Nhập
Xuất
Giải thích
9
20 10 -3 9 -1 -20  39 7 8
1
 
7
10 68 22 39 30 60 5
Bài 10: Nhập dãy n số nguyên.
Đếm xem trong dãy có bao nhiêu số chính phương
Số chính phương là bình phương của một số nguyên. Ví dụ 4, 9,16, 25,...
ví dụ


Nhập
Xuất
Giải thích
8
20 10 -3 9 -1 -20  39 7
1

Bài 11: Nhập dãy n số nguyên vào mảng a
Tạo mảng b chỉ gồm các số chẵn từ mảng a
ví dụ:
Nhập
Xuất
8
10 7 9 8 2 30 60 11
Mang a:
10 7 9 8 2 30 60 11
Mang b:
10 8 2 30 60
Chú ý: Phải tạo thật sự được mảng b

37 nhận xét:

  1. Bài 4:
    var
    a:array[1..1000]of longint;
    i,d,x,n:longint;
    begin
    write('nhap n=');readln(n);
    write('nhap x=');readln(x);
    for i:=1 to n do
    begin
    write('a[',i,']=');
    readln(a[i]);
    end;
    d:=0;
    for i:=1 to n do
    if x=a[i] then
    d:=d+1;
    writeln('co ',d,' phan tu bang ',x);
    readln;
    end.

    Trả lờiXóa
  2. Bài 5:
    var
    a:array[1..1000]of longint;
    i,n,d:longint;
    begin
    write('nhap n=');readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']=');
    readln(a[i]);
    end;
    d:=0;
    for i:=1 to n do
    if a[i]<0 then
    d:=d+1;
    if d>=1 then
    writeln('1')
    else
    writeln('0');
    readln;
    end.

    Trả lờiXóa
  3. bài 7
    function snt(a:longint):byte;
    var b,c:longint;
    begin
    c:=0;
    for b:=2 to a div 2 do
    if a mod b =0 then c:=c+1;
    if (c=0)and(a>1) then snt:=1 else snt:=0;
    end;
    var a:array[1..1000]of longint;
    n,b,c:longint;
    begin
    readln(n);
    for b:=1 to n do
    readln(a[b]);
    for b:=1 to n do
    if snt(a[b])=1 then writeln(a[b],' ');
    readln
    end.

    Trả lờiXóa
  4. số lớn nhất trong dãy số
    uses crt;
    var a,b,c,d,max:longint;
    begin
    readln(a);
    max:=0;
    while a>0 do
    begin
    b:=a mod 10;
    a:=a div 10;
    if b>max then max:=b;
    end;
    writeln(max);
    readln
    end.

    Trả lờiXóa
  5. bài 6
    uses crt;
    var a:array[1..1000]of longint;
    n,x,k,d,b,c:longint;
    begin
    clrscr;
    readln(n);
    readln(x);
    readln(k);
    for c:=1 to n do
    readln(a[c]);
    for c:=1 to n do
    begin
    b:=b+1;
    if k=b then write(x,' ',a[c],' ')
    else write(a[c],' ');
    end;
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. Bài này của Phát thực chất là in ra dãy được dãy như ví dụ, nhưng chưa chèn vào dãy được nhé. Phải thực sự chèn vào được x vào dãy để sau này còn phát triển làm bài khác

      Xóa
  6. Bài 6
    uses crt;
    var
    a:array[1..1000]of longint;
    n,i,d,k,x:longint;
    begin
    clrscr;
    readln(n);
    readln(x);
    readln(k);
    d:=0;
    for i:=1 to n do
    readln(a[i]);
    writeln('cac so vua nhap trong day la:');
    for i:=1 to n do
    begin
    d:=d+1;
    if d=k then
    write(x,' ');
    write(a[i],' ');
    end;
    readln
    end.

    Trả lờiXóa
  7. bài của Vạn cũng như của Phát chưa thật sự chèn được x vào dãy nhé

    Trả lờiXóa
  8. Tuy nhiên cũng phải khen 2 em rất thông minh khi in ra được dãy giống như đã chèn được vào

    Trả lờiXóa
  9. bài 8
    uses crt;
    var a:array[1..1000]of longint;
    b,c,n,max:longint;
    begin
    readln(n);
    for b:=1 to n do
    begin
    readln(a[b]);
    if a[b]<0 then max:=a[b];
    end;
    c:=0;
    for b:=1 to n do
    if a[b]<0 then
    begin
    if a[b]>max then max:=a[b];
    c:=c+1;
    end;
    if c>=1 then
    writeln(max)
    else writeln('no');
    readln;
    end.

    Trả lờiXóa
  10. program khoa_85;
    Var
    A:array[1..1000] of integer;
    Y,n,m:integer;
    Begin
    Readln(n);
    For y:=1 to n do
    Begin
    Readln(a[y]);
    End;
    For y :=1 to n do
    M:=a[1];
    If ma[y] then
    N:=a[y];
    End;
    If n<0then
    Writeln(‘1’)
    Else
    Writeln(‘0’);
    Readln;
    End.


    Trả lờiXóa
  11. program khoa-85;
    bai 4
    Var
    A:array[1..1000] of integer;
    Y,n,m:integer;
    Begin
    Readln(n);
    For y:=1 to n do
    Begin
    Readln(a[y]);
    End;
    For y :=1 to n do
    M:=a[1];
    If ma[y] then
    N:=a[y];
    End;
    For p:=1 to n do
    If a[p]=n then
    D:=D+1;
    Writeln(d);
    Readln;
    End.

    Trả lờiXóa
  12. Em làm bài thật cẩn thận để thầy còn góp ý nhé. Làm thế này biết đường nào mà thầy góp ý.

    Trả lờiXóa
  13. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  14. Bài 6:
    var
    a:array[1..1000]of longint;
    k,n,x,i:longint;
    begin
    write('nhap n=');readln(n);
    write('nhap x=');readln(x);
    write('nhap k=');readln(k);
    for i:=1 to n do
    begin
    write('a[',i,']=');
    readln(a[i]);
    end;
    for i:=n downto k do
    a[i+1]:=a[i];
    a[k]:=x;
    for i:=1 to n+1 do
    write(a[i],' ');
    readln;
    end.

    Trả lờiXóa
  15. uses crt;
    var a:array[1..1000]of longint;
    b,c,d,n:longint;
    begin
    readln(n);
    for b:=1 to n do
    begin
    write('a[',b,']=');
    readln(a[b]);
    end;
    for b:=1 to n do
    if (a[b]>0) and(frac(sqrt(a[b]))=0) then c:=c+1;
    writeln(c);
    readln
    end.

    Trả lờiXóa
  16. Bài 11:
    var
    a:array[1..1000]of longint;
    i,n:longint;
    begin
    write('nhap n=');readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']=');
    readln(a[i]);
    end;
    writeln('mang a:');
    for i:=1 to n do
    write(a[i],' ');
    writeln;
    writeln('mang b:');
    for i:=1 to n do
    if (a[i] mod 2=0) then
    write(a[i],' ');
    readln;
    end.

    Trả lờiXóa
  17. Bài 10:
    function cp(n:longint):longint;
    var
    i,d:longint;
    begin
    d:=0;
    for i:=1 to n div 2 do
    if (i*i=n) then
    d:=d+1;
    cp:=d;
    end;
    var
    a:array[1..1000]of longint;
    n,i,d:longint;
    begin
    write('nhap n=');readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']=');readln(a[i]);
    end;
    d:=0;
    for i:=1 to n do
    if (cp(a[i])=1) then
    d:=d+1;
    writeln('co ',d,' so chinh phuong');
    readln;
    end.

    Trả lờiXóa
  18. bài 11
    uses crt;
    var a:array[1..1000]of longint;
    n,x,k,d,c:longint;
    begin
    clrscr;
    readln(n);
    for c:=1 to n do
    readln(a[c]);
    for c:=1 to n do
    if a[c]mod 2=0 then d:=d+1;
    for c:=n downto d do
    a[c+d]:=a[c];
    for c:=1 to n do
    if a[c]mod 2=0 then
    write(a[c],' ');
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. Bài của Phát chưa thực sự tạo được mảng b nhé. Chỉ in ra được theo yêu cầu đề thôi

      Xóa
  19. Bài 10
    uses crt;
    var
    a:array[1..1000]of longint;
    i,n,d,j:longint;
    begin
    readln(n);
    for i:=1 to n do
    begin
    readln(a[i]);
    for j:=1 to a[i] do
    if j*j=a[i] then
    d:=d+1;
    end;
    writeln(d,' so chinh phuong');
    readln
    end.

    Trả lờiXóa
  20. Bài 11
    uses crt;
    var
    a:array[1..1000]of longint;
    b:array[1..1000]of longint;
    i,n:longint;
    begin
    readln(n);
    for i:=1 to n do
    readln(a[i]);
    writeln('mang a: ');
    for i:=1 to n do
    write(a[i],' ');
    writeln('mang b:');
    for i:=1 to n do
    begin
    if a[i] mod 2=0 then
    begin
    b[i]:=a[i];
    write(b[i],' ');
    end;
    end;
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. Bài này của em đã thực sự tạo được mảng b. rất tốt
      tuy nhiên nó 1 một nhược điểm là b[i] rỗng nếu trường hợp a[i] không chẵn

      Xóa
  21. Bài 11:
    var
    a,b:array[1..1000]of longint;
    i,n:longint;
    begin
    write('nhap n=');readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']=');
    readln(a[i]);
    end;
    writeln('mang a:');
    for i:=1 to n do
    write(a[i],' ');
    writeln;
    for i:=1 to n do
    if (a[i] mod 2=0) then
    b[i]:=a[i];
    writeln('mang b:');
    for i:=1 to n do
    if b[i]>0 then
    write(b[i],' ');
    readln;
    end.

    Trả lờiXóa
    Trả lời
    1. Bài này của Thắng cũng đa thực sự tạo được mảng b. nó cũng có nhược điểm là sẽ có nhiều phần tử của mảng b bị rỗng (0) ở những vị trí a[i] không chẵn. Bài này cách tạo và in của bạn Vạn là hay hơn

      Xóa
  22. uses crt;
    var a,b:array[1..1000]of longint;
    c,d,e:longint;
    begin
    readln(c);
    e:=0;
    for d:=1 to c do
    readln(a[d]);
    for d:=1 to c do
    begin
    b[d]:=a[d];
    if b[d] mod 2=0 then
    begin
    e:=e+1;
    write(b[d],' ');
    end;
    end;
    if e=0 then writeln('ko co so chan');
    readln
    end.
    bài 11

    Trả lờiXóa
    Trả lời
    1. Phát làm gần chuẩn rồi đó. tóm lại ta làm như sau
      d:=0;
      for i:=1 to n do
      if a[i] mod 2=0 then
      begin
      d:=d+1;
      b[d]:=a[i];
      end;
      dãy b tạo được d phần tử chẵn từ dãy a

      Xóa