Professional Documents
Culture Documents
프로그래밍2 - Lecture 1
프로그래밍2 - Lecture 1
2023년 1학기
창의융합대학 – 지능형반도체공학과
강의 개요
평가 : 출석 10%
과제 30%
중간고사 30%
기말고사 30%
2
Lecture 1
2023.02.
3
Lecture 1
Program이란 ?
- 일이 진행되는 과정 & 순서의 나열 (EX. 라면을 만든다 : 냄비 준비 물 넣기 가열 물이 끓는가 ? 라면 넣기 끝)
- Computer는 정확한 명령만 실행 가능
- 정확한 표현의 규칙을 정의 Programming 언어의 필요성
Programming 언어
- 기계에 명령/연산을 전달할 목적으로 설계된 기계와 사람간의 의사소통 수단
Programing 언어의 종류
- C, C++, C#, JAVA, Python
Programing (1) 학습 내용
- C언어 활용능력 (문법 , 자료형 , 구조체)
4
Lecture 1
자료구조
- Data를 효율적으로 다룰수 있게 도와주는 Data 보관 방법과 Data에 관한 연산
- 동일한 타입의 Data를 정돈하여 저장한 구성체
int : 정수 자료형의 자료구조
보관방법이 정의되어 있음 (32bit 메모리 공간, 첫 bit는 부호 저장), 연산 정의 (덧셈, 뺄셈, 곱셈 등)
- 자료 구조의 목적
Data를 정돈하는 목적 : Data에 접근 / 탐색 등의 연산을 효율적으로 수행
자료구조의 설계에는 Data와 관련된 연산이 함께 고려되야함
5
Lecture 1
자료구조의 종류
- 선형 자료구조
항목들을 순서적으로 나열하여 저장하는 창고
항목 접근 방법에 따라 다시 세분화
리스트 : 가장 자유로운 선형 자료구조
스택, 큐, 덱 : 항목의 접근이 맨 앞(전단)이 나 맨 뒤(후단)로 제한
- 비선형 자료구조
항목들이 보다 복잡한 연결 관계
트리: 회사의 조직도나 컴퓨터의 폴더와 같은 계층 구조
그래프: 가장 복잡한 연결 관계를 표현
다양한 문제를 해결하기 위한 기본 구조로 사용된다.
6
Lecture 1
7
Lecture 1
자료구조와 ADT
ADT : 개념을 제시
자료구조 : 개념을 구현
8
Lecture 1
Algorithm (알고리즘)
- 어떠한 문제를 풀기 위한 단계적 절차
어떻게 풀것인가?
알고리즘 설계 : 문제 풀이 절차를 설계
알고리즘 구현 : 프로그래밍 언어를 이용해서 문제풀이 절차를 코드로 작성
void lineup(int* pa, int* pb, int *pc) if (*pa < *pc){
{ temp = *pa;
A B C int temp = 0; *pa = *pc;
*pc = temp;
if (*pa < *pb){ }
①
temp = *pa; if (*pb < *pc){
② *pa = *pb; temp = *pb;
③ *pb = temp; *pb = *pc;
} *pc = temp;
}
return 0;
}
9
Lecture 1
Program (프로그램)
- 자료구조 + 알고리즘
정렬 / 탐색 : 알고리즘의 한 종류
문제를 해결할수 있는 방법은 다양함 (1가지가 아님). 보다 효율적인 동작을 위해서 자료구조와 알고리즘을 학습
- 자료구조의 학습
프로그래밍 언어는 자료구조를 라이브러리로 제공. 사용자는 라이브러리를 활용하여 개발
자료구조를 이해하면 개발목적에 맞는 (보다 효율적인) 자료구조 선택 가능
10
Lecture 1
C언어의 활용
- 프로그래밍1 에서 학습
- 포인터 : 메모리의 주소를 저장하는 변수, 연산이 가능
- 구조체 : Data 형식을 조합해서 만드는 사용자 정의 Data 형식
11