You are on page 1of 25

2023

AI프로그래밍

Ch.6 ) 알고리즘 구현 기초
- 알고리즘 개념 -

박지훈
부산대학교 항공우주공학과
vazihoon@pusan.ac.kr

부산대학교 항공우주공학과 -1- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
AI프로그래밍

 오늘의 학습 목표

 문자열과 숫자의 차이 이해

 외부 파일 읽기/쓰기 이해

 알고리즘의 이해 : 조건문

부산대학교 항공우주공학과 -2- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
AI프로그래밍

MATLAB 기타 기능
- 알고리즘 설계를 위한 기본 기능 -

부산대학교 항공우주공학과 -3- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
문자 변수 AI프로그래밍

 문자 변수란
 변수의 내용이 숫자가 아닌 문자(character)로 이루어진 것

 작은 따옴표 ( ' ' )로 정의함

 문자열도 배열처럼 지정 가능 : 문자열(string)

부산대학교 항공우주공학과 -4- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
문자열 AI프로그래밍

 문자열 변수란
 변수의 내용이 숫자가 아닌 문자로 이루어진 것

 숫자와 문자열의 차이를 이해할 것!!

??? : 아니 이거 뭐임 대체

부산대학교 항공우주공학과 -5- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
문자열 AI프로그래밍

 문자열 ↔ 숫자
 내장함수 : str2num, num2str

 숫자로 구성된 문자열!!을 진짜 숫자로 바꿔주는


str2num('문자열')

숫자 이외의 문자가 끼면 안됨

 숫자를 문자열로 바꿔주는


num2str(n)

부산대학교 항공우주공학과 -6- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
문자열 AI프로그래밍

 문자열 출력
 내장함수 : disp( )

 문자열을 직접 입력해도 됨

 문자열을 변수로 지정하고, 변수명을 입력해도 됨 (추천!!)

부산대학교 항공우주공학과 -7- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
문자열 AI프로그래밍

 문자열 출력 : 보충 설명
 문자열 변수와 숫자형 변수가 같이 표현되어야 할 때

 앞서 배운 disp() 함수는 입력 인수가 하나임

▲ 입력 변수가 3개라서 disp()가 오류 메시지 출력

 그래서 문자열 변수들을 배열 형식으로 표현해야 함

부산대학교 항공우주공학과 -8- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
엑셀 파일 읽고 쓰기 AI프로그래밍

 xlsread와 xlswrite
 내장함수 : xlsread('파일명')

 엑셀파일을 MATLAB의 배열로 읽어올 수 있음

부산대학교 항공우주공학과 -9- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
엑셀 파일 읽고 쓰기 AI프로그래밍

 xlsread와 xlswrite
 내장함수 : xlswrite('파일명', 배열변수)

 MATLAB의 배열을 엑셀파일로 만들 수 있음

 문자열 기능을 이용하여 파일명을 쉽게 지정할 수 있음

부산대학교 항공우주공학과 - 10 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
실습 : 일단 따라하기 AI프로그래밍

 성적표 데이터
 20230322_example_sheet.xlsx 파일이 주어졌다

 75명의 항공우주공학과 학생의 성적이 정리되어 있음

 총 50개의 과제와 중간/기말고사 각 1회의 성적이 포함됨

 "임의의 학생을 골라" 학번과 기말고사 성적을 출력하기

부산대학교 항공우주공학과 - 11 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
코드 작성 팁 AI프로그래밍

 소프트웨어의 범용성 확보
 가급적 입력되는 변수의 크기(size)에 관계없이 결과가 출력되는 것이 좋음

 앞의 코드의 경우 학생이 75명이 아닐 때는 적용할 수 없음

코드 내 요소들을 하나하나 찾아 수정해야 함…. 불편

randi(75)의 결과가 57인데 학생 수가 30일 경우에는 에러가 뜰 수 밖에 없다.

부산대학교 항공우주공학과 - 12 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
코드 작성 팁 AI프로그래밍

 소프트웨어의 범용성 확보
 가급적 입력되는 변수의 크기(size)에 관계없이 결과가 출력되는 것이 좋음

 그러므로 입력 데이터의 크기에 맞추어 유동적으로 코드를 짜야 한다

Ex라는 배열의 행 크기를 입력인수로 씀

부산대학교 항공우주공학과 - 13 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
코드 작성 팁 AI프로그래밍

 소프트웨어의 범용성 확보
 end : 배열 내 (행/열)의 끝 원소 인덱스

 height(A) : A 배열의 행 개수 반환 ≒ 높이
