Nhận giải các đề Pascal và giảng giải về lập trình bằng pascal phổ thông!

  • Thread starter Thread starter Mr Bi
  • Ngày gửi Ngày gửi
Trạng thái
Không mở trả lời sau này.

Mr Bi

New member
Xu
74
Mình lập ra topic này để nhần giảng giải cho những ai không hiểu j về lập trình pascal phổ thông. Và giải các bài tập về lập trình bằng Pascal.
Nếu ai thắc mắc j về việc lập trình bằng Pascal phổ thông thì vào đây nha.;)
 
Bạn giải giúp tớ 2 bài này nha !

BT : Tính tổng
1. S = 100 + a/ 1! + a²/ 2! + a³/ 3! + ... + a n/ n!

2. S = 2009 + 1 - 3 + 5 - 7 + ... + (-1)n-1 (2n+1)



Nhờ Bạn giải hộ.
Kèm theo hình ảnh thì quá tốt.
Minh` cảm ơn ! " Chữ lớn là số Mũ do' Bạn "
 
Bài 1:

S = 100 + a[SUB2]n[/SUB2]/n!

program tinhtong; \vt Tên chương trình
uses crt; \vt Sử dụng thư viện màn hình
var S,a,g:real; \vt Khai báo biến S,a và g kiểu số thựci,n:integer; \vt Khai báo biến i và n kiểu số nguyên
beginclrscr; \vt Lệnh xoá lệnh cũ sau khi thực hiện lệnh viết tắt của từ clear screen
write('Nhap gia tri a: ');
readln(a); \vt Chú ý khi nhập biến nên sử dụng lệnh readln để tránh bị lỗi nha
write('Nhap gia tri n: ');
readln(n);
If a=0 then writeln('Tong la: 100'); \vt Nếu a = 0 thì xuất ra tổng bằng 100
If n=0 then writeln('Tong la: 101');
If n>=1 then
beging:=1; \vt Khởi tạo biến g bằng 1
for i:=1 to n do g:=n*i; \vt Câu lệnh lặp for...do dùng để tính n!
S:=1; \vt Khởi tạo biến S bằng 1
S:=100+(exp(n*ln(a)))/g; \vt S = 100 + a[SUB2]n[/SUB2]/g
writeln('Tong la: ',S:10:10); \vt Xuất ra tổng S với 10 số nguyên, và 10 số sau số nguyên tức là: xxxxxxxxxx.xxxxxxxxxxxx
end;
If n<0 then writeln('So duoc nhap khong thich hop');
readln;
end.
 
cam' on ban nhieu lam'.bai` 1 minh nhap xong va dung' het luon.nho` ban lam ho. minh bai 2 nha.cam' on nhieu`.
 
Bạn nên kiểm tra lại đề bài 2 xem có hợp lý không luôn nha!
S=2009+(-1)[SUB2]n-1[/SUB2](2n-1) \vt????
Có thể do chương trình ở máy nhà bị lỗi, nên mình chuyển hướng làm. Bạn test thử luôn nha.


program tinhtong;
uses crt;
var S,a,b,c,d:real;i,n:integer;
begin
clrscr;
write('Nhap gia tri n: ');
readln(n);
If n>1 then begin
If (n mod 2 =0) thenbegin
a:=0;
for i:=1 to n do
a:=a+exp(i*ln(1));
b:=0;
for i:=1 to n do
b:=b+2*i;
c:=b+1;
S:=2009+a*c;
writeln('Tong la: ',S:10:5);
end;
If (n mod 2 <>0) thenbegin
a:=0;
for i:=1 to n do
a:=a+exp(i*ln(1));
d:= a*(-1);
b:=0;
for i:=1 to n do
b:=b+2*i;
c:=b+1;
S:=2009+d*c;
writeln('Tong la: ',S:10:5);
end;
end;
If n=0 then writeln('Tong la: 2008');
If n<0 then begin
If (n mod 2 =0) thenbegin
a:=0;
for i:=1 downto n do
a:=a+exp(i*ln(1));
b:=0;
for i:=1 downto n do
b:=b+2*i;
c:=b+1;
S:=2009+a*c;
writeln('Tong la: ',S:10:5);
end;
If (n mod 2 <>0) then
begin
a:=0;
for i:=1 downto n do
a:=a+exp(i*ln(1));
d:= a*(-1);
b:=0;
for i:=1 downto n do
b:=b+2*i;
c:=b+1;
S:=2009+d*c;
writeln('Tong la: ',S:10:5);
end;
end;
readln;
end.
 
Không được rồi bạn à. Mình nhập mà nó báo lỗi ở "end'. Bạn xem lại giúp mình cái.
 
Không được rồi bạn à. Mình nhập mà nó báo lỗi ở "end'. Bạn xem lại giúp mình cái.

Bài giải rõ ràng như thế, bạn nên tự kiểm tra lại cú pháp, ý nghĩa của từng câu lệnh để từ đó rút kinh nghiệm tại sao mình làm chưa được. Chứ đừng động 1 tí là hỏi. Lỗi ở "end" thì bạn xem trước và sao "end" có thiếu hay thừa cái gì không nhé.
 
minh` nhap dung' hoan toan nhu ban post len do.nhung no' bao' loi~ o "end." ay.loi~ hien len la :" ; ".minh` khong hieu lam'.du` j cung cam on ban rat nhjeu.
 
Trong câu lệnh If khi có 2 câu lệnh trở lên thì phải rào bằng cặp lệnh begin...end, và khi kết thúc câu lệnh thì nút end đó có dấu (;). Còn nếu bạn kết thúc bằng dấu chấm thì chương trình sẽ chấm dứt tại đó, hoặc chương trình sẽ báo lỗi cú pháp!

Nếu báo lỗi đó, lệnh end đó không phải là lệnh cuối cùng thì bạn thay dấu chấm bằng dấu ;
Bạn fix lại luôn nha!


Vui lòng lần sau viết chữ có dấu nha!
 
Mình lập ra topic này để nhần giảng giải cho những ai không hiểu j về lập trình pascal phổ thông. Và giải các bài tập về lập trình bằng Pascal.
Nếu ai thắc mắc j về việc lập trình bằng Pascal phổ thông thì vào đây nha.;)

Nho` pro giai giup minh bai tap nay cai' :
Lập chương trình nhập vào 1 mảng số nguyên có n phần tử ( với n được nhập vào từ bàn phím ).
- In ra mảng vừa nhập.
- Tìm giá trị min , max có trong mảng.
- Tinh tổng các phần tử chẵn có trong mảng.
- Sắp xếp mảng theo thứ tự giảm dần.

