📖/Hello Coding 프로그래밍

[Hello Coding] Chapter3, Chapter4 정리

모팔구 2023. 3. 24. 10:49
728x90
반응형

Chapter 3. 값을 바꿀 필요가 없다면, 상수(그리고 값의 종류)

1. 상수란 무엇인가?

constant (형) 변하지 않는, (명) 변하지 않는 것
➡ 상수(constant): 프로그램을 실행하는 중에 변하지 않는 값 

아래 코드에서 "바구니 안에 담긴 사과의 개수: ", 12, "사과 바구니의 무게: ", 1.32 모두 프로그램을 싱행하는 중에는 전혀 바뀌지 않으므로 상수임.
즉, 상수는 숫자에만 국한되는 것이 아니라 문장도 포함됨

Console.Write("바구니 안에 담긴 사과의 개수: ");
Console.WriteLine(12);

Console.Write("사과 바구니의 무게: ");
Console.WriteLine(1.32);

 

2. 상수의 종류

  • 정수형
    수학에서 정수란 자연수(양의 정수), 0, 0보다 작은 수(음의 정수)를 통칭하는 용어
    ➡ 정수형 상수: 소수점이 없는 숫자를 나타내는 상수
  • 실수형
    수학에서 실수는 유리수(비로 표현되는 수)와 무리수(비로 표현되지 않는 수)를 통칭하는 용어.
    즉, 실제로 존재할 수 있는 수
    ➡ 실수형 상수: 소수점이 있는 숫자를 표현하는 상수
  • 문자열형
    문자: 인간의 언어를 사용하는 시각적 기호 체계 ex) 가, 나, 다, a, b, c 등
    문자열: 여러 문자를 한 줄로 세워놓은 것

 

3. 상수에 이름을 붙이자

  • string
string appleCountDescription = "바구니 안에 담긴 사과의 개수: ";
Console.Write(appleCountDescription);

위 코드에서 appleCountDescription과 "바구니 안에 담긴 사과의 개수: " 사이의 =는 같다는 의미가 아님.
"바구니 안에 담긴 사과의 개수: "에 appleCountDescription이라는 이름을 붙여주는 역할
appleCountDescription 앞의 string은 문자열형 상수를 의미함
※string이 문자열을 뜻하는 이유: 처음에는 글자를 줄줄이 늘어놓았다는 의미로 a string of characters라고 하다가 이걸 string으로 줄임

  • int
int appleCount = 12;
Console.WriteLine(appleCount);

appleCount앞의 int는 정수형 상수를 의미함

  • double
double basketWeight = 1.32;
Console.WriteLine(basketWeight);

basketWeight앞의 double은 실수형 상수를 의미함

  • 정리
    즉, 상수에 이름을 붙일 때는 아래 문법을 따름<상수의 종류> <상수의 이름> = <상수>;

 

4. 왜 상수에 이름을 붙일까?

  • 상수에 이름을 붙여 사용하는 이유
  1. 코드를 읽기 쉽다.
  2. 실수를 줄일 수 있다.
  3. 같은 값을 여러 번 넣을 때 편하다.

 

기초 문제

3-1. 다음 상수의 종류는 무엇일까요?

  1. 314 
  2. "314"
  3. 24.78
  4. "24.78"
  5. "우하하"

  나의 답↓

  1.  정수
  2. 문자열
  3. 실수
  4. 문자열
  5. 문자열

 

3-2. 다음 코드를 실행하면 어떤 결과가 나올까요?

using System;

namespace Constant
{
	class Program
    {
    	static void Main(string[] args)
        {
        	string name = "홍길동"
            Console.Write("이름: ");
            Console.WriteLine(name);
            
            int age = 23;
            Console.Write("나이: ");
            Console.WriteLine(age);
        }
    }
}
나의 답
이름: 홍길동
나이: 23

 

 

3-3. 다음 실행 화면처럼 출력하려고 합니다.

다음 코드의 (1), (2), (3)에 어떤 코드를 넣어야 할까요?

using System;

namespace question
{
    internal class Program
    {
        static void Main(string[] args)
        {
            (1) 
            Console.WriteLine(stringOut);

            double number1 = 23.31;
            (2) 

            (3) 
            Console.WriteLine(success);
        }
    }
}

 

나의 답
(1) string stringOut = "문자열 출력";
(2) Console.WriteLine(number1);
(3) string success = "출력 성공";​

 

심화 문제

3-1. 다음 코드는 상수를 그대로 사용해서 출력하고 있습니다. 상수에 이름을 붙이고 그 이름을 사용하도록 수정하세요. (힌트: 정수형은 int, 실수형은 double, 문자열은 string을 사용하세요.)

