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

16 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo bài tập nhập môn hệ điều hành lab 4

Đ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

BÀI 2: ĐỐIVỚIMỘTTỆPCÓCẤUTRÚCSAU:...10- DÒNGĐẦUTIÊN GHI SỐPHẦN TỬCỦAMẢNG...10- CÁCDÒNGCÒNLẠI CHỨA PHẦNTỬ NGUYÊN...10VIẾTCHƯƠNGTRÌNHĐỌCFILE TÌM, CÁCSỐ NGUYÊN TỐ TÍNH TỔNG CÁC SỐ NGUYÊN TỐ

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ĐHHK2, 2022-2023

Lab 4

Trang 2

BÀI 2: ĐỐIVỚIMỘTTỆPCÓCẤUTRÚCSAU: 10

- DÒNGĐẦUTIÊN GHI SỐPHẦN TỬCỦAMẢNG 10

- CÁCDÒNGCÒNLẠI CHỨA PHẦNTỬ NGUYÊN 10

VIẾTCHƯƠNGTRÌNHĐỌCFILE TÌM, CÁCSỐ NGUYÊN TỐ TÍNH TỔNG CÁC SỐ NGUYÊN TỐ NÀY VÀ XUẤT RA FILE KẾT QUẢ CÓ CẤU ,

TRÚC NHƯ SAU: 10

- DÒNGĐẦUTIÊN CHỨA SỐNGUYÊNTỐ CÓ TRONG MẢNG .10

- DÒNGTIẾPTHEO XUẤTRASUM TỔNG = CÁCSỐ NGUYÊN TỐ 10

- DÒNGTẠORACÁCSỐ NGUYÊN TỐ TÌM ĐƯỢC .10

- DÒNGSỐ NGUYÊN TỐTIẾPTHEO SẮP TĂNG 10

XUẤTRATỆPKẾTQUẢVỚI CẤU TRÚC SAU: 13

- DÒNGĐẦUTIÊN GHI SỐPHẦN TỬ 13

- DÒNGTIẾPTHEO CHỨA SỐNHỎNHẤT 13

- DÒNGTIẾPTHEO GHI SỐLỚN NHẤT 13

- DÒNGĐỂ XUẤTCÁCPHẦN TỬCỦAMẢNG 13

A: CODE HƯƠNG RÌNH C T 13

B: Kết Quả Demo: 15

C KẾT LUẬN 16

Trang 4

A PH N TH C HÀNHẦỰ

Ví D 1: ụ Chờ ti n trình conếA: Code Chươ ng Trình

// vd1.c

#include <stdio.h>#include <unistd.h>

int main(int argc, char *argv[]){

int pnum, count, retval, child_no; pnum = atoi(argv[1]);

if (pnum <= 0) {

printf("tien trinh = 0"); return -1;

} else {

retval = 1; /*tao tien trinh*/

for (count = 0; count < pnum; count++) {

if (retval != 0) {

retval = fork(); }

else { break; } }

/*Thuc thi cua tien trinh con*/ if (retval == 0)

{

Trang 5

child_no = count;

printf("Tien trinh so: %d, PID: %d\n", child_no, getpid()); }

else {

/*waiting for children termination*/ for (count = 0; count < pnum; count++) {

wait(NULL); }

printf("ID tien trinh cha: %d\n", getpid()); }

} return 0;}

B: K t Qu Demoế ả

Ví D 2: ụ ứCh c năng th c hi n m t chự ệ ộ ươ ng trìnhA: Code Chươ ng Trình

Trang 6

printf("Call system to execute ls -a\n"); re = system("ls -a");

if(re != -1) {

printf("Call ls -a OK!\n"); }

printf("Call system to execute ps -a\n"); re = system("ps -a");

if(re != -1) {

printf("Call ps -a OK!\n"); }

return 0;}

B: K t Qu Demoế ả

Ví D 3: ụ Thao tác t p tinậA: Code Chươ ng Trình//vd3.c

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

int main(int argc, char *argv[]){

int c;

FILE *in, *out; in = fopen(argv[1], "r");

Trang 7

out = fopen(argv[2], "w"); while((c = fgetc(in)) != EOF) {

fputc(c, out); }

return 0;}

int main(int argc, char *argv[]){

int c, num, count = 0, i = 0; int ar[100];

FILE *in, *out; in = fopen(argv[1], "r"); fscanf(in, "%d", &num); while (i < num) {

fscanf(in, "%d", &c); ar[i] = c;

i = i + 1; } fclose(in);

Trang 8

return 0;}

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

