Computer Science/CS 50 Harvard
-
Credit Cards and Luhn Algorithm | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 7. 14:06
cs50 강의를 한글로 번역한것입니다. Credit Cards 크레딧카드는 플라스틱으로 된 카드이다 (물론 요즘에는 모바일로도 가능하다). 사고싶은 물건이나 서비스를 현급 없이도 사용할 수 있다. 크레딧카드(또는 체크카드)를 보면 숫자들이 써져있는데, 그 숫자들은 세계 어디엔가 있는 데이터베이스에 저장되어있다. 그래서 내가 무언가를 구매하면, creditor는 어디에 청구를 해야할지 아는것이다. 세상엔 수많은 사람들이 Credit Cards를 사용하고있기 때문에, 이 카드번호들은 상당히 길다. 대표적으로 글로벌하게 쓰이는 American Express는 15 digits을 쓰고, MasterCards는 16-digits, 그리고 VISA는 13 또는 16-digits를 사용한다. 그리고 이 숫자들은 bi..
-
mario stairs | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 7. 11:57
mario 조금더 복잡한 프로그램을 만드는 숙제가 있었다. 아래와 같이 풀었는데, 1층부터 8층까지 다양한 층수의 마리오 계단을 만드는 문제였다. #include int main(void) { int n = 0; while(n 8) { printf("Height(1-8): "); scanf("%d", &n); } for(int i = 1; i ./mario Height(1-8): 1 # # > ./mario Height(1-8): 2 # # ## ## > ./mario Height(1-8): 3 # # ## ## ### ### > ./mario Height(1-8): 4 # # ## ## ### ### #### #### > ./mario Height(1-8): 5 # # ## ## ### ### ####..
-
Imprecision, overflow | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 7. 01:55
floats를 나누고 그 값을 프린트하는 프로그램을 작성해보자. #include #include int main(void) { // Prompt user for x float x = get_float("x: "); // Prompt user for y float y = get_float("y: "); // Divide x by y float z = x / y; printf("%f\n", z); } 2개의 floats를 받아서 나눈 후 printf에서 %f를 이용해 프린트하는 로직이다. 컴파일 후 실행시켜보자. > make calculator_div clang calculator_div.c -lcs50 -o calculator_div > ./calculator_div x: 2 y: 3 0.666667 > ..
-
Mario | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 7. 00:36
Harvard CS50 강의를 한글로 정리한것입니다. 이때까지 학습한 내용으로 블록을 프린트하는 간단한 프로그램을 만들어보자. Question Marks #include int main(void) { printf("????\n"); } 조금더 발전시켜서, for loop을 이용해서 n만큼의 물음표를 프린트하게도 할 수 있다. #include int main(void) { int n = 4; for (int i = 0; i make mario_blocks clang mario_blocks.c -lcs50 -o mario_blocks > ./mario_..
-
Loops, functions | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 23:30
Harvard CS50 강의를 한글로 정리한것입니다. 야옹(meow)하고 세번 프린트 하는 코드를 어떻게 만들 수 있을까? #include int main(void) { printf("meow\n"); printf("meow\n"); printf("meow\n"); } 세번 프린트 하면 된다! 컴파일을 하고 돌려보자. > make meow clang meow.c -lcs50 -o meow > ./meow meow meow meow 잘 돌아간다. 하지만 100번 프린트하고싶다면? 1000번, 10000번은? 이를 위해서 loop을 이용해서 더 나은 디자인의 코드를 완성해보자. while Scratch 블락과 같은 동작을 할 수 있는 while loop을 이용하면, 조건에 따라서 영원히 또는 어떤 경우에 괄..
-
Conditionals, Boolean expressions | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 21:57
Condition 어떤 값을 비교하거나 상황에 맞게 Condition을 만들기 위해, if를 사용할 수 있다. 예를들면 아래와 같다. if (x < y) { printf("x is less than y"); } main method와 마찬가지로, { 와 } 를 이용해서, 어디까지 이 컨디션일때 해당하는지 표시해줄 수 있다. 또 if 는 (), 즉 parentheses와 함께 쓰여지는데 그 안에 조건을 넣어줄 수 있다. 그렇다면, 반대의 경우는 어떨까? if (x < y) { printf("x is less than y\n"); } else { printf("x is not less than y\n"); } x가 y와 같거나 y보다 클 경우, else를 사용해서 그 이외의 경우에는 다른 문장을 쓸 수 있다..
-
Calculations | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 20:57
Harvard CS 50 강의를 한글로 정리한것입니다. Calculator 앞서서 배운 내용들을 이용해서 간단한 계산을 하는 계산기를 만들어보자. 아래와 같은 커맨드를 실행하면, calculator.c 파일이 생성된다. > code calculator.c 이후 아래와 같이 x, y 값을 유저에게서 받아서 간단한 덧셈을 하는 코드를 만들어보자. #include #include int main(void) { int x = get_int("x: "); int y = get_int("y: "); printf("%i\n", x + y); } 이후 아래와 같이 컴파일을 한 후, 프로그램을 실행시킬 수 있다. 1과 2를 주었더니 3을 주었다. > make calculator clang calculator.c -lcs..
-
Variables, syntactic sugar | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 19:38
Harvard CS50 강의를 한글로 정리한것입니다. Scratch의 블록을 이용해서 우리는 counter라는 블록을 만들고, 0으로 지정할 수 있다. 이것을 C에서 한다면? int counter = 0; 위와같이 int를 생성해서 counter라고 이름을 짓고, 0을 저장해줄 수 있다. 만약, counter 값에 1을 더 더해준다면, change 블록을 이용해서 1을 더해줄 수 있다. 이것을 C에서 한다면? int counter = 0; counter = counter + 1; C에서는 counter라는 값을 가지고 1을 더한 연산을 한 후, 다시 이 값을 왼쪽에 있는 variable에 주어서 원래의 counter값을 새로운 값으로 업데이트 시킬 수 있다. 여기서 counter는 이미 int(integ..