1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận lab report exercises kỹ thuật lập trình

14 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lab Report Exercises Kỹ Thuật Lập Trình
Tác giả Trần Quốc Khang
Trường học Trường Đại Học Công Nghiệp Tp Hồ Chí Minh
Chuyên ngành Kỹ Thuật Lập Trình
Thể loại lab report
Thành phố Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 838,73 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINHLAB REPORT EXERCISESKỸ THUẬT LẬP TRÌNH.

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

LAB REPORT EXERCISES

KỸ THUẬT LẬP TRÌNH

Trang 2

NỘI DUNG 1: CON TRỎ Câu 1: Chương trình thực hiện các xử lý cơ bản trên con trỏ. Code:

#include<stdio.h>

int main()

{

int *a;

int z;

z=10;

printf("How works pointer and how to handle pointers:\n");

printf("\nValue of z = %d",z);

printf("\nAddress of z = %p\n",&z);

a=&z;

printf("\nNow a is assigned with the address of z:");

printf("\nAddress of pointer a = %p", a);

printf("\ncontent of pointer a = %d\n", *a);

z=30;

printf("\nNow, The value of z assigned to 30");

printf("\nAddress of pointer a = %p", a);

printf("\ncontent of pointer a = %d\n", *a);

*a=5;

printf("\nNow, pointer variable a is assigned the value : 5");

printf("\nAddress z = %p", &z);

printf("\nValue of z = %d\n", z);

return 0;

}

Kết quả:

~ 2 ~

Trang 3

Câu 2: Dùng con trỏ, viết chương trình để thực hiện các phép tính số học. Code:

#include<stdio.h>

int main()

{

float a,b;

float *x,*y;

char *k,kt;

k=&kt;

printf("Nhap A va B: ");

x=&a;

y=&b;

scanf("%f%f",x,y);

getchar();

printf("\nNhap dau: ");

scanf(" %c",k);

getchar();

switch(*k){

case '+':

printf("%f %c %f = %f",*x,*k,*y,*x+*y);

break;

case '-':

printf("%f %c %f = %f",*x,*k,*y,*x-*y);

break;

case '*':

printf("%f X %f = %f",*x,*y,*x**y);

break;

case '/':

printf("%f %c %f = %f",*x,*k,*y,*x/(*y));

break;

default:

printf("\nnhap sai!");

break;

}

}

Kết quả:

~ 3 ~

Trang 4

Câu 3: Dùng con trỏ, viết chương trình để tìm giá trị lớn nhất giữa số.

Code:

#include<stdio.h>

int main()

{

float a,b;

float *max;

printf("Nhap a va b: ");

scanf("%f%f",&a,&b);

if(a>b)

{

max=&a;

}

else

{

max=&b;

}

printf("\nSo max cua a va b la: %f",*max);

}

Kết quả:

Câu 4: Dùng con trỏ, viết hàm hoán đổi 2 số(swap).

Code:

#include<stdio.h>

void swap(int *x,int *y)

{

int t=*x;

*x=*y;

*y=t;

}

int main()

{

int a,b;

int *x,*y;

printf("Nhap a va b: ");

scanf("%d %d",&a,&b);

Too long to read on your phone? Save to

read later on your computer

Save to a Studylist

Trang 5

printf("\nTRUOC khi hoan doi: %d %d ",a,b); swap(&a,&b);

printf("\nSAU khi hoan doi: %d %d ",a,b);

}

Kết quả:

Câu 5: Viết chương trình thực hiện các chức năng sau: Code:

#include<stdio.h>

void input(int *a,int &n);

void output(int *a,int &n);

void sochan(int *a,int &n);

int max(int *a,int &n)

{

int max=a[0];

for(int i=1;i<n;i++)

{

if(a[i]>max)

{

max=a[i];

}

}

return max;

}

int main()

{

int a[100];

int n;

input(a,n);

output(a,n);

sochan(a,n);

int m;

m=max(a,n);

printf("\nGia tri MAX: %d",m);

}

void input(int *a,int &n)

{

printf("Nhap phan tu n: ");

scanf("%d",&n);

for(int i=0;i<n;i++)

~ 5 ~

Trang 6

printf("a[%d]= ",i);

scanf("%d",a+i);

}

}

void output(int *a,int &n){

printf("\nXuat mang: ");

for(int i=0;i<n;i++)

{

printf(" %d",*(a+i));

}

}

void sochan(int *a,int &n)

{

printf("\nSo chan trong mang: ");

for(int i=0;i<n;i++)

{

if(a[i]%2==0){

printf(" %d",*(a+i));

}

}

}

Kết quả:

Câu 6:Viết chương trình sử dụng vùng bộ nhớ cấp phát động (HEAP SEGMENT) cho phép

người dùng nhập 2 số thực.Tính tổng, hiệu, tích, thương của chúng.

Code:

#include<stdio.h>

#include<stdlib.h>

~ 6 ~

Trang 7

int main()

