Tin học Lập trình Pascal !

T

teatrinh

Xin mọi người giúp em với
1) cho các số nguyên bé hơn 100. tìm các số chẵn ở vị trí lẻ trong dãy trên?
2) cho 1 xâu và một kí tự
Tìm vị trí trong xâu đó các kí tự giống kí tự đã cho?
 
S

s.shinichi2009

program Ai_thong_minh_hon;
uses crt;
var Kudo, Helji: Real;
begin
clrscr;
writeln('Nhap IQ cua Kudo:'); readln(Kudo);
writeln('Nhap IQ cua Helji:'); readln(Helji);
 
H

huutrang93

Mọi người giúp em phần lập hàng rào với (bài 4.35 và 4.36 SBT)
Cho n số thực nhập từ bàn phím a1,a2,a3,...,an. Xác định chỉ số của tất cả các số thoả mãn
a) số đó nhỏ hơn số đứng liền trước và nhỏ hơn số đứng liền sau nó
b) số đó lớn hơn số đứng liền trước và lớn hơn số đứng liền sau nó
Mã:
Ví dụ
Nhap day so can xu li: 1 2 3 4 5 4 3 2 1
chi so cua cac cuc tieu dia phuong la 1 9
chi so cua cac cuc dai dia phuong la 5
 
Last edited by a moderator:
N

nani_tam999

Mọi người giúp em phần lập hàng rào với (bài 4.35 và 4.36 SBT)
Cho n số thực nhập từ bàn phím a1,a2,a3,...,an. Xác định chỉ số của tất cả các số thoả mãn
a) số đó nhỏ hơn số đứng liền trước và nhỏ hơn số đứng liền sau nó
b) số đó lớn hơn số đứng liền trước và lớn hơn số đứng liền sau nó

a)
Mã:
for i:=1 to n do
        if (a[i]>a[i-1]) and a[i]>a[i+1] then write(f,i:3);
b)
Mã:
for i:=1 to n+1 do
        if (a[i]>a[i-1]) and a[i]>a[i+1] then write(f,i:3);
 
H

huutrang93

a)
Mã:
for i:=1 to n do
        if (a[i]>a[i-1]) and a[i]>a[i+1] then write(f,i:3);
b)
Mã:
for i:=1 to n+1 do
        if (a[i]>a[i-1]) and a[i]>a[i+1] then write(f,i:3);

Do đề yêu cầu không nhập số lượng số trong dãy nên không dùng kiểu mảng được, phải dùng kiểu xâu
Đây là chương trình tôi làm theo gợi ý của bạn
untitled-36.jpg

Và đây là kết quả
untitled-35.jpg
 
H

huutrang93

mọi người giúp em với:D:D:D.......
.............................................................

Bài 1:
Chương trình
untitled-37.jpg

Kết quả
untitled-38.jpg

Lưu ý: Tôi không làm được câu lệnh thực hiện nếu điều kiện sai thì in ra "Không có phần tử ở vị trí lẻ có giá trị chẵn"
Bài 2:
Chương trình
untitled-40.jpg

Kết quả
untitled-39.jpg

Lưu ý: Cũng giống bài 1, Tôi không làm được câu lệnh thực hiện nếu điều kiện sai thì in ra "Không có phần tử nào của dãy giống với phần tử cần so sánh"
 
Last edited by a moderator:
M

marik

hiz nói tóm lại pascal chỉ là một môn học vô bổ thà tính tay còn nhanh hơn
Thế à, thế tính hộ cái: Tìm tất cả các số từ 0--->30000 số C có tính chất sau: Sắp xếp lại số đó theo thứ tự từ lớn đến nhỏ(gọi là số A) và từ nhỏ đến lớn(gọi là số B)ta sẽ được A-B=C
VD: 6174=7641-1467
 
K

kien_coi_1997

Thế à, thế tính hộ cái: Tìm tất cả các số từ 0--->30000 số C có tính chất sau: Sắp xếp lại số đó theo thứ tự từ lớn đến nhỏ(gọi là số A) và từ nhỏ đến lớn(gọi là số B)ta sẽ được A-B=C
VD: 6174=7641-1467
var b,c,d,e:Word;a:Word;
function sortAZ(a,b,c,d,e:Word):word;
var x,z:Word;
begin
for x:=1 to 5 do
begin
if (d<e) and (a+b+c+d>0) then
begin z:=d; d:=e; e:=z; end;
if (c<d) and (a+b+c>0) then
begin z:=c; c:=d; d:=z; end;
if (b<c) and (a+b>0) then
begin z:=b; b:=c; c:=z; end;
if (a<b) and (a>0) then
begin z:=a; a:=b; b:=z; end;
end;
sortAZ:=10000*a+1000*b+100*c+10*d+1*e;
end;
function sortZA(a,b,c,d,e:Word):word;
var x,z:Word;
begin
for x:=1 to 5 do
begin
if (d>e) and (a+b+c+d>0) then
begin z:=d; d:=e; e:=z; end;
if (c>d) and (a+b+c>0) then
begin z:=c; c:=d; d:=z; end;
if (b>c) and (a+b>0) then
begin z:=b; b:=c; c:=z; end;
if (a>b) and (a>0) then
begin z:=a; a:=b; b:=z; end;
end;
sortZA:=10000*a+1000*b+100*c+10*d+1*e;
end;
begin
for a:=0 to 2 do
for b:=0 to 9 do
for c:=0 to 9 do
for d:=0 to 9 do
for e:=0 to 9 do
if sortAZ(a,b,c,d,e)
-sortZA(a,b,c,d,e)
=10000*a+1000*b+100*c+10*d+1*e
then writeln(a,b,c,d,e);{
writeln(a,b,c,d,e,' ',sortaz(a,b,c,d,e));}
readln;
end.

KQ :6174 & 495
 
M

marik

Dùng mảng or xâu rồi dùng các thuật toán sắp xếp thi tốt hơn em ạ!
 
Last edited by a moderator:
S

stary

Câu hỏi và bài tập

1. Nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước.
2. Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần biết trước và câu lệnh lặp với số lần lặp chưa biết trước.
3. Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó.
a) Thuật toán 1
Bước 1. S <- 10, x <- 0.5.
Bước 2. Nếu S \leq 5.2, chuyển tới bước 4.
Bước 3. S <- S - x và quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
b) Thuật toán 2
Bước 1. S <- 10, n <- 0.
Bước 2. Nếu S \geq 10, chuyển tới bước 4.
Bước 3. n <- n + 3, S <- S - n quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
4. Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp? Hãy rút ra nhận xét của em.
a) S:=0; n:=0;
while S <= 10 do
begin n:= n + 1; S:= S + n end;
b) S:=0; n:=0;
while S <= 10 do
n:= n + 1; S:= S + n;
5. Hãy chỉ ra lỗi trong các câu lệnh sau đây:
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:= 0; while S <= 10 do n:= n + 1; S:= S + n;
 
Top Bottom