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

P

penhoksu

Em làm khá là ngắn nên tỉ lệ sai là khá lớn, mấy anh chị xem dùm em nhé ^^!

Mã:
program giaima;
const fin='mess.inp';
      fon='mess.out';
var fi,fo:text;
    a,c:string;
    b:array[1..50] of string;
    i,j,k,d:byte;
begin
    {nhap thong diep}
    assign(fi,fin);
    reset(fi);
    readln(fi,a);
    readln(fi,c);
    close(fi);

    {doc tung tu}
    d:=1;
    for j:=1 to length(a) do
        if a[j]<>' ' then b[d]:=b[d]+a[j]
        else d:=d+1;

    {giai ma}
    assign(fo,fon);
    rewrite(fo);
    for i:=1 to length(c) do
        if c[i]<>' ' then
           begin
             val(c[i],j,k);
             write(fo,b[j]);
             write(fo,' ');
           end;
    close(fo);
end.
 
P

penhoksu

Giờ em lại có bài mới chưa nghĩ ra ý tưởng, mấy anh chị cho em xin ý tưởng với :)

[FONT=&quot]Cho chuỗi kí tự S gồm toàn các chữ cái in hoa (A…Z) với độ dài không vượt quá 255. Hãy tìm đoạn con các kí tự liên tiếp dài nhất sao cho không có kí tự nào xuất hiện nhiều hơn một lần. Trong trường hợp có nhiều hơn một đoạn con có cùng chiều dài dài nhất, hãy chỉ ra đoạn xuất hiện đầu tiên trong chuỗi S.[/FONT]
[FONT=&quot]
Dữ liệu: Vào từ văn bản SUBSTR.INP gồm một dòng duy nhất chứa chuỗi S.[/FONT]
[FONT=&quot]
Kết quả: Ghi ra file văn bản SUBSTR.OUT hai số nguyên P và L tương ứng là vị trí và chiều dài của đoạn con dài nhất tìm được (kí tự đầu tiên trong chuỗi có vị trí là 1).[/FONT]
 
M

mikelhpdatke

Bài này QHĐ, F là độ dài của chuỗi dài nhất bắt đầu từ vị trí i thỏa mãn yêu cầu đầu bài
St là chuỗi dài nhất bắt đầu từ vị trí i thỏa mãn yêu cầu đầu bài


Cho i chạy từ n về 1 và j chạy từ i+1 tới n.

F=F[jmax]+1.
St=S+St[jmax]
jmax phải thỏa mãn F[jmax] lớn nhất và S ko trùng với ký tự nào trong St[jmax]
QHĐ gần giống bài dãy con đơn điệu tăng dài nhất
 
Last edited by a moderator:
M

mikelhpdatke

em làm chương trình con điều kiện để tam giác vuông như sau



vào chương trình nó chả đc gì cả :(
Vào ct, bạn phải gọi ct con của bạn thì ct con đó mới chạy :)
Mà hàm function của bạn viết về kt tam giác vuông, nên kt thêm các trường hợp cạnh huyền là a, b
 
T

thienthan_gl291

phải vào kí hiệu nào trên máy tính thi moi vào đc chuong trinh pascan vay các bạn? mình coi sách rùi nhung mà chả thấy kí hiệu nào đẻ vào cả! (hehe) các bạn giúp mình nhe!
 
M

mikelhpdatke

phải vào kí hiệu nào trên máy tính thi moi vào đc chuong trinh pascan vay các bạn? mình coi sách rùi nhung mà chả thấy kí hiệu nào đẻ vào cả! (hehe) các bạn giúp mình nhe!
Máy tính của bạn đã cài cài pascal chưa, nếu cài rồi mà chưa có trong destop thì cách đơn giản và phù hợp với nhiều loại win là: Bạn vào ổ C, vào mục Program File, sau đó tìm Folders chứa chương trình pascal và tìm file chạy thôi (cái tìm file chạy còn tùy vào bạn cài FP hay TP :) )
 
M

mikelhpdatke

Tuần sau dự kiến sẽ có sự kiện box Tin học - Máy tính về lập trình, các bạn tham gia nhé, nội dung đa số về mảng lập trình. Dành cho tất cả các member học mãi :)
 
T

tao_la

@mikelhpdatke: mình làm hết rồi mà, mình định làm hàm để dùng cho các cạnh thì chỉ gọi hàm, thôi mình up luôn cả ct lên :D

uses crt;
var xa,ya,xb,yb,xc,yc:real;
AB,BC,AC,p,dientich:real;

