Tải bản đầy đủ (.pdf) (22 trang)

Bài tập lớn môn cơ sở lập trình

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 (139.9 KB, 22 trang )

Mục Lục
Bài tập lớn môn cơ sở lập trình.
ĐỀ TÀI THỰC HIỆN BÀI TẬP LỚN MÔN HỌC.................................................................2
Tên môn học: Cơ sở lập trình, Số tín chỉ: 04...............................................................2
Câu 1: Trình bày sơ đồ thuật toán dung để chuyển đổi một số nguyên x ( x > 0) thành một dãy
số nhị phân ra màn hình................................................................................................. 2
Câu 2: Vẽ sơ đồ giải thuật thực hiện bài toán Nhập vào một số nguyên n. Đếm xem số đó có
bao nhiêu chữ số và tính tổng các chữ số đó.....................................................................3
Câu 3: Nhập 2 số nguyên từ bàn phím. In ra tổng tích hiệu và thương của 2 số đó........4
Câu 4: Với I,j nhập từ bàn phím, in kết quả biểu thức sau ra màn hình...........................6
(! ((i/6==3) && (j<8)));.................................................................................................... 6
Câu 5: Nhập vào một số nguyên n. Đếm xem số đó có bao nhiêu chữ số và tính tổng
của các chữ số đó....................................................................................................... 6
Câu 6: Viết chương trính in ra màn hình các số Amstrong trong phạm vi từ 100 đến
1000. Và cho biết có bao nhiêu số thỏa mãn.................................................................7
Câu 7: Viết hàm liệt kê các ước số của n. Viết chương trình nhập số nguyên dương n,
gọi tên hàm và cho biết kết quả................................................................................... 8
Câu 9: Viết các chương trình con:................................................................................ 9
_ Nhập vào 1 mảng các số thực................................................................................ 9
_ In ra màn hình mảng số thực.................................................................................. 9
_Tính tổng các phần tử mảng số thực......................................................................9
_Đếm số phẩn từ dương.......................................................................................... 9
_Đếm số phần tử âm................................................................................................ 9
_Cho biết giá trị lớn nhất.......................................................................................... 9
_Cho biết giá trị nhỏ nhất......................................................................................... 9
_ Tìm kiếm một phần tử x nào đó..............................................................................9
_ Sắp xếp các phần tử theo thứ tự giảm dần............................................................9
Câu 10: Viết các hàm sau:......................................................................................... 11
_ Nhập một ma trận kích thước n*m với 2 ≤ n ,m ≥ 100..........................................11
_ Hiện ma trận ra màn hình..................................................................................... 11
_ Tính TBC đường chéo hình...................................................................................11


_ Tìm hàng có giá trị lớn nhất.................................................................................11
_ Viết ct chính gọi tên các hàm trên.........................................................................11


Câu 11: Viết chương trình thực hiện các yêu cầu sau:................................................14
_ Nhập danh sách khách hàng tiêu thụ điện gồm các thông tin sau: tháng thu, mã
khách hàng,............................................................................................................ 14
tên khách hàng, địa chỉ,điện năng tiêu thụ và lưu vào file KH.TXT............................14
_ Xuất danh sách khách hàng từ file KH.TXT............................................................14
_ Tính tiền điện khách hàng theo các quy định sau:.................................................14
+) 100 Kw đầu tiên là 550 đ / kw............................................................................14
+) 50 Kw tiếp theo 900 đ / kw................................................................................ 14
+) 50 Kw tiếp theo là 1210 đ / kw...........................................................................14
+) Thuế 10% trên tổng số tiền phải trả.................................................................14
_ Tính tổng số tiền thu được của khách hàng.........................................................14
Câu 12: Viết chương trình thực hiện các yêu cầu sau:................................................17
_Nhập danh sách đội bóng gồm tên đội bóng, tên huấn luyện viên trưởng, tên đội
trưởng, số lượng cầu thủ, số bàn thắng được ghi, số trận đấu đã tham gia. ............17
_ Hiển thị các thông tin đội bóng vừa nhập ra màn hình..........................................17
_Hiển thị danh sách đội bóng có tỷ lệ trung bình giữa số bàn thắng được ghi và số
trận đấu đã tham gia là > 1.5 ra màn hình và lưu các đội bóng này vào file
DOIBONG.DAT........................................................................................................ 17
_ Sắp xếp danh sách đội bóng theo thứ tự tang dần của số lượng cầu thủ..............17


ĐỀ TÀI THỰC HIỆN BÀI TẬP LỚN MÔN HỌC
Tên môn học: Cơ sở lập trình, Số tín chỉ: 04

Bài trình bày đề số 148


