PDA

View Full Version : mảng một chiều! các bác làm giúp e vs? thanks



kissing1580
21-05-2012, 08:21
nhập và in ra màn hình 1 dãy số nguyên và thực hiện các thao tác sau:
a) tìm và in ra số nguyên tố trong mảng
b tìm và in ra số hoàn thiện
c) tìm và in ra số chính phương

Cabious
21-05-2012, 12:10
Số hoàn thiện là gì vậy bạn?

kissing1580
21-05-2012, 17:34
số hoàn thiện là số có tổng các ước = chính nó trừ nó ra

pinochu
21-05-2012, 17:54
có mấy người bộ não sinh ra không biết để làm gì, chẳng bao giờ chịu suy nghĩ, học hành mà cứ trông đợi vào người khác.

Cabious
21-05-2012, 19:41
Thế bạn kissing1580 học đã học đến chương trình con chưa

kissing1580
21-05-2012, 20:15
ko phai la ko lam gi! ma la lam xong nhung ma ko chay! chỉ chạy dc 1 phần thui! ko pit tai sao! ma ko giúpthi dug noi vay!

kissing1580
21-05-2012, 20:16
chưa học! help đi sáng mai thi ui! mới học lớp 10 nên ngu lắm mong các bác chỉ giáo thêm! kung hi

pinochu
21-05-2012, 21:07
Làm được tới đâu thì post lên tới đó, có người chỉ cho, không làm gì cả mà post đề lên nhờ giải chưa bị ăn gạch là may.

motien
24-05-2012, 16:59
Bạn tham khảo các bài viết này nhé:

Kiểm tra số nguyên tổ trong pascal (http://codepascal.blogspot.com/2012/02/kiem-tra-so-nguyen-to-trong-pascal.html)
Số hoàn thiện (http://codepascal.blogspot.com/2012/02/so-hoan-thien.html)
Kiểm tra số chính phương trong mảng 1 chiều (http://codepascal.blogspot.com/2012/05/kiem-tra-so-chinh-phuong-trong-mang-1.html)

vietgamedev.net
25-05-2012, 10:06
Bạn nên thử làm rồi post lên cho mọi người góp ý thì hay hơn là nhờ giải giúp.

hd_noname
24-06-2012, 13:29
mình ko dám qua mặt các pro nhưng đây là lời giải chi tiết ( trong lời giải có sử dụng chương trình con)
program mang_mot_chieu;
uses crt;
type mang=array[1..100] of integer;
var a:mang;
i,n,:integer;
function snt(k:integer):boolean;{ham kiem tra so nguyen to}
var cb2,j:integer;
begin
cb2:=trunc(sqrt(k));
j:=2;
while k mod j <> o do j:=j+1;
if j> cb2 then snt:=true else snt:=false;
end;
fuction sht(k:integer):boolean;{ham kiem tra so hoan thien}
var j,tong:integer;
for j:=1 to k div 2 do
if k mod j:=o then tong:=tong+j;
if tong=k then sht:=true else sht:=false;
end;
fuction scp(k:integer):boolean;{ham kiem tra so chinh phuong}
begin
if sqr(trunc(sqrt(k)))=k then scp:=true else scp:=fales;
end;
begin
clrscr;
write('Nhap so luong phan tu cua day'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(n);
end;
writeln('day vua nhap vao la');
for i:=1 to n do write(a[i]:5);
writeln;
{in ra cac so nguyen to trong mang'}
writeln('cac so nguyen to trong mang la');
for i:=1 to n do if snt(a[i]):=true then write(a[i]:4);
writeln;
{in ra cac so hoan thien}
writeln('cac so hoan thien trong mang la');
for i:=1 to n do if sht(a[i]):=true then write(a[i]:4);
writeln;
{in ra cac so chinh phuong trong mang}
writeln('cac so chinh phuong trong mang la');
for i:=1 to n do if scp(a[i]):=true then write(a[i]:4);
writeln;
write('nhan Enter de ket thuc chuong trinh');
readln;
end.

dongcambiz
11-09-2012, 23:51
Bạn hd_noname làm giỏi quá! Thanks bạn!
=>> Bạn có nhầm lẫn ở chỗ này:
or i:=1 to n do if snt(a[i]):=true then write(a[i]:4);

for i:=1 to n do if sht(a[i]):=true then write(a[i]:4);

or i:=1 to n do if scp(a[i]):=true then write(a[i]:4);

=>> Điều kiện thì không sử dụng phép gán!