int main(int argc, char *argv[]) { if (argc != 3) {

printf("Sử dụng: %s tệp_nguon tệp_dich\n", argv[0]);

Trang 9

return 1; }

char *tep_nguon = argv[1]; char *tep_dich = argv[2];

FILE *tep_nguon_fp = fopen(tep_nguon, "rb"); if (tep_nguon_fp == NULL) {

perror("Lỗi khi mở tệp nguồn"); return 1;

}

FILE *tep_dich_fp = fopen(tep_dich, "wb"); if (tep_dich_fp == NULL) {

perror("Lỗi khi mở tệp đích"); fclose(tep_nguon_fp); return 1;

}

char buffer[1024]; size_t so_byte_doc;

while ((so_byte_doc = fread(buffer, 1, sizeof(buffer), tep_nguon_fp)) > 0) { fwrite(buffer, 1, so_byte_doc, tep_dich_fp);

}

fclose(tep_nguon_fp); fclose(tep_dich_fp);

printf("Sao chép tệp thành công từ %s đến %s\n", tep_nguon, tep_dich); return 0;

}

Trang 10

Vi t ch ng trình đ c file, tìm các s nguyên t , tính t ng các s

nguyên t này và xu t ra file k t qu có c u trúc nh sau:ố ấ ế ả ấ ư- Dòng đ u tiên ch a s nguyên t có trong m ngầ ứ ố ố ả- Dòng ti p theo xu t ra sum = t ng các s nguyên tế ấ ổ ố ố- Dòng t o ra các s nguyên t tìm đạ ố ố ượ c.

- Dòng s nguyên t ti p theo s p tăngố ố ế ắA: Code Chươ ng Trình:

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

Trang 11

// Hàm kiểm tra xem một số có phải là số nguyên tố hay khôngbool isPrime(int n) {

if (n <= 1) { return false; }

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

return false; }

} return true;}

fscanf(inputFile, "%d", &n); int primeSum = 0;

primeSum += num; primes[primeCount] = num; primeCount++;

Trang 12

} }

// Lưu kết quả vào tệp f2

fprintf(outputFile, "%d\n", primeCount); fprintf(outputFile, "Sum = %d\n", primeSum); for (int i = 0; i < primeCount; i++) {

fprintf(outputFile, "%d ", primes[i]); }

fprintf(outputFile, "\n");

// Tìm và lưu danh sách các số nguyên tố còn lại for (int num = 2; primeCount > 0; num++) { if (isPrime(num)) {

fprintf(outputFile, "%d ", num); primeCount ;

} }

fclose(inputFile); fclose(outputFile); return 0;}

B: K t Qu Demo:ế ả

Trang 13

BÀI : Vi t ch3ế ươ ng trình th c hi n các nhi m v sau:ự ệ ệ ụ- Nh p s ph n t m ng nậ ố ầ ử ả

- Nh p m ng n ph n t là các s nguyên t ng u nhiên nh

h n 1000 (dùng hàm rand)ơ

- Tìm s nh nh tố ỏ ấ

Xu t ra t p k t qu v i c u trúc sau:ấ ệ ế ả ớ ấ

- Dòng đ u tiên ghi s ph n tầ ố ầ ử- Dòng ti p theo ch a s nh nh tế ứ ố ỏ ấ- Dòng ti p theo ghi s l n nh tế ốớ ấ- Dòng đ xu t các ph n t c a m ng.ể ấ ầ ử ủ ảA: Code Chươ ng Trình

// bai3.c

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

// Hàm kiểm tra xem một số có phải là số nguyên tố hay khôngbool isPrime(int n) {

if (n <= 1) { return false; }

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

return false; }

} return true;}

Trang 14

primeArray[primeCount] = num; primeCount++;

} }

// Tìm số nhỏ nhất trong mảng int smallest = primeArray[0]; for (int i = 1; i < n; i++) { if (primeArray[i] < smallest) { smallest = primeArray[i]; }

}

// Ghi kết quả vào tệp văn bản FILE *outputFile = fopen("f2", "w"); if (outputFile == NULL) {

perror("Lỗi khi mở tệp"); return 1;

}

Trang 15

fprintf(outputFile, "%d\n", n);

fprintf(outputFile, "Số nhỏ nhất: %d\n", smallest); fprintf(outputFile, "Dãy số nguyên tố:\n"); for (int i = 0; i < n; i++) {

fprintf(outputFile, "%d ", primeArray[i]); }

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