pascal khó đây

C

cuong276

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Câu 1:
Viết chương trình tính tổng S và in ra màn hình với yêu cầu sau:
- Nhập từ bàn phím số nguyên N, kiểm soát nhập liệu để 0<N<100.
- Nếu N là số lẻ thì S = 1+3+...+N, còn nếu N là số chẵn thì S = 2+4+...+N
Câu 2:
Viết chương trình đọc vào 2 đa thức. Thực hiện phép cộng 2 đa thức rồi in kết quả ra màn hình.
Câu 3:
Cho hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số nguyen dương trong khoảng [1,100];
Một điểm M chạy trên đoạn BC với BM = x; một điểm N chạy trên đoạn CD với CN = x.
Tính giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác AMN khi M,N di động
Dữ liệu vào: Được cho trong tập tin CHUNHAT.inp, gồm một dòng ghi 2 số nguyên dương lần lượt là a,b. Hai số cách nhau một khoảng trắng
Dữ liệu ra: Yêu cầu xuất ra tập tin CHUNHAT.out gồm 4 dòng:
+) Dòng đầu tiên là giá trị lớn nhất của diện tích tam giác AMN
+) Dòng thứ 2 là 1 giá trị của x để S AMN đạt giá trị lớn nhất
+) Dòng thứ 3 là giá trị nhỏ nhất của diện tích tam giác AMN
+) Dòng thứ 4 là 1 giá trị của x để S AMN đạt giá trị nhỏ nhất
 
C

cuong276

em làm được hết rồi! Chỉ là em đưa lên cho các bạn tham khảo và cùng làm thôi
 
C

cuong276

không phải. Em khi thi cũng làm như thế đó thôi nhưng bị trừ 3,5 điểm đó
 
C

cuong276

khi thi em làm thế này nè
Mã:
uses crt;
var i,s,n:integer;
begin
       write('nhap n='); readln(n);
       s:=0;
       for i:=1 to n do 
            if i mod 2 = n mod 2 then s:=s+i;
       write('tong la:', s:3);
       readln;
end.
Thế đó! Thế là mất 3 điểm rưỡi, thế có bực không chứ
 
M

marik

Câu 1:
Viết chương trình tính tổng S và in ra màn hình với yêu cầu sau:
- Nhập từ bàn phím số nguyên N, kiểm soát nhập liệu để 0<N<100.
- Nếu N là số lẻ thì S = 1+3+...+N, còn nếu N là số chẵn thì S = 2+4+...+N

khi thi em làm thế này nè
Mã:
uses crt;
var i,s,n:integer;
begin
       write('nhap n='); readln(n);
       s:=0;
       for i:=1 to n do 
            if i mod 2 = n mod 2 then s:=s+i;
       write('tong la:', s:3);
       readln;
end.
Thế đó! Thế là mất 3 điểm rưỡi, thế có bực không chứ

Màu đỏ đâu ?
 
C

cuong276

thì thế mới nói là không dễ. Mình làm mà không để ý đến cái điều kiện đó nên mới sai. hic
 
S

starlove_maknae_kyuhyun

kiểm tra và bắt nhập lại dùng repeat ..until hoặc while ... do .....

chúc các bạn học tốt !
 
C

cuong276

lệnh while.....do hình như không được bạn à? vì nếu kiểm tra điều kiện nhập đúng thì chương trình sẽ write và đọc a xong rồi lại quay trở lại vòng while tiếp, như vậy sẽ khó thoát vòng while. Nên dùng lệnh repeat....until thì hơn đó.
 
S

starlove_maknae_kyuhyun

ở đây ta có thể kiểm tra được tính true false sau đó while tuy nhiên đây chỉ là gợi ý để hiểu rõ hơn bản chất của pascal ! chứ ta nên dùng reapeat cho ngắn gọn và dễ hiểu !
Chúc bạn học tốt !
 
M

mikelhpdatke

Bài 1:
Mã:
Program bai1;
Uses crt;
Var S,N,i,j:Longint;
BEGIN
 Repeat
  Write('Nhap N=' );Readln(N);
 Until (N>0) and (N<100);
S:=0;
i:=1;
j:=2;
If N mod 2=1 then
  Repeat
   S:=S+i;
   inc(i,2);
  Until i>N
Else 
  Repeat
    S:=S+j;
    inc(j,2);
  Until j>N;
Readln
end.
 
C

cuong276

Dài dòng, khó hiểu quá. @-)
Mã:
var n,s,i:integer;
begin
    repeat
        write('nhap n='); readln(n);
    until (n>0) and (n<100);
    s:=0;
    for i:=1 to n do
         if i mod 2 = n mod 2 then s:=s+i;
    write('Tong la:',s:3);
    readln;
end.
Thế này có phải gọn hơn không
 
Last edited by a moderator:
M

marik

Dài dòng, khó hiểu quá. @-)
Mã:
var n,s,i:integer;
begin
    repeat
        write('nhap n='); readln(n);
    until (n>0) [COLOR="Red"]or[/COLOR] (n<100);
    s:=0;
    for i:=1 to n do
         if i mod 2 = n mod 2 then s:=s+i;
    write('Tong la:',s:3);
    readln;
end.
Thế này có phải gọn hơn không

Đỏ sai nhé @@, dùng while do hay repeat until cũng như nhau thôi, 2 lệnh tương đương nên đã dùng đc lệnh này thì sẽ dùng được lệnh kia!

Mã:
var n,s,i:integer;
begin

n:=0;
    while (n<=0) or (n>=100) do
begin
        write('nhap n='); readln(n);
end;
    s:=0;
    for i:=1 to n do
         if i mod 2 = n mod 2 then s:=s+i;
    write('Tong la:',s:3);
    readln;
end.
 
M

mikelhpdatke

Dài dòng, khó hiểu quá. @-)
Mã:
var n,s,i:integer;
begin
    repeat
        write('nhap n='); readln(n);
    until (n>0) or (n<100);
    s:=0;
    for i:=1 to n do
         if i mod 2 = n mod 2 then s:=s+i;
    write('Tong la:',s:3);
    readln;
end.
Thế này có phải gọn hơn không

Không được dùng or, bạn phải dùng and. N phải thỏa mãn cả 2 trường hợp:)
 
C

cuong276

Không được dùng or, bạn phải dùng and. N phải thỏa mãn cả 2 trường hợp:)

Hj` Hj` Hj`. Nhầm 1 tí thôi mà. Sửa lại ngay đây
Các bạn học pascal ở đâu vậy,trường mình ko dạy,có sách nào ko
Thế nơi bạn ở không thi tin học à? Nếu thi thì trường phải có đội tuyển để bồi dưỡng chứ. Còn nếu không thì bạn có thể mua cuốn SGK Tin học lớp 11 để về học
 
1

11thanhkhoeo

Các bạn học pascal ở đâu vậy,trường mình ko dạy,có sách nào ko

Mua cuốn " ngôn ngữ lập trình pascal "của tác giả Nguyễn Minh Hoàng. Cuốn này viết hay.

Nhưng nếu em chỉ học ngôn ngữ thì chưa đủ cần học thêm thuật toán. Em có thể tìm trên google các thuật toán cơ bản

thế nhé

Có gì khó cứ đưa lên đây mọi người sẽ cùng nhau tìm cach xử lí

Thân
 
T

tmb12

Mình hổng làm được bài nào hết! Khó quá@-) Nhất là cái cộng hai đa thức rồi in kết quả ra màn hình, thấy mà nản lòng=((
 
Top Bottom