cần giải hộ mấy bài toán pascal lớp 11

intermilanfc-01

Mr & Ms Pac-Man
Tham gia ngày
9/3/08
Bài viết
203
Reaction score
1
Tìnhb hình là mình sắp phải kt 1 tiết, đề cương có 24 câu, bà dạy tin sẽ cho từng đứa bốc thăm, ai câu nao thì ngồi máy ấy. mà có mấy bài này mà bà ấy chưa chữa, tớ ko làm dc, đang lo lắm, mong mọi người giúp đỡ. Ko nhỡ dính phải mấy bài này chắc tớ die
Bài 1
Lập trình cho bài toán tìm số nhỏ nhất trong 1 dãy N số nguyên. Với N nhập từ bàn phím
Bài 2
Lập trình sắp xếp dãy N số nguyên nhập từ bàn phím theo giá trị giảm dần
Bài 3 : lập trình nhập vào 1 dãy A gòm N số nguyên và 1 số nguyên k bất kỳ. hãy tìm xem trong dãy A có bao nhiêu số hạng có giá trị bằng k và hãy tính và hiển thị tổng những số hạng đó.
Bài 4 : Tạo 1 mảng A không quá 100 phần tử, giá trị của các phần tử được nhập từ bàn phím. Tính tổng các phần tử của mảng là ước số của 1 số nguyên dương k nhập từ bàn phím. Hiển thị tổng đó
Bài 5: Nhập giá trị cho các phần tử của mảng B gồm N phần tử, đếm xem trong mảng có bao nhiêu phần tử có giá trị dương, có bao nhiêu phần tử có giá trị âm
Bài 6: Nhập vào mảng A gồm n phần tử. hãy viết chương trình tạo mảng B trong đó chứa các số dương của mảng A, tạo mảng C trong đó chứa các số âm của mảng A. Hiển thị cả 3 mảng đó ra màn hình
 
giúp mình với các bạn ơi, đang cần gấp lắm
 
Ui zời,dễ ợt
Mình bó tay thôi :)
 
tự giải đi cho nhớ, mấy bài này cũng đâu có khó lắm .
tiếc là ko bít gì về pascal :'> :'>
 
Thuật toán thôi nhá. Tớ học c++ nên không biết cú pháp pascal
nếu cần thì tớ post mấy cái vòng lặp trong c++ lên

3 bài này trước, tí post tiếp:hug:

Bài 1
Lập trình cho bài toán tìm số nhỏ nhất trong 1 dãy N số nguyên. Với N nhập từ bàn phím
đặt biến min = phần tử đầu tiên, cho chạy vòng lặp từ i=0 đến i<n, xét điều kiện nếu min > phần tử i thì gán min = phần tử i.

Bài 2
Lập trình sắp xếp dãy N số nguyên nhập từ bàn phím theo giá trị giảm dần
đặt 1 biến tạm x;
cho chạy 2 vòng lặp lồng nhau, vòng thứ nhất chạy từ i=0 đến i<n, vòng thứ 2 chạy từ j=i+1 đến j<n, trong vòng thứ 2 xét điều kiện nếu phần tử thứ i nhỏ hơn phần tử thứ j ( a<a[j] ) thì gán x=a, gán a=a[j], gán a[j]=x ;
xong rồi xuất mảng.

Bài 3 : lập trình nhập vào 1 dãy A gòm N số nguyên và 1 số nguyên k bất kỳ. hãy tìm xem trong dãy A có bao nhiêu số hạng có giá trị bằng k và hãy tính và hiển thị tổng những số hạng đó.
thêm 2 biến tổng=0, đếm=0;
chạy vòng lặp từ i=0 đến i<n, xét điều kiện nếu phần tử i = k thì gán tổng = tổng + phần tử i, đếm = đếm + 1;
 
