강의 (12)
우석대학교 에너지전기공학과
이우금 교수
(퀴즈3 검토) 1000 초는 몇 분 몇 초 인가를 계산하는 프로그램을 작성하라. 소스코드는 아래한글에『복사-붙여넣기』및 계산결과는 캡쳐 파일이름: “퀴즈3-이우금” 변수 선언 및 변수의 초기화:
𝑠𝑒𝑐 = 60
,
𝑚𝑖𝑛𝑢𝑡𝑒, 𝑠𝑒𝑐𝑜𝑛𝑑, 𝑖𝑛𝑝𝑢𝑡 = 1000
𝑚𝑖𝑛𝑢𝑡𝑒 =
//
1000초가 16분 임을 계산:1000/60
𝑠𝑒𝑐𝑜𝑛𝑑 =
//
1000초를 60초로 나눈 나머지 퀴즈3 검토#include <stdio.h>
int main(void)
{
int sec=60, input, minute, second;
printf("**********************************\n");
printf("코드명: 초를 분과 초로 계산하는 코드\n");
printf("작성자: 이우금\n");
printf("작성일시: 2019년11월11일\n");
printf("**********************************\n");
printf("초를 입력하시오:");
scanf_s("%d", &input);
minute = input / sec;
second = input % sec;
printf("%d초는 %d분 %d초 입니다.\n", input, minute, second);
return 0;
}
****************************************
코드명: 초를 분과 초로 계산하는 코드
작성자: 이우금
작성일시: 2019년 11월4일
****************************************
초를 입력하시오: 1000
1000초는 16분 40초 입니다.
scanf_s
반드시 scanf_s 사용
4-6-3. 문자형
문자: 한글이나 영어에서의 하나의 글자 또는 숫자, 기호 등을 의미함.
컴퓨터는 모든 것을 숫자로 표시 문자도 역시 숫자로 표시함: 영어『
𝐴
』는 숫자『65
』 아스키(ASCII: American Standard Code for Information Interchange) 인쇄가 불가한 33개의 제어문자 코드 인쇄 가능한 95개의 문자코드 (예시) 문자‘
𝐴
’의 아스키 코드는 65 이고,‘𝑎
’의 코드는 97. (교재 155쪽 참조) 문자형 및 형식지정자: 문자의 자료형 『𝑐ℎ𝑎𝑟』
& 형식지정자 『%𝑐
』 변수에 문자 지정 변수에 아스키값을 직접 입력:𝑐ℎ𝑎𝑟 𝑐𝑜𝑑𝑒 = 65;
// 문자 A의 아스키코드 값 = 65 문자상수 이용:𝑐𝑜𝑑𝑒 = ′𝐴′;
// 문자 A에 작은 따옴표로 표시 제어문자 (아스키코드: 0~32) 지정 변수에 아스키값을 직접 입력:𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = 7;
// 제어문자 알람의 아스키코드 값 = 7 특수문자열 이용: 역슬래시와 의미를 나타내는 하나의 글자로 기술 『\𝑎
』 변수의 자료형이 char형으로 선언된 경우: 형식지정자의 선택에 따라 0 ~ 127 까지의 숫자를 이용하여 문자를 표현Ch5. 조건문 5-1. 제어문 제어문: 문장들이 실행되는 순서를 제어하는 문장 조건문 (예시) 연봉이 2500 이상이면 취업하고, 아니면 고시준비 반복문 (예시) 토익점수가 700 넘을 때까지는 계속해서 공부 제어의 3가지 구조: 프로그램 작성시 사용할 수 있는 기본적인 제어 구조 순차구조(sequence): 명령들이 순차적으로 실행되는 구조 선택구조(selection): 둘 중 하나의 명령을 선택하여 실행되는 구조 반복구조(iteration): 동일한 명령이 반복되면서 실행되는 구조 5-1. 제어문
5-2. if 문 if 문의 개념 『비가 오면 우산을 가지고 간다』 할 때, 이러한 상황을 흐름도로 표시하면 다음과 같다. 이러한 경우에 사용할 수 있는 문장이 if 문 if 문은 영어 단어 if 가 의미하는 것과 같이 “만약 ~ 하면, ~ 한다.” 로 해석하면 됨. if 문의 형식
𝑖𝑓
조건식
𝑝𝑟𝑖𝑛𝑡𝑓("문장1");
if
( number > 0 )
printf(“
number는 양수입니다\
n
”);
조건식 조건식이 참인 경우에만 실행 비가 오는가? 우산을 가지고 간다. 참 거짓(예시) 온도가 0도 미만이면 영하라는 메시지를 화면에 출력하는 코드 작성. 변수지정 변수(실수):
𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒
𝑡𝑒𝑚𝑝𝑒𝑟𝑡𝑢𝑟𝑒 < 0
이면 참이 되어 실행되고,𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒 > 0
이면 실행되지 않는 조건문 작성. ※𝑛𝑜𝑡𝑒:
if문에는『;
』이 붙지 않음! if 문은 통상적으로 들여쓰기를 함 읽기가 수월 함. 5-2. if 문#include <stdio.h>
int main(void)
{
float temperature;
printf("온도를 입력하시오:");
scanf_s("%f", &temperature);
if (temperature < 0)
printf("현재 영하 입니다.\n");
return 0;
}
조건식 조건식이 참인 경우에만 실행 온도를 입력하시오: -1.5 현재 영하입니다. 온도를 입력하시오: 1.5𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒 < 0
현재 영하 입니다. 참 거짓 들여쓰기(예제) 입력한 정수가 양수인지를 말해주는 프로그램 작성. 변수지정 변수(정수):
𝑛𝑢𝑚𝑏𝑒𝑟
𝑛𝑢𝑚𝑏𝑒𝑟 > 0
이면 참이 되어 실행되고,𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒 > 0
이면 실행되지 않는 조건문 작성. 입력정수 scanf_s 이용#include <stdio.h>
int main(void)
{
변수지정
printf( );
scanf_s( );
if ( )
printf( );
return 0;
}
정수를 입력하시오: 3 입력된 수는 3이며, 양수 정수를 입력하시오: -1𝑛𝑢𝑚𝑏𝑒𝑟 > 0
printf(“양수”) 실행 참 거짓 If 문 들여쓰기(예제 검토) 입력한 정수가 양수인지를 말해주는 프로그램 작성. 변수지정 변수(정수):
𝑛𝑢𝑚𝑏𝑒𝑟
𝑛𝑢𝑚𝑏𝑒𝑟 > 0
이면 참이 되어 실행되고,𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒 > 0
이면 실행되지 않는 조건문 작성. 입력정수 scanf_s 이용 5-2. if 문#include <stdio.h>
int main(void)
{
int number;
printf("정수를 입력하시오:");
scanf_s("%d", &number);
if (number > 0)
printf("입력된 수는 %d이며, 양수.\n", number);
return 0;
}
조건식이 참인 경우에만 실행 정수를 입력하시오: 3 입력된 수는 3이며, 양수 정수를 입력하시오: -1 조건식𝑛𝑢𝑚𝑏𝑒𝑟 > 0
printf(“양수”) 실행 참 거짓 복합문 (블록) 만약 조건이 참인 경우에 여러 개의 문장을 실행 하려면? 중괄호를 이용하여 문장을 묶어서 한꺼번에 실행. (일반적으로 블록 전체를 들여쓰기 함) 예시) 성적이 90점 이상이면, 합격과 동시에 장학금을 받을 수 있다고 출력하려면…
if
( score >= 90 )
{
printf(“합격입니다
\
n
”);
printf(“장학금도 받을 수 있습니다
\
n
”);
조건식 블록(block) – 중괄호를 이용 조건식이 참인 경우 2개의 문장이 묶여서 실행 성적≥
90점 합격 장학금 참 거짓 들여쓰기 복합문 (계속) 주의 사항 중괄호가 없으면
5-2. if 문
if
( score >= 90 )
{
printf(“합격입니다
\
n
”);
printf(“장학금도 받을 수 있음
\
n
”);
}
조건식 블록(block) – 중괄호를 이용 참인 경우 2개의 문장이 묶여서 실행if
( score >= 90 )
printf(“합격입니다
\
n
”);
printf(“장학금도 받을 수 있음
\
n
”);
조건식 참인 경우 바로 다음 문장만 실행 성적≥
90점 합격 장학금 참 거짓 합격 참 거짓 장학금 들여쓰기 들여쓰기 성적≥
90점5-3. if-else 문 if-else 문의 개념 if 문: 조건이 참 일 때 만 실행 if-else 문: 조건이 거짓인 경우에 도 실행 (예시) 온도가 25도 이상이면, 가벼운 옷을 착용하고, 그렇지 않으면 두꺼운 옷을 착용. if-else 문은 조건식의 계산이 참이면 if 이후의 문장을 실행하고, 거짓이면 else 이후 문장을 실행.
(예시) 입력된 정수가 양수인지 음수인지를 화면에 출력하는 코드 작성. 변수지정 변수(정수):
𝑛𝑢𝑚𝑏𝑒𝑟
𝑛𝑢𝑚𝑏𝑒𝑟 > 0
이면 if 이후가 실행되고,𝑛𝑢𝑚𝑏𝑒𝑟 < 0
이면 else 이후 가 실행되는 조건문 작성. ※𝑛𝑜𝑡𝑒:
if-else문에는『;
』이 붙지 않음! If-else 문은 통상적으로 들여쓰기를 함#include <stdio.h>
int main(void)
{
int number;
printf("정수를 입력하시오:");
scanf_s("%d", &number);
if (number > 0)
printf("입력된 수는 %d이며, 양수\n", number);
else
printf("입력된 수는 %d이며, 음수\n", number);
return 0;
}
정수를 입력하시오: 3 입력된 수는 3이며, 양수 정수를 입력하시오: -1 입력된 수는 -1이며, 음수 5-3. if-else 문 print(양수) 참 거짓 print(음수)𝑛𝑢𝑚𝑏𝑒𝑟 > 0
If-else 문 들여쓰기(예제1) if-else 블록문 연습: 다음 화면이 출력되도록 프로그램을 작성하라. 변수지정 변수(정수):
𝑠𝑐𝑜𝑟𝑒
𝑠𝑐𝑜𝑟𝑒 ≥ 90
이면 if 이후가 실행되고,𝑠𝑐𝑜𝑟𝑒 < 90
이면 else 이후가 실행되는 조건문 작성. 입력 점수 scanf_s 이용#include <stdio.h>
int main(void)
{
변수지정
printf( );
scanf_s( );
if ( )
…
…
else
…
…
return 0;
점수를 입력하시오: 92 입력점수는 92이며, 합격 장학금 대상자 점수를 입력하시오: 85 입력점수는 85이며, 불합격 다시 도전 하세요 합격 장학금 참 거짓𝑛𝑢𝑚𝑏𝑒𝑟 > 90
합격 재도전 If-else 문 들여쓰기(예제1 검토) if-else 블록문 연습: 다음 화면이 출력되도록 프로그램을 작성하라. 변수지정 변수(정수):
𝑠𝑐𝑜𝑟𝑒
𝑠𝑐𝑜𝑟𝑒 ≥ 90
이면 if 이후가 실행되고,𝑠𝑐𝑜𝑟𝑒 < 90
이면 else 이후가 실행되는 조건문 작성. 입력 점수 scanf_s 이용#include <stdio.h>
int main(void)
{
int score;
printf("점수를 입력하시오:");
scanf_s("%d", &score);
if (score >= 90)
{
printf("입력점수는 %d이며, 합격\n", score);
printf("장학금 대상자\n");
}
else
{
printf("입력점수는 %d이며, 불합격\n", score);
printf("다시 도전 하세요\n");
}
return 0;
}
점수를 입력하시오: 92 입력점수는 92이며, 합격 장학금 대상자 점수를 입력하시오: 85 입력점수는 85이며, 불합격 다시 도전 하세요 5-3. if-else 문 합격 장학금 참 거짓𝑛𝑢𝑚𝑏𝑒𝑟 > 90
합격 재도전 블록(예제2) 입력한 정수가 홀수 인지 짝수인지 말해주는 프로그램을 작성하라. 홀수와 짝수를 어떻게 구별 할 수 있는가?
𝑛𝑢𝑚𝑏𝑒𝑟
를 2로 나눈 나머지가 0이면 if 이후 실행, 나머지가 0 이 아니면 else 이후가 실행. 조건문:𝑛𝑢𝑚𝑏𝑒𝑟 % 2 == 0
변수지정 변수(정수):𝑛𝑢𝑚𝑏𝑒𝑟
입력 정수 scanf_s 이용#include <stdio.h>
int main(void)
{
변수지정
printf( );
scanf_s( );
if ( )
…
else
...
return 0;
}
정수를 입력하시오: 32 입력정수는 32이며, 짝수 정수를 입력하시오: 25 입력정수는 25이며, 홀수 짝수: 2로 나누었을 때 나머지가 항상 0 짝수 참 거짓 홀수조건문
If-else 문 들여쓰기(예제2 검토) 입력한 정수가 홀수 인지 짝수인지 말해주는 프로그램을 작성하라. 홀수와 짝수를 어떻게 구별 할 수 있는가?
𝑛𝑢𝑚𝑏𝑒𝑟
를 2로 나눈 나머지가 0이면 if 이후 실행, 나머지가 0 이 아니면 else 이후가 실행. 조건문:𝑛𝑢𝑚𝑏𝑒𝑟 % 2 == 0
변수지정 변수(정수):𝑛𝑢𝑚𝑏𝑒𝑟
입력 정수 scanf_s 이용#include <stdio.h>
int main(void)
{
int number;
printf("정수를 입력하시오:");
scanf_s("%d", &number);
if (number%2==0)
printf("입력정수는 %d이며, 짝수\n", number);
else
printf("입력정수는 %d이며, 홀수\n", number);
return 0;
}
정수를 입력하시오: 32 입력정수는 32이며, 짝수 정수를 입력하시오: 25 입력정수는 25이며, 홀수 5-3. if-else 문 If-else 문 들여쓰기 짝수: 2로 나누었을 때 나머지가 항상 0 짝수 참 거짓 홀수조건문
<참고사항> (예제2) 에서 짝수와 홀수를 구분할 때, 두 가지 방법이 있음. 방법 (1) : if-else 문을 사용. 방법(2) : if 문을 2개 사용.