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

báo cáo bài tập nhập môn hệ điều hành lab 2

13 1 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 đề Báo Cáo Bài Tập Nhập Môn Hệ Điều Hành Lab 2
Tác giả Nguyễn Ngô Đăng Khoa
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo
Năm xuất bản 2021-2022
Định dạng
Số trang 13
Dung lượng 2,91 MB

Nội dung

Viết các tập tin add.c, sub.c lần lượt chứa 2 hàm số int addint a, int b và... Bỏ qua các đối số không phải là số nguyên.. Hãy áp dụng các thuật toán sắp xếp đã học.

Trang 1

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP NMHĐH

HK2, 2021-2022 Lab 2 Thành Viên: Nguyễn Ngô Đăng Khoa (521H0084)

Do off nên chưa tìm được tổ

Trang 2

M c l c ụ ụ

A PHẦN THỰC HÀNH 2

Ví Dụ 1: Biên dịch chương trình đầu tiên 2

Ví Dụ 2: Truyền đối số từ lệnh gọi 3

Ví dụ 3: Liên kết 4

B PHẦN BÀI TẬP 5

1 Viết chương trình sao cho khi truyền đối số n vào thì xuất ra tổng S = 1 + 2 + … + n 5

2 Viết chương trình truyền vào một số nguyên, và in ra dãy các ước số của số nguyên này 6

3 Viết chương trình truyền vào một danh sách số nguyên, và in ra dãy số này theo thứ tự tăng dần 8

4 Viết các tập tin add.c, sub.c lần lượt chứa 2 hàm số int add(int a, int b) và .10

int sub(int a, int b) 10

KẾT LUẬN 13

A PHẦẦN TH C HÀNH Ự

Ví D 1: ụ Biên d ch ch ị ươ ng trình đầầu tiên

A: Code Chương Trình

Chúy ý: code phải được giải thích để thể hiện hiểu rõ chương trình mình biết

// hello.c

#include <stdio.h>

int main() {

printf("Hello World\n");

Trang 3

return 0;

}

B: Kết Quả Demo

Ví D 2: Truyêần đốối sốố t l nh g i ụ ừ ệ ọ

2.1: Code chương trình

// para.c

#include<stdio.h>

intmain( intargc, char ** argv)

{

printf("Number of arguments %i n", argc);

i ; int =0

for(i 0; i<argc; i++)

printf("Argument %s\t", argv[i]); return0;

}

2.2 Kết quả Demo:

Trang 4

Ví d 3: Liên kêốt ụ

3.1 Code chương trình:

// hello1.c

#include<stdio.h>

voidhello_1( ) inti

{

printf("Hello, parameter 1 = %d\n", i); }

// hello2.c

#include<stdio.h>

voidhello_2( ) inti

{

printf("Hello, parameter 2 = %d\n", i); }

// main.c

#include<stdio.h>

#include<stdlib.h>

intmain( intargc, char ** argv)

{

i int =atoi(argv[1]);

k int =atoi(argv[2]);

hello_1(i); hello_2(k);

Trang 5

}

3.2 Kết quả Demo:

B PHẦẦN BÀI T P Ậ

1 Viêốt ch ng trình sao cho khi truyêần đốối sốố n vào thì xuầốt ra t ng S = 1 + 2 ươ ổ + … + n

a Báo lỗi nếu lời gọi có đối số không phải là một số nguyên dương

b Báo lỗi nếu có nhiều hơn 2 đối số (là main.out và n)

1.1 Code chương trình:

//Bai1.c

#include<stdio.h>

#include<stdlib.h>

intmain( intargc, char ** argv)

