Pascal kiểu mảng và kiểu xâu

Văn Sử Địa

S.Moderator
Thành viên BQT
Xu
33
-Kiểu mảng:

1. Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyên gồm N phần tử.
2.
Viết chương trình tính tổng bình phương của các số âm trong một mảng gồm N phần tử.
3.
Viết chương trình nhập vào một mảng gồm N số nguyên. Sắp xếp lại mảng theo thứ tự tăng dần và in kết quả ra màn hình.
4.
Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm vào một số nguyên X. Hãy kiểm tra xem phần tử X có trong mảng A hay không?
5.
Giả sử mảng A đã được sắp xếp theo thứ tự tăng dần. Viết hàm để kiểm tra xem phần tử X có trong mảng A hay không?
6. Viết chương trình tìm ma trận chuyển vị của ma trận A.


-Kiểu xâu:

1.
Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ in hoa rồi in kết quả ra màn hình.
2.
Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ thường rồi in kết quả ra màn hình.
3. Viết chương trình đếm số ký tự chữ số trong một xâu ký tự được nhập vào từ bàn phím.
4.
Viết chương trình nhập một xâu từ bàn phím. In ra xâu đó sau khi xóa hết các ký tự trắng thừa trong xâu. (Ký tự trắng thừa là các ký tự trắng đầu xâu, cuối xâu và nếu ở giữa xâu có 2 ký tự trắng liên tiếp nhau thì có 1 ký tự trắng thừa).

5.
Viết chương trình liệt kê các từ của một xâu ký tự được nhập vào từ bàn phím, mỗi từ phải được viết trên một dòng.
6.
Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâu đó rồi in kết quả ra màn hình theo 2 cách: Đệ qui và không đệ qui.


.










 
Sửa lần cuối bởi điều hành viên:
Kiểu mảng:
1.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,Max:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Tìm phần tử lớn nhất}
    Max:=A[1];
    For i:=2 To N Do
        If Max<A[i] Then Max:=A[i];
    {In kết quả ra màn hình}
    Writeln(‘Phan tu lon nhat cua mang: ’, Max);
    Readln;
End.

2.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,S:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Tính tổng}
    S:=0;
    For i:=1 To N Do
        If A[i]<0 Then S:=S+A[i]*A[i];
    {In kết quả ra màn hình}
    Writeln(‘S= ’, S);
    Readln;
End.

3.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,j,Tam:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Sắp xếp}
    For i:=1 To N-1 Do
        For j:=i+1 To N Do
           If A[i]>A[j] Then
               Begin
                   Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;
               End;
    {In kết quả ra màn hình}
    Writeln(‘Ket qua sau khi sap xep:’);
    For i:=1 To N Do Write(A[i]:5);
    Readln;
End.

4.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,x:Integer;

Function TimKiem(x, N: Integer; A:Mang):Integer;
Var i:Integer;
    Begin
        I:=1;
        While (I <= N) and (X<>A[I]) do I:=I+1;
        If I <= N Then Timkiem:=I  Else Timkiem:=0;
    End;

Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    Write(‘Nhap X=’); Readln(x);
    {Kết quả tìm kiếm}
    If TimKiem(X,N,A)<>0 Then
        Writeln(‘Vi tri cua X trong mang la:’, TimKiem(X,N,A))
    Else Writeln(‘X khong co trong mang.’);
    Readln;
End.

5.

Mã:
Function TimKiemNhiPhan(X, N: Integer; A: Mang):Integer;
Var  dau,cuoi,giua:Integer;
        Found:Boolean;
Begin
    dau:=1; {điểm mút trái của khoảng tìm kiếm}
    cuoi:=N; {điểm mút phải của khoảng tìm kiếm}
    Found:=False; {chưa tìm thấy}
    While (dau <=cuoi) and (Not Found) Do
        Begin
           giua:=(dau + cuoi) Div 2;
           If  X = A[giua] Then Found:=True {đã tìm thấy}
           Else
               If X > A[giua] Then dau:=giua+1
               Else cuoi:=giua-1;
        End;
    If Found Then TimKiemNhiPhan:= giua Else TimKiemNhiPhan:=0;
End.

6.