Câu 1: Trình bày sơ đồ thuật toán dung để chuyển đổi một số
nguyên x ( x > 0) thành một dãy số nhị phân ra màn hình.
Bắt đầu

Nhập x

Sai

X>0?
Đúng

X%2
X/2

In ra phần


Đúng

X > 1?
Sai

Kết thúc


Câu 2: Vẽ sơ đồ giải thuật thực hiện bài toán Nhập vào một số
nguyên n. Đếm xem số đó có bao nhiêu chữ số và tính tổng các
chữ số đó.

Bắt đầu


Nhập n

n/10
Đếm =đếm +1

Đúng
N > 0?
Sai
In ra đếm

Kết thúc

Sơ đồ thuật toán đếm số phần tử trong một số


Bắt đầu

Nhập n

Sai
N*-1

N>0?

Đúng
K=n%10
n\10

Tổng=tổng+k


Đúng
N>0?

Sai
In tổng

Kết thúc

Sơ đồ thuật toán tính tổng các phần tử trong một số


Câu 3: Nhập 2 số nguyên từ bàn phím. In ra tổng tích hiệu và thương của 2 số đó.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a,b;
printf("Nhap 2 so nguyen a va b, So nguyen a la ");
scanf("%d",&a);
printf("Nhap vao so nguyen b ");
scanf("%d",&b);
printf(" Tong hai so nguyen la");
printf("%d",a+b);
printf(" Tich cac so nguyen la");
printf("%d",a*b);
printf(" Hieu cac so nguyen la");
printf("%d",a-b);

printf(" Thuong cac so nguyen la");
printf("%d",a/b);
getch();
}


Câu 4: Với I,j nhập từ bàn phím, in kết quả biểu thức sau ra
màn hình
(! ((i/6==3) && (j<8)));
#include <stdio.h>
#include <conio.h>

int main()
{
int i,j;
printf("Nhap so nguyen i\n");
scanf("%d",&i);
printf("Nhap so nguyen j\n");
scanf("%d",&j);
if(!((i/6==3)&&(j<8)))
printf("i,j thoa man");
else
printf("i,j khong thoa man");
getch();

}

Câu 5: Nhập vào một số nguyên n. Đếm xem số đó có bao
nhiêu chữ số và tính tổng của các chữ số đó.
#include<stdio.h>

#include<conio.h>
int main()
{
int n,dem=0,s=0,k;
printf("Hay nhap gia tri cua n:");


scanf("%d",&n);
if(n<0)n*=(-1);
if(n==0) printf("So vua nhap co mot chu so \n");
else {
while(n>=1)
{
n=n/10;
dem+=1;
}
}printf("\nSo vua nhap co %d chu so",dem);
printf("\nTong cac chu so là ");
while (n>0)
{
k=n%10;
s=k+s;
n=n/10;
} printf("%d",s)

}

Câu 6: Viết chương trính in ra màn hình các số Amstrong
trong phạm vi từ 100 đến 1000. Và cho biết có bao nhiêu số
thỏa mãn.

#include <conio.h>
#include <stdio.h>

main(){
int a,b,c,dem=0;
printf("cac so amtstrong tu 100 den 1000 la:");
for (a=1 ; a<=9 ; a++)


for (b=1 ; b<=9 ; b++)
for (c=1 ; c<=9 ; c++)
if (a*a*a+b*b*b+c*c*c==a*100+b*10+c)
{printf("\n %d%d%d " , a,b,c );
dem+=1;}
printf("\nSo amstrong co la %d ",dem);
getch();
}

Câu 7: Viết hàm liệt kê các ước số của n. Viết chương trình
nhập số nguyên dương n, gọi tên hàm và cho biết kết quả.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n;
printf("Nhap so nguyen duong n: ");
scanf("%d",&n,n>0);
printf("\nUoc so cua n la: ");
if(n%i==0)
for(i=1;i<=n;i++)

{
printf("%d,%d, ",i, -i);
}
else
printf("khong co uoc");
getch();
}


