제목: [Intel] 엣지 AI SW 아카데미
부제목: 6일차
일정: 2023.11.02(목)
수업 내용:
- C언어 프로그래밍
- 함수
- 변수
- 포인터
목표:
함수(function) : 매번 반복되는 부분에 대해 함수화
라이브러리 함수(library function) : C 언어에서 미리 정의해서 제공하는 함수 : 함수에 필요한 전처리기 지시자와 헤더 파일을 정확하게 명시해야 함 printf와 scanf → #include
#include <stdio.h>
int plus(int v1, int v2) { // plus 는 int v1, int v2 라는 매개변수를 받고
int result;
result = v1 + v2;
return result; // 입력 받은 v1, v2 값을 더한 result 를 return으로 반환
} // 위 코드 전체가 plus 함수 v1, v2 값에 수를 집어 넣으면 더한 값을 반환하는 함수.
int main() {
int hap;
hap = plus(100, 200);
printf("100과 200의 plus( ) 함수 결과는 : %d\n", hap);
}
#include <stdio.h>
int find_larger(int first, int second) { // 정수 두 개를 전달받아 큰 값을 반환
int larger;
if (first > second) larger = first; // 첫번째 수가 두번째 수보다 크면 첫번째 수가 larger
else larger = second; // 두번째 수가 크다면 두번째 수가 larger
return larger; // 해당값을 larger에 저장된 값을 find_larger 값으로 리턴
}
int main() {
int n1, n2, max;
printf("첫째 정수? "); scanf_s("%d", &n1);
printf("둘째 정수? "); scanf_s("%d", &n2);
max = find_larger(n1, n2);
printf("%d, %d 중 큰 값은 %d \n", n1, n2, max);
return 0;
}
로또번호추첨 예제문
#include <stdio.h>
#include <stdlib.h> // rand, srand 함수를 위한 헤더 파일
#include <time.h> // time 함수를 위한 헤더 파일
int getNumber() {
return rand() % 45 + 1;// 0 ~ 44 +1 1 ~ 45
}
int main() {
int lotto[6] = {};
int i, k, num;
char dup = 'N';// 중복성 확인을 위함
printf("** 로또 추첨을 시작합니다. ** \n\n");
srand((unsigned)time(NULL));
for (i = 0; i < 6;) {// 6개의 숫자 뽑힐때까지
num = getNumber();
for (k = 0; k < 6; k++) {
if (lotto[k] == num) dup = 'Y';// 중복성 확인
}
if (dup == 'N') lotto[i++] = num;// 중복이 안된 경우만 증가
else dup = 'N';
}
printf("추첨된 로또 번호 = = > ");
for (i = 0; i < 6; i++) {
printf("%d ", lotto[i]);
}
printf("\n\n");
}
변수
포인터
개요
: 일반 변수
프로그램에서 사용하는 데이터를 저장
: 포인터 변수
데이터가 저장된 주기억장치의 주소만 저장 (간단히 포인터(pointer)라고도 함)
: 포인터의 장점
직접 참조할 수 없는 변수를 포인터를 이용하여 간접적으로 참조 가능 기억 공간의 효율적 사용, 프로그램 성능 개선
#include <stdio.h>
int main() {
int var = 100; // int형 변수 var을 선언하면서 값을 100으로 초기화
int *ptr; // int형 자료, 기억 장소의 주소를 저장할 포인터 변수 ptr 선언
ptr = &var; // ptr이 변수 var(주소)을 가리키게 함
printf("변수 var의 값: %d \n", var);
printf("var의 간접 참조 (*ptr) 결과값: %d \n\n", *ptr); // 변수 var 주소에 저장된 값을 출력하기
printf("변수 var의 주소:%u(%p) \n", &var, &var); // 변수 var의 주소 출력
printf("변수 ptr에 저장된 주소:%u(%p) \n", ptr, ptr); // 포인터 변수 ptr에 저장된 주소 출력하기
return 0;
}
'[Intel] 엣지 AI SW 아카데미 > 절차지향 프로그래밍 수업 70hour' 카테고리의 다른 글
[Intel] 엣지 AI SW 아카데미 5일차 (부산상공회의소 인력개발원) (0) | 2023.11.09 |
---|---|
[Intel] 엣지 AI SW 아카데미 4일차 (부산상공회의소 인력개발원) (0) | 2023.11.09 |
[Intel] 엣지 AI SW 아카데미 3일차 (부산상공회의소 인력개발원) (0) | 2023.11.09 |
[Intel] 엣지 AI SW 아카데미 2일차 (부산상공회의소 인력개발원) (2) | 2023.11.09 |
[Intel] 엣지 AI SW 아카데미 1일차 (부산상공회의소 인력개발원) (0) | 2023.11.09 |