Mã:
uses crt; 
const phay=','; 
type ArrInt = array[1..50, 1..50] of integer; 
var i, j, n, m: integer; 
    a,b: ArrInt; 
begin 
  clrscr; 
  write('Nhap so dong N va so cot M: '); 
  readln(m,n); 
  for  i := 1  to  m  do 
    for  j := 1  to  n  do 
    Begin  
         write ( ' A[', i,  phay , j, '] = ' ) ; 
         readln ( a[i, j] ) ; 
    End ; 
  for  i := 1  to  n  do 
    for  j := 1  to  m  do 
         b[i,j]:=a[j,i]; 
  for  i := 1  to  n  do 
  begin 
    for  j := 1  to  m  do 
         write( b[i, j]:4 ) ; 
         writeln; 
  end; 
  readln; 
end.
 
Kiểu xâu:
1.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        i:Byte;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    For i:=1 to length(St) do St[i]:=Upcase(St[i]);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Xau ket qua: ‘, St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]


2.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        i:Byte;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    For i:=1 to length(St) do[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        If St[i] IN [‘A’..’Z’] Then St[i]:=CHR(ORD(St[i])+32);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Xau ket qua: ‘, St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]


3.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        i,d:Byte;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    For i:=1 to length(St) do[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        If St[i] IN [‘0’..’9’] Then d:=d+1;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘So ky tu chu so trong xau: ‘, d);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]
 [SIZE=4]
[/SIZE]


4.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Procedure  XoaTrangThua(Var St:String);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở đầu xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While St[1]=#32 Do Delete(St,1,1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở cuối xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While St[Length(St)]=#32 Do Delete(St,Length(St),1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở giữa xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While POS(#32#32,St)<>0 Do Delete(St,POS(#32#32,St),1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End;[/SIZE][/COLOR]

