Đang tải... (xem toàn văn)
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 1BỘ 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 2NỘ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 3Câ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;
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;
printf("\nnhap sai!");break;
Kết quả:
~ 3 ~
Trang 4Câ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)
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 onyour phone? Save to
read later on yourcomputer
Save to a Studylist
Trang 5printf("\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++){
}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 6printf("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));}
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:
~ 6 ~
Trang 7int 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;
printf("\nKhong hop le!");break;
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 9char 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;}
for(int i=0;i<*n;i++){
printf("a[%d]= ",i);scanf("%f",a+i);}
void xuat(float *a,int *n){
~ 9 ~
Trang 10printf("xuat:");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++){
return s/(*n);}
float tongbinhphuong(float *a,int *n){
float s=0;for(int i=0;i<*n;i++){
return s;}
void them(float *a,int *n,int &p,float &x){for(int i=*n;i>p;i ){
void xoa(float *a,int *n,int &p){for(int i=p;i<*n-1;i++){
float timkiem(float *a,int *n,float &tim){
int k=0;
for(int i=0;i<*n;i++){
k=1;break;}
~ 10 ~
Trang 11k=0;}}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);
float d2;
printf("\nPhuong sai: d^2= %f",d2);//Cau f) Tinh do lech chuan//float d;
printf("\nDo lech chuan: d= %f ",d);//Cau g) Them gia tri x vao vi tri p//float x;
//Cau h) Xoa phan tu tai vi tri p//printf("\n\nNhap vi tri can xoa: ");scanf("%d",&p);
~ 11 ~
Trang 12//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!");}
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++){
printf("\n\nSap xep TANG: ");xuat(a,n);
for(int i=0;i<*n;i++){for(int j=i+1;j<*n;j++){
printf("\nSap xep GIAM: ");xuat(a,n);
Kết quả:
~ 12 ~