Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (94 KB, 13 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
-Nhập vào một danh sách sinh viên (họ tên,năm sinh,dan tộc,điểm 1 ,điểm 2 , điểm 3 ,giới tính)
-hiện danh sách sinh viên vừa nhập dưới dạng cột
<b> STT Hoten Gioitinh Dantoc Diem1 Diem2 Diem3 DTB</b>
-sắp xếp lại danh sách sinh viên tăng dần theo điểm trung bình (khơng làm sai lệch thơng tin)
Bài 17:
program yen17;
uses crt;
type sinhvien=record
hoten,dantoc,gioitinh:string;
namsinh,diem1,diem2,diem3:integer;
dtb:real;
end;
mang=array [1..10] of sinhvien;
var sv:mang;
i,n,j:integer;
procedure nhap;
begin
clrscr;
writeln(' NHAP
THONG TIN CHO SINH VIEN');
for i:=1 to n do
with sv[i] do
begin
write(' Gioi tinh:');readln(gioitinh);
write(' Dan toc:');readln(dantoc);
write('
Diem1,Diem2,Diem3:');readln(diem1,diem2,diem3);
dtb:=(diem1+diem2+diem3)/3;
writeln;
end;
end;
procedure hienthi;
begin
writeln;writeln;
writeln(' DANH
SACH SINH VIEN VUA NHAP');
for i:=1 to n do
with sv[i] do
begin
writeln(' Ho ten:',hoten);
writeln(' Nam sinh:',namsinh);
writeln(' Diem TB:',dtb:2:2);
writeln;writeln;
end;
end;
procedure sapxep;
var tg:sinhvien;
begin
writeln;writeln;
writeln(' DANH SACH SINH
VIEN DUOC SAP XEP LAI LA');
for i:=1 to n-1 do
if sv[i].dtb>sv[j].dtb then begin
tg:=sv[i];
sv[i]:=sv[j];
sv[j]:=tg;
end;
for i:=1 to n do
with sv[i] do
begin
writeln(' Ho ten:',hoten);
writeln(' Diem TB:',dtb:2:2);
writeln;
end;
end;
begin
clrscr;
write(' Nhap n=');readln(n);
nhap;
hienthi;
sapxep;
readln;
end.
--Pascal - Bản ghi - danh sách sinh viên và tính phần trăm sv nam. nữ
-Nhập vào một danh sách sinh viên (họ tên,năm sinh,dan tộc,điểm 1 ,điểm 2 , điểm 3 ,giới tính)
-hiện danh sách sinh viên vừa nhập dưới dạng cột
STT Hoten Gioitinh Dantoc Diem1 Diem2 Diem3 DTB
-cho bit có bao nhiu phần trăm sinh viên nam bao nhiu phần trăm nữ
Bài 16:
uses crt;
type sinhvien=record
hoten,dantoc,gioitinh:string;
namsinh,diem1,diem2,diem3:integer;
dtb:real;
end;
mang=array [1..10] of sinhvien;
var sv:mang;
i,n,d:integer;
p:real;
procedure nhap;
begin
clrscr;
writeln(' NHAP
THONG TIN CHO SINH VIEN');
for i:=1 to n do
with sv[i] do
begin
write(' Ho ten:');readln(hoten);
write(' Gioi tinh:');readln(gioitinh);
write(' Dan toc:');readln(dantoc);
write('
Diem1,Diem2,Diem3:');readln(diem1,diem2,diem3);
dtb:=(diem1+diem2+diem3)/3;
writeln;
end;
end;
writeln;writeln;
writeln(' DANH SACH
SINH VIEN VUA NHAP');
for i:=1 to n do
with sv[i] do
begin
writeln(' Ho ten:',hoten);
writeln(' Nam sinh:',namsinh);
writeln(' Diem TB:',dtb:2:2);
writeln;writeln;
end;
end;
procedure phantram;
begin
writeln;writeln;
writeln('
TY LE NAM NU');
d:=0;
for i:=1 to n do
if sv[i].gioitinh='nam' then d:=d+1;
p:=(d/n)*100;
writeln(' Trong danh sach co
',p:2:2,' % la sinh vien nam');
writeln(' Trong danh sach co ',
(100-p):2:2,' % la sinh vien nu');
end;
begin
clrscr;
write(' Nhap n=');readln(n);
nhap;
phantram;
readln;
end.
--Pascal - Làm việc với xâu
Đề bài:
-kiểm tra một xâu s1 có mặt tỏng xâu s2 khơng tình từ 1 vị trí bất kì
-nhập 2 xâu s1 ,s2 .Đếm em xâu s1 có mặt trong xâu s2 bao nhiu lần
Bài 13:
program yen13;
uses crt;
var s1,s2:string;
i,j,d,k,t:integer;
procedure kiemtra;
begin
d:=0;
for i:=1 to length(s2) do
if s2[i]=s1[1] then begin
k:=2;t:=1;
for
j:=i+1 to (i+length(s1)-1) do
if
s2[j]=s1[k] then begin
k:=k+1;
t:=t+1;
end;
if
t=length(s1) then d:=d+1;
if d>0 then begin
writeln(' Xau s1 co xuat hien
trogn xau s2');
writeln(' Xau s1 xuat hien
',d,' lan trong xau s2');
end
else writeln(' Xau s1 khong xuat hien trong xau s2');
end;
begin
clrscr;
write(' Nhap xau s1:');readln(s1);
write(' Nhap xau s2:');readln(s2);
kiemtra;
readln;
end.
--Pascal - Chuẩn hóa xâu
<b>Đề bài:</b>
-Đếm xem 1 xâu s có bao nhiu kí tự c , ch (không kể in hoa hay thường)
-Đếm xem xâu s có bao nhiu từ (một từ được định nghĩa là một tập các kí tự khơng chứa dấu cách) -chuẩm
hóa xâu xóa tất cả kí tự cách ở đầu và ci câu ,trong xâu khơng co nhìu hơn một dấu cách đứng liền nhau.
Bài 6:
program yen6;
uses crt;
var st:string;
i,d:integer;
ch:char;
function demkitu:integer;
begin
d:=0;
for i:=1 to length(st) do
demkitu:=d;
end;
function demtu:integer;
begin
d:=1;
for i:=1 to length(st) do
if (st[i]<>' ')and(st[i+1]=' ') then d:=d+1;
demtu:=d;
end;
procedure chuanhoa;
begin
while st[1]=' ' do
delete(st,1,1);
while st[length(st)]=' ' do
delete(st,length(st),1);i:=1;
repeat
if (st[i]=' ')and(st[i+1]=' ') then delete(st,i,1)
else i:=i+1;
until i>length(st);
end;
function dem:integer;
begin
d:=0;
for i:=1 to length(st) do
if st[i]=ch then d:=d+1;
dem:=d;
end;
begin
write(' Nhap xau:');readln(st);
write(' Nhap ki tu:');readln(ch);
chuanhoa;
writeln(' Trong xau co ',demkitu,' ki tu C');
writeln(' Trong xau co ',demtu,' tu');
writeln(' Ki tu ',ch,' vua nhap co mat ',dem,' lan trong xau');
readln;
end.
Pascal - Tính trung bình cộng
đề bài:
Nhập vào 1 số n nguyên (2<20)
-nhập vào một mảng n số thực
-tình trung bình cơng của tất cả số dương trong mảng
-kiểm tra xem trong mảng có bao nhiu số có giá trị trùng với giá trị của tbc nói trên
Bài 5:
Nh?p vào 1 s? n nguyên (2<n<20)
-nh?p vào m?t m?ng n s? th?c
-tình trung bình cơng c?a t?t c? s? d??ng trong m?ng
-ki?m tra xem trong m?ng có bao nhiu s? có giá tr? trùng v?i giá tr? c?
a tbc nói trên
---
---program yen5;
uses crt;
var a:array [1..20] of real;
b:array [1..20] of integer;
i,n,d,j:integer;
procedure nhap;
begin
for i:=1 to n do
begin
write(' a[',i,']=');readln(a[i]);
end;
end;
function tbc:real;
begin
d:=0;s:=0;
for i:=1 to n do
if a[i]>0 then begin
s:=s+a[i];
d:=d+1;
end;
tbc:=(s/d);
end;
procedure kiemtra;
begin
d:=0;j:=1;
for i:=1 to n do
if m=a[i] then begin
b[j]:=i;
d:=d+1;
j:=j+1;
end;
if d=0 then writeln(' Trong mang khong co so nao trung trung
binh cong')
write(' Trong day co ',d,' so trung voi trung
binh cong o vi tri');
for i:=1 to j-1 do
write(', ',b[i]);
end;
end;
begin
clrscr;
repeat
write(' Nhap n=');readln(n);
until (2<n)and(n<20);
nhap;
m:=tbc;
writeln(' Trung bing cong :',m:2:3);
kiemtra;
readln;
end.
---Pascal - Kiểm tra tính chẵn lẻ, số Nguyên tố, Số hoàn hảo
Bài 1:
Nhập vào 1 số nguyên gồm 4 chữ số
-Kiểm tra tình chắn lể
-kiểm tra xem có phải là số ngun tố khơng
-kiểm tra xem có phải là số hồn hảo khơng
<b>Code Demo: </b>
function nguyento(n:integer):boolean;
begin
ok:=true;
d:=0;
if n mod i=0 then d:=d+1;
if d<>1 then ok:=false;
nguyento:=ok;
end;
Bài 1:
Nh?p vào 1 s? nguyên g?m 4 ch? s?
-Ki?m tra tình ch?n l?
-ki?m tra xem có ph?i là s? nguyên t? khơng
program yen1;
uses crt;
var i,n,k,d:integer;
ok:boolean;
function chanle(n:integer):boolean;
begin
ok:=true;
if n mod 2<>0 then ok:=false;
chanle:=ok;
end;
function nguyento(n:integer):boolean;
begin
ok:=true;
d:=0;
for i:=1 to n-1 do
if n mod i=0 then d:=d+1;
if d<>1 then ok:=false;
function chinhphuong(n:integer):boolean;
begin
ok:=true;
k:=trunc(sqrt(n));
if sqr(k)<>n then ok:=false;
chinhphuong:=ok;
end;
begin
clrscr;
write(' Nhap n=');readln(n);
if chanle(n) then writeln(' So vua nhap la chan')
else writeln(' So vua nhap la so le');
if nguyento(n) then writeln(' So vua nhap la nguyen to')
else writeln(' So vua nhap khong phai la so nguyen to');
if chinhphuong(n) then writeln(' So vua nhap la so chinh
phuong')
else writeln(' So vua nhap khong la so chinh phuong');
readln;