{

float *a,*b;

a=(float*)malloc(sizeof(float));

b=(float*)malloc(sizeof(float));

printf("Nhap a va b: ");

scanf("%f%f",a,b);

getchar();

char *c;

c=(char*)malloc(sizeof(char));

printf("\nNhap dau: ");

scanf("%c",c);

getchar();

switch(*c)

{

case '+':

printf("%f + %f = %f",*a,*b,*a+*b); break;

case '-':

printf("%f - %f = %f",*a,*b,*a-*b); break;

case '*':

printf("%f X %f = %f",*a,*b,*a**b); break;

case '/':

printf("%f %: %f = %f",*a,*b,*a/(*b)); break;

default:

printf("\nKhong hop le!"); break;

}

free(a);

free(b);

free(c);

}

Kết quả:

~ 7 ~

Trang 8

: Viết chương trình sử dụng bộ nhớ cấp phát động cho phép người dùng nhập hai 2 ký

Câu 7

tự, sau đó chương trình in ra các ký tự giữa 2 kí tự này theo thứ tự tăng dần.

Code:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char *pc1, *pc2;

pc1=(char *) malloc(sizeof(char));

pc2=(char *) malloc(sizeof(char));

if (pc1==NULL || pc2==NULL)

{

printf("Khong du bo nho\n");

return 1;

}

printf("Nhap vao hai ky tu: ");

scanf("%c %c", pc1, pc2);

if (*pc1>*pc2)

~ 8 ~

Trang 9

char temp=*pc1;

*pc1=*pc2;

*pc2=temp;

}

char c;

for (c=*pc1;c<=*pc2;c++)

{

printf("%c %4d %4o %4X\n", c, c, c, c);

}

free(pc1);

free(pc2);

return 0;

}

Kết quả:

Câu 8: Viết chương trình thực hiện các thao tác mảng 1 chiều,sử dụng kỹ thuật cấp phát động

(HEAP)

Code:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

void nhap(float *a,int *n)

{

for(int i=0;i<*n;i++)

{

printf("a[%d]= ",i);

scanf("%f",a+i);

}

}

void xuat(float *a,int *n)

{

~ 9 ~

Trang 10

for(int i=0;i<*n;i++)

{

printf(" %f",*(a+i));

}

}

float trungbinh(float *a,int *n)

{

float s=0;

for(int i=0;i<*n;i++)

{

s+=a[i];

}

return s/(*n);

}

float tongbinhphuong(float *a,int *n)

{

float s=0;

for(int i=0;i<*n;i++)

{

s+=pow(*(a+i),2);

}

return s;

}

void them(float *a,int *n,int &p,float &x){

for(int i=*n;i>p;i ){

a[i]=a[i-1];

}

a[p]=x;

*n=*n+1;

}

void xoa(float *a,int *n,int &p){

for(int i=p;i<*n-1;i++){

a[i]=a[i+1];

}

*n=*n-1;

}

float timkiem(float *a,int *n,float &tim)

{

int k=0;

for(int i=0;i<*n;i++)

{

if(tim==*(a+i))

{

k=1;

break;

}

else

{

~ 10 ~

Trang 11

}

}

return k;

}

void tang(float *x,float *y)

{

int t=*x;

*x=*y;

*y=t;

}

int main()

{

//Cau a) Nhap mang so THUC//

float *a;

a=(float*)malloc(sizeof(float));

int *n;

n=(int*)malloc(sizeof(int));

printf("Nhap phan tu mang: ");

scanf("%d",n);

nhap(a,n);

//Cau b) Xuat cac pha tu mang //

xuat(a,n);

//Cau c) Tinh trung binh mang//

float m=trungbinh(a,n);

printf("\n\nTrung binh mang: %f",m);

//Cau d) Tinh tong binh phuong//

float ss=tongbinhphuong(a,n);

printf("\nTong binh phuong: ss= %f",ss); //cau e) Tinh phuong sai//

float d2;

d2=(ss/(*n))-pow(m,2);

printf("\nPhuong sai: d^2= %f",d2);

//Cau f) Tinh do lech chuan//

float d;

d=sqrt(d2);

printf("\nDo lech chuan: d= %f ",d);

//Cau g) Them gia tri x vao vi tri p//

float x;

int p;

printf("\n\nNhap so can them: ");

scanf("%f",&x);

printf("Nhap vi tri can them: ");

scanf("%d",&p);

them(a,n,p,x);

xuat(a,n);

//Cau h) Xoa phan tu tai vi tri p//

printf("\n\nNhap vi tri can xoa: ");

scanf("%d",&p);

~ 11 ~

Trang 12

xuat(a,n);

printf("\n");

//Cau i) Tim kiem vi tri x trong mang//

float tim;

printf("\nNhap so can tim: ");

scanf("%f",&tim);

if(timkiem(a,n,tim)){

printf("TIM THAY!");

}

else

{

printf("KHONG TIM THAY!");

}

//Cau j) Sap xep tang giam//

for(int i=0;i<*n;i++){

for(int j=i+1;j<*n;j++)

{

if(a[i]>a[j])

{

tang(a+i,a+j);

}

}

}

printf("\n\nSap xep TANG: ");

xuat(a,n);

for(int i=0;i<*n;i++){

for(int j=i+1;j<*n;j++)

{

if(a[i]<a[j])

{

tang(a+i,a+j);

}

}

}

printf("\nSap xep GIAM: ");

xuat(a,n);

free(a);

free(n);

}

Kết quả:

~ 12 ~

Ngày đăng: 25/05/2024, 17:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w