Mảng 1 chiều?

HUYEN_DIU_0209

New member
Xu
0
giúp mình bài này với!
sử dụng ngôn ngữ lập trình pascan viết chương trình:
1.nhập vào từ bàn phím 1 dãy số nguyên gồm n phần tử(n thỏa mãn 1<n<=20)
2.hiển thị ra màn hình các số lẻ trong dãy.
3.tạo ra một dãy số gồm toàn số nguyên tố từ dãy số gồm n phần tử đã nhập ở ý a.hiển thị kết quả ra màn hình
4.tìm số chẵn lớn nhất có trong dãy số.nếu dãy số không có số chẵn thì thông báo ra màn hình
Các bạn giúp mình với nhé!mình đang cần gấp!
 
Mình chỉ có thể giúp bạn thuật toán bài này như sau:
1.Dùng vòng lặp repeat until để tạo vòng lặp điều kiện 1<n<=20.
2.Sau khi nhập dãy, dùng vòng lặp for duyệt từ phần tử đầu tới phần tử cuối. điều kiện in ra màn hình là chia 2 dư 1
3.tạo 1 chương trình con kiểm tra số nguyên tố. Duyệt mảng chạy qua chương trình con. phần tử nào đc thì in ra.
4. duyệt mảng như ý 2. điều kiện là chia 2 dư 0 và là số lớn nhất
 
Bài tập code tham khảo - Sử dụng chương trình con

PHP:
Program BTMang;
Const Max = 20;
Var a : array[1..Max] of integer;
    n:byte; kt:integer;

{---Nhap mang---}
Procedure Nhap;
Var i:byte;
Begin
     Write('Nhap n phan tu (1<1n<=20): '); Readln(n);
     for i:=1 to n do
     begin
          write('a[',i,']: ');
      readln(a[i]);
     end;
End;
{---In so le---}
Procedure InSoLe;
Var i:byte;
Begin
     for i:=1 to n do
         if a[i] mod 2=1 then
        write(a[i]:5);
     writeln;
End;
{---Kiem tra so nguyen to---}
Function KTNguyenTo(k:integer):boolean;
Var i:integer; dem:byte;
Begin
     if (n=1) or (n=2) then
        KTNguyenTo:=false
     else
     begin
          dem:=0;
          for i:=2 to k do
          begin
               if (k mod i)=0 then
               dem:=dem+1 ;
          end;
          if dem >1 then
             KTNguyenTo:=false
          else
              KTNguyenTo:=true;

     end;
End;
{---In so nguyen to---}
Procedure InSoNT;
Var i: byte;
Begin
     for i:=1 to n do
         if KTNguyenTo(a[i])=true then
        write(a[i]:5);
     writeln;
End;
Function SoChanLonNhat:integer;
Var i,max:integer;
Begin
     max:=-1;
     for i:=2 to n do
         if (a[i] mod 2 =0) and (a[i]>max) then max:=a[i];
        SoChanLonNhat:=max;
End;
Begin
     Nhap;
     write('Day so le: ');
     InSoLe;
     write('Day so nguyen to: ');
     InSoNT;
     kt:=SoChanLonNhat;
     if kt=-1 then
        writeln('Khong co so chan lon nhat.')
     else
    writeln('So chan lon nhat la: ',kt);
     readln;
End.
 

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top