Nhờ Ban làm cụ thể giúp minh` cái nha.thank kiu.
 
anh có thể giải giúp em bài này ko ạ:
B1: Viết chương trình nhập vào 1 chuỗi kí tự, sau đó nhập vào 1 kí tự bất kì và đếm số lần của nó trong chuỗi đã nhập?
B2: Viết chương trình nhập vào họ tên của 1 người. Sau đó in chuỗi họ tên ra ngoài màn hình ví các kí tự đầu đổi thành chữ in hoa, toàn bộ chuỗi họ và tên đổi thành chữ hoa
B3: viết chương trình nhập vào 1 chuỗi kí tự, sau đó in chuỗi ra màn hình với các kí tự đầu đổi thành chữ in hoa, các kí tự còn lại của từ trong chuỗi sang chữ thường.
em cảm ơn anh trước naz!
 
Mong các pro giải giúp bài này...
-------------------------------
Bài 1:
Số nguyên dương n gọi là số song tố khi n là số nguyên tố và tổng các chữ số của n cũng là số nguyên tố.
Ví dụ: 11 là số song tố vì 11 là số nguyên tố, 1+1=2 cũng là số nguyên tố.
Nhập vào một chuỗi gồm các kí tự, kí số và các khoảng trắng. Hãy viết một chương trình tính và đưa ra:
- Số các số song tố có trong chuỗi.
- Tổng các số song tố có trong chuỗi.
-------------------------------------
... và xem cách giải bài này của tôi có đúng không, cần sửa lại gì không?
Bài 2:
Một máy ATM đổi tiền lẻ gồm các tờ tiền mệnh giá 100, 200, 500, 1000, 2000, 5000 đồng. Hãy viết chương trình đổi tiền cho máy ATM đó, với số tiền nhập vào là bội của 100, sao cho số tờ tiền nhận được ít nhất.
==== Chương trình cho bài 2 ====

program doi_tien;
uses crt;
var t1,t2,t5,t10,t20,t50,n:longint;
a:string;
i:byte;
s1,s2,s3,s4,s5,s6,st50,st20,st10,st5,st2,st1:string;
begin
clrscr;
write('Nhap vao so tien can doi ');
readln(n);
t50:=n div 5000; n:=n-5000*t50;
t20:=n div 2000; n:=n-2000*t20;
t10:=n div 1000; n:=n-1000*t10;
t5:=n div 500; n:=n-500*t5;
t2:=n div 200; n:=n-200*t2;
t1:=n div 100; n:=n-100*t1;
a:=' to ';
str(t50,st50); str(t20,st20);
str(t10,st10); str(t5,st5);
str(t2,st2); str(t1,st1);
if t50 <> 0 then s1:=st50+a+' 5000 ' else s1:='';
if t20 <> 0 then s2:=st20+a+' 2000 ' else s2:='';
if t10 <> 0 then s3:=st10+a+' 1000 ' else s3:='';
if t5 <> 0 then s4:=st5 +a+' 500 ' else s4:='';
if t2 <> 0 then s5:=st2 +a+' 200 ' else s5:='';
if t1 <> 0 then s6:=st1 +a+' 100.' else s6:='';
if s2<>'' then s1:=s1+'+ ';
if s3<>'' then s2:=s2+'+ ';
if s4<>'' then s3:=s3+'+ ';
if s5<>'' then s4:=s4+'+ ';
if s6<>'' then s5:=s5+'+ ';
write(t50*5000+t20*2000+t10*1000+t5*500+t2*200+t1*100,' = ',s1+s2+s3+s4+s5+s6);
readln;
end.
===========
Cảm ơn các pro giải giúp nhé. Chúc mọi người năm mới vui vẻ!
 
Có lẽ lâu nay các bạn đặt câu hỏi mà không được sự hồi âm nào, tôi Tiểu Hắc Lang, trong thời gian này rất bận, có quá nhiều việc đã xảy ra với tôi. Tôi không đủ time để giải cho các bạn, trong thời gian này anh dailuong sẽ nhận giải các bài pascal này!

Xin cảm ơn!
 
Nho` pro giai giup minh bai tap nay cai' :
Lập chương trình nhập vào 1 mảng số nguyên có n phần tử ( với n được nhập vào từ bàn phím ).
- In ra mảng vừa nhập.
- Tìm giá trị min , max có trong mảng.
- Tinh tổng các phần tử chẵn có trong mảng.
- Sắp xếp mảng theo thứ tự giảm dần.

