B2024001225 윤지선

2학기 4주차 예습과제 본문

2024년 2학기/C++ 프로그래밍

2학기 4주차 예습과제

윤지선 2024. 9. 23. 00:51

제어문

● 위부터 아래로 순차적으로 실행되는 프로그램의 실행 순서를 바꾸기 위해서 사용하는 제어문은 C/C++ 언어 뿐 아니라 다른 언언어에서도 가장 중요한 문법

● 제어문의 문법은 간단하지만 잘 활용할 수 있느냐에 따라 프로그래밍을 할 수 있는지 없는지 판가름

●  for문과 if문의 사용 빈도가 가장 높음

조건문 반복문 분기문
if for goto
if~else while continue
switch~case do~while break

 

조건문 : if~else문

● 양자택일의 상황에서 사용

● if문 다음의 괄소 안의 조건식이 참이면 문장1을 실행하고 다음 문장으로 가며, 조건식이 거짓이면 문장2와 다음 문장을 실행

 

 

함수 기본 개념

매개변수, 인자(argument), 리턴값

자판기라는 함수가 있을 때 동전이 전달인자(argument),  자판기 안에서 동전 : 매개변수(parameter), 뽑은 커피 : 리턴값

 

● 함수란 특정한 작업을 하도록 만들어진 독립적인 단위 모듈

● 큰 프로그램 하나를 여러 개의 함수로 분할하여 구현하는 구조적 프로그래밍 방식의 기본

● 함수에 입력시키는 것을 매개변수(parameter) 또는 리턴값(return value)이라 함

 

C프로그램의 기본 틀

● 콘솔 기반 C프로그램은 main()함수로 시작

● main()함수는 콘솔기반 C 프로그램의 시작점

● 하나의 프로그램에 반드시 존재

● 리턴값이 없는 함수나 매개변수가 없는 함수는 그 위치에 비어있다는 뜻의 "void"를 씀

● 매개변수 리스트에 쓰는 void는 생략할 수 있지만 리턴형에 쓰이는 void는 생략 불가능

 

함수의 입력과 출력

● 입력 : 매개변수(parameter), 인자

● 출력 : 반환값(return value), 리턴값 / 함수가 돌려주는 결과값

● void : 리턴값이 없으면 리턴형 쓰는 자리에 void, 매개변수가 없으면 매개변수 쓰는 자리에 void(이 경우는 생략 가능)

 

함수를 사용할 경우 장점

● 복잡한 문제를 나누어서 해결하는 구조적 프로그래밍(structured programming)이 가능

● 프로그램의 각 부분을 독립적인 모듈로 나누어 작성하므로 작성, 수정, 유지, 보수, 확장이 용이

● 반복되는 작업을 하나의 루틴으로 만들어 재사용하므로 코딩 양이 감소

● 일반 사용자가 알 필요가 없는 특정한 부분을 숨길 수 있음.

 

표준 라이브러리 함수

●  C언어는 기본 문법과 함께 상당히 많은 함수들을 컴파일러에서 지원하는데 이러한 함수들의 집합을 표준라이브러리 함수라 함

● 마이크로소프트 같은 컴파일러 제작사는 자주 사용되는 공통적인 함수들을 미리 만들어서 컴파일러와 함께 배포

● 이러한 함수를 표준라이브러리 함수라 하며 prinf(), scanf() 등이 대표적

 

표준 라이브러리 함수와 표준 헤더 파일

●  printf(), scanf() 같은 기본적인 표준 함수들은 모든 컴파일러에서 제공

● 표준 라이브러리 함수는 이미 만들어져 있으므로 바로 사용하면 되지만 사용하기 전 반드시 선언해야함

● 함수 선언이란 리턴형, 함수 이름, 매개변수 리스트 정보를 갖는 함수의 사용법

● 표준 라이브러리 함수는 직접 선언할 수도 있지만 이 함수가 이미 선언되어 있는 표준 헤더 파일을 #include 전처리기를 이용하여 프로그램에 포함시키는 방법을 더 많이 사용

● 표준 헤더 파일은 표준 라이브러리 함수들을 미리 선언해놓은 파일

● printf(), scanf() 등 표준 입출력 함수들은 stdio.h파일에 선언이 들어있음.

C 표준라이브러리 함수

 

'2024년 2학기 > C++ 프로그래밍' 카테고리의 다른 글

2학기 5주차 과제  (0) 2024.10.01
2학기 4주차 과제  (0) 2024.09.23
2학기 2주차 과제  (3) 2024.09.09
2학기 2주차 예습과제  (0) 2024.09.09
2학기 1주차 과제  (1) 2024.09.02