function dodai(xm,ym,xn,yn:real):real;
begin
dodai:=sqrt(sqr(xm-xn)+sqr(ym-yn));
end;

function ktc(a,b,c:real):boolean;
begin
ktc:=false;
if (a=b) and (a<>c) and ((a+b)<>c) then ktc:=true;
end;

function ktv(a,b,c:real):boolean;
begin
ktv:=false;
if (a*a+b*b)=(c*c) then ktv:=true;
end;

begin
clrscr;
write('nhap toa do xA, yA, xB, yB, xC, yC: '); readln(xa,ya,xb,yb,xc,yc);
AB:=dodai(xa,ya,xb,yb);
BC:=dodai(xb,yb,xc,yc);
AC:=dodai(xa,ya,xc,yc);

if ((AB+AC)<=BC) or ((AC+BC)<=AB) or ((AB+BC)<=AC) then write('khong ton tai tam giac')
else

begin
p:=(AB+BC+AC)/2;
dientich:=sqrt(p*(p-AB)*(p-BC)*(p-AC));
writeln('chu vi: ',p*2:5:3, ', dien tich: ',dientich:5:3);
if (AB=BC) and (AB=AC)and (BC=AC) then writeln('tam giac deu');
if ktc(AB,AC,BC) then writeln('can tai A');
if ktc(AB,BC,AC) then writeln('can tai B');
if ktc(AC,BC,AB) then writeln('can tai C');

if ktv(AB,AC,BC) then writeln('vuong tai A');
if ktv(AB,BC,AC) then writeln('vuong tai B');
if ktv(AC,BC,AB) then writeln('vuong tai C');
end;
readln
end.

đề là nhập vào 3 cạnh tam giác và đưa ra diện tích các tính chất đều vuông cân, mình đang dùng FPC 2.6.0
 
1

11thanhkhoeo

@mikelhpdatke: mình làm hết rồi mà, mình định làm hàm để dùng cho các cạnh thì chỉ gọi hàm, thôi mình up luôn cả ct lên :D



đề là nhập vào 3 cạnh tam giác và đưa ra diện tích các tính chất đều vuông cân, mình đang dùng FPC 2.6.0

Tam giác đều thì sao hả bạn

If ..... then..... else ......

nhé
 
M

mikelhpdatke

@mikelhpdatke: mình làm hết rồi mà, mình định làm hàm để dùng cho các cạnh thì chỉ gọi hàm, thôi mình up luôn cả ct lên :D



đề là nhập vào 3 cạnh tam giác và đưa ra diện tích các tính chất đều vuông cân, mình đang dùng FPC 2.6.0
Bạn nói rõ hơn đê bài đi, bài này dùng hàm cũng được, ko thì if then else :)
 
T

tao_la

có kiểm tra tam giác đều rồi như, cần gì phải dùng else vì mình viết hàm cân là phải thỏa mãn nó ko đều, mình nhận ra lỗi rồi :D cảm ơn mọi người giúp đỡ, cái hàm ktv sai :D
 
N

nice_simple

Các anh cho em hỏi.

Lỗi không tìm thấy CRT trong máy ( cụ thể là lỗi 15 ) trong Pascal bây giờ phải làm sao ạ. ( Em mới học lớp 8 nên nhờ các anh )
 
Last edited by a moderator:
M

mikelhpdatke

Bạn dùng Free Pascal hay Turbo,
Nếu dùng free thì lỗi 15
= Invalid drive number The number given to the Getdir or ChDir function specifies a nonexistent disk.

Ổ đĩa vô nghĩa. Số được trả bởi hàm Getdir hoặc ChDir chỉ 1 ổ đĩa không tồn tại


Còn nếu không thì mình nghĩ bạn nên cài lại , dùng Free Pascal hoặc TP. Nếu theo SGK 8 nó sẽ hướng dẫn dùng TP, nhưng FP ko khác mấy so với TP, với kiến thức lớp 8 thì dùng loại nào cũng được
 
C

coberacroi_kt

ĐỀ bài, rong
1,, viết chương trình tính tổng các số chính trong N dòng N cột!
2, lam sao để viết chương trình dãy xoắn ốc, dãy Fibonaxi???
 
C

coberacroi_kt

uhm, bọn mình học đến chương trình con rồi,
bài tập về nhà đây giúp mình với!
Cho so N, A. Kiểm tra A có là số chính phương hay không?
giúp mình đi, cần rất gấp)! ))
 
Top Bottom