30 — 상점: 재고와 잔액
상점 프로그램이 기억해야 할 것은 두 가지입니다 — 물건마다 몇 개 남았는지와 돈이 얼마인지입니다. 앞의 것은 이름마다 숫자 하나이므로 표의 모양이고, 뒤의 것은 숫자 하나입니다.
단계
재고를 표에 담습니다. 물건 이름이 이름이고, 남은 개수가 값입니다:
실행해 보기 →재고는 빈 표 재고에 사과를 5로 넣어 재고에 빵을 2로 넣어 재고의 사과 말해줘5가 나옵니다.없는 물건을 찾으면 프로그램이 멈춥니다. 그래서 먼저 있는지 묻습니다:
실행해 보기 →재고는 빈 표 재고에 사과를 5로 넣어 만약에 재고에 우유가 있으면 재고의 우유 말해줘 아니면 그런 물건은 없습니다 말해줘 끝표의 숫자를 줄이는 것은 세 걸음입니다 — 꺼내고, 바꾸고, 다시 넣습니다:
실행해 보기 →재고는 빈 표 재고에 사과를 5로 넣어 남은수는 재고의 사과 남은수에서 1 빼 재고에 사과를 남은수로 넣어 재고의 사과 말해줘4가 나옵니다. 표 안의 값을 바로 고치는 문장은 아직 없어서, 이 세 줄이 그 자리를 대신합니다.0개 남은 것을 또 팔면 안 됩니다. 팔기 전에 개수를 봅니다:
실행해 보기 →남은수는 0 만약에 남은수가 0보다 크면 팝니다 말해줘 아니면 다 팔렸습니다 말해줘 끝전체입니다. 하나 팔면 재고가 하나 줄고, 돈이 십만큼 줄어듭니다:
실행해 보기 →재고는 빈 표 재고에 사과를 5로 넣어 재고에 빵을 2로 넣어 돈은 100 물건을 물어봐 무엇을 살까요 만약에 재고에 물건이 있으면 남은수는 재고의 물건 만약에 남은수가 0보다 크면 남은수에서 1 빼 재고에 물건을 남은수로 넣어 돈에서 10 빼 샀습니다 말해줘 물건 말해줘 남은수 말해줘 아니면 다 팔렸습니다 말해줘 끝 아니면 그런 물건은 없습니다 말해줘 끝 돈 말해줘
직접 해보기
물건마다 값이 다르게 해 보세요 — 값표라는 표를 하나 더 두고
재고와 같은 이름을 쓰면 됩니다. 그리고 파는 대신 채워 넣는 쪽도
만들어 보세요. 빼 자리에 더해를 쓰면 됩니다.
배운 것
- 이름마다 숫자 하나를 기억할 때는 표가 맞습니다.
- 없는 이름을 꺼내면 멈추므로 먼저 있는지 묻습니다.
- 표 안의 숫자를 바꾸는 것은 꺼내기·바꾸기·다시 넣기 세 걸음입니다.
- 팔기 전에 개수를 보는 것이 0보다 아래로 내려가지 않게 하는 방법입니다.