콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2023. 10. 20. 07:18
반응형

C 언어로 원의 넓이를 계산하는 간단한 프로그램을 만들어 드리겠습니다. 원의 넓이를 계산하려면 원주율 (π)과 반지름 (r)을 사용하여 다음 수식을 적용합니다.

원의 넓이 (A) = π * r^2

아래는 이를 계산하는 C 프로그램의 예제 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
 
int main() {
    double radius, area;
    const double pi = 3.14159265359// π 값을 정밀한 값으로 설정
 
    // 반지름 입력 받기
    printf("반지름을 입력하세요: ");
    scanf("%lf"&radius);
 
    // 원의 넓이 계산
    area = pi * pow(radius, 2);
 
    // 결과 출력
    printf("반지름 %.2lf인 원의 넓이는 %.2lf입니다.\n", radius, area);
 
    return 0;
}
cs

이 코드는 사용자로부터 반지름을 입력 받은 다음 원의 넓이를 계산하고 결과를 출력합니다. "math.h" 헤더를 사용하여 pow 함수를 사용하여 제곱을 계산하고, 원주율 π는 3.14159265359로 설정하였습니다. 이러한 값을 변경하거나 더 정확한 값을 사용할 수 있습니다. 프로그램을 실행하면 반지름을 입력하고 원의 넓이가 계산되어 출력됩니다.

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2023. 10. 20. 07:11
반응형

C 언어로 네트워크 패킷 양을 체크하는 프로그램을 작성해 드리겠습니다. 이 예제는 WinPcap 라이브러리를 사용하여 네트워크 패킷을 감지하고 카운트하는 방법을 보여줍니다. WinPcap은 Windows 운영 체제에서 네트워크 패킷을 감지하는 데 사용되는 라이브러리입니다. 다음은 WinPcap을 사용한 C 언어 예제 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <pcap.h>
#include <stdio.h>
 
void packet_handler(u_char *user_data, const struct pcap_pkthdr *pkthdr, const u_char *packet) {
    static int packet_count = 0;
    packet_count++;
    printf("Received packet #%d\n", packet_count);
}
 
int main() {
    char errbuf[PCAP_ERRBUF_SIZE];
    pcap_t *handle;
    const char *dev;
 
    // Get a network device to capture on (you can replace "eth0" with your specific device)
    dev = pcap_lookupdev(errbuf);
    if (dev == NULL) {
        fprintf(stderr, "Device not found: %s\n", errbuf);
        return 1;
    }
 
    // Open the device
    handle = pcap_open_live(dev, BUFSIZ, 11000, errbuf);
    if (handle == NULL) {
        fprintf(stderr, "Could not open device %s: %s\n", dev, errbuf);
        return 1;
    }
 
    printf("Listening on device: %s\n", dev);
 
    // Start capturing packets
    pcap_loop(handle, 0, packet_handler, NULL);
 
    // Close the capture handle
    pcap_close(handle);
 
    return 0;
}
 
cs

 

이 코드는 지정된 네트워크 디바이스에서 패킷을 캡처하고 감지된 패킷 수를 세는 간단한 프로그램입니다. 주의할 점은 WinPcap 라이브러리를 설치해야 한다는 것입니다. 또한, 적절한 네트워크 디바이스를 사용하려면 pcap_lookupdev 함수의 매개변수를 조정해야 할 수 있습니다. 더 복잡한 네트워크 패킷 분석 및 처리를 위해서는 다른 라이브러리 및 기능을 사용해야 할 수 있으며, 이 예제는 간단한 시작점으로 활용될 수 있습니다.

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2023. 10. 19. 01:25
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
 
// 미분 함수
double differentiate(double (*f)(double), double x, double h) {
    return (f(x + h) - f(x)) / h;
}
 
// 적분 함수
double integrate(double (*f)(double), double a, double b, int n) {
    double integral = 0.0;
    double dx = (b - a) / n;
    
    for (int i = 0; i < n; ++i) {
        double x = a + i * dx;
        integral += f(x) * dx;
    }
    
    return integral;
}
 
// 예시 함수: f(x) = x^2
double exampleFunction(double x) {
    return x * x;
}
 
int main() {
    double x = 2.0;
    double h = 0.0001;
    int n = 100000;
    double a = 0.0;
    double b = 3.0;
 
    printf("함수 f(x) = x^2 에서 x = %.2f 에서의 미분값: %.6f\n", x, differentiate(exampleFunction, x, h));
    printf("함수 f(x) = x^2 에서 [%.2f, %.2f] 구간에서의 적분값: %.6f\n", a, b, integrate(exampleFunction, a, b, n));
 
    return 0;
}
 
cs
반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2023. 4. 25. 06:51
반응형

C언어 '*' 20줄로 삼각형 모양 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main() {
    int i, j, n = 20// n은 삼각형의 높이
 
    // 삼각형의 높이만큼 반복
    for (i = 1; i <= n; i++) {
        // 공백 출력
        for (j = 1; j <= n - i; j++) {
            printf(" ");
        }
 
        // 별(*) 출력
        for (j = 1; j <= 2 * i - 1; j++) {
            printf("*");
        }
 
        printf("\n");
    }
 
    return 0;
}
 
