[ Pascal ] Một số ví dụ về cấu trúc điều khiển trong Pascal { IF-THEN ; FOR-TO-DO ; WHILE-DO ; REPEAT-UNTIL ; SELECT-CASE}


{
------------------------------------------------- 
Ví dụ 1:  Giải phương trình bậc 2 ax^2+bx+c=0
[Sử dụng cấu trúc IF-THEN và REPEAT-UNTIL]
-------------------------------------------------
}


uses crt;
        var x,x1,x2,x3,delta,a,b,c:real;
            tl:char;
        begin
            repeat
                a:=0;
                b:=0;
                c:=0;
                clrscr;
                write('Nhap a (voi a khac 0) :');  
                readln(a);
                write('Nhap b:');
                readln(b);
                write('Nhap c:');
                readln(c);
                delta:=sqr(b)-4*a*c;
                if (delta>0)and(a<>0) then
                    begin
                    x1:=(-b-sqrt(delta))/(2*a);
                    x2:=(-b+sqrt(delta))/(2*a);
                    writeln('x1=',x1:5:2);
                    writeln('x2=',x2:5:2);
                    write('co lam tiep khong c/k?:');
                    read(tl);
                    end;
                readln;
                if (delta=0)and(a<>0) then
                    begin
                        x:=-b/(2*a);
                        write('Phuong trinh co nghiem kep x=:',x:5:2);
                        write('co lam tiep khong c/k?:');
                        read(tl);
                     end;
                if delta<0 then
                    begin
                        Writeln('Phuong trinh vo nghiem':7);
                        write('co lam tiep khong c/k?:':9);
                        read(tl);
                    end;
                if a=0 then
                    begin
                        writeln('Phuong Trinh Khong thoa man voi de bai');
                        write('co lam tiep khong c/k?:');
                        readln(tl);
                    end
            until upcase(tl)='K'  {upcase đổi chữ thường thành chữ hoa}
        end.

{
------------------------------------------------- 
Ví dụ 2:  Nhập vào 1 số từ 0 đến 9; in ra màn hình màu tương ứng
[Sử dung cấu trúc SELECT-CASE. Các bạn thử chuyển sang IF-THEN xem sao!!???]
-------------------------------------------------
}


 uses crt;
        var chon:integer;
        tl:char;
        begin
            clrscr;
            repeat
                Write('chon mot so tu 0 -> 9:');
                read(chon);
                clrscr;
                case chon of
                    1:writeln('Mau Do');
                    2:writeln('Mau vang');
                    3:writeln('Mau xanh');
                    4:writeln('Mau luc');
                    5:writeln('Mau lam');
                    6:writeln('Mau tram');
                    7:writeln('Mau Tim');
                else
                    clrscr;
                    readln;
                    write('co lam tiep khong c/k?:');
                    readln(tl);
                end
            until upcase(tl)='K'
        end.


{
------------------------------------------------- 
Ví dụ 3:  Tính t=1+2+3+...+n (với n nhập vào từ bàn phím)
[Sử dung cấu trúc FOR-TO-DO và REPEAT-UNTIL. Các bạn thử chuyển sang FOR sang WHILE xem sao!!???]
-------------------------------------------------
}


 uses crt;
        var t,s,n,i:integer;
        tl:char;
        begin
            repeat
                clrscr;
                s:=0;
                t:=0;
                write('Nhap n:');
                read(n);
                for i:=1 to n do
                    begin
                        s:=s+i;
                        t:=t+1;
                        writeln('s[',t,']=',s:7);
                     end;
                readln;
                writeln('Tong s=',s:5);
                write('Co lam tiep khong c/k?:');
                readln(tl)
            until upcase(tl)='K'
        end.

{
------------------------------------------------- 
Ví dụ 4:  Tính s=2+4+6+...+2n (với n nhập vào từ bàn phím)
[Sử dung cấu trúc WHILE . Các bạn thử chuyển sang WHILE sang FOR xem sao!!???]
-------------------------------------------------
}


   program chuongtrinhtinh;
        uses crt;
        var s1,s,n,i,t:integer;
        begin
            clrscr;
            write('Nhap n:');
            read(n);
            s:=0; i:=1;
            while i<=2*n do
                begin
                    s:=s+i;
                    i:=i+2;
                end;
                    writeln('s=',s:5);
                    readln;
            readln;
        end.

(*
----------------------------------
Chúc các bạn học tốt

*)