quan trọng là chương trình chứ thuật toán dễ ợt=))
1/
var i,min,n:integer;
a:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
end;
min:=maxint;
for i:=1 to n do if min>a then min:=a;
writeln(min);
readln;
end.
2.var i,j,tam,n:integer;
a:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
end;
for i:=1 to n-1 do
for j:=i+1 to n do if a<a[j] then
begin
tam:=a;
a:=a[j];
a[j]:=tam;
end;
for i:=1 to n do write(a,' ');
readln;
end.
3.var i,j,dem,tong,n:integer;
a:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
end;
write('nhap k:');readln(k);
dem:=0;
for i:=1 to n do if a=k then inc(Dem);
writeln('so so hang bang k la:',dem);
writeln('tong cac so do la:',dem*k);
readln;

end.
4.var i,j,dem,tong,n:integer;
a:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
end;
write('nhap k:');readln(k);
dem:=0;
tong:=0;
for i:=1 to k do if (a>0) and (k mod a=0) then
begin
inc(Dem);
tong:=tong+a);
end;
writeln('so so la:',dem);
writeln('tong cac so do la:',tong);
readln;

end.
5.var i,j,am,duong,n:integer;
b:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap b[',i,']:');
readln(b);
end;
write('nhap k:');readln(k);
am:=0;duong:=0;
for i:=1 to n do if b>0 then inc(duong)
else if b<0 then inc(am);
writeln('so so duong la:',duong);
writeln('so so am la:',am);
readln;
end.
6.var i,j,am,duong,n:integer;
a,b,c:array[1..100] of integer;
begin
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
end;
write('nhap k:');readln(k);
am:=0;duong:=0;
for i:=1 to n do if a>0 then
begin
inc(duong);
b[duong]:=a;
end
else if a<0 then
begin
inc(am);
c[am]:=a;
end;
for i:=1 to n do write(a,' ');writeln;
for i:=1 to duong do write(b,' ');writeln;
for i:=1 to am do write(c,' ');
readln;
end.
 
bài 4:
cho vòng lặp chạy từ i=0 -->n(số phần tử của mảng)
xét đk k chia lấy dư(hình như là mod) a mà bằng 0 thì cho biến T(khởi tạo = 0)=T+a;
in ra T
bài 5:
làm vòng lặp tương tự bài 4...xét đk a>0 then dem1(khởi tạo =0)=dem1+1;else dem2(khởi tạo =0)=dem2+1;
in ra dem1 và dem2;
bài 6:
bài này nói lời dài dòng nên làm cái giả mã...hy vọng ko sai cú pháp quá nhiều:p
for i=1 to n do
if a>0 then
begin
dem1=dem1+1;
b[dem1]=a;
end;
else if a<0 then
begin
dem2=dem2+1;
c[dem2]=a;
end;
phần in phần tử 3 mảng thì cứ cho i chay từ 1 tới n thôi...như in mảng bt.
p/s: mấy bài này giống hệt cái giáo trình pascal cơ bản bên ĐH =)) hồi học cấp 3 mình còn phải làm mấy bài làm cái ô tô chạy từ trái qua phải...khó vãi lều :'>:'>
p/s bài ở trên bài này.....cậu phát biểu đần độn vê lờ....lập trình thì nó sẽ có 1 thằng nghĩ thuật toán (trùm---lãnh đạo---lương cao) và 1 đống thằng culy ngồi thực hiện cái thuật toán ấy(lương tầm tầm)...và tôi nghĩ là việc nào lương cao hơn thì việc đó khó hơn =))
 
quan trọng là chương trình chứ thuật toán dễ ợt=))

tớ thì nghĩ
quan trọng là thuật toán, có thuật toán rồi viết chương trình dễ ợt=))
học 1 năm trời ít nhất cũng phải biết viết mấy cái vòng lặp với rẽ nhánh này chứ;;)

p/s: xong hết rồi à, chủ topic may mắn thật;;)
 
mấy cậu trên không phải xoáy=))=)).Mấy đứa bạn tôi cùng học lớp chuyên tin mà giờ hỏi pascal đếch đứa nào biết.Trình cấp cao và trình cấp thấp khác nhau nhiều cái lắm=))=))
 