[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    XoaTrangThua(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Xau sau khi xoa cac ky tu trang thua: ‘, St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]


5.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Procedure  XoaTrangThua(Var St:String);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở đầu xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While St[1]=#32 Do Delete(St,1,1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở cuối xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While St[Length(St)]=#32 Do Delete(St,Length(St),1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    {Xóa các ký tự trắng ở giữa xâu}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While POS(#32#32,St)<>0 Do Delete(St,POS(#32#32,St),1);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End;[/SIZE][/COLOR]

[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    XoaTrangThua(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    St:=St+#32;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Writeln(‘Liet ke cac tu trong xau: ‘);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    While POS(#32,St)<>0 Do[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]           Writeln(Copy(St,1,POS(#32,St)));[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]           Delete(St,1,POS(#32,St));[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        End;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]


6.
Mã:
[COLOR=#000000] [SIZE=4]Uses Crt;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  St:String;[/SIZE][/COLOR]

[COLOR=#000000] [SIZE=4]{Giải thuật không đệ qui}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Function XauDao(St:String):String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Var  S:String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]        i:Byte;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    S:=’’;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    For i:=Length(St) DowTo 1 Do S:=S+St[i];[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    XauDao:=S;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End;[/SIZE][/COLOR]

[COLOR=#000000] [SIZE=4]{Giải thuật đệ qui}[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Function DeQui(St:String):String;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    If Length(St)<=1 Then DeQui:=St[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Else DeQui:=St[Length(St)] + DeQui(Copy(St,1,Length(St)-1));[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End;[/SIZE][/COLOR]

[COLOR=#000000] [SIZE=4]Begin[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Nhap xau St: ‘); Readln(St);[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Write(‘Xau dao nguoc: ‘, XauDao(St));[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]    Readln;[/SIZE][/COLOR]
[COLOR=#000000] [SIZE=4]End.[/SIZE][/COLOR]
 
bác có thể giải thích dùm em đoạn code nha:

Uses Crt;
Type Mang = ARRAY[1..50] Of Integer; Var A:Mang;
N,i,Max:Integer;
Begin {Nhập mảng} Write(‘Nhap N=’);
Readln(N); For i:=1 To N Do Begin Write(‘A[‘,i,’]=’);
Readln(A);
End; {Tìm phần tử lớn nhất} Max:=A[1]; For i:=2 To N Do If Max<A Then Max:=A;
{In kết quả ra màn hình} Writeln(‘Phan tu lon nhat cua mang: ’, Max);
Readln;
End.

End; {Tìm phần tử lớn nhất} Max:=A[1]; For i:=2 To N Do If Max<A Then Max:=A; // chú thích dùm em cái nha
 
Max:=A[1]; For i:=2 To N Do If Max<A Then Max:=A;
Nó là tìm phần tử lớn nhất thôi mà bạn.
Trong pascal chú thích là căp { } hoặc (* *)
Còn // của bạn là trong C/C++
 
Sửa lần cuối bởi điều hành viên:
giup em bai tap pascal 11: Viết chương trình nhập mảng gồm các phần tử kiểu số nguyên chia hết cho K trong mang.

Kiểu mảng:
1.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,Max:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Tìm phần tử lớn nhất}
    Max:=A[1];
    For i:=2 To N Do
        If Max<A[i] Then Max:=A[i];
    {In kết quả ra màn hình}
    Writeln(‘Phan tu lon nhat cua mang: ’, Max);
    Readln;
End.

2.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,S:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Tính tổng}
    S:=0;
    For i:=1 To N Do
        If A[i]<0 Then S:=S+A[i]*A[i];
    {In kết quả ra màn hình}
    Writeln(‘S= ’, S);
    Readln;
End.

3.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,j,Tam:Integer;
Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    {Sắp xếp}
    For i:=1 To N-1 Do
        For j:=i+1 To N Do
           If A[i]>A[j] Then
               Begin
                   Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;
               End;
    {In kết quả ra màn hình}
    Writeln(‘Ket qua sau khi sap xep:’);
    For i:=1 To N Do Write(A[i]:5);
    Readln;
End.

4.
Mã:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var  A:Mang;
        N,i,x:Integer;

Function TimKiem(x, N: Integer; A:Mang):Integer;
Var i:Integer;
    Begin
        I:=1;
        While (I <= N) and (X<>A[I]) do I:=I+1;
        If I <= N Then Timkiem:=I  Else Timkiem:=0;
    End;

Begin
    {Nhập mảng}
    Write(‘Nhap N=’); Readln(N);
    For i:=1 To N Do
        Begin
           Write(‘A[‘,i,’]=’); Readln(A[i]);
        End;
    Write(‘Nhap X=’); Readln(x);
    {Kết quả tìm kiếm}
    If TimKiem(X,N,A)<>0 Then
        Writeln(‘Vi tri cua X trong mang la:’, TimKiem(X,N,A))
    Else Writeln(‘X khong co trong mang.’);
    Readln;
End.

5.

Mã:
Function TimKiemNhiPhan(X, N: Integer; A: Mang):Integer;
Var  dau,cuoi,giua:Integer;
        Found:Boolean;
Begin
    dau:=1; {điểm mút trái của khoảng tìm kiếm}
    cuoi:=N; {điểm mút phải của khoảng tìm kiếm}
    Found:=False; {chưa tìm thấy}
    While (dau <=cuoi) and (Not Found) Do
        Begin
           giua:=(dau + cuoi) Div 2;
           If  X = A[giua] Then Found:=True {đã tìm thấy}
           Else
               If X > A[giua] Then dau:=giua+1
               Else cuoi:=giua-1;
        End;
    If Found Then TimKiemNhiPhan:= giua Else TimKiemNhiPhan:=0;
End.

6.

Mã:
uses crt; 
const phay=','; 
type ArrInt = array[1..50, 1..50] of integer; 
var i, j, n, m: integer; 
    a,b: ArrInt; 
begin 
  clrscr; 
  write('Nhap so dong N va so cot M: '); 
  readln(m,n); 
  for  i := 1  to  m  do 
    for  j := 1  to  n  do 
    Begin  
         write ( ' A[', i,  phay , j, '] = ' ) ; 
         readln ( a[i, j] ) ; 
    End ; 
  for  i := 1  to  n  do 
    for  j := 1  to  m  do 
         b[i,j]:=a[j,i]; 
  for  i := 1  to  n  do 
  begin 
    for  j := 1  to  m  do 
         write( b[i, j]:4 ) ; 
         writeln; 
  end; 
  readln; 
end.
Viết chương trình nhập mảng gồm các phần tử kiểu số nguyên chia hết cho K trong mang.
 

Trending content

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top