namespace question
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(286);
            Console.WriteLine(3.141592);
            Console.WriteLine("문자열도 있음");
        }
    }
}
나의 답
···
int n = 286;
Console.WriteLine(n);
double pi = 3.141592;
Console.WriteLine(pi);
string s = "문자열도 있음";
Console.WriteLine(s);​

 

3-2. <생략>

 

Chapter 4. 내 맘대로 값을 바꾸고 싶다면, 변수 그리고 연산

1. 컴퓨터란 무엇인가?

<생략>

 

2. 사칙연산, 연산의 기본

  • 프로그래밍에서 사칙연산
    1. 덧셈: 값 + 값
    2. 뺄셈: 값 - 값
    3. 곱셈: 값 * 값
    4. 나눗셈
      1. 몫: 값 / 값
      2. 나머지: 값 % 값

 

3. 문자열 연산

  • 문자열의 덧셈: "문자열1" + "문자열2" ➡ 문자열1문자열2의 형태로 출력
    ※ 덧셈 외에 다른 연산은 불가능함 

 

4. 변수란 무엇인가?

  • 변수(variable) = 바꾸다(vary) + ~할 수 있는(able): 바뀔 수 있는 무언가
    상수와 마찬가지로 변할 수 있는 문자열과 상수 모두 변수라고 칭함
    변수 사용 규칙
    1. 최종 값이 입력되는 변수명을 등호 왼쪽에 배치한다.
    2. 변수에 아무 값도 넣지 않고 출력할 수 없다.

 

5. 디버깅: 버그를 잡아보자

디버그와 디버깅

  • debuging = de- + bug + ~ing
    프로그램의 문제점을 버그, 버그를 없애는 작업을 디버그

중단점

  • 중단점(breakpoint): 프로그램 실행을 특정 지점에서 잠시 중단시키기 위해 설정하는 지시자

디버깅 시작하기

<생략>

 

기초문제

4-1. 다음 사칙연산의 결과를 출력하는 코드를 작성하세요. 결과만 출력하세요.

  1. 10 + 5
  2. 20 - 10
  3. 4 x 7
  4. 20 / 7의 몫과 나머지
나의 답
Console.WriteLine(10 + 5);
Console.WriteLine(20 - 10);
Console.WriteLine(4 * 7);
Console.WriteLine(20 / 7);
Console.WriteLine(20 % 7);​

 

4-2. 다음 문자열 연산의 결과를 출력하는 코드를 작성하세요.
"안녕" + "하세요"

나의 답
Console.WriteLine("안녕" + "하세요");​

 

4-3. 다음 코드는 어떤 결과를 출력할까요? 코드 실행 전에 실행 화면에 적어보세요.

int number1 = 20;
int number2 = 5;
int number3 = 3;
int number4 = 13;
int number5;

number1 = number1 + number2;
number2 = number3 + number4;
number4 = number1 - number4;
number3 = number2 / number4;
number5 = number2 % number4;

Console.WriteLine(number1);
Console.WriteLine(number2);
Console.WriteLine(number3);
Console.WriteLine(number4);
Console.WriteLine(number5);
나의 답 
25
16
1
12
4

 

4-4. (4-2)*16+2를 구하기 위해서 다음과 같은 코드를 작성했습니다. (1), (2)에 필요한 코드를 채우세요.

(1) 
number1 = number1 * 16;
(2) 
Console.WriteLine("(4 - 2) * 16 + 2");
Console.WriteLine(number1);

 

나의 답
(1) int number1 = 4 - 2;
(2) number1 = number1 + 2;​

 

심화문제

4-1. <생략>

 

4-2. 주머니에 동전이 10개 들어 있습니다. 아람이에게 원하는 만큼 동전을 가져가라고 하니 손을 넣어 절반을 가져가더니 죄책감을 느꼈는지 1개를 도로 넣습니다. 그다음에는 우람이가 남은 동전의 절반을 꺼내더니 충분치 못했다 생각했던지 2개를 더 꺼내 갑니다. 아람이가 가져간 동전과 우람이가 가져간 동전 그리고 주머니에 남은 동전이 몇 개 인지 출력하는 프로그램을 작성하세요.

나의 답
int pocket = 10;
int aram = pocket / 2 - 1;
pocket = pocket - aram;
int uram = pocket / 2 + 2;
pocket = pocket - uram;
Console.WriteLine(aram);
Console.WriteLine(uram);
Console.WriteLine(pocket);​

 

 

728x90
반응형