Nhờ Ban làm cụ thể giúp minh` cái nha.thank kiu.

Xin lỗi các bạn vì sự chậm trễ này. Mình sẽ cố gắng post code sớm nhất.
Bạn download code bài tập trên tại đây. các bạn đổi tên file .txt thành .pas rồi chạy chương trình.
 
1. Dãy an là dãy đặc biệt nếu
N là số chính phương (= số tự nhiên2)
Các phần tử trong an <> nhau đôi một
clip_image001.gif
Các phần tử có thể sắp xếp vào ma trận vuông A√n phương (ma trận vuông có tổng các số trên 1 hàng = tổng các số trên 1 cột = tổng các số trên 1 đường chéo)
Cho dãy an (-10 000 < ai < 10 000, 0< n <3000), kiểm tra dãy có phải là dãy dặc biệt không, nếu có thì đưa ra ma phương
Dòng đầu chứa m là cấp ma phương
M dòng tiếp chứa m số là các phần tử của ma phương, mỗi số cách nhau 1 khoảng trắng
2. Cho một dãy các số tự nhiên liên tiếp từ 1..N. Hãy viết các dấu + và – vào giữa 2 số liên tiếp để kết quả biểu thức = 0 (N<10). Kết quả ghi vào file văn bản BAI4.OUT dòng đầu là số M cho biết số cách điền, M dòng tiếp mỗi dòng là 1 kết quả
3. Cho 1 hình chữ nhật M hàng N cột, chia thành MxN ô vuông, mỗi ô ghi số 0 hoặc 1.Miền 0 là 1 miền liên tục các số 0 thuộc các ô chung cạnh với nhau, diện tích miền là số lượng ô vuông cùng giá trị thuộc miền đó. Tính diện tích miền 0 lớn nhất. Input là file văn bản Bai5.inp ghi 2 số M, N. M dòng tiếp chứa N số lần lượt là giá trị các ô. Kết quả ghi ra file văn bản bai5.out là số nguyên duy nhất là diện tích miền 0 lớn nhất
clip_image002.gif
 
anh có thể giải giúp em bài này ko ạ:
B1: Viết chương trình nhập vào 1 chuỗi kí tự, sau đó nhập vào 1 kí tự bất kì và đếm số lần của nó trong chuỗi đã nhập?
B2: Viết chương trình nhập vào họ tên của 1 người. Sau đó in chuỗi họ tên ra ngoài màn hình ví các kí tự đầu đổi thành chữ in hoa, toàn bộ chuỗi họ và tên đổi thành chữ hoa
B3: viết chương trình nhập vào 1 chuỗi kí tự, sau đó in chuỗi ra màn hình với các kí tự đầu đổi thành chữ in hoa, các kí tự còn lại của từ trong chuỗi sang chữ thường.
em cảm ơn anh trước naz!

Bạn download code bài 1 tại đây

Bài 2 mình không hiểu rõ yêu cầu của đề. Bạn có thể post 1 ví dụ cụ thể được k?

Bài 3: các bạn download code tại đây
 
Mong các pro giải giúp bài này...
-------------------------------
Bài 1:
Số nguyên dương n gọi là số song tố khi n là số nguyên tố và tổng các chữ số của n cũng là số nguyên tố.
Ví dụ: 11 là số song tố vì 11 là số nguyên tố, 1+1=2 cũng là số nguyên tố.
Nhập vào một chuỗi gồm các kí tự, kí số và các khoảng trắng. Hãy viết một chương trình tính và đưa ra:
- Số các số song tố có trong chuỗi.
- Tổng các số song tố có trong chuỗi.

Bạn download code bài tập trên tại đây nha.
 
1. Dãy an là dãy đặc biệt nếu
N là số chính phương (= số tự nhiên2)
Các phần tử trong an <> nhau đôi một
clip_image001.gif
Các phần tử có thể sắp xếp vào ma trận vuông A√n phương (ma trận vuông có tổng các số trên 1 hàng = tổng các số trên 1 cột = tổng các số trên 1 đường chéo)
Cho dãy an (-10 000 < ai < 10 000, 0< n <3000), kiểm tra dãy có phải là dãy dặc biệt không, nếu có thì đưa ra ma phương
Dòng đầu chứa m là cấp ma phương
M dòng tiếp chứa m số là các phần tử của ma phương, mỗi số cách nhau 1 khoảng trắng
2. Cho một dãy các số tự nhiên liên tiếp từ 1..N. Hãy viết các dấu + và – vào giữa 2 số liên tiếp để kết quả biểu thức = 0 (N<10). Kết quả ghi vào file văn bản BAI4.OUT dòng đầu là số M cho biết số cách điền, M dòng tiếp mỗi dòng là 1 kết quả
3. Cho 1 hình chữ nhật M hàng N cột, chia thành MxN ô vuông, mỗi ô ghi số 0 hoặc 1.Miền 0 là 1 miền liên tục các số 0 thuộc các ô chung cạnh với nhau, diện tích miền là số lượng ô vuông cùng giá trị thuộc miền đó. Tính diện tích miền 0 lớn nhất. Input là file văn bản Bai5.inp ghi 2 số M, N. M dòng tiếp chứa N số lần lượt là giá trị các ô. Kết quả ghi ra file văn bản bai5.out là số nguyên duy nhất là diện tích miền 0 lớn nhất
clip_image002.gif

Lưu ý với bạn Chung, nếu bạn muốn thêm ảnh vào bài viết, bạn phải upload ảnh lên đã. Bạn có thể up tại https://server1.vnkienthuc.com/, sau đó mới chèn hình vào bài viết được
 
Trạng thái
Không mở trả lời sau này.

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