2주차
2025. 3. 16. 19:09ㆍ프로그래밍1및실습
프로그래밍 언어
- Algorithms: Developed by people
프로그래밍 언어에는 3가지의 언어가 존재한다.
High-level language : c++, c, C#, Java, python...
Assembly language
Machine language
- Computers: Execute algorithms
고급 언어 & 저급 언어
고급 언어(High-level language)
-사람이 이해하기 쉬운 프로그래밍 언어
-기계가 직접 실행하기 전에 컴파일러나 인터프리터를 활용하여서 기계어로 변환
ex) C++, Python, Java
저급 언어(Low-level language)
-하드웨어를 실행할 수 있는 하드웨어와 밀접하게 연결된 언어
-특정 CPU나 시스템에서 작동할 가능성이 있음
ex) Machine language, Assembly language
C Programming Language
- 1972년 Dennis Ritchie 개발(Ken Thopson과 Unix os를 개발하기 위해 만들어 짐)
장점
효율성
-조밀하고 빠름
-일부는 assmbly language 수준으로 fine-tune가능함
이식성
-특정 시스템에서 설계된 코드가 다른 시스템에서도 쉽게 실행 가능
Powerful & Flexibility
-대부분 Unix OS code가 C로 작성됨
-다양한 프로그래밍 언어의 컴파일러나 인터프리터가 C언어로 작성됨
프로그래머 중심 설계
-하드웨어에 접근 가능(OS service 호출)
-Memory를 bit 단위로 접근/조작 가능함
-다양한 종류의 연산자 제공
단점
-문법이 복잡함
-배열의 bound checking(배열의 인덱스 유효성) 검사의 부재
-다양한 용법으로 사용되는 symbol 존재
C Programming language 작성
- C source file
Header file: 일반적으로 확장자. h 사용
Source file: 일반적으로 확장자 .c 사용
Text editor: Vim, VS code, Visual code,....
- Code 작성 시 사용 가능한 문자
영어 대소문자, 숫자, 특수 문자, 공백 문자 등이 사용가능함
특수한 문자들의 경우 escape character와 조합
ex)
-\' → '
-\" → "
-\0 → null 문자
- 식별자
변수, 함수, 사용자 정의 타입 등의 이름
식별자 규칙
-영문 소문자, 대문자, 숫자, _로 구성
-첫 번째 글자는 숫자가 아니어야 함
-대소문자 구분
-식별자의 길이는 제한 없음
지정된 keyword는 식별자로 사용 불가
ex)
auto, break, case, char, continue, defualt, do....
- Compile
Source code를 object code로 변환ex) 컴파일 됨
ss1.cpp 파일을 ss1.obj로 변환해 줌
Object file
-Computer가 이해할 수 있도록 만든 파일
- Linking
Object code들을 실행 파일로 변환
ex)
ss1.obj파일을 ss1.exe 파일로 변경
Linker에서 작업 수행
- Debugging
Code 내의 bug 수정디버깅
Debugger 사용해서 디버깅함

Program output
- Source 파일 예시
#include<stdio.h>
int main(void){
printf("hello world!\n");
return 0;
}
- 실행 결과
hello world
#include <stdio.h>
- 전처리기 (Preprocessor)
C 컴파일러에 내장
#으로 시작하는 지시어: 전처리기에서 처리
#include
- 전처리기가 header file stdio.h의 복사본을 포함시킴
stdio.h
C system에서 제공
standard input/output functions의 선언에서 활용
int main(void)
main() 함수를 정의하는 영역의 첫 번째 줄
int, void
-keywords, or reversed words
-special meanings to the compiler
printf()
- 화면에 출력해 주는 함수
- 세미콜론으로 끝남
return 0;
- 값을 반환하는 명령어
- 운영체제에 0을 리턴해줌 (에러 없이 종료됨)
변수, 표현식, 할당
주석
/*...*/ 으로 주석 처리
Compiler에서 변환하지 않고 무시함// 을 활용해서도 주석 처리 가능 주석 처리
변수 선언
int h;
-변수 h 를 integer자료형으로 선언
-선언과 구문은 세미콜론으로 끝남
대입 연산int h=100; int h1=(h*100);
- = 을 활용하여서 대입 연산을 적용함
- 구문에서 등호 오른쪽에 있는 문장의 연산 결과값이 변수에 저장해줌.
서식 문자열
% f: format, conversion specification
-남은 인자들과 매칭됨
input
printf("%f, %f", 42.3, 42.5);
output42.3, 42.5
소수점
-부동 소수점 상수임을 나타낸다.
세 가지 유형
-float, double, long double
-이러한 자료형에는 소수점에 제한이 있기 때문에 더 섬세한 작업을 위해서는 python과 같은 언어를 사용할 필요가 있음.
표현식 연산
7.0/2 => 3.5
7/2 => 3
위와 같은 방식으로 표현되기 때문에 소수점의 유무는 중요하다.