cs

이 코드는 높이가 20인 삼각형 모양을 출력합니다. 각 줄마다 필요한 공백을 먼저 출력한 후, 별(*)을 출력하여 삼각형 모양을 만듭니다. 위 코드를 실행하면, 20줄로 이루어진 삼각형 모양이 출력될 것입니다. ※ 체크 / 나중에 실행 후 작동 잘 되면 --> 이쪽 라인 삭제

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2023. 4. 21. 01:05
반응형

C언어 / 라운드 로빈(Round Robin Method) 알고리즘

 

아래는 C 언어로 구현된 라운드 로빈(Round Robin) 스케줄링 알고리즘의 간단한 예제 코드입니다. 이 코드는 사용자로부터 프로세스의 도착 시간, 실행 시간, 및 타임 슬라이스(Time Slice) 값을 입력받아 라운드 로빈 스케줄링을 시뮬레이션합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
 
#define MAX_PROCESSES 10
 
// 프로세스 구조체 정의
typedef struct Process {
    int arrival_time;   // 도착 시간
    int burst_time;     // 실행 시간
    int remaining_time; // 남은 실행 시간
} Process;
 
int main() {
    int num_processes;                  // 프로세스 개수
    int time_slice;                     // 타임 슬라이스
    Process processes[MAX_PROCESSES];  // 프로세스 배열
 
    // 사용자로부터 프로세스 개수 입력 받음
    printf("Enter the number of processes (up to %d): ", MAX_PROCESSES);
    scanf("%d"&num_processes);
 
    // 각 프로세스의 도착 시간과 실행 시간 입력 받음
    for (int i = 0; i < num_processes; i++) {
        printf("Enter arrival time for process %d: ", i + 1);
        scanf("%d"&processes[i].arrival_time);
        printf("Enter burst time for process %d: ", i + 1);
        scanf("%d"&processes[i].burst_time);
        processes[i].remaining_time = processes[i].burst_time;
    }
 
    // 타임 슬라이스 입력 받음
    printf("Enter time slice: ");
    scanf("%d"&time_slice);
 
    int current_time = 0;  // 현재 시간
    int completed_processes = 0;  // 완료된 프로세스 개수
 
    printf("\nRound Robin Scheduling:\n");
 
    // 라운드 로빈 스케줄링 알고리즘 수행
    while (completed_processes < num_processes) {
        for (int i = 0; i < num_processes; i++) {
            if (processes[i].remaining_time > 0) {
                if (processes[i].remaining_time > time_slice) {
                    printf("Time %d: Process %d is running\n", current_time, i + 1);
                    current_time += time_slice;
                    processes[i].remaining_time -= time_slice;
                } else {
                    printf("Time %d: Process %d is completed\n", current_time, i + 1);
                    current_time += processes[i].remaining_time;
                    processes[i].remaining_time = 0;
                    completed_processes++;
                }
            }
        }
    }
 
    return 0;
}
cs

이 코드는 사용자로부터 프로세스의 도착 시간, 실행 시간, 및 타임 슬라이스 값을 입력 받고, 라운드 로빈 스케줄링 알고리즘을 수행하여 각 프로세스의 실행 순서와 완료 시간을 출력합니다. 프로세스의 도착

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2023. 4. 6. 23:47
반응형

C언어 윈도우 폴더 암호걸기 프로그램 소스

 

C언어로 윈도우 폴더 암호화 프로그램을 만들기 위해서는 Windows API 함수를 사용해야 합니다. 아래는 폴더를 암호화하고, 비밀번호를 입력받아 암호화를 해제하는 예제 코드입니다.

 

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

int main()
{
    char folder_path[MAX_PATH], password[MAX_PATH];
    DWORD flags;
    printf("암호화할 폴더 경로를 입력하세요: ");
    scanf("%s", folder_path);
    printf("암호를 설정하세요: ");
    scanf("%s", password);
    flags = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_HIDDEN;
    if (SetFileAttributes(folder_path, flags) == 0) {
        printf("폴더 암호화에 실패하였습니다. 오류 코드: %d\n", GetLastError());
        exit(1);
    }
    FILE* fp;
    char password_file_path[MAX_PATH];
    sprintf(password_file_path, "%s\\password.txt", folder_path);
    fp = fopen(password_file_path, "w");
    if (fp == NULL) {
        printf("패스워드 파일을 생성할 수 없습니다. 오류 코드: %d\n", GetLastError());
        exit(1);
    }
    fprintf(fp, "%s", password);
    fclose(fp);
    printf("폴더 암호화가 완료되었습니다.\n");
    printf("암호를 해제하려면 %s\\password.txt 파일을 제거하세요.\n", folder_path);
    printf("암호를 입력하려면 %s 폴더를 열어주세요.\n", folder_path);
    return 0;
}

반응형

콘텐츠 내 자동삽입광고