game box tin - Chém code như chém gió

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.

ReOpen ^_^
...........................................................


Chào mừng các bạn đến với thế giới lập trình. Ngày nay, coong nghệ thông tin vô cùng phát triển, điều quan trọng không thể thiếu chính là lập trình. Vì thế, theo nhu cầu chiến tranh code của mọi người đang dâng cao, mình quyết định lập một pic dành cho mọi người thoả sức chém code, chém khi nào không chém được nữa thì thôi.
Luật chơi này rất đơn giản nhưng cũng rất phức tạp (đối với những người chưa biết đến lập trình).
Luật chơi như sau: người đầu tiên sẽ ra đề 1 bài về lập trình pascal (lưu ý ra đề đơn giản 1 tí để mọi người cùng giải).
Người tiếp theo sẽ dùng thuật toán để giải bài toán trên dồng thời ra mội bài mới.
Cứ như thế, trò chơi lại cứ tiếp tục, tiếp tục..................
Mình ra đề đầu tiên nha:
Viết chương trình hiển thị lên màn hình dòng chữ: anh cuong gom he
:D:D:D:D
 
Last edited by a moderator:
K

kool_boy_98

Viết chương trình hiển thị lên màn hình dòng chữ: anh cuong gom he

Em viết luôn chương trình khỏi phải ghi thuật toán ạ! :D

PHP:
begin
writeln('Anh Cuong gom he');
readln;
end.

~~> Viết chương trình nhập vào một số và kiểm tra xem số ấy có là bội của 3 hay không?
 
C

cuong276

Mã:
var so:integer;
begin
       write(' nhap so:'); readln(so);
       if so mod 3=0 then write(so,' la boi cua 3')
       else write(so,' khong phai la boi cua 3');
       readln;
end.
viết chương trình kiểm tra 1 số là chẵn hay lẻ
 
K

kool_boy_98

Quên không ra đề :))

~~> Sử dụng vòng lặp đưa ra các ngày chẵn trong tuần

Ps: Một chập đề thi hsg đang chờ mọi người =))
 
C

cuong276

Mã:
var thu,ngay:integer;
begin
       write('nhap ngay thu 2:'); readln(ngay);
       writeln('cac ngay chan trong tuan la:');
       thu:=2;
       while thu<=8 do
               begin
                     if (ngay mod 2=0) and (thu=8) then
                         begin
                               write(' chu nhat');
                               break;
                         end;
                     if ngay mod 2=0 then write(' thu', thu:2);
                     ngay:=ngay+1;
                     thu:=thu+1;
               end;
        readln;
end.
viết chương trình nhập vào 1 số nguyên N. Tính tổng S = 1+2+...+N.
 
K

kool_boy_98

Mã:
var thu,ngay:integer;
begin
       write('nhap ngay thu 2:'); readln(ngay);
       writeln('cac ngay chan trong tuan la:');
       thu:=2;
       while thu<=8 do
               begin
                     if (ngay mod 2=0) and (thu=8) then
                         begin
                               write(' chu nhat');
                               break;
                         end;
                     if ngay mod 2=0 then write(' thu', thu:2);
                     ngay:=ngay+1;
                     thu:=thu+1;
               end;
        readln;
end.


Bài làm dài dòng khó hiểu quá! 8-}

PHP:
var i:integer;
begin
 for i:=2 to 8 do
   begin
       while i mod 2 = 0 do 
             writeln('Thu', i , ' là ngay chan trong tuan');
   end;
readln;
end.

viết chương trình nhập vào 1 số nguyên N. Tính tổng S = 1+2+...+N.

PHP:
var i, n, S:integer;
begin
writeln('Nhap vao so nguyen n, n=');
readln(n);
S:=0;
for i:=1 to n do S:=S+1;
writeln('Tong S=',S);
readln;
end.

~~> Cho một dãy bất kì, chèn phần tử k vào đầu dãy
 
C

cuong276

À mà thôi! Không cần quan tâm đến chữ cái hay là số. Làm luôn
Mã:
var st:string;
      k:string;
begin
      write('nhap day:'); readln(st);
      write('nhap phan tu k:'); readln(k);
      write('day sau khi chen la:',k+s);
      readln;
end.
viết chương trình nhập vào 1 số nguyên N tính tổng:
S= 1+ [TEX]\frac{1}{a}[/TEX] + [TEX]\frac{1}{a+1}[/TEX] +...+ [TEX]\frac{1}{a+N}[/TEX]
 
Last edited by a moderator:
C

concanhcam

Mã:
uses crt;
   var i, a,n :integer;
           s:real;
   begin
     readln(a,n);
      S:=1;
      for i:=0 to n do 
              s:=S+1/(a+i);
   write(s);
    readln;
end.


