Diễn đàn tin học Văn Lang - Vạn Ninh
Chào mừng bạn đến với Diễn đàn Tin học Văn Lang - Vạn Ninh của chúng tôi !
Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây !
Thân ái !

Diễn đàn tin học Văn Lang - Vạn Ninh

Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
 
Trang ChínhCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Giải các bài toán về mảng một chiều

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
uyen1245



Posts : 5
Danh tiếng : 0
Join date : 16/11/2014

Bài gửiTiêu đề: Re: Giải các bài toán về mảng một chiều    7/12/2014, 14:40

1.viết chương trình tạo 10 số ngẫu nhiên chẵn.
2. viết chương trình nhập vào 1 mảng xuất ra mảng đó theo thứ tự tăng dần và giảm dần.
Về Đầu Trang Go down
Xem lý lịch thành viên
anhtruong35



Posts : 6
Danh tiếng : 0
Join date : 16/11/2014

Bài gửiTiêu đề: Re: Giải các bài toán về mảng một chiều    7/12/2014, 14:11

bài 12:
for i:=1 to (n div 2) do dc (a[i],a[n-i+1]);
mjnh ko hiểu lắm,help me));


Về Đầu Trang Go down
Xem lý lịch thành viên
Admin
Admin
avatar

Posts : 113
Danh tiếng : 5
Join date : 10/11/2014
Age : 16

Bài gửiTiêu đề: Re: Giải các bài toán về mảng một chiều    7/12/2014, 11:17

uyen1245 đã viết:
bài 2 : tông các số lẽ mà???
uk đúng rồi ^^! nhầm
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
uyen1245



Posts : 5
Danh tiếng : 0
Join date : 16/11/2014

Bài gửiTiêu đề: Re: Giải các bài toán về mảng một chiều    24/11/2014, 16:23

bài 2 : tông các số lẽ mà???
Về Đầu Trang Go down
Xem lý lịch thành viên
Admin
Admin
avatar

Posts : 113
Danh tiếng : 5
Join date : 10/11/2014
Age : 16

Bài gửiTiêu đề: Giải các bài toán về mảng một chiều    13/11/2014, 12:31

Bài 1: Nhập dãy số thực a. Tính trung bình cộng các số âm.
Bài giải:
uses crt;
var a:array[1..100] of real;
   i,n,dem:integer;
   tbc,tong:real;
