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 (1.3 MB, 16 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN </b>
<small>BÀI 2: ĐỐIVỚIMỘTTỆPCĨCẤUTRÚCSAU:...10</small>
<small>- DỊNGĐẦUTIÊN GHI SỐPHẦN TỬCỦAMẢNG...10</small>
<small>- CÁCDỊNGCỊNLẠI CHỨA PHẦNTỬ NGUN...10</small>
<small>VIẾTCHƯƠNGTRÌNHĐỌCFILE TÌM, CÁCSỐ NGUN TỐ TÍNH TỔNG CÁC SỐ NGUYÊN TỐ NÀY VÀ XUẤT RA FILE KẾT QUẢ CÓ CẤU , </small>
<small>TRÚC NHƯ SAU:...10</small>
<small>- DỊNGĐẦUTIÊN CHỨA SỐNGUNTỐ CĨ TRONG MẢNG ...10</small>
<small>- DÒNGTIẾPTHEO XUẤTRASUM TỔNG = CÁCSỐ NGUYÊN TỐ...10</small>
<small>- DỊNGTẠORACÁCSỐ NGUN TỐ TÌM ĐƯỢC ...10</small>
<small>- DỊNGSỐ NGUYÊN TỐTIẾPTHEO SẮP TĂNG...10</small>
<small>XUẤTRATỆPKẾTQUẢVỚI CẤU TRÚC SAU:...13</small>
<small>- DÒNGĐẦUTIÊN GHI SỐPHẦN TỬ...13</small>
<small>- DÒNGTIẾPTHEO CHỨA SỐNHỎNHẤT...13</small>
<small>- DÒNGTIẾPTHEO GHI SỐLỚN NHẤT...13</small>
<small>- DÒNGĐỂ XUẤTCÁCPHẦN TỬCỦAMẢNG...13</small>
<small>A: CODE HƯƠNG RÌNH C T...13</small>
<i><small>B: Kết Quả Demo:...15</small></i>
<b><small>C. KẾT LUẬN... 16</small></b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">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)
{
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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");
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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);
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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]);
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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;
}
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Vi t ch ng trình đ c file, tìm các s ngun 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>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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++;
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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:ế ả
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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ố ngun 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;}
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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;
}
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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]); }
</div>