{

a int =atoi(argv[ ]);1

(argc if >2)

printf("Doi so truyen vao qua nhieu\n"); CÂU B

else if <= (a 0)

printf("Doi so nhap vao khong phai la so nguyen

duong\n"); CÂU A

else

{

Trang 6

sum ;int =0

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

sum += i;

printf("Ket qua la: S = %d\n",sum);

}

return0;

}

Kết quả Demo:

2 Viêốt ch ng trình truyêần vào m t sốố nguyên, và in ra dãy các ươ ộ ướ c sốố c a ủ sốố nguyên này

a Báo lỗi nếu đối số không phải là số nguyên, hoặc thừa đối số

b Phân tích số nguyên đã truyền vào thành thừa số nguyên tố (bài tập nâng cao)

2.1 Code chương trình:

//Bai2.c

#include<stdio.h>

#include<stdlib.h>

intmain( intargc, char ** argv)

Trang 7

a int =atoi(argv[ ]);1

(argc if >2)

printf("Thua doi so\n");

else if <= (a 0)

printf("Doi so khong phai la so nguyen duong\n");

CÂU A

else

{

printf("Cac uoc so cua %d la: ",a);

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

{

(a i if % ==ấ 0ế ướ) L y h t ố c s cho t i Nớ

{

(i if == a)

printf("%d\n",i);

else

printf("%d",i);

}

}

printf("%d = ",a); In s nh pố ậ

n a;int =

dem;int

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

{

dem =0;

while % ==(n i ể 0) Ki m tra t ng s có ph i ừ ố ả Prime?

{

demế ++ể ạ; Đ m đ t o thành mũ phía dở ướ i sau

n i;/=

}

Trang 8

if(dem)

{

(dem if >1ử ụ) S d ng mũ đã đ m đế ượ c

printf("%d %d^ ", i, dem);

elseKhông thì ch in raỉ

printf("%d", i);

(n i)ẫif > V n còn s ph i đ m thì nhân tiépố ả ế

printf(" * ");

}

}

printf(" "\nố); Xu ng dòng trướ c khi end

}

return0;

}

2.2 Kết quả Demo:

3 Viêốt ch ng trình truyêần vào m t danh sách sốố nguyên, và in ra dãy sốố này ươ ộ theo th t ứ ự tăng dầần

a Bỏ qua các đối số không phải là số nguyên

b Hãy áp dụng các thuật toán sắp xếp đã học (bài tập về nhà)

3.1 Code chương trình:

//Bai3.c

Trang 9

#include<stdlib.h>

voidBubble( int [] inta , n)//Câu b S p x p ki u bubbleắ ế ể

{

for int( i n ; i = -1 >= ; i )1

{

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

{

(a[j] a[j if > +1])

{

temp a[j];int =

a[j] a[j = +1];

a[j +1] temp;=

}

}

}

}

intmain( intargc, char ** argv)

{

a[ ], n int 10 =0;

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

{

temp int =atoi(argv[i]);

(temp if ==0)Câu a

ỏcontinue;B qua các s không ph i là s nguyênố ả ố

else

{

a[n] temp;=ỏ B vào 1 m ng ch toàn các s nguyênả ỉ ố

n++;

}

}

Bubble(a, n); ắS p x p l i m ngế ạ ả

Trang 10

printf("Day tang la: ");

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

{

(i n )if != -1

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

else

printf("%d\n",a[i]);ỉ ầ Ch ph n cu i thì xu ng dòngố ố

}

return0;

}

3.2 Kết quả Demo:

4 Viêốt các t p tin add.c, sub.c lầần l ậ ượ t ch a 2 hàm sốố int add(int a, int b) và ứ int sub(int a, int b).

a Xây dựng một thư viện liên kết tĩnh từ 2 tập tin add.c và sub.c

b Xây dựng một thư viện liên kết động từ 2 tập tin add.c và sub.c

Lần lượt sử dụng các thư viện ở a và b., viết hàm main truyền vào hai số nguyên và dấu phép

tính “+” hay “-”, và in ra kết quả tương ứng Chương trình báo lỗi nến các đối số truyền vào

Trang 11

không đúng theo qui tắc.

A: Code Chương Trình

// add.c

#include<stdio.h>

voidadd( , inta intb)

{

printf("Ket qua la: %d\n", ); a+b // Tinh tong cua i va k

}

// sub.c

#include<stdio.h>

voidsub( , inta intb)

{

printf("Ket qua la: %d\n", a-b);// Tinh hieu cua i va k

}

//baitap4.c

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

intmain( intargc, char ** argv)

{

i int =atoi(argv[1]);

k int =atoi(argv[2]);

char [] = b "+";

char [] = c "-";

if(strcmp(argv[3],b) == )0

{

add(i,k);

}

else if(strcmp(argv[3],c) ==0)

{

sub(i,k);

Trang 12

}

elseprintf("Doi so truyen vao khong dung\n"); return0;

}

B: Kết Quả Demo

a Liên kết tĩnh:

Trang 13

b Liên kết động:

KẾẾT LU N Ậ

Sau khi học và hoàn thành phần lab 2 em thu được kết sau:

- Hoàn thành tất cả phần thực hành

- Hoàn thành được 4 bài tập (1, 2, 3, 4) [100%]

- Hiểu được hoạt động của liên kết động và tĩnh

Ngày đăng: 08/05/2024, 16:24

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

TÀI LIỆU LIÊN QUAN

w