Harvard
-
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..
-
Abstraction, Condition and More in Scratch | Harvard CS50 Week 0Computer Science/CS 50 Harvard 2021. 10. 31. 14:05
하버드 CS50 강의를 한글로 정리한것입니다. loop 위와같이 코드를 작성하면 고양이는 1초씩 간격을 두고 야옹~ 하고 우는 소리를 낸다. 하지만 이 코드에는 한가지 개선사항이 있다. 무엇일까? 지금은 3번만 울게끔 하기때문에 괜찮지만 만약 100번을 울게 하고싶다면? 코드가 아주 길어질것이다. 이럴때 사용할 수 있는것이 바로 loop이다. 마치 돌림노래처럼, 똑같은 부분을 반복하는것이다. repeat이라는 블럭을 사용해서 "울고 - 1초기다리기" 를 10번 반복 시키면, 위에 있는 코드와 같은 결과물을 만들어 낼수 있는데, 코드의 길이도 짧고, 개발자의 시간도 훨씬 절약된다. 만약 10번 반복을 이전과 같이 개발했다면 play sound 블록 10개, 1초기다리기 블록 10개, 총 20개의 블록이 필..
-
Algorithms | Harvard CS 50 Week 0Computer Science/CS 50 Harvard 2021. 10. 29. 12:48
모든 내용은 하버드의 CS50 수업을 한글로 정리한것입니다. 다시 처음으로 돌아가서, 1과 0, binary bits로 우리는 컴퓨터가 알아들을 수 있도록 input과 output을 나타낼 수 있게 되었다. 그게 색깔이 될수도, 숫자, 알파벳, 한글, 음악, 이미지 또는 영상이 될 수 있다. 그렇다면, 이것들을 처리하는것은 무엇인가? 바로 알고리즘이다. Contacts 핸드폰의 전화번호찾는 Contacts기능을 생각해보자. 한글 또는 영문 순서대로 이름이 정렬되어있고, 각각의 이름에는 전화번호와 또다른 저장된 정보들을 볼 수 있다. 예전에는 어땠을까? 어렸을때 기억을 해보면 전화번호부라는것을 사용해서 번호를 찾았었던적이 있었다 (지금도 상호명등을 볼 수 있는 전화본호부가 존재하는것으로 보인다). 전화번호..