Các câu lệnh while do

O

ochuotqb

[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.

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
 
T

thanks_to_you

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

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

auauau97

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 .
 
A

auauau97

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 .
 
A

auauau97

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 .
 
A

auauau97

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 .
 
W

wind_naruto

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 .

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 đó
 
A

auauau97

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.
 
A

auauau97

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é).
 
Top Bottom