2019/08

함수** 4 - 1 연산자(사칙, 관계, 논리 연산자)(Operator) 목차 연산자의 개념 연산자의 분류 사칙 연산자 관계 연산자 논리 연산자 연산자 우선 순위 문제를 해결하기 위한 절차를 알고리즘이라 하며 우리가 문제를 해결하기 위해서는 각각 함수단위로 큰 문제를 작은 단위로 분할하는 방법을 많이 쓴다. 문제 해결을 위한 각각의 함수가 존재한다. 입력자료를 보면 여러 데이터 타입들이 존재한다. 파일의 형태도 존재한다. 가령 파일로부터 다음과 같은 정보를 읽어서 아웃풋으로 다음과 같은 결과를 얻고싶다면 어떻게 해야할까? 각각의 값들을 더해서 평균값을 더해 그 값을 가지고 점수대를 매기는 것. 이런 문제를 해결할때에는 그것을 해결할 수 있는 함수를 분류해야한다. 세개를 더하는 함수, 평균을 구하기 위해 ..
NAVER DEVELOPER OPEN CLASS 2019 후기 조금 늦은 후기지만 어쨌든 다녀왔으니 정리해본다. 본사가 당연히 판교에 있을 줄 알았는데 분당에 있었다. 라인같은 네이버 자회사들은 판교에 있다고 하더라. 바깥에선 그저 초록색같았는데 안에서보니 투명하다. 경치도 좋고 신기함 천장이 엄청 높다.. 공간이 약간 아깝단 생각도 들었는데 높은 천장도 나름대로 운치가 있어보인다 ㅋㅋ 엄청나게 많은 사람들이 모였다. 여기 사람들 모두 네이버에 들어가고 싶어서 온거겠지? 열심히 사는 사람들이 많구나를 새삼 깨달았다. 좋은 얘기를 많이 듣고왔다. 정리한건 많은데 뭘 올려야할 지 모르겠네.. 생각보다 내 전공의 전망이 나쁘지 않음을 알 수 있었고, 전공자들보다 돌아서 가는 비전공자일수록 더더욱 기본기 공부에..
함수** 3 - 3 함수 호출 방법 목차 값에 의한 호출 주소에 의한 호출 프로그래밍 교육 방법 프로그래밍...특히 c언어로 문제를 해결하는데에 있어서 가장 중요한 것은 '포인터'라 할 수 있다. 포인터는 어려운 문법이라기보다 우리가 풀어야할 문제를 어떤 형태로 풀 수 있는지를 아는 게 중요하다. 이때 swap( ) 이라는 함수를 어떻게 만들어야 할까? 더 생각 하기 : 다른 함수를 통해서 두 개의 변수 값을 서로 바꾸려면? main 함수에 있는 변수 두 개의 값을 정렬을 하기 위해 서로 바꾸고 싶은데 자주 사용되는 기능이므로(main에 두면 지저분해지니까) 함수를 만들어서 호출하고 싶다면? 문제 해결 하기 main안에서 변수 값을 temp변수를 사용하여 서로 변경하면 바뀌지만, 다른 함수로 두 변수 값..
함수** 3 - 2 함수와 매개변수 목차 매개변수 없는 함수 만들기 매개변수 있는 함수 만들기 지역 변수 함수 호출 방법 매개변수 없는 함수 만들기 편의를 위해 main, hello함수를 옆에 배치함. 코딩상에서는 main이 먼저 온 후 hello가 뒤에 있는 형태이다. main함수를 만들었을때, 그 안에 hello라는 사용자 정의함수를 호출하고자 한다. 그런데 이 hello는 밑에 hello()를 실행하는 함수를 의미한다. 함수는 호출은 되지만 어떤 값을 넘기거나 가져오지 않기 때문에 다음과 같은 형태로 만들 수 있다. 사용자 정의함수를 만들때는 main이라고 하는 함수 위에 함수의 이름과 매개변수가 있는지 없는지, 있다면 어떤 형태로 몇개인지를 나타내주어야 한다. 그리고 리턴하는 값이 있다면 그것의 ..
함수** (중요) 3 - 1 사용자 정의 함수 목차 함수의 개념 함수의 종류 함수의 정의 사용자 정의 함수 만들기 용어 정리 함수의 개념 함수 : 독립적으로 수행하는 프로그램 단위 C 언어는 여러 개의 함수들로 이루어짐 프로그램에서 반복적으로 수행되는 기능을 함수로 만들어 호출 함수는 문제 해결의 방법 주어진 문제를 작은 문제, 즉 여러 함수로 나누어 생각할 수 있으므로 함수를 만드는 것은 문제 해결의 하나의 방법 함수 이용의 장점 함수로 구성된 프로그램은 함수 단위로 구성되어 있어, 읽기 쉽고, 이해하기 쉬움 이미 정의된 함수는 여러 번 호출이 가능하므로 소스의 중복을 최소화하여 프로그램의 양을 줄이는 효과 C프로그램 함수의 종류 1) 주(main)함수 : 프로그램의 시작과 종료를 나타내는 함수로, 프..
프로그램 구조 2 - 4 전처리와 입출력 함수 목차 전처리기(preprocessor)가 무엇인가 printf 함수(출력함수) scanf 함수(입력함수) 예제 프로그램 (입출력 관련 간단한 예제 프로그램) 전처리기(preprocess) 전처리(preprocess)는 컴파일러가 프로그래밍 언어를 기계어로 바꾸기 전에 처리해야할 명령을 먼저 수행하는 것 다양한 라이브러리를 작업중인 소스파일에서 사용할 수 있도록 헤더 파일을 포함(#include) # 을 전처리 지시자라 함. 그리고 컴파일러가 #을 볼때 지금 기계어로 바꾸지말고 이를 먼저 처리해야한다고 인식하는 것. stdio.h라는 파일은 devC++이라는 컴파일러를 설치했을때, 그 컴파일러가 저장되어있는 폴더에 include라는 폴더에 stdio.h라는 헤..
프로그램 구조 2 - 3 데이터 타입 (data types) 목차 변수와 데이터 타입 C의 기본 데이터 타입 정수형 문자형 부동소수형 sizeof연산 (이를 이용해서 각각의 데이터타입에 몇 byte가 부여되는지 알 수 있다) 데이터 타입(data type)이란? 데이터 처리를 위해서는 데이터를 저장해야 함 데이터를 종류에 따라 분류하여 적절한 크기의 공간을 저장하기 위해서 데이터 타입이 필요 변수에 저장되는 값의 종류를 데이터 타입(data types)또는 간단한 자료형 기본 자료형(basic type) : int, char, float, ... 유도 자료형(derived type) : 배열, 구조체, 공용체 (이는 기본 데이터타입을 기반으로 더 많은 사용자가 그 데이터타입을 만들 수 있도록 해놓은 것)..
프로그램 구조 2 - 2 변수와 상수 목차 주석(comment) 예약어(keyword) 식별자(identifier) 상수(constant) 변수(cariable) 연산자(operator) 표현식(expression) 문장(statement) 대입문(assignment statement) 주석(comment) 프로그램 소스코드만으로 사람이 이해하는 것에 어려움이 있다 프로그램의 이해를 돕기 위해 주석 사용 컴파일러가 주석문은 기계어로 바꾸지 않는다. C 주석 : /* */ C++ 주석 : // 줄 단위 (C도 사용 가능) /* 계산 프로그램*/ #include /* #전처리 지시자, printf() 사용 위해 포함 */ int add(int x, int y); // 함수 원형 int main(void) /..
프로그램구조 2 - 1 C 언어 구조 목차 C언어 역사 일반적인 프로그램 구조 C 프로그램 구조 C 프로그램 실행 순서 C언어 역사 1969년 유닉스(Unix)를 개발하였던 AT&T 벨 연구소의 켄 톰슨(Ken Tompson)은 B언어를 개발 1972년경에 켄 톰슨과 같이 근무하던 데니스 리치(Dennis Ritchie)는 유닉스의 호환성을 높이기 위해 재개발하면서 C언어를 개발 C언어라는 이름은 B언어를 계승한다는 의미 1983년 미국표준협회(ANSI : American National Standard Institue)에서 ANSI C라는 표준안을 발표(문법의 통일성을 위해서. 지금 우리가 쓰는 컴파일러는 이때 만들어진 ANSI C의 표준안을 가지고 만들어진 것) C++, Java, Python등 많은..
컴퓨터개요 1 - 4 프로그래밍 개발 환경 목차 프로그래밍 개요(프로그래밍이 무엇인가) 프로그램 개발 도구 프로그램 개발 과정 컴퓨터 프로그램 프로그램이란? 컴퓨터에게 어떤 일의 수행을 지시하는 프로그래밍 언어로 된 명령어들의 집합(실행 파일, hello.exe) 여기서 실행파일은 파일 이름 뒤에 exe 확장자가 붙어서 이를 클릭하면 바로 실행가능한 것을 의미함 프로그램 개발에 필요한 도구 에디터(editor) : 소스코드, 명령어들을 직접 적어내려가는 곳 컴파일러(compiler) 링커(linker) 디버거(debugger) 에디터 소스코드를 작성할 수 있는 문서 편집기 소스 코드는 프로그래밍 언어로 작성된 명령어들을 의미함 소스 파일은 프로그래밍 언어의 명령어들로 작성된 파일. 따라서 .c로 저장된 ..
컴퓨터개요 1 - 3 프로그래밍 언어 종류 목차 프로그래밍 언어 C, C++, Java, Python 컴파일러 프로그래밍 언어의 필요성 사람과 컴퓨터가 의사소통을 하기 위해 만든 언어 컴퓨터는 0과 1밖에 모르는 기계어만 사용하니까. 그래서 문자를 사용하는 사람과 의사소통을 하기 위해서는 중간에 통역을 할 수 있는 그런 공통언어(프로그래밍언어)가 필요한 것. 사람이 컴퓨터에게 지시할 명령어를 기술하기 위해 만들어진 언어 프로그래밍 언어의 종류 저급언어(low-level language) : 기계어, 어셈블리어 컴퓨터가 사용하는 기계어..바이너리로 되어있는 것 기계어라고 한다. 이 기계어와 매칭하여 기계어 위에서 기호, 신호처럼 기호화해서 만들어진 언어를 어셈블리어라고 한다. 이는 사람이 처리하기 어려운 ..
컴퓨터개요 1 - 2 컴퓨터와 자료 표현 목차 컴퓨터와 프로그램 하드웨어의 정의와 소프트웨어 컴퓨터와 자료 표현 (컴퓨터가 어떠한 자료를 표현해서 사람과 상호작용을 하는지에 대하여 자료 표현방법) 문자코드 컴퓨터와 프로그램 컴퓨터 전자적으로 계산을 수행하는 장치 프로그램 컴퓨터가 수행할 작업을 지시하는 명령어들의 집합 하드웨어 컴퓨터를 구성하는 물리적인 장치(device) cpu, ram, 입력장치, 출력장치와 같은 컴퓨터를 구성하는 장치들을 의미함 소프트웨어 컴퓨터가 수행할 작업을 지시하는 명령어들의 집합(문서작업을 포함.. 프로그램 소스코드만 말하는 것이 아니라 그것에 의해 만들어진 것들도 포함) 시스템 소프트웨어(운영체제 - 컴퓨터 하드웨어와 소프트웨어 사이에서 전반적으로 운영해주는 소프트웨어, 컴..
sovelop
'2019/08 글 목록