bài của matran làm mình thấy ko ổn lắm, sao chạy chương trình bài nào sau khi nhập n xong nso cứ báo nhap a[1], nhap a[2],............
Sau đó mình nhập tiếp 1 số là nó thoát chương trình, bài nào cũng vậy
 
đúng là hơi nhầm thật.Sửa lại..........
 
thêm mấy bài này nữa, matran giải giúp mình nhé, quên mất còn mấy bài này chưa làm dc
Bài 1.
Viết chương trình nhập vào độ dài 3 cạnh của 1 tam giác rồi kiểm tra xem tam giác đó là tam giác vuông hay tam giác thường
Bài 2 :Nhập giá trị cho các phần tử của mảng B gồm N phần tử, đếm xem trong mảng có bao nhiêu phần tử có giá trị dương, có bao nhiêu phần tử có giá trị âm.
Bài 3: Nhập vào mảng A gồm n phần tử. hãy viết chương trình tạo mảng B trong đó chứa các số dương của mảng A,tạo mảng C trong đó chứa các số âm của mảng A.
Bài 4: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm lý tự "anh" bằng cụm ký tự "em"
Bài 5: Nhập vào 1 xâu. Đếm xem trong đó có bao nhiêu từ( từ là 1 tập hợp các kí tự không chứa dấu cách)
bài 6: Nhập vào 1 câu.Viết hoa tất cả các chữ cái trong câu.
Bài 7 : Nhập vào 1 câu, viết hoa các chữ cái đầu của mỗi từ
 
readln(a,b,c);
if (a*a+b*b-c*c)*(a*a-b*b+c*c)*(b*b+c*c-a*a)=0 then write('tam giac vuong') else write('tam giac thuong');

đại loại thế ;;)
 
readln(a,b,c);
if (a*a+b*b-c*c)*(a*a-b*b+c*c)*(b*b+c*c-a*a)=0 then write('tam giac vuong') else write('tam giac thuong');

đại loại thế ;;)

cứ giải đầy đủ như bác matran đi bác để mình còn hiểu cho rõ, phần lập trình pascal này mình cũng kém lắm.
 
Mã:
var a,b,c:real;
    begin
      write('nhap a:');readln(a);
      write('nhap b:');readln(b);
      write('nhap c:');readln(c);
      if (a*a+b*b-c*c)*(a*a-b*b+c*c)*(b*b+c*c-a*a)=0 then write('tam giac co 3 canh da nhap la tam giac vuong ') 
                                                     else write('tam giac co 3 canh da nhap la tam giac thuong');
    end;

được chưa :whew:
 
uhm, nhưng mới được có bài 1, còn 6 bài nữa, bạn giúp mình với
Bài 2 :Nhập giá trị cho các phần tử của mảng B gồm N phần tử, đếm xem trong mảng có bao nhiêu phần tử có giá trị dương, có bao nhiêu phần tử có giá trị âm.
Bài 3: Nhập vào mảng A gồm n phần tử. hãy viết chương trình tạo mảng B trong đó chứa các số dương của mảng A,tạo mảng C trong đó chứa các số âm của mảng A.
Bài 4: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm lý tự "anh" bằng cụm ký tự "em"
Bài 5: Nhập vào 1 xâu. Đếm xem trong đó có bao nhiêu từ( từ là 1 tập hợp các kí tự không chứa dấu cách)
bài 6: Nhập vào 1 câu.Viết hoa tất cả các chữ cái trong câu.
Bài 7 : Nhập vào 1 câu, viết hoa các chữ cái đầu của mỗi từ
 