오타주의

 width(A) : A 배열의 열 개수 반환 ≒ 폭

 length(A) : A 배열의 행,열 개수 중 큰 것 반환 ≒ 가로 세로 중 긴 쪽 길이

 size(A) : A 배열의 height 와 width를 1*2 배열로 반환

 height와 width 사용시 코드가 길어지므로 가독성을 해칠 가능성 있음

 타이핑의 편의를 위함 등등

 size(A,1) 또는 size(A,2)라는 표현도 가능

 size(A,1) = height(A)

 size(A,2) = width(A)

부산대학교 항공우주공학과 - 14 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
과제? 실습? AI프로그래밍

 성적표 데이터
 20230322_example_sheet.xlsx 파일이 주어졌다

 75명의 항공우주공학과 학생의 성적이 정리되어 있음

 총 50개의 과제와 중간/기말고사 각 1회의 성적이 포함됨

 "중간고사 성적을 기준으로" 성적표 전체 내용을 내림차순 정렬을 실시

 그리고 중간고사 성적이 제일 좋은 학생의 학번과 점수를 출력

 disp( ) 기능을 사용

 학번, 점수 직접 입력 금지 → 데이터를 인덱싱해서 num2str 사용할 것

부산대학교 항공우주공학과 - 15 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
AI프로그래밍

알고리즘이란
- 뭘까요 -

부산대학교 항공우주공학과 - 16 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘의 이해 AI프로그래밍

 알고리즘(algorithm)
 알고리즘의 의미

 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법

 즉, 문제 풀이에 필요한 계산절차 또는 처리과정의 순서

 갑자기 이걸 설명하는 이유는?

 어떠한 프로그램을 코딩을 통해 구현하기 전, 프로그램의 작동 절차를 미리 정해둘 필요가 있음

 이 프로그램이 동작하기 위해 어떤 기능들이 필요한가? 이를 구현하기 위해 어떤 변수들이 필요한지, 어떤 명


령어를 사용할지 미리 구상이 되어있어야 함

 명칭의 유래 (TMI…)

 페르시아의 수학자 "알콰리즈미"의 이름에서 유래

부산대학교 항공우주공학과 - 17 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘의 이해 AI프로그래밍

시작
 알고리즘(algorithm)
 알고리즘의 구성 수업을 듣는다

 변수 선언 및 초기 설정
Y 마칠 시간이
 입/출력
다 되었는가?

 실행문(처리) N

 조건문(판단) 수업이 Y
재미있는가?
→ 조건에 따라
계속 반복하기도 함(루프) N

몰래 유튜브를 본다
N
N Y
신난 강사를 향해 강사와 눈이 양심에
헛기침을 해본다 마주쳤는가? 찔리는가?
Y

수업 마침 재수강 ㅅㄱ

종료 종료

부산대학교 항공우주공학과 - 18 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
AI프로그래밍

조건문과 반복문
- if, for, while -

부산대학교 항공우주공학과 - 19 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘 구현 AI프로그래밍

 조건문 : if
 명령어 if ~ end

 표현식(expression)이 참일 경우 명령문(statement)을 실행하는 기능

 해당 루프의 끝에 end를 반드시 선언하여야 함

N
expression

statement

부산대학교 항공우주공학과 - 20 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘 구현 AI프로그래밍

 조건문 : else
 명령어 if + else ~ end

 표현식(expression)이 거짓일 경우 또 다른 명령문(statement 2)을 실행하는 기능

 해당 루프의 끝에 end를 반드시 선언하여야 함

N
expression

statement 1 statement 2

부산대학교 항공우주공학과 - 21 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘 구현 AI프로그래밍

 조건문 : elseif 대충 플랜 B 같은 거라고 여깁시다..

 명령어 if + elseif + else ~ end

 표현식(expression)이 거짓일 경우 또 다른 조건문으로 진입

 조건문 내 조건문을 표현하는 방법

N
expression 1

N
Y expression 2

Y
statement 1
statement 2 statement 3

부산대학교 항공우주공학과 - 22 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
알고리즘 구현 AI프로그래밍

 조건문
 표현식(expression)에 사용되는 논리 연산자

부산대학교 항공우주공학과 - 23 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
실습 AI프로그래밍

 조건문을 활용한 프로그래밍


 임의의 학생에 대한 성적 채점 프로그램 설계

 if, elseif, else 등 써서 해보자

 저번 실습 때 썼던 파일 : 20230322_example_sheet.xlsx

학기 성적 계산법

• 모든 과제의 평균 : 30%
• 중간고사 점수 : 30%
• 기말고사 점수 40%

부산대학교 항공우주공학과 - 24 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
마무리 AI프로그래밍

부산대학교 항공우주공학과 - 25 - DEPARTMENT OF AEROSPACE ENGINEERING.

You might also like