begin
clrscr;
      dem:=0;
      tong:=0;
      write('Nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
      if a[i]<0 then
         begin
              dem:=dem+1;
              tong:=tong+a[i];
         end;
      tbc:=tong/dem;
      writeln('TBC cac so am:',tbc:2:3);
readln;
end.

Bài 2: Nhập dãy số nguyên. Tính trung bình cộng các số lẽ.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   i,n,dem:integer;
   tbc,tong:real;
begin
clrscr;
      dem:=0;
      tong:=0;
      write('Nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
      if a[i] mod 2=1 then
         begin
              dem:=dem+1;
              tong:=tong+a[i];
         end;
      tbc:=tong/dem;
      writeln('TBC cac so am:',tbc:2:3);
readln;
end.

Bài 3: Sinh ngẫu nhiên dãy n số nguyên. Tìm các số trong dãy thỏa mãn định lý Pytago.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   i,n,j,k:integer;
begin
clrscr;
      write('Ban muon chon bao nhieu so ngau nhien:');readln(n);
      writeln;
      randomize;
      for i:=1 to n do a[i]:=random(100);
         for i:=1 to n do  write(a[i]:3);
      for i:=1 to n do
      for j:=i to n do
      for k:=1 to n do
if (i<>j) and (i<>k) and (k<>j) and (sqr(a[i])+sqr(a[j])=sqr(a[k])) then
  writeln(a[i],'^2 +',a[j],'=',a[k],'^2');
readln;
end.

Bài 4: Nhập dãy số nguyên.Tìm các số trong dãy thỏa tính chất a3+b3+c3 = 100a+10b+c.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   i,j,k,n:integer;
begin
clrscr;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
      for j:=i to n do
      for k:=1 to n do
iff(i<>j)and(i<>k)and(k<>j)and (sqr(a[i])*a[i]+sqr(a[j])*a[j]+sqr(a[k])*a[k]=100*a[i]+10*a[j]+a[k]) then
writeln(a[i], ' ,a[j], ‘ ,a[k]);
readln;
end.

Bài 5: Sinh ngẫu nhiên n số nguyên (n<200). Đếm và tính tổng các số lẽ của chúng.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   n,i,dem,tong:integer;
begin
clrscr;
      tong:=0;
      write('nhap n:');readln(n);
      dem:=0;
      randomize;
      for i:=1 to n do a[i]:=random(200);
      for i:=1 to n do
          begin
               write(a[i]:5);
               if a[i] mod 2=1 then dem:=dem +1;
               tong:=tong+a[i];
          end;
          writeln;
      writeln('Co ',dem,' so le.');
      writeln('Tong cac so le:',tong);
readln;
end.

Bài 6: Nhập dãy số nguyên. Tìm phần tử lớn nhất.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   i,max,n:integer;
begin
clrscr;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
begin
      max:=a[1];
      if a[i]>a[1] then max:=a[i];
end;
      writeln('GTLN :',max);
readln;
end.

Bài 7: Nhập dãy số thực. Tìm phần tử bé nhất.
Bài giải:
uses crt;
var a:array[1..100] of real;
   i,n:integer;
   min:real;
begin
clrscr;
      write('Nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
begin
      min:=a[1];
      if a[i]<a[1] then min:=a[i];
end;
      writeln('GTNN :',min:2:1);
readln;
end.

Bài 8: Nhập dãy số thực. Tìm hai phần tử có tổng lớn nhất.
Bài giải:
uses crt;
var a:array[1..100] of real;
   i,n,j,k:integer;
   max,pt1,pt2:real;
begin
clrscr;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      max:=a[1] + a[2];
      for i:=1 to n do
      for j:=i to n do
      if i<>j then  if (a[i]+a[j]>max) then
         begin
              max:=a[i]+a[j];
              pt1:=a[i];
              pt2:=a[j];
         end;
         else if (a[i]+a[j]=max) then
         begin
              max:=a[i]+a[j];
              pt1:=a[i];
              pt2:=a[j];
         end;
      writeln(pt1:2:1 ,' va ' , pt2:2:1,' la 2 pt co tong lon nhat.');
readln;
end.

Bài 9: Cho dãy số thực a và nhập số thực x. Kiểm tra xem x có thuộc dãy không. Nếu có chỉ ra vị trí của nó.
Bài giải:
uses crt;
var a:array[1..100] of real;
   i,n,dem:integer;
   x:real;
begin
clrscr;
      dem:=0;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      write('Nhap x:');readln(x);
       for i:=1 to n do if x=a[i] then dem:=dem+1;
       if dem=0 then writeln(x:0:1,' ko thuoc day tren.')
       else
      for i:=1 to n do
      if x=a[i] then writeln(x:0:1,' thuoc day so tren, thuoc vitri a[',i,']');
readln;
end.

Bài 10: Cho dãy số thực a và nhập số thực x. Hãy xóa mọi số lớn hơn x trong dãy.
Bài giải:
uses crt;
var a:array[1..100] of real;
   x:real;
   i,n:integer;
begin
clrscr;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      write('Nhap x:');readln(x);
      write('Day so sau khi xoa bo cac so lon hon x la:');
      for i:=1 to n do
      if a[i]<=x then write(a[i]:6:2);
readln;
end.

Bài 11: Nhập dãy số thực a. Tìm các số trong dãy bằng tổng hai số khác trong dãy.
Bài giải:
uses crt;
var a:array[1..100] of real;
   i,j,k,n:integer;
begin
clrscr;
      write('Nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      for i:=1 to n do
          for j:=i to n do
              for k:=1 to n do
      if (k<>i) and (k<>j) and (i<>j) and (a[i]+a[j]=a[k]) then
      writeln(a[k]:2:1,'=',a[i]:2:1 , '+' ,a[j]:2:1);
readln;
end.

Bài 12: Cho dãy n số nguyên a1;a2;…;an. Xếp lại dãy số theo nguyên tắc: a1 đổi chỗ cho an; a2 đổi chỗ với an-1…
Hướng dẫn: công thức đổi: 1 và n – i +1.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   j,i,n,tam,so:integer;
(*****)
procedure dc(var a,b:integer);
var tam:integer;
begin
    tam:=a;
    a:=b;
    b:=tam;
end;
(*****)
begin
clrscr;
      write('nhap n:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
  writeln('Sx theo QT: a[1] doi cho a[',n,'], a[2] doi cho a[',n-1,'].a[3] doi cho a[',n-2,']...');
      writeln;
     for i:=1 to n do write(a[i]:5);
     for i:=1 to (n div 2) do dc(a[i],a[n-i+1]);
     writeln;
     writeln;
     for i:=1 to n do
     write(a[i]:5);
readln;
end.

Bài 14:  Sinh ngẫu nhiên dãy n số nguyên ( n<2000). Không dùng mảng phụ, hãy chuyển các số âm về đầu dãy, các số dương về cuối dãy sao cho không làm thay đổi trật tự trước sau của các số cùng dấu.
Bài giải:
uses crt;
var a:array[1..100] of integer;
   n,m,i:integer;
   (*****)
procedure sx(var a,b:integer);
var tam:integer;
begin
    tam:=a;
    a:=b;
    b:=tam;
end;
   (*****)
begin
clrscr;
      write('ban muon sinh ngau nhien bao nhiu so:');readln(n);
      for i:=1 to n do
          begin
               write('Nhap a[',i,']:');
               readln(a[i]);
          end;
      writeln('Day so ban dau:');
      for i:=1 to n do
          write(a[i]:3);
      writeln;
      writeln('Day so sau khi bien doi:');
      for i:=1 to n do
      if a[i]<0 then write(a[i]:3);
      for i:=1 to n do
      if a[i]=0 then write(a[i]:3);
      for i:=1 to n do
      if a[i]>0 then write(a[i]:3);
readln;
end.

Bài 15: Sinh ngẫu nhiên n số nguyên. Sắp xếp các số này theo thứ tự tăng dần. Nhập vào một số nguyên x bất kì. Hãy chen số x vào dãy và luôn thỏa mãn là dãy tăng dần. Chỉ ra vị trí chèn.
Bài giải:
uses crt;
var a:array[1..100] of integer;
n,i,j,x,k,vt:integer;
(*****)
procedure sx(var a,b:integer);
var tam:integer;
begin
    tam:=a;
    a:=b;
    b:=tam;
end;
(*****)
begin
clrscr;

write('Ban muon nhap bao nhiu so:');readln(n);
         randomize;
for i:=1 to n do a[i]:=random(20);
       for i:=1 to n do write(a[i]:3);
writeln;
       for i:=1 to n-1 do
       for j:=i+1 to n do
       if a[i]>a[j] then sx(a[i],a[j]);
       writeln('Day so sau khi xep tang dan:');
       for i:=1 to n do write(a[i]:3);
       writeln;
write('nhap x:');readln(x);
k:=x;
       for j:=n downto 1 do
           if k<a[j] then vt:=j
           else if k>a[n] then vt:=n+1;
           for i:=1 to n do
           if x<a[i] then sx(x,a[i]);
       a[n+1]:=x;
writeln('Day so sau khi chen ',x,' vao:');
for i:=1 to n+1 do write(a[i]:3);
       writeln;
       writeln('Vi tri chen la:',vt);
readln;
end.

Bài 16: Sinh ngẫu nhiên n số nguyên dương (n<200).
a) Xóa các số trong dãy nhỏ hơn 10.
b) Xóa các số trong dãy thuộc đoạn [50,99].
Bài giải:
uses crt;
var a:array[1..100] of integer;
   n,i,j:integer;
begin
clrscr;

      write('Ban muon sinh ngau nhien bao nhiu so:');readln(n);

      writeln('Day so ban dau:');
      randomize;
      for i:=1 to n do a[i]:=random(100);
      for i:=1 to n do write(a[i]:3);
      writeln;
      writeln('Sau khi xoa cac so nho hon 10:');
      for i:=1 to n do if a[i]>10 then write(a[i]:3);
      writeln;
      (*****)
      writeln('Sau khi xoa cac so tu 50..99 la:');
      for i:=1 to n do
      if (a[i]<50) or (a[i]>99) then write(a[i]:3);
readln;
end.
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
Sponsored content




Bài gửiTiêu đề: Re: Giải các bài toán về mảng một chiều    

Về Đầu Trang Go down
 
Giải các bài toán về mảng một chiều
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» [MF/DVDrip] The Warrior's Way (Con Đường Chiến Binh) (2010)
» Cuối tuần vui vẻ
» TRANG THƠ CHẾ LAN VIÊN
» 7 cái cột mà 15 cái võng
» Vóc dáng quê hương

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Văn Lang - Vạn Ninh :: Bài tập :: Mảng :: Mảng một chiều-
Chuyển đến