uhm, nhưng mới được có bài 1, còn 6 bài nữa, bạn giúp mình với
:| :| :| :| :| :| :| :| :| :|
Bài 2 :Nhập giá trị cho các phần tử của mảng B gồm N phần tử, đếm xem trong mảng có bao nhiêu phần tử có giá trị dương, có bao nhiêu phần tử có giá trị âm.
Mã:
var a:array[1..n] of real;
     i,n,am,duong:integer;
    begin
      write('n= ');readln(n);
      for i:=1 to n do readln(a[i]); 
      duong:=0;
      for i:=1 to n do 
      if a[i]>0 then duong:=duong+1; {nếu thấy a[i]> thì tăng biến đếm (duong) lên 1 đơn vị}
      am:=n-duong; {tính được số giá trị dương của mảng a thì sẽ tìm được số giá trị âm của mảng vì am+duong=n}
    end;
Bài 3: Nhập vào mảng A gồm n phần tử. hãy viết chương trình tạo mảng B trong đó chứa các số dương của mảng A,tạo mảng C trong đó chứa các số âm của mảng A.
Mã:
var a,b,c:array[1..n] of real;
     i,j,k,n:integer;
    begin
      write('n= ');readln(n);
      for i:=1 to n do readln(a[i]); 
      j:=0;
      for i:=1 to n do 
      if a[i]>0 then {nếu a[i]>0} 
        begin
         j:=j+1;
         b[j]:=a[i]; {gán giá trị của mảng b bởi a[i]}
        end;
      k:=0;
      for i:=1 to n do 
      if a[i]<0 then {nếu a[i]<0} 
        begin
         k:=k+1;
         c[k]:=a[i]; {gán giá trị của mảng c bởi a[i]}
        end;
    end;
Bài 4: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm lý tự "anh" bằng cụm ký tự "em"
Bài 5: Nhập vào 1 xâu. Đếm xem trong đó có bao nhiêu từ( từ là 1 tập hợp các kí tự không chứa dấu cách)
bài 6: Nhập vào 1 câu.Viết hoa tất cả các chữ cái trong câu.
Bài 7 : Nhập vào 1 câu, viết hoa các chữ cái đầu của mỗi từ
phần mảng quên hết rồi
106.gif
tự làm đi :-"
chỉ nhớ là viết hoa các chữ cái thì dùng upcase
vd: ch:=upcase('n') ~~> ch='N' (ch có type là char)
 
LoL--tôi nghi mấy bài này ko phải của PTTH đâu---phức tạp vãi lu =))
nói thật là đề cho thì thế thôi chứ học tin ở phổ thông chỉ là lấy cái điểm nghề....mà cái này +1 vào điểm tốt nghiệp---nói thẳng ra là vô dụng vì 1 khi đã có ý muốn vào ĐH thì TN đương nhiên nhắm mắt cũng phải đỗ--->học cho thành thạo các bài cơ bản là đủ--chứ giờ mà lên đây hỏi code rồi về học vẹt thì đc cái tích sự gì thế bạn trẻ???
 
bác này chưa học tin pascal bao giờ ah.Nhưng ai chăm chỉ+hơi có năng khiếu 1 chút thì 2-3 ngày là làm được hết tất cả các bài trên..\
@hieuNM:bác làm admin của vnoi mà quên readln kìa,end; sao chạy được:-":-"
4.var s,s1,tam:string;
i,j,k,n:integer;
begin
write('nhap xau:');readln(s);
i:=1;
s1:='';
n:=length(s);
repeat
while (a<>'a') and (i<=n) do
begin
s1:=s1+s;
inc(i);
end;
if i<=n-2 do tam:=copy(s,i,3);
if tam='anh' then
begin
i:=i+3;
s1:=s1+tam;
end;
until i>n;
writeln(s1);
readln;
end.
5.
var s,s1,tam:string;
i,j,k,n:integer;
begin
write('nhap xau:');readln(s);
i:=1;
n:=length(s);
dem:=0;
repeat
while s=' ' do inc(i);
while s<>' ' do inc(i);
inc(dem);
while (s=' ') and (i<=n) do inc(i);
until i>n;
writeln(dem);
readln;
end.
2 câu cuối chả nhớ viết hoa là gì..
 
Back
Top