Sự kiện "ĐIỂM DANH NGAY - NHẬN QUÀ LIỀN TAY" đã chính thức bắt đầu

Bạn hãy ĐĂNG NHẬP hoặc ĐĂNG KÝ tài khoản để tham gia nhé!

Các câu lệnh while do

Thảo luận trong 'Học lập trình' bắt đầu bởi ochuotqb, 11 Tháng tư 2011.

CHIA SẺ TRANG NÀY

Lượt xem: 9,618

  1. ochuotqb

    ochuotqb Guest

    "Điểm danh ngay - Nhận quà liền tay" chào đón HMforum quay trở lại


    Bài 7 : Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau .
    Bài 8 : Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng dần .
    Không sử dụng mảng chỉ sử dung ( while do, for to do.)

    giúp em hai bài này với... và nếu có bài tập pascal phần while do và for do thì send em với
     
  2. may_vina

    may_vina Guest



  3. Cả 2 bài đều có thể dùng string thay thế cho mảng...
     
  4. auauau97

    auauau97 Guest


    7)
    Uses Crt;
    Var A : Array [1..100] Of Integer;
    i , j , n : Integer ;

    BEGIN
    Clrscr ;
    Write(' Do dai cua day so N = ') ; Readln (N) ;
    For I := 1 To N Do
    Begin
    Write ('A[', i , ']= ') ; Readln ( A ) ;
    End ;
    Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;
    i := 2 ;
    While i <= N Do
    Begin
    j := 1 ;
    While ( j < i ) and ( A[j] <> A ) Do inc(j) ;
    If j = i Then Writeln( A ) ;
    i :=i + 1 ;
    End ;
    Readln ;
    END .
    8)
    Uses Crt;
    Var A : Array [1..100] Of Integer ;
    i , j , n , T : Integer ;

    BEGIN
    Clrscr ;
    Write(' Do dai cua day so N = ') ; Readln (N) ;
    Writeln (' Nhap day so : ') ;
    For i := 1 To N Do
    Begin
    Write('A[', i ,'] = ') ; Readln ( A ) ;
    End ;
    i := 1 ;
    While (i <= n-1) Do
    Begin
    j := i+1;
    While j<=n do
    Begin
    If A[j] < A then
    Begin
    T := A[j];
    A[j ] := A;
    A := T ;
    End ;
    j := j + 1;
    End ;
    i := i + 1;
    End ;
    Writeln(' Day sau khi sap xep : ') ;
    For i := 1 To N Do Write(A : 4) ;
    Readln ;
    END .
     
  5. auauau97

    auauau97 Guest


    1 số bài tâp về VÒNG LẶP XÁC ĐỊNH VÀ KHÔNG XÁC ĐỊNH (For - While – Repeat) - Có Đáp Án
    1.Sử dụng lệnh For
    Bài 1 :Lập trình tính tích các số tự nhiên từ 1 tới 10 .

    Bài 2 :Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái trong 50 lần gõ kí tự bằng bàn phím (không phân biệt a với A, b với B …, dùng hàm Upcase để chuyển đổi chữ thường với chữ hoa) .

    Bài 3 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau :
    a. 1 + ½^2 + 1/3^2 + … + 1/n^2 b. 1 + 1/2! + 1/3! + … + 1/n!

    Bài 4 :Tính giá trị của biểu thức sau :
    ( 1 + 1/1^2 ) ( 1 + ½^2 ) … ( 1 + 1/n^2 )
    1)
    Var i : Byte ; (* chỉ số chạy *)
    p : word ; (* tích số *)

    BEGIN
    p := 1; (* cho giá trị ban đầu của tích *)
    For i := 1 to 10 Do (* cho i chạy từ 1 tới 10 *)
    p := p * i ; (* lần lượt nhân i với p *)
    Write (' 1 * 2 * ... * 10 = ', p ) ;
    Readln ;
    END .

    2)

    Uses Crt ;
    Var a : Array[ 'A'..'Z' ] of integer; (* mảng bộ đếm *)
    ch : char ; (* biến nhập kí tự *)
    i : byte ; (* chỉ số của lần gõ phím *)

    BEGIN
    Clrscr ;
    For ch :='A' to 'Z' Do a[ch] := 0 ; (* xả bộ đếm *)
    Writeln (' Go phim 50 lan ') ;
    For i := 1 To 50 Do (* thực hiện 100 lần *)
    Begin
    ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *)
    ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *)
    a[ch] := a[ch] + 1 ;
    End;
    Writeln (' So lan xuat hien cac ki tu la :') ;
    For ch :='A' to 'Z' do (* Kiểm tra bộ đếm từ 'A' tới 'Z' *)
    If a[ch] > 0 Then (* Nếu Ch có xuất hiện *)
    Writeln (ch , a[ch] : 4 , ' lan . ') ; (* Viết ra màn hình kí tự và
    số lần xuất hiện *)
    Readln ;
    END .
    3)a)
    Var n , i : Word ;
    S : Real ;

    BEGIN
    Write (' Nhap n : ') ; Readln (n) ;
    S := 0 ;
    For i := 1 To n Do
    S := S + 1 / sqr(i) ;
    Writeln (' S = ', S:0:2) ;
    Readln ;
    END .
    b)
    Var n , i , j , p : Word ;
    S : Real ;
    BEGIN
    Write (' Nhap n : ') ; Readln(n) ;
    p := 1 ;
    s := 0 ;
    For i :=1 To n Do
    Begin
    p := p * i ; (* tính i *)
    S := S + 1 / p ;
    End ;
    Writeln (' S = ', S:0:2) ;
    Readln ;
    END .
    4)
    Var i , n : Byte ;
    p : Real ;
    Begin
    Write(' Nhap n : ') ; Readln (n) ;
    p := 1 ;
    For i := 1 To n Do p := p * ( 1 + 1/sqr(i) ) ;
    Writeln(' p = ', p:10:5 ) ;
    Readln ;
    END .
     
  6. auauau97

    auauau97 Guest


    2.Sử dụng lệnh While
    Bài 5 :Lập trình tính tổng :
    A = 1 + 1/2 + 1/3 + … + 1/n
    ở đây n là số tự nhiên được nhập vào từ bàn phím .

    Bài 6 :Tính hàm lũy thừa a^n , ở đây a thực và n tự nhiên được nhập vào từ bàn phím

    Bài 7 :Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau .

    Bài 8 :Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng dần .
    5)
    Uses Crt ;
    Var i , n : Integer ;
    tong: Real ;
    BEGIN
    Clrscr ;
    Write (' Cho so tu nhien n : ') ; Readln (n) ;
    tong :=0 ;
    i :=1 ;
    While i <= n Do
    Begin
    tong := tong + 1/i ;
    i := i + 1 ;
    End ;
    Writeln (' Tong can tim la : ', tong:12:6 ) ;
    Readln ;
    END .
    6)
    Uses Crt ;
    Var i , n : Integer ;
    a , giatri : Real ;

    BEGIN
    Clrscr ;
    Write (' Cho so a : ') ; Readln(a) ;
    Write (' Cho so mu n : ') ; Readln(n) ;
    i := 1 ;
    giatri := 1 ;
    While i <= n Do
    Begin
    giatri := giatri * a ;
    i:= i+1 ;
    End ;
    Writeln(' a mu n bang : ', giatri ) ;
    Readln ;
    END .
    7)
    Uses Crt;
    Var A : Array [1..100] Of Integer;
    i , j , n : Integer ;

    BEGIN
    Clrscr ;
    Write(' Do dai cua day so N = ') ; Readln (N) ;
    For I := 1 To N Do
    Begin
    Write ('A[', i , ']= ') ; Readln ( A ) ;
    End ;
    Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;
    i := 2 ;
    While i <= N Do
    Begin
    j := 1 ;
    While ( j < i ) and ( A[j] <> A ) Do inc(j) ;
    If j = i Then Writeln( A ) ;
    i :=i + 1 ;
    End ;
    Readln ;
    END .
    8)
    Uses Crt;
    Var A : Array [1..100] Of Integer ;
    i , j , n , T : Integer ;

    BEGIN
    Clrscr ;
    Write(' Do dai cua day so N = ') ; Readln (N) ;
    Writeln (' Nhap day so : ') ;
    For i := 1 To N Do
    Begin
    Write('A[', i ,'] = ') ; Readln ( A ) ;
    End ;
    i := 1 ;
    While (i <= n-1) Do
    Begin
    j := i+1;
    While j<=n do
    Begin
    If A[j] < A then
    Begin
    T := A[j];
    A[j ] := A;
    A := T ;
    End ;
    j := j + 1;
    End ;
    i := i + 1;
    End ;
    Writeln(' Day sau khi sap xep : ') ;
    For i := 1 To N Do Write(A : 4) ;
    Readln ;
    END .
     
  7. auauau97

    auauau97 Guest


    3.Sử dụng lệnh Repeat
    Bài 9 :Cho một dãy số được nhập từ bàn phím . Hãy viết chương trình nhập một số a rồi liệt kê tất cả các phần tử trong dãy lớn hơn a.

    Bài 10 :Viết chương trình nhập một dãy số tối đa 50 số rồi in ra màn hình các số trùng nhau của dãy .

    Bài 11 :Bạn có 1000 đ đem gửi ngân hàng với lãi suất 8%/tháng . Sau mỗi tháng tiền lãi được nhập vào để tính lãi suất tháng sau . Bạn muốn để dành cho đến khi số tiền tăng lên là x . Vậy phải để trong bao lâu
    9)
    Uses Crt ;
    Var b : Array[1..100] Of Real;
    a : Real ;
    n , i : Byte ;

    BEGIN
    Clrscr ;
    Write ('Nhap do dai cua day so : ') ; Readln(n) ;
    Writeln (' Nhap cac phan tu cua day : ') ;
    For i := 1 To n Do
    Begin
    Write (' b[', i ,'] = ') ; Readln( b ) ;
    End ;
    Write (' Nhap so thuc a : ') ; Readln(a) ;
    Writeln (' Cac phan tu lon hon a cua day : ') ;
    i:=1;
    Repeat
    If ( b > a ) Then Writeln (' b[', i ,'] = ', b:8:2 ) ;
    inc(i) ;
    Until i > n ;
    Readln ;
    END .
    10)
    Uses crt ;
    Var a , b : Array[1..50] Of Integer ;
    n , m , i , j , k : Byte ;
    trung : Boolean ;

    BEGIN
    Clrscr ;
    Write (' Nhap do dai cua day so nguyen : ') ; Readln(n) ;
    Writeln (' Nhap cac phan tu cua day : ') ;
    For i := 1 To N do
    Begin
    Write (' a[', i ,'] = ') ; Readln( a ) ;
    End ;
    i := 1 ; m := 0 ;
    Repeat
    trung := false ;
    j := i + 1;
    Repeat
    If ( j <= n ) and ( a = a[j] ) Then trung := true ; inc (j) ;
    Until trung or ( j > n ) ;
    If trung Then
    Begin
    m := m + 1;
    b[m] := a ; writeln ( b[m] : 4 ) ;
    End ;
    inc(i) ;
    Until i > n ;
    If m > 1 Then
    Begin
    i := 1 ;
    Repeat
    j := i + 1 ;
    Repeat
    trung := false ;
    If b = b[j] Then trung := true ;
    If trung Then
    Begin
    If j < m Then
    For k := j To m - 1 Do b[k] := b[k + 1] ;
    m := m - 1 ;
    dec ( j ) ;
    End ;
    inc ( j ) ;
    Until j > m ;
    inc ( i ) ;
    Until i > m ;
    End ;
    If m > 0 Then
    For k := 1 To m Do Write ( b[k] : 4 ) ;
    Readln ;
    END .
    11)
    uses crt ;
    var
    thang : Byte ;
    tien , lai , x : Real ;

    BEGIN
    clrscr ;
    writeln (' Chuong trinh tinh thoi gian rut tien lai ') ;
    write (' So tien lai muon rut ra : ') ; readln(x) ;
    tien := 1000 ;
    thang :=1 ;
    repeat
    lai := tien * 8 / 100 ;
    tien := tien + lai ;
    thang := thang + 1 ;
    until tien >= x ;
    writeln (' Ban phai gui tien trong ', thang div 12 , ' nam ',
    thang mod 12 ,' thang .') ;
    writeln (' Khi do so tien ban rut ra duoc la ', tien:12:2 ,' dong .') ;
    readln ;
    END .
    12)
    Uses crt ;
    Var a : Array [1..100] Of Integer ;
    n , i : Byte ;
    d : integer ;
    BEGIN
    Clrscr ;
    Writeln (' Tim USCLN cua N so :') ;
    Write (' Nhap so N : ') ; Readln(n) ;
    Writeln ('Nhap ', N ,' so : ') ;
    For i := 1 To n Do
    Begin
    Write(' So thu ', i ,' = ') ; Readln( a ) ;
    End ;
    For i := 1 To n-1 Do
    Repeat
    d := a ;
    a := a[ i+1 ] mod a ;
    a[i+1] := d ;
    Until a = 0 ;
    Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ;
    Readln ;
    END .
     
  8. wind_naruto

    wind_naruto Guest



    Mình thấy bài này chuyển thành string của bạn thanks_to_youthì hay hơn và có lẽ là ngắn hơn sau đó lại quay trở lại bài vừa nãy mình làm ở chủ để vừa nãy đó
     
  9. auauau97

    auauau97 Guest


    Chủ đề nãy cuả bạn là chủ đề nào vậy, bạn thử trích dẫn ra cho mọi người dễ xem.
     
  10. wind_naruto

    wind_naruto Guest


  11. auauau97

    auauau97 Guest


    Bạn thử ghép chúng thành 1 chương trình hoàn chỉnh cho mọi người xem đi(có cả phần nhập nữa nhé).