Có Mx9 đồng tiền xu được xếp thành một bảng M dòng, 9 cột. Mỗi đồng tiền trong bảng có 1 trong hai trạng thái sấp (S) hoặc ngửa (N). Một phép lật trong bảng là lật tất cả các đồng xu trong một dòng hoặc trong một cột.
Yêu cầu: Hãy thực hiện phép lật sao cho số đồng xu sấp trong bảng còn lại là ít nhất.
Input: Cho tệp văn bản COINS.INP gồm:
- Dòng đầu tiên chứa số nguyên dương M (1≤M≤1000).
- M dòng tiếp theo mô tả trạng thái ban đầu của các đồng tiền trong bảng, mỗi dòng chứa đúng 9 kí tự “S” hoặc “N”, các kí tự cách nhau ít nhất một dấu cách.
Output: Tệp văn bản COINS.OUT có một dòng duy nhất chứa số đồng tiền sấp ít nhất còn lại sau các phép lật.
Vd

coins.inp

5
S S S N N N N N N
S S S N N N S S S
N N N N N N S S S
N N N S S S N N N
N N N S S S N N N

coins.out
6
 
C

cuong276

Híc híc híc! Là sao hả chị? Chỉ 1 lần lật thôi à? hay là cần phải dùng nhiều lần lật. Nếu 1 lần lật thì không thể cho ra số đồng xu ngửa còn lại là 6 được
 
C

concanhcam

Yêu cầu: Hãy thực hiện phép lật sao cho số đồng xu sấp trong bảng còn lại là ít nhất.
 
C

cuong276

Cái em hỏi là phép lật được thực hiện bao nhiêu lần. Nếu mấy lần cũng được thì chi bằng lật hết cho mau
 
M

mikelhpdatke

Thuật toán e nghĩ hơi củ chuối, xét tất cả các hàng, xét tất cả các cột. Xem xem nếu phép lật ở hàng (cột) là có lợi thì ta lật. Lặp lại cho đến khi không còn phép lật nào lợi
 
M

mikelhpdatke

Ngồi cả buổi chiều cuối cùng cũng xong. Chỉ cần có thuật toán mình nghĩ ra là code được. Quan trọng là t/g làm bài :))
Mã:
Program Latdongxu;
Const max=9;
type mang=array[0..100,0..100] Of String;
Var A:mang;
    C:array[0..100,0..100] Of Boolean;

    i,l,j,k,d:integer;
    M:integer;

Procedure Init;
 Begin
  Write('Nhap M= ');Readln(M);
   For i:=1 to M do
     For j:=1 to max do begin Readln(A[i,j]); A[i,j]:=Upcase(A[i,j]);end;

        For i:=1 to M do
         Begin
          For j:=1 to max do Write(A[i,j]:3);
          Writeln;
         End;
   FillChar(C,SizeOf(C),True);
    Writeln;

 End;

Function kth(i:integer):boolean;
Var l,k,ds,dn:integer;
 Begin
  kth:=False;
  ds:=0;
  dn:=0;
   For k:=1 to max do
    Begin
     If A[i,k]='S' then inc(ds);
     If A[i,k]='N' then inc(dn);
    End;
   If ds<=dn then kth:=True;
 End;

Function ktc(j:integer):boolean;
Var l,k,ds,dn:integer;
 Begin
  ktc:=False;
  ds:=0;
  dn:=0;
   For k:=1 to M do
    Begin
     If A[k,j]='S' then inc(ds);
     If A[k,j]='N' then inc(dn);
    End;
   If ds<=dn then ktc:=True;
 End;

Procedure lath(Var A:mang;i:integer);
Var k:integer;
 Begin
    For k:=1 to max do
     Begin
      If (A[i,k]='S') and (C[i,k]) then begin A[i,k]:='N';C[i,k]:=False;end;
      if (A[i,k]='N') and (C[i,k]) then begin A[i,k]:='S';C[i,k]:=False;end;
     End;
      FillChar(C,SizeOf(C),True);
 End;

Procedure latc(Var A:mang;j:integer);
Var k:integer;
 Begin
    For k:=1 to max do
     Begin
       If (A[k,j]='S') and (C[k,j]) then begin A[k,j]:='N';C[k,j]:=False;end;
      if (A[k,j]='N') and (C[k,j]) then begin A[k,j]:='S';C[k,j]:=False;end;

     End;
      FillChar(C,SizeOf(C),True);
 End;

 Procedure Install;
 Var d:integer;
  Begin

  Repeat
  d:=0;
   For i:=1 to M do
         If not kth(i) then begin inc(d);  lath(A,i);end;
 {--------}

 {--------}
   For j:=1 to max do
         If not ktc(j) then begin inc(d); latc(A,j); end;
   Until d=0;

         Writeln;
     For i:=1 to M do
         Begin
          For j:=1 to max do
            begin
              Write(A[i,j]:3);
              If A[i,j]='S' then inc(d);
            End;

          Writeln;
         End;
         Writeln(d);
 End;
BEGIN
 Init;
 Install;
 readln
 end.
 
C

cuong276

Đùa à? Chưa đọc tệp thì sao mà chạy được. Mà số nguyên dương M là ở trong tệp chứ. Sao lại có phần nhập M???
 
M

mikelhpdatke

Đây là mình xử lý bình thường bạn ah`. Thích thì bạn có thể chuyển sang tệp
 
Top Bottom