Câu 9: Viết các chương trình con:
_ Nhập vào 1 mảng các số thực
_ In ra màn hình mảng số thực
_Tính tổng các phần tử mảng số thực
_Đếm số phẩn từ dương
_Đếm số phần tử âm
_Cho biết giá trị lớn nhất
_Cho biết giá trị nhỏ nhất
_ Tìm kiếm một phần tử x nào đó
_ Sắp xếp các phần tử theo thứ tự giảm dần
#include <stdio.h>
#include <conio.h>
int main()
{
int a[100],i,n,tong=0,dem=0,dem1=0,max,min,x,tg,j;
printf("Nhap vao mang N cac so nguyen N < 100 = ");
scanf("%d",&n);
for(i=0;iprintf("a[%d]= ",i);
scanf("%d",&a[i]);
}

printf("Mang vua nhap la ");
for(i=0;iprintf("\n %d",a[i]);}

printf("\nTong cac so nguyen vua nhap la ");
for(i=0;itong=tong+a[i];
printf("tong la %d",tong);
for(i=0;i

{
if(a[i]>0)
dem++;
}
printf("\nSo phan tu duong la %d",dem);
for(i=0;i{
if (a[i]<0)
dem1++;
} printf("\nSo phan tu am la %d",dem1);
max=a[0];
for(i=1;iif(max{max=a[i];}
} printf("\nSo lon nhat là %d",max);
min=a[0];
for(i=1;iif(min>a[i])
{min=a[i];}

} printf("\nso be nhat la %d ",min);
printf("\nNhap so nguyen x can tim: ");
scanf("%d",&x);
if(x==a[0])
printf("\nSo nguyen x o vi tri thu nhat");
else
{for(i=1;iif (x==a[i])
{printf("\nSo nguyen x o vi tri thu %d",i+1);}}
}printf("\nCac phan tu mang sau khi duoc sap xep theo thu tu giam dan la: ");


for(i=0;ifor(j=i+1;jif(a[i]{ tg=a[i];
a[i]=a[j];
a[j]=tg;
} for(i=0;iprintf("%d, ",a[i]);
}

Câu 10: Viết các hàm sau:
_ Nhập một ma trận kích thước n*m với 2 ≤ n ,m ≥ 100
_ Hiện ma trận ra màn hình
_ Tính TBC đường chéo hình
_ Tìm hàng có giá trị lớn nhất
_ Viết ct chính gọi tên các hàm trên
#include<conio.h>
#include<stdio.h>

typedef int mang[100][100];
void nhapmang(mang a,int &n, int &m){
int i,j;
printf("Kich thuoc ma tran A:");
printf("\nSo hang: ");
scanf("%d",&n);
printf("\nSo cot : ");
scanf("%d",&m);
for(i=0;ifor(j=0;jprintf("\nA[%d][%d]: ",i+1,j+1);
scanf("%d",&a[i][j]);


}
}
printf("\n");
}//nhap ma tran
void hienmang(mang a,int n, int m){
int i,j;
for(i=0;ifor(j=0;jprintf("%6d",a[i][j]);
}
printf("\n");
}
}//hien ma tran
void tbcDgcheochinh(mang a, int n){
int i,j,s=0;
float tbc;

for(i=0;is+=a[i][i];
}
tbc=(float)s/i;
printf("\nTrung binh cong duong cheo chinh: %.2f\n",tbc);
}//tinh trung binh cong duong cheo chinh
void maxrow(mang a,int n, int m){
int i,j,s,max;
for(i=0;is=0;
for(j=0;js+=a[i][j];
}


if(i==0){
max=s;
}else if(s>max){
max=s;
}
}
printf("\nHang");
for(i=0;is=0;
for(j=0;js+=a[i][j];
}
if(s==max){
printf(" %d ",i+1);
}

}
printf("co tong lon nhat\nMax= %d",max);
}//tim hang co tong gia tri lon nhat trong ma tran
main(){
mang a;
int n,m;
nhapmang(a,n,m);
hienmang(a,n,m);
tbcDgcheochinh(a,n);
maxrow(a,n,m);
getch();
}


Câu 11: Viết chương trình thực hiện các yêu cầu sau:
_ Nhập danh sách khách hàng tiêu thụ điện gồm các thông tin sau: tháng
thu, mã khách hàng,
tên khách hàng, địa chỉ,điện năng tiêu thụ và lưu vào file KH.TXT
_ Xuất danh sách khách hàng từ file KH.TXT
_ Tính tiền điện khách hàng theo các quy định sau:
+) 100 Kw đầu tiên là 550 đ / kw
+) 50 Kw tiếp theo 900 đ / kw
+) 50 Kw tiếp theo là 1210 đ / kw
+) Thuế 10% trên tổng số tiền phải trả

_ Tính tổng số tiền thu được của khách hàng
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
char diachi[50];
char tenkhachhang[50];
int thangthu,makhachhang;
float diennangtieuthu;
} thongtinkh;
main(){
thongtinkh a[100];
int n,i;
printf("Nhap so luong khach hang: ");
scanf("%d",&n);
for (i=0;iprintf("ten khach hang: ", i+1);
fflush(stdin);
gets(a[i].tenkhachhang);


printf("Dia chi khach hang: ");
fflush(stdin);
gets(a[i].diachi);
printf("Ma khach hang: ");
scanf("%d",&a[i].makhachhang);
printf("Thang thu: ");
scanf("%d",&a[i].thangthu);
printf("dien nang tieu thu: ");
scanf("%f",&a[i].diennangtieuthu);
}
printf("\nThong tin khach hang: ");
for(i=0;iprintf("\nten khach hang:%s\ndia chi khach hang:%s\nma khach hang:%d\nThang thu:

%d\ndien nang tieu thu:
%f",a[i].tenkhachhang,a[i].diachi,a[i].makhachhang,a[i].thangthu,a[i].diennangtieuthu);
FILE *f;
f=fopen("KH.TXT", "w");
for(i=0;ifprintf(f,"\nten khach hang:%s\ndia chi khach hang:%s\nma khach hang:%d\nThang thu:
%d\ndien nang tieu thu:
%f",a[i].tenkhachhang,a[i].diachi,a[i].makhachhang,a[i].thangthu,a[i].diennangtieuthu);
}
fclose(f);
printf("\nXuat danh sach khach hang: ");
for(i=0;iprintf(f,"\nten khach hang:%s\ndia chi khach hang:%s\nma khach hang:%d\nThang thu:
%d\ndien nang tieu thu:
%f",a[i].tenkhachhang,a[i].diachi,a[i].makhachhang,a[i].thangthu,a[i].diennangtieuthu);

}



Câu 12: Viết chương trình thực hiện các yêu cầu sau:
_Nhập danh sách đội bóng gồm tên đội bóng, tên huấn luyện viên trưởng,
tên đội trưởng, số lượng cầu thủ, số bàn thắng được ghi, số trận đấu đã
tham gia.
_ Hiển thị các thông tin đội bóng vừa nhập ra màn hình
_Hiển thị danh sách đội bóng có tỷ lệ trung bình giữa số bàn thắng được
ghi và số trận đấu đã tham gia là > 1.5 ra màn hình và lưu các đội bóng
này vào file DOIBONG.DAT
_ Sắp xếp danh sách đội bóng theo thứ tự tang dần của số lượng cầu thủ
#include <stdio.h>

#include <stdlib.h>
#include <string.h>
#include <conio.h>
typedef struct{
char tendoibong[50];
char hlvtruong[30];
char doitruong[30];
int soluong,sobanthang,sotrandau;
}dsdb;
main(){
dsdb a[100];
int n,i,k;
float tl;
printf("Nhap so danh sach doi bong: ");
scanf("%d",&n);
for(i=0;i{
printf("Nhap ten doi bong: ", i+1);
fflush(stdin);
gets(a[i].tendoibong);


printf("Nhap ten huan luyen vien: ");
fflush(stdin);
gets(a[i].hlvtruong);
printf("Nhap ten doi truong: " );
fflush(stdin);
gets(a[i].doitruong);
printf("Nhap so luong cau thu: ");
scanf("%d",&a[i].soluong);

printf("Nhap so ban thang: ");
scanf("%d",&a[i].sobanthang);
printf("Nhap so tran da dau: ");
scanf("%d",&a[i].sotrandau);
}
//Hien thong tin ra man hinh
printf("Thong tin doi bong:\n");
for(i=0;i{
printf("\nTen doi bong:%s\nTen huan luyen vien truong:%s\nTen doi truong:
%s",a[i].tendoibong,a[i].hlvtruong,a[i].doitruong);
printf("\nSo luong cau thu:%d\nSo ban thang:%d\nSo tran da dau:
%d",a[i].soluong,a[i].sobanthang,a[i].sotrandau);
}
//Danh sach doi ty le trung binh ban thang so tran >1.5
printf("\nDanh sach cac doi bong co ty le tran thang cao la:\n");
for (i=0;i{ tl=a[i].sobanthang/a[i].sotrandau;
if(tl>1.5)
printf("\nTen doi bong:%s\nTen huan luyen vien truong:%s\nTen doi truong:
%s",a[i].tendoibong,a[i].hlvtruong,a[i].doitruong);


printf("\nSo luong cau thu:%d\nSo ban thang:%d\nSo tran da dau:
%d",a[i].soluong,a[i].sobanthang,a[i].sotrandau);
FILE *f;
f=fopen("DOIBONG.DAT", "w");
for(i=0;ifprintf(f,"\nTen doi bong:%s\nTen huan luyen vien truong:%s\nTen doi truong:
%s",a[i].tendoibong,a[i].hlvtruong,a[i].doitruong);

fprintf(f,"\nSo luong cau thu:%d\nSo ban thang:%d\nSo tran da dau:
%d",a[i].soluong,a[i].sobanthang,a[i].sotrandau);
}
fclose(f);
getch();

}
for(i=0;ik=0
{

}

}





×