Computer Thinking week6.2
2025.04.09 Wed AM 10:34 ・ 77Minutes 3seconds
ZHANG YIWEN
计算机思维 第 6.2 周 2025.04.09 周三 上午 10:34 ・ 77 分钟 3 秒 张一文
Attendees 1 00:00
앞에 내려가는데 앞에 내 앞에 걸어가는 학생 두 명이 대화를 하는 게 들렸어요.
바로 매걸음 앞에 걸어가니까 들리겠지 한 학생이 아주 꽤 목소리 좀 큰 소리로 얘기를 해갖고 더 잘 들렸는데 자기 지금 수업 끝나고 나왔는데 그 둘이 같은 수업 듣는 것 같지는 않아요.
그 교수가 항상 늦게 온대요. 한 15분쯤 늦게 온대 그리고 또 한참 있다가 출석을 부른대요.
그래가지고 일찍 안 가도 된대라고 얘기를 하더라고요.
그래서 제가 여러분들을 잘 버릇을 잘못 들고 있는 거지.
出席人数 1 00:00 我正要下楼时,听到前面走着的两名学生正在交谈。由于正好走在他们后面,所以能清楚地听到。一名学生用相当大的声音说话,使得更加容易听清。他说自己刚刚上完课,这两人似乎不是同一堂课的学生。据说那位教授总是迟到,大约晚 15 分钟到,然后过了一会儿才点名。因此他们说不用早走。所以我认为你们正在养成一个不好的习惯。
Attendees 1 00:54
그럼에도 불구하고 제가 출석을 일찍 안 부르는 이유는 나름대로 제 생각을 가지고 있기 때문에 그런 건데
尽管如此,我不早点点名的原因是因为我有自己的想法
Attendees 1 01:11
우리 지난주에 자료가 아니구나 지난 시간 그저께네요.
그저께 했던 거 중에서 몇 가지만 얘기를 좀 합시다.
그전에 여러분들 레포트 한 거 그게 또 여러분들 한 거 보다 보니까 또 이상한 또 생각이 좀 드는데 레포트에 마지막에
参会人员 1 01:11 原来不是上周的资料,是前天的。我们来谈谈前天讨论的几个问题。在此之前,我看了你们的报告,看到你们的报告时,又产生了一些奇怪的想法,在报告的最后
Attendees 1 01:47
제가 마지막에 이거 집어넣은 거 이게 원래 지난번에는 없었다가 이번에 집어넣은 건데 이거를 자꾸 휴식 시간에 대해서 너무 고민들을 많이 하길래 그거 고민할 필요 없다는 의미 생각에 이제 이렇게 써놓은 건데 이렇게 해놓으니까 또 이 24시간에 다들 꽂혀가지고 이거를 다 24시간 기준으로 플랜을 짰어요.
아직 다 보지는 않았는데 내가 한 열몇 명을 봤는데 그 10몇 명 중에서 거의 80~90%가 24시간을 기준으로 이렇고 저렇고 아니 그게 잘못됐다는 게 아니라 저게 또 24시간 그러니까 왜냐하면은 그게 처음 제가 그렇게 봤으면은 그냥 그런가 보다 하겠는데 이게 없었을 때 지난 학기 때 학생들은 24시간 기준으로 플랜을 짠 사람이 거의 없었어요.
몇 명 안 됐어요 150평 중에 24시간을 플랜을 짠 사람이 몇 명 안 됐고 되게 다양했어요.
1시간 2시간 6시간 12시간 단위가 되게 다양하게 나왔는데 이것 때문인 것 같아요.
与会者 1 01:47 我在最后放入这个,这是以前没有的,这次加入的。因为大家总是在休息时间过度担心,所以我想表达不需要这么担心。当我这样写之后,大家又都以 24 小时为基准制定计划。虽然我还没有全部看完,但我看了十几个人,在这十几个人中,几乎 80-90%都是以 24 小时为基准。我的意思不是说这是错的,但是如果一开始我这样看,我可能会觉得理所当然。但在之前的学期里,几乎没有学生以 24 小时为基准制定计划。在 150 名学生中,很少有人以 24 小时为单位,计划非常多样化。1 小时、2 小时、6 小时、12 小时的单位都很不同,我觉得这可能是因为这个原因。
Attendees 1 03:03
지금 제 생각에는 제가 또 24시간에 또 그래서 오히려 다양성 그러니까 저는 좀 더 많이 다양하게 나올 수 있지 않을까 시간이 이제 시험 시간이라는 제한된 그리고 또 다른 것도 있고 하니까 제한된 범위 내에서 생각하는 것보다 그냥 편하게 프리하게 생각을 하면은 좀 더 다양하게 나오지 않을까라는 생각 기대를 했는데 오히려 다양성이 결여가 돼 버렸어요.
그래가지고 그냥 24시간이라는 단어를 뺄 거를 그냥 휴식 없이 한다라고만 했으면 좋았을 텐데 풀 가동한다라는 의미로 24시간 휴식 없이 한다 이게 말버릇처럼 쓰던 말을 그대로 그냥 표현을 했더니만 오히려 또 이게 의도하지 않은 방향으로 가는 그런 그런 게 돼버린 것 같아요.
与会者 1 03:03 现在我觉得,虽然我也是以 24 小时为基准,但我希望能更加多样化。因为现在是考试时间,在有限的范围内思考,不如自由轻松地思考,可能会产生更多样的想法。但实际上多样性反而减少了。所以我本应该直接说"不休息地持续",用"全力运转,24 小时不休息"这种说法,反而导致了意想不到的方向发展。这种表达方式可能是之前习惯性使用的说法,结果产生了非预期的效果。
Attendees 1 04:08
뭐 아무튼 그래도 어쨌든 생각보다 되게 다양한 답들이 있어서 그 와중에도 다양하게 답이 있어서 일단은 제가 의도했던 것만큼 저희 24시간이라는 것 때문에 조금 걸리기는 하는데 그래도 예 이거를 원래 시험 문제로 냈던 거를 과제로 돌린 거는 잘한 것 같다라는 생각이 들더라고요.
보면서 보니까 생각해 보니까 아무튼 좀 아직 많이 못 봐가지고 좀 더 다양하게 보면서 시간 많으니까 아직 이제 한 학기 반 지났으니까 차근차근 피드백도 좀 하고 할 거 있으면 하고 얘기를 하실 분들이 있으면 같이 얘기도 한번 해보고 아마 엄청나게 대단한 어떤 플랜을 플랜을 짜는 건 아니지만 그래도 거기 내에서 한번 다양한 어떤 생각들을 한번 해보자고요.
사실 그게 이 과목의 목적인데 어쨌든 우리 지난 시간에 변수 얘기를 좀 했었어요.
변수 얘기하면서 여러분들하고 변수를 어떻게 했으면 좋겠다.
参与者 1 04:08 总之,尽管如此,确实有很多不同的答案。尽管如此,我还是认为将原本的考试题目转化为作业是一个不错的决定。回想起来,现在我们还有很多时间,已经过了一个半学期,我们可以逐步给予反馈,如果有人想讨论,我们可以一起交流。虽然我们可能不会制定一个非常宏大的计划,但我们可以在这个范围内尝试多样化的思考。事实上,这正是这门课程的目的。无论如何,我们上次讨论了变量,并且想和你们一起探讨如何使用变量。
Attendees 1 05:34
여러분들 지금 한참 이렇게 프로그램을 막 초급 단계나 초급을 막 넘어서거나 이렇게 중급으로 치닫거나 이런 과정들에 있으리라고 봅니다.
변수 사용하는 거 특히 지금 단계에서 신경을 좀 쓰세요.
그래야지 확실하게 그게 본인의 스타일로 자리를 잡아야 되니까 프로그램 지금 한참 하는 중에 처음부터 아예 습관을 좀 들이셨으면 좋겠습니다.
다른 변수하고 명확하게 구분되게 생성한다는 거 당연히 중요한 얘기입니다.
参与者 1 05:34 我认为你们现在正处于编程的初级阶段,或者刚刚超越初级,正在迈向中级阶段。在这个阶段,特别要注意变量的使用。这样,你们才能确立自己的编程风格。希望你们从一开始就养成好的习惯。当然,创建明确区分其他变量的变量是很重要的。
Attendees 1 06:24
특성이나 역할을 알 수 있는 이름으로 생성하는 거 그게 귀찮다고 간단한 무슨 야거식으로 a b a c a d 하는 식으로 그냥 한두 글자 대충 쓰는 게 아니라 확실하게 쓰자는 거 그리고 특히 첫 문자라고 지정을 하긴 했는데 특수교육 공백 같은 거 가능하면 쓰지 않는 걸로 일부 프로그램에서 허용을 하긴 하지만은 아예 그냥 이걸 안 쓴다라고 생각하는 게 차라리 낫습니다.
이거는 뭐 당연히 랭귀지에서 쓰는 키워드나 함수명을 사용하면 당연히 안 되는 거죠.
요즘은 이게 컴파일이나 프로그램 에디터 자체에서 이거를 거르는 기능들을 다 가지고 있어 갖고 사실 뭐 이렇게 쓰면은 쓰자마자 바로 이제 티가 나니까 알 수는 있어요.
알 수는 있는데 그래도 조심을 해야겠죠. 에디터 툴을 쓰지 않고 그냥 일반 텍스트 편집기 같은 걸로도 프로그램 할 때가 있거든요.
要创建具有特性或角色的名称,而不是因为麻烦就简单地使用 A、B、A、C、A、D 这样的简短字母。要明确地写出变量名。特别是,即使某些程序允许使用特殊字符或空格作为第一个字符,最好还是不要使用。当然,不能使用语言的关键字或函数名。现在,编译器或程序编辑器本身都具有过滤这些的功能,所以一写就会立即暴露出来。尽管如此,还是要小心。因为有时会使用普通的文本编辑器而不是编辑器工具来编程。
Attendees 1 07:36
급할 때는 그러니까 그리고 대소문자 구분하는 거 불필요하게 대소문자 자꾸 섞어 쓰는 것도 별로 그렇게 바람직하지 않더라고요.
해놓은 거 보니까 그냥 하나로 통일시키는 게 좋은 것 같습니다.
대소문자 구분한다고 똑같은 단어로 단어를 변수로 설정하면서도 어떤 거는 대문자로 쓰고 어떤 걸 소문자로 써서 서로 다른 변수인 거로 사용하는 사람들도 있어요.
그거는 좀 위험해 보이더라고요. 오히려 위험하다는 생각이 들 정도로 좀 그거는 별로 좋은 방법이 아닌 것 같습니다.
그리고 무엇보다도 이제는 협업이 많이 필요한 시기라서 공유되는 이름 프로그램을 협업하기 전에 우리가 지금 만드는 프로그램의 변수들은 어떠 어떠한 것을 어떤 이름으로 쓰자라고 사전에 공유를 하기도 합니다.
요즘 많이 그렇게도 하고 있으니까 변수 선언할 때 특히 좀 신경을 써서 네 이름 짓는 거 잘 지어서 쓰기 바라고요.
在紧急情况下,不要不必要地混用大小写。最好统一使用一种大小写。有些人在设置相同的单词作为变量时,会使用不同的大小写,这样看起来很危险。这种方法似乎并不好。更重要的是,现在是需要大量协作的时代,在协作之前,我们会提前共享正在创建的程序的变量命名规则。现在很多人都这样做,所以希望在声明变量时特别注意,好好地命名变量。
Attendees 1 08:51
그다음에 이런 우리 여기는 그냥 이제 두 컵에 있는 내용물을 서로 교환하는 방법에 대해서 설명을 한 건데 이거 여러분들 해보시면 아시겠지만 이게 데이터 버퍼의 개념입니다.
버퍼를 이용해서 데이터를 옮기는 교환하는 그냥 우리가 프로그램 할 때는 a를 b로 옮긴다 이렇게 간단하게 프로그램이 되지만은 그게 실제로 내부에서는 이런 버퍼의 개념을 가지고 왔다 갔다 하는 작업들을 합니다.
여러분들은 단순히 그냥 프로그래머나 이 오퍼레이팅을 하는 게 아니라 컴퓨터 내부 구조까지도 같이 어우러져서 하드웨어 소프트웨어 구동 방식에 대해서 전반적으로 그 원리를 이해하고 하는 지금 공부를 하는 사람들이니까 이런 내용은 반드시 알고 계셔야 됩니다.
接下来,我们在这里解释了如何交换两个杯子中的内容物。大家都会发现,这就是缓冲区的概念。通过缓冲区来传输和交换数据,在我们编程时看起来就是简单地将 a 移动到 b,但实际上在内部是通过缓冲区的概念进行来回移动的操作。你们不仅仅是普通的程序员或操作者,而是要理解硬件和软件运行的整体原理,因此这些内容是你们必须了解的。
Attendees 1 09:54
그냥 a와 b를 서로 교환한다 바꾸면 되지 뭐 하는 식으로 우리 그냥 사람이 양손에 들고 있는 물건을 서로 이렇게 서로 오른쪽 거를 왼쪽으로 하고 서로 바꾸는 그렇게 간단하게 생각할 게 아니라 실제로 컴퓨터 내부에서 어떤 식으로 구동되었는지 a와 b를 바꾸는데 적어도 명령어가 3개 이상은 모 사용이 됩니다.
여러분들 컴퓨터 구조 쪽에서 아마 공부를 하실 걸로 알고 있는데 한 사람도 있을 거고 사이클 돌아가는 거 있죠 요즘은 스레드라는 개념이 많이 들어가죠.
그다음에 컴퓨터 프로세서 코어 프로세서에 p 코어하고 이 코어 이런 것들 많이 사용되고 있죠.
그런 개념들도 한 번씩 살펴보세요. 학교에서는 원리를 위주로 공부를 하기 때문에 여러분들 상황에 따라서는 지금 여러분들이 사용하는 인텔 CPU 같은 내부 구조에 대해서는 별로 공부할 기회가 없을 수 있습니다.
不要简单地认为交换 a 和 b 就像人们用双手交换物品那样容易。实际上,在计算机内部,为了交换 a 和 b,至少需要使用 3 个以上的指令。我相信你们中有些人会学习计算机架构,比如处理器周期,现在还有线程的概念,以及处理器核心(P 核心)等等。建议大家关注这些概念。由于学校主要学习原理,所以根据你们的情况,可能没有机会深入了解你们使用的英特尔 CPU 的内部结构。
Attendees 1 10:59
물론 GPU 쪽으로 가면은 SI 싱글 인스트럭션 멀티 데이터 simd 그쪽 구조에 대해서도 이제 보긴 하실 텐데 그런 것들을 비롯해서 지금 현재 여러분들이 여러분들이 사용하시는 여러분들 지금 앞에 있는 노트북 안에 들어 있는 인텔 AMD CPU가 어떤 구조로 돼 있는지도 한번 보세요.
여러분들이 지금 공부하고 계신 폰노이만 구조 컴퓨터 구조 기본 구조에 입각해서 현재 사용되고 있는 구조가 어떤 구조가 사용되는지 그리고 소위 얘기하는 GPU는 폭 넓이만 구조를 가지고 있지 않습니다.
다른 구조를 가지고 있어요. 그래서 어떤 게 다른 건지 이런 것도 한 번씩 자체적으로 이제 그런 학교에서 가르쳐주는 거 외에 여기는 지금 대학이니까 여러분들
参会者 1 10:59 当然,如果涉及 GPU,您将会了解单指令多数据(SIMD)结构等方面。请查看您现在正在使用的笔记本电脑中的英特尔或 AMD CPU 的结构。根据您正在学习的冯·诺依曼计算机架构的基本结构,了解当前使用的架构,以及所谓的 GPU 并不仅仅具有宽度架构。它具有不同的架构。因此,请自行了解它们之间的区别,而不仅仅是学校教授的内容,因为这是一所大学。
Attendees 1 12:04
한번 살펴보시기 바랍니다.
参会者 1 12:04 请务必仔细查看。
Attendees 1 12:09
이거는 사실은 여러분들은 조금 약간 좀 안 맞는 것 같긴 한데 1학년들한테는 이렇게 설명을 이러쿵저러쿵 했는데 일단 과정이 있으니까 보고는 넘어갑시다.
알고리즘의 세 가지 흐름이라고 해서 크게 세 가지를 이제 제어 구조로 세 가지를 얘기했습니다.
순차 구조 반복 구조 선택 구조 예 이거는 여러분들 잘 아시리라고 봅니다.
순차는 당연히 순차고 사실은 이 순차 구조가 전체 프로그램의 굵은 대세의 흐름이죠.
그리고 그 안에 반복 구조도 있고 선택 구조도 있고 이런 식으로 이제 일반적으로 그렇게 구조가 갖춰져 있죠.
参与者 1 12:09 这个虽然对于 1 年级学生来说可能有点不太合适,但是我们还是暂且按照过程来看看。我们谈到了算法的三种流程,也就是三种控制结构。顺序结构、循环结构和选择结构。这些我相信你们都很熟悉。顺序结构当然就是顺序,事实上这个顺序结构是整个程序的主要流程。在这个流程中还包含了循环结构和选择结构,通常程序就是这样构建的。
Attendees 1 12:59
순차 구조 그냥 순서대로 말 그대로 순차적으로 움직이는 거
参与者 1 12:59 顺序结构就是按照顺序,字面意思是顺序地运行。
Attendees 1 13:12
그다음에 선택 구조 우리 지난 시간에 순차 구조까지 얘기를 한 것 같은데 여기서부터 오늘 시작하면 될 것 같아요.
순차 구조에서부터 다시 보면서
与会者 1 13:12 接下来是选择结构,我们上一次已经讨论了顺序结构,从这里开始今天的课程可以了。从顺序结构开始再次回顾
Attendees 1 13:48
한번 봅시다.
与会者 1 13:48 让我们来看看。
Attendees 1 14:08
예를 들어서 이렇게 얘기는 들어놨는데 별로 이렇게 사실은 적당한 예는 아닌 것 같아요.
이게 책에 이렇게 예는 불러놨지만은 별로 적절한 예가 아닌 게 순서가 바뀌어도 아무 상관이 없어요.
그죠 이거 이 예시 같은 경우는 그렇지만 우리 순찰 구조 구조 알고리즘 구조상으로 순서가 바뀌면 안 됩니다.
기본적으로 순차 순서가 바뀌는 게 허용이 되려면은 그게 허용이 된다 되는 조건을 만족을 시켜줘야 돼요.
그냥 이렇게 돼 있는 거는 사실 이건 그래서 별로 좋은 일은 아닌 것 같습니다.
일을 닦고 세수를 하든 세수를 하고 일을 닫든 아 순서상 아무런 문제가 없죠.
결과는 출근 준비를 한다는 거기 때문에 이거에 대해서 적절한 이유는 아닌 것 같아요.
따지고 이제 따지면은 그냥 프로세서가 진행이 되는 중간에 인터럽트나 이런 거 없이 그냥 진행이 된다라는 의미로 순차 구조 예 예시로 보시면 될 것 같습니다.
举个例子,虽然已经提到了这样的情况,但感觉并不是一个很恰当的例子。这个例子虽然在书中列出来了,但实际上并不是很合适,因为即使顺序调换也没有什么关系。对于这个例子来说是这样,但在我们的巡逻结构、算法结构中,顺序不能改变。基本上,如果要允许顺序改变,就必须满足某些条件。仅仅这样是不好的。无论是先整理仪容还是先洗脸,顺序上没有任何问题,因为最终目的都是为了准备上班。如果深究的话,可以理解为处理器在没有中断的情况下正常进行,这就是顺序结构的一个例子。
Attendees 1 15:16
간단한 예를 그냥 들어놓은 거니까 이거 가지고 뭐 따지냐 이렇게 생각할 수는 있겠지만은 그래도 우리는 또 따지는 일을 하는 사람들이니까 따질 건 따져야죠.
가로세로 입력해서 두 값을 인풋을 받고 면적을 구하는 간단한 이제 프로그램입니다.
변수를 이렇게 놓죠. 여기는 지금 이제 예시다 보니까 간단하게 영어 단어 그대로 변수를 설정을 해서 사용을 했는데 이렇게 변수를 쓰는 거를 가능하면 좀 지양하자는 얘기입니다.
이렇게 명사 영어 단어 명사 그대로 변수로 쓰는 거 이거는 좀 지향하고 여기에 뭔가 다른 좀 숫자를 붙이든가 아니면은 좀 표기를 다르게 좀 해서 변수인 거를 확실하게 티를 내자는 거죠.
영어 단어인 말 그대로가 아니라 변수 선언한 변수다라는 거를 확실하게 티를 내자는 거죠.
누가 봐도 이건 변수 변수가 변수로 놓고 써놓은 건가 보다 싶을 정도로 여기에 보시면은 이렇게 돼 있어요.
可能会有人认为这只是一个简单的例子,没必要深究,但作为总是追根究底的人,我们就是要较真。这是一个通过输入长和宽,然后计算面积的简单程序。在这里变量的设置是直接使用英语单词。因为这只是一个示例,所以简单地使用了英语单词作为变量名。我们希望尽量避免这种做法。尽量不要直接使用英语名词作为变量名,而是要给它添加一些数字,或者以不同的方式标记,让人一眼就能看出这是一个变量。不要使用原始的英语单词,而是要清楚地表明这是一个变量,让人一看就知道这是一个变量。
Attendees 1 16:34
예 이것도 간단하게 점수 2개 더 셈 하는 거 이제 예를 들었고 여기도 이렇게 돼 있는데 이거 같은 경우는 사실 여기 상수가 들어가 있어요.
10%에 부가세 10%에 해당되는 상수 값으로 들어가 있는데 물론 일반적으로 부가세는 10%이기 때문에 저렇게 해도 크게 문제는 없을 겁니다.
하지만 이것도 변수로 쓰는 게 더 프로그래밍 더 만족스럽겠죠.
그래서 여기에다가 이거를 변수로 예를 들어서 이거는 부가세율이니까 변수 이름을 그냥 VAT 웨이트로 변수 이름을 찾고 0.1로 이렇게 하면은 해놓고 사용을 하면은 훨씬 더 낫겠죠.
그렇죠 그래서 0.1이라고 쓰지 말고 vt 언더바 레이트 이렇게 쓰는 게 훨씬 프로그램이 낫겠죠.
변수를 사용하는 궁극적인 목적 중에 하나입니다.
이렇게 하면은 만약에 부가세가 10%가 아니고 11%다 그러면 0.11로 여기서 바꿔주면은 이 부분은 바꿀 필요가 그대로 놔둬도 되니까 프로그램 본체는 그대로 놔두고 변수에서만 변경을 해 주면은 그대로 적용이 되니까요.
与会者 1 16:34 是的,这也是简单地计算 2 个分数。现在我举了一个例子,这里也是这样的。事实上,这里包含了常数。10%的增值税率作为常数值,虽然通常增值税是 10%,所以这样做问题不大。但是,使用变量会更加编程化、更令人满意。因此,在这里,例如,这是增值税率,所以变量名可以直接命名为 VAT 权重,设置为 0.1,这样使用会更好。是的,所以不要写 0.1,而是写 vt_rate 会更好。这是使用变量的最终目的之一。如果增值税不是 10%而是 11%,只需将其改为 0.11,这部分可以保持不变,程序主体不需要修改,只需在变量中更改,就可以直接应用。
Attendees 1 17:54
저게 사실 변수에 쓰는 가장 큰 목적 중에 하나죠. 이거 같은 경우는 프로그램이 겨우 네 줄이고 상수로 쓰나 변수로 쓰나 변수로 쓰려요.
이런 귀찮을 정도죠. 그렇지만은 이거 이거 하는데 변수까지 선언해 가면서라고 생각하지 마시고요.
변수 선언하는 거를 기본으로 생각을 여기시기 바랍니다.
저렇게 막 상수를 막 써놓는 사람들도 있어요. 변수를 쓰지 않고 물론 그게 틀렸다는 건 아니지만은 예 변수 쓰는 거를 기본으로 하시는 게 여러 가지로 유리합니다.
프로그램이 엄청 길어지면은 이 숫자 하나 고치려면 프로그램 전체를 뒤져야 돼요.
与会者 1 17:54 这确实是使用变量的最大目的之一。这种情况下,程序只有四行,无论是使用常数还是变量,都倾向于使用变量。这可能看起来有点麻烦。但请不要认为需要为此声明变量。请将变量声明视为基本操作。有些人直接使用常数,当然这并不意味着这是错误的,但从多方面考虑,使用变量是更有利的。如果程序非常长,要修改一个数字,你将不得不遍历整个程序。
Attendees 1 18:49
나이를 입력해서 내년에 몇 살이 된다는 그거를 알려주는 되게 되게 희한한 프로그램 예시죠 이걸 왜 하지만은 어쨌든 이렇게 됐으면 이거 우리 떡 본 김에 제사 지냅시다.
이렇게 한 거는 내가 지금 나이가 10살이면 내년에는 11살이겠구나 그걸 알려주는 건데 그건 너무 좀 시시하니까 나이를 입력하고 아니면은 이건 나이 대신에 출생 연도를 입력을 시켜서 그 이후에도 몇 년 뒤에 또는 몇 년도에는 내가 몇 살인지를 알려주는 프로그램으로 바꿀 수 있겠죠.
그렇게 어렵지 않을 겁니다. 그렇죠 출생 연도를 입력을 해서 그거를 현재 연도하고 빼서 그 사람의 현재 나이를 산출할 수 있을 거고요.
그리고 이 사람이 몇 년 뒤에 내 나이가 몇 살인지를 알고 싶다.
그러면은 그 해당 연도와 출생 연도를 빼서 앞으로 몇 년 뒤에는 너는 몇 살이야라고 알려줄 수도 있고, 몇 년 뒤에 몇 살인지를 알리는 구하는 방법은 출생 연도와 해당 알고 싶은 연도를 직접적으로 빼는 방법도 있을 거고요.
参会者 1 18:49 输入年龄,告诉你明年会多大岁数,这是一个非常奇特的程序示例。虽然不知道为什么要这样做,但无论如何都这样了。我们就趁着这个机会来研究一下。这是为了告诉你,如果我现在 10 岁,明年就会是 11 岁。但这太简单了,所以我们可以改变输入的方式,不是输入年龄,而是输入出生年份,然后告诉你多少年后或者在某一年你会多大。这并不难。对吧?通过输入出生年份,用现在的年份减去出生年份可以计算出这个人当前的年龄。如果这个人想知道几年后自己会多大,可以用目标年份减去出生年份,告诉他几年后会多大。计算未来年龄的方法可以是直接用目标年份减去出生年份。
Attendees 1 20:24
그리고 출생 연도하고 현재의 현재 시점에 나이를 먼저 구해놓고 그다음에 여기에서 요까지의 차이를 또 구해서 요 두 값을 더해서 결과를 내는 방법도 있을 겁니다.
그렇죠 다양한 방법으로 산출을 해낼 수 있을 겁니다.
어느 방법이 더 그냥 바로 여기서 여기를 빼는 방법이 물론 심플하겠지만은 그게 절대적으로 좋다라고 얘기할 수는 없어요.
이렇게 따로따로 구해놓고 각각의 데이터를 가지고 사용을 하는 방법도 괜찮은 방법입니다.
프로그램에는 정답이 없습니다. 여러분들이 해놓으신 게 정답입니다.
자꾸 어떤 책에 있는 예시나 이런 거로 제시하는 그거를 정답으로 생각하고 자꾸 그쪽으로 프로그래밍을 하지 마세요.
여러분이 해놓은 거 하고 책의 예시나 어떤 문제에 대한 정답이라고 제시한 거 하고 어떤 부분이 다른지 차이가 뭔지만 파악하고 계시면 됩니다.
거기서 제시한 걸 정답이라고 나는 이렇게 했는데 책에는 저렇게 돼 있네.
参会者 1 20:24 还可以先计算出出生年份和当前时点的年龄,然后计算从这里到那里的差值,再将这两个值相加得出结果。对吧?可以用多种方法来计算。虽然直接相减的方法看起来简单,但不能说它绝对是最好的。分开计算并使用各自的数据也是一个不错的方法。编程没有绝对的答案。你们做的就是答案。不要总是把书中的示例或者其他地方提供的解答当作标准,然后按照那个方向编程。重要的是要了解你们做的和书中示例或问题答案之间的差异和不同之处。不要总觉得人家给的就是标准答案。
Attendees 1 21:44
내가 이렇게 한 거 버리고 책 읽는 게 더 좋아 보이니까 저렇게 해야지라고 그쪽으로만 자꾸 습득을 하지 마세요.
그렇게 되면은 그냥 AI 시켜서 프로그램 짠 거하고 별로 다르지 않은 결과물만 만들어내는 사람밖에 안 됩니다.
선택 구조 잘 하고 계신 이 품은 efls 이프 엔드 이거 이거 좀 헷갈릴 때가 많아요.
어떤 레기즈는 ef ef LS 앤드 e2 안 쓰고 엔드만 쓰는 것도 있고 이래요.
그러니까 지금 저도 볼 때마다 저걸 항상 확인하고 쓰게 되는데 그게 이제 안 좋은 거죠.
예 그러니까 이게 왜 그러냐 하면은 어떤 랭귀지 하나 제대로 공부 안 하고 동시에 여러 랭귀지를 같이 습득을 해서 그래요.
그러다 보니까 항상 쓸 때마다 헷갈려요. 저 저게 LSF였나 efls였나 그다음에 이 끝에 엔드만 쓰면 되든가 ef 엔드라고 써야 되나 맨날 맨날 쓸 때마다 확인을 해요.
不要总是认为这样做比读书更好,然后只朝那个方向不断学习。这样的话,你就只会像让 AI 写程序一样,只能生产出没有太大差异的结果。在选择结构方面做得很好,这个问题是 efls if end,这个经常会让人感到困惑。有些语言不使用 ef ef LS 和 e2,只使用 end。所以我每次看到都要确认并使用它,这是不好的。是的,这是因为没有认真学习一门语言,同时又尝试学习多种语言。因此,每次使用时都会感到困惑。是 LSF 还是 efls,然后是在末尾只使用 end 还是写成 if end,每次都要确认。
Attendees 1 22:50
여러분들도 그런 그런 그런 오류를 범하지 마시고 랭귀지 공부하실 때 지금 여러분들 크게 세 가지 중에 세 가지 다 하시기도 하고 막 이러실 겁니다.
씨와 자바와 파이썬 그 세 가지 중에 세 가지를 다 하거나 이러실 텐데 사실 어느 거 하는 게 좋다 이렇게 얘기를 할 수 없어요.
사람마다 다 다르게 판단을 할 테니까 각각의 랭귀지가 각각의 분야에서 강점을 발휘를 하고 있습니다.
그러니까 본인이 어떤 분야의 랭귀지 그러니까 어떤 분야를 선택을 하느냐에 따라서 거기에 맞는 프로그램 랭귀지가 있을 겁니다.
그렇게 선택을 먼저 가닥을 잡으시는 게 좋을 거고요.
你们也不要犯这种错误,在学习编程语言时,现在你们可能会同时学习三种语言。C、Java 和 Python 这三种,事实上我无法说哪一种更好。因为每个人的判断都不同,每种语言在各自的领域都有优势。所以,选择语言取决于你想要进入哪个领域。首先确定你的方向会更好。
Attendees 1 23:44
동시에 3개를 언어에 좀 특별한 재능이 있는 사람은 동시에 3개를 해도 문제없이 하면 문제가 없을 텐데 저처럼 동시에 몇 개의 랭귀지를 같이 해갖고 맨날 할 때마다 헷갈리는 그런 룰을 범하지 마시고 뭔가 한 한 놈만 패 이런 거 있죠 그런 식으로 좀 확실하게 한 쪽을 해놓으시는 게 좋지 않을까 라는 생각은 가지고 있어요.
한번 그런 것들 좀 살펴보세요. 랭귀지 여러분들 그러니까 답 유사합니다.
기술적 하니까 어느 하나 잘 해놓으면 나머지는 또 이렇게 얹혀서 덤으로 해나갈 수 있는 그런 여지들이 많이 있으니까요.
요거 조건만 돼 있는 거 한번 봅시다. 배송료를 계산하는 알고리즘을 이제 해놓은 겁니다.
기본적으로 가격이 얼마 이상이 되면 배송료를 무료 배송한다는 그런 내용이 되는데요.
상품 가격을 입력을 하면은 그 가격에 따라서
同时掌握 3 种语言的人如果有特殊的语言天赋,可以同时处理 3 种语言而不会出现问题。但对于像我这样每次都会混淆规则的人来说,最好专注于一种语言,不要犯错误。我建议大家仔细考虑这一点。因为在技术领域,一旦精通一种语言,其他语言就会相对容易掌握。现在让我们看看这个条件。这是一个计算运输费用的算法,基本上是根据商品价格达到一定金额后提供免运费服务。当输入商品价格时,将根据价格
Attendees 1 25:06
쇼핑 코스트가 왜 제로야 쇼핑 아니고 쇼핑이구나
为什么购物成本是零?不是购物,是购物哦
Attendees 1 25:16
시핑 코스트 배송료가 그러니까 상품 가격이 2만 원 이상 되는 물건을 구매를 하면은 이상이 아니죠.
2만 원 초과죠. 여기 등호가 없죠. 지금 이상과 초과 이럴 때는 우리 이상이라는 말을 초과하고 이상이라는 말을 그냥 혼용해서 막 사용을 하고 초과라는 말을 잘 안 쓰고 이상이라는 말로 등호가 있는 경우가 없는 경우를 혼용해서 일상에서는 많이 쓰는데 우리 이런 논리 할 때는 확실하게 구분을 해줘야 되죠.
이럴 때는 또 확실하게 따져줘야 된다. 2만 원 초과가 되는 경우에 배송료를 0원으로 하고 그렇지 않은 경우는 배송료를 3천 원으로 하는 거 2만 원이 초과되는 경우와 그렇지 않은 경우입니다.
그렇죠 예 그것도 확실하게 구분해 줘야 돼요. 이 2만 원보다 더 많이 산 사람과 2만 원보다 적게 산 사람이 아니라 2만 원보다 많이 산산한과 그렇지 않은 경우입니다.
확실하게 구분이 돼야 돼요.
与会者 1 25:16 说,如果购买的商品价格超过 2 万元,那么运费是 0 元。不是 2 万元以上,而是超过 2 万元。这里没有等号。现在在说"以上"和"超过"时,我们经常混用这些词,在日常生活中不区分是否有等号,但在逻辑处理时必须明确区分。在这种情况下,必须清楚地区分。对于超过 2 万元的情况,运费为 0 元,否则运费为 3000 元。这两种情况必须明确区分。不是购买超过 2 万元的人和购买少于 2 万元的人,而是购买超过 2 万元的人和其他情况。必须清楚地区分。
Attendees 1 26:27
그 말이나 그 말이나 뭔 차이가 있지라고 생각하지 마시고 그거 확실하게 로직이 다릅니다.
2만 원 초과인 것과 2만 원 초과가 아닌 겁니다. 낫입니다.
낫 확실하게 구분해 주셔야 됩니다. 그런 것들 그래서 예스 노 이렇게 로직 이렇게 해서 하는 걸로 돼 있습니다.
그다음에 이거는 간단하게 점수가 얼마 이상이면 합격이고 아니면은 합격이 아닌 거 합격이 아닌 거죠.
합격이 아니면 불합격이네 이거 없습니다. 여기에 그렇죠 불합격이라는 그런 로직 없어요.
여기서만 보면은 그냥 합격이 아닌 상황일 뿐이에요.
저기 없는 거 자꾸 우리 일상적으로 하는 그런 관례에 의해서 자꾸 생각하고 만들어내지 마십시오.
프로그램 하는 사람들 초기에 그런 오류 많이 범합니다.
与会者 1 26:27 不要认为这些说法有什么区别,逻辑是不同的。是超过 2 万元还是不超过 2 万元。必须明确区分。这就是使用是/否逻辑的方式。然后,这是一个简单的及格分数线,超过某个分数就及格,否则就不及格。这里没有"不及格"这个逻辑。在这里,只是一个不及格的情况。不要总是按照日常惯例思考和创造。程序员初期常犯这种错误。
Attendees 1 27:30
자꾸 일상적인 그런 걸로 집어넣어서 예전에 런닝맨이었던 것 같은데 무슨 그 프로에서 음식 값을 두 사람이 나눠서 내는데 6만 원이 나와서 3만 원씩 내는데 한 친구가 한 사람한테 옆에 자기 친구한테 내가 만 원 더 낼게라고 했으면 두 사람이 각각 얼마씩 낼까요?
내가 만 원 더 낼게 3만 원씩 내면 되는데 한 사람이 내가 만 원 더 낼게 했어요.
그러면 4만 원 2만 원 내는 걸로 우리는 보통 생각해요.
일상적으로는 근데 4만 원 2만 원 내면 2만 원 더 내는 게 돼요.
그렇죠 1만 원 더 내기면 5천 원을 더 내면 돼요. 한 사람이 5천 원을 덜 내게 되고 그런 일상적으로 사용하는 말의 의미와 수학적으로 논리적으로 따지는 의미는 확실하게 다른 경우 많습니다.
그러니까 그거를 혼용해서 자꾸 생각하지 마세요.
参与者 1 27:30 总是把日常的东西塞进去,就像以前的 running man 节目一样,在节目中两个人一起支付 6 万韩元的饭费,每人 3 万韩元。如果一个朋友对另一个朋友说我再多付 1 万韩元,那么两个人各自会支付多少?通常我们会想,如果一个人说我再多付 1 万韩元,那就是 4 万韩元和 2 万韩元。但实际上,这样会导致多付 2 万韩元。对,如果多付 1 万韩元,实际上只需多付 5 千韩元。一个人会少付 5 千韩元。日常使用的语言意义和数学逻辑意义往往是完全不同的。所以不要混淆使用。
Attendees 1 28:34
그러니까 그렇다고 일상에서도 내가 만 원 더 낼게니까 5천 원만 더 내면 되네 뭐 이렇게 하면은 쪼잔한 사람 되니까 그거는 안 되겠지만은 여러분들 일할 때는 그러니까 이거 할 때는 이거대로 모드 전환을 확실하게 해 주면서 생각하셔야 됩니다.
멀티를 하셔야 돼요. 그래서 점수가 60 이상인 경우에는 합격이고 아닌 경우에 대해서는 지금 s 상황에 대해서는 아무런 조건이 명시가 안 돼 있습니다.
그죠? 그냥 없는 것뿐이에요. 그게 불합격인지 아니면은 재응시를 할 건지 아니면은 합격 대기를 할 건지 모릅니다.
그죠? 여러 가지 상황 그냥 s에 대한 상황이 없어요.
지금 노에 대한 노인 상황에 대해서 갈 길이 지금 정해져 있지가 않습니다.
参与者 1 28:34 所以,虽然在日常生活中不能计较得太小气,但在工作时,你必须要明确地转换模式并思考。你需要多模式思考。比如,在 60 分以上的情况下是合格的,而对于 S 情况,目前没有明确的条件。对吗?就只是没有。我们不知道这是不合格,还是需要重新申请,还是处于等待合格状态。对吗?现在对于 S 的情况,还没有确定的处理方式。
Attendees 1 29:38
요 빈칸 한번 채워봅시다. 그냥 제가 혼자 떠들면은 재미없으니까 빈칸 한번 채워봅시다.
근무 시간이 72시간 초과인 경우에는 초과 근무라고 얘기를 하고 아닌 경우에는 정상 근무라고 표현하게끔 그렇게 이제 근무 일지 같은 데 프린트가 되나 보죠 예 그런 걸로 지금 해놨습니다.
프린트 폰으로 여기는 LS 조건이 있으니까 그러면 여기에 들어갈 것과 여기에 들어갈 것이 각각 뭔지 보시면 됩니다.
순서도를 보고 이렇게 가는 거 당연히 이게 일반적인 과정이죠.
이제 순서도를 이렇게 쭉 어떤 프로그램 프로그램 어떻게 구성할까라는 거에 대해서 이제 순서 같은 걸로 쭉 만든 다음에 그다음에 그거를 이제 프로그램으로 여기는 유사 코드로 해놓긴 했지만 이거를 정식으로 정식 프로그램 짠 거라고 생각을 해봅시다.
그러면은 순서대로 보고 이렇게 가는 게 일반적이고 이거를 보고 이렇게 생각 이쪽은 우리가 생각을 하는 거죠.
이거를 보고 해석할 때 가는 길이죠.
参与者 1 29:38 让我们来填写这个空白。因为如果我一个人讲的话会很无聊,所以让我们一起来填写空白。如果工作时间超过 72 小时,就称之为加班,否则就称为正常工作。这样就可以在工作日志中打印出来。是的,就是这样。因为这里有 LS 条件,所以你可以看看这里和这里分别会是什么。看流程图,然后这样进行,当然这是一个普通的过程。现在我们按照流程图来规划程序,如何构建程序,然后将其制作成伪代码,但现在我们可以认为这是一个正式的程序。那么按照顺序来看是很常见的,这是我们思考的方式。这是解读时的路径。
Attendees 1 30:56
그리고 이거는 프로그래밍 할 때 가는 길이고 그렇죠
参与者 1 30:56 然后这是编程时的路径,对吧
Attendees 1 31:04
그런 식으로 좀 순서도를 잘 활용을 하시는 것도 좋습니다.
순서도가 좀 복잡한 프로그램에 요즘 사실 요즘같이 막 프로그램 용량이 크고 기능도 많고 복잡한 경우에는 순서도가 조금 이렇게 껄떡댈 만한 부분이 많이 없어 보이기도 한데 그래도 그건 이제 저기 응용 소프트웨어 쪽으로는 가면 그런데 여러분들이 하는 분야 쪽에서는 순차 구조로 이루어지는 프로그래밍이 많이 많이 만들어지기 때문에 순서도를 따지는 게 꽤 많이 아직 그래도 도움이 될 겁니다.
이거 이거 마무리하고 가야지 시간 워크 시간
参与者 1 31:04 以这种方式好好利用流程图也很好。流程图在现在这种程序规模大、功能多且复杂的情况下,看起来似乎没有太多需要改进的地方,但即便如此,在您们从事的领域中,仍有很多顺序结构的编程,因此绘制流程图仍然会很有帮助。这个话题就到此为止,接下来是工作时间。
Attendees 1 31:56
워크 시간
参与者 1 31:56 工作时间
Attendees 1 32:01
이 72시간보다 큰 경우 와 적은 경우로 이렇게 여기다 이걸 써주면 되겠죠.
조건을 달아주면 되겠죠. 그래서 이렇게 오면은 예 쓰면은 여기가 초과 근무가 될 거고요.
그렇죠 여기는 정상금으로 될 겁니다. 정상 근무라는 거는 이제 근무 시간 근데 이것도 좀 오류가 있죠.
사실 72시간 보다 크지 않은 정상 근무다. 1시간 근무해도 정상 근무라고 하는 그런 꼴이 돼버리죠.
이것만 보면은 그렇죠 예 오류가 있긴 있어요. 그렇죠 말이 안 되는 오류가 있어요.
예 그러니까 여기 사실은 시간은 72라는 조건이 붙어야 정상 근무를 하는 게 맞겠죠.
좀 더 정확하겠죠. 그리고 72시간 미만인 경우 70일간을 채우지 못했으면은 그거는 뭔가 다른 뭔가로 또 로직이 필요하겠죠.
하여튼 뭐가 필요하겠죠 근무 시간을 채우지 못하는 거에 대한 뭔가 뭐가 있어야 따로 별도의 뭔가 또 플로우가 있어야겠죠.
与会者 1 32:01 如果超过 72 小时或少于 72 小时,我们可以这样写。添加一个条件。那么当这种情况发生时,它就会成为加班,对吧。这里将是正常工资。所谓正常工作时间,但这里也有一些错误。事实上,不一定超过 72 小时就是正常工作。即使工作 1 小时也会被称为正常工作。仅凭这一点来看是这样。是的,确实存在错误。是的,这是不合理的错误。是的,所以实际上,应该附加 72 小时这个条件,才能确定是正常工作。这样会更准确。如果在 70 天内未能完成工作时间,那么还需要其他逻辑。无论如何,对于未能完成工作时间,还需要有一些额外的流程。
Attendees 1 33:15
네 그러니까 여러분 그냥 이것만 보고 이렇게 가면은 뭐 그러네 하고 끝내지 말고 이런 것도 우리 한 번씩 생각 짚고 갑시다.
与会者 1 33:15 是的,大家不要仅仅看这一点就草草了事,我们还是要对这些问题进行一次思考和讨论。
Attendees 1 33:32
점수를 입력을 해서 홀수냐 짝수냐를 가르는 그런 프로그램입니다.
여기는 요거 요거를 이제 집어넣는데 이거 나누기 하는 거죠.
나누기 하는 겁니다.
参会者 1 33:32 输入分数来判断是奇数还是偶数的程序。在这里,我们现在放入这个,进行除法运算。就是做除法运算。
Attendees 1 33:57
그래서 0이 아니면은 홀수고 0이면 짝수다 이렇게 지금 했죠.
이거 이렇게 해도 됩니다. 이렇게 해도 되는데 x가 정수라고 했는데 이렇게 하면은 정수 값을 2로 나누고 이런 식으로 이제 프로세스 연산을 해야 돼요.
그렇게 할 게 아니라 어차피 x를 정수 x를 우리가 여기다가 10이든 100이든 입력을 하면은 200이든 300이든 1 2 3 이렇게 123 이렇게 입력을 하면은 이 x 값이 어차피 컴퓨터 내에 이진수로 들어갈 거예요.
그죠? 예 이진수로 들어갈 건데 이진수에서 10진수가 이진수로 바뀔 텐데 그 이진수를 홀트 싹수 구분하는 거는 맨 마지막 비2가 0이냐 1이냐만 보면 돼요.
그죠? 그렇게 프로그래밍 프로그램을 만들어서 맨 마지막 비트 x의 맨 첫 번째 비트 마지막 비트 이렇게 전체로 봤을 때 NSB 쪽이죠.
LSB 여기 그러니까 여기 x 제로라고 하고 여기 x n이라고 합시다.
参会者 1 33:57 所以如果不是 0 就是奇数,如果是 0 就是偶数。这样做也可以。但是如果 x 是整数,那就不应该这样做,而是要进行整数除以 2 的运算。实际上,无论我们输入 10、100、200、300 还是 1 2 3,x 值最终都会以二进制形式存储在计算机内部。在从十进制转换为二进制时,区分奇偶只需要看最后一位二进制位是 0 还是 1。所以可以编写一个程序,通过查看 x 的最低有效位(LSB)来判断奇偶性。
Attendees 1 35:13
mb2 요 맨 마지막 비트가 0이냐 1이냐만 보면은 짝순 조수인지 금방 나와요.
그죠? 그러면 연산 같은 거 할 필요가 없어요. 그죠?
그렇게 프로그램을 짜는 게 훨씬 더 효과적일 겁니다.
물론 이거는 이제 기본적인 우리 컴퓨터 시스템에서 쓸 게 아니라 그냥 어떤 그냥 다른 용도로 애플리케이션으로 쓸 것 같으면 이렇게 짤 수도 있겠지만은 여러분들은 컴퓨터 시스템에 c 같은 걸로 저게 홀수냐 짝수냐를 보고 그걸로 다른 용도 다른 데 사용을 할 거잖아요.
그냥 이게 이 숫자가 홀수인지 짝수인지만 아는 걸로 끝나는 그런 프로그램을 만들 일은 없으니까 여기 예시처럼 홀수인 경우에는 다른 용도로 쓸 거고 짝수인 경우에는 다른 용도로 쓰게 될 텐데 그럴 때 이렇게 쓰는 것도 하나의 방법이 될 겁니다.
물론 물론 이렇게 해도 됩니다. 이렇게 하면은 그냥 심플하긴 하죠.
이것도 복잡한 연산은 아니니까.
参会者 1 35:13 只要看最后一位是 0 还是 1,就能立刻知道是奇数还是偶数,对吧?这样就不需要进行其他运算了,对吧?这样编写程序会更加高效。当然,这不是用于基本的计算机系统,而是可能用于其他应用程序。但是你们在使用 C 语言等编程语言时,会根据数字是奇数还是偶数来进行其他用途。不会只是简单地判断数字的奇偶性。在这个例子中,对于奇数情况会有不同的用途,对于偶数情况也会有不同的用途。这是一种可行的方法。当然,这种方法也可以。这样确实更简单,因为不涉及复杂的运算。
Attendees 1 36:12
하지만 비트를 가지고 판단하는 것도 여러분들 그 인베딩 시스템 같은 거 할 때는 비트 단위 바이트 단위 가지고 뭔가 데이터를 분석을 하는 거 굉장히 흔하게 이루어지는 일입니다.
그래서 그런 쪽으로도 한 번씩 생각을 해보시기 바래요.
비트 단위로 움직인다는 거 우리가 컴퓨터에서 수를 입력해 하는 거는 우리 사람을 입력하는 거는 이렇게 식지수로 123이든 100이든 천이든 많이든 이렇게 입력을 할 텐데 어차피 인풋 돼서 딱 들어가는 순간 이 숫자는 이진수로 해서 들어갈 거기 때문에 그런 식으로 살펴보시는 것도 괜찮을 것 같아요.
이번에는 두 수 중에 누가 크냐 두수 중에 x가 크냐 그 질문에 대한 답을 쓰는 거죠.
이것도 사실은 문제가 좀 있어요. 같다는 조건에 대한 그게 없어요.
그렇죠. 이것만 놓고 보면은 x가 큰 경우에 x를 쓰고 그렇지 않은 경우에 y를 쓰는 건데 여기서 이 y에 해당되는 y를 프린트할 때에는 두 가지 상황을 다 프린트하죠.
参会者 1 36:12 但是在嵌入式系统等领域,使用位和字节进行数据分析是非常常见的。所以我希望你们也能这样思考。在计算机中,我们输入数字的方式是像我们人类那样,输入十进制的 123 或 100 或千或其他数字。但是一旦输入进去,这个数字就会转换为二进制。所以从这个角度来看也是可以的。这次是要回答两个数中哪个更大的问题,x 是否大于另一个数。这个问题实际上还有一些不足。缺少了相等的条件,对吧?单从这个角度看,如果 x 更大就打印 x,否则打印 y。但在打印 y 时,实际上会覆盖这两种情况。
Attendees 1 37:33
하나는 y가 x보다 큰 경우에도 프린트 할 거고 하나는 x와 y가 같을 경우도 프린트가 될 겁니다.
구분이 안 돼요. 이 프로그램 상에서는 그죠? 예 그거 그런 거 여러분들 꼭 생각을 하세요.
그래서 이 품었을 때는 LS 조건에 대해서 반드시 따지셔야 됩니다.
이게 지금 LS가 모든 상황을 다 포함하는 게 맞는지 저 등호가 존재하기 때문에 반드시 따기셔야 됩니다.
그냥 넘어가시면 안 돼요. 우리가 일상적으로 그냥 대화상으로 구두상으로 얘기할 때 x가 크면은 오른쪽에 놓고 x가 아니면은 왼쪽에 놔 이런 식으로 얘기를 하면은 보통은 생각을 할 때 y가 크면 왼쪽에 놓는 거구나 이렇게 생각을 할 텐데 로직에서는 그렇지가 않죠.
이 등호 조건에 대해서 반드시 고려를 해야 됩니다.
안 그러면은 프로그램이 돌다가 등오 조건이 발생하는 순간 엄청난 결과를 만들어낼 수가 있습니다.
아주아주 조심하셔야 됩니다. 다 방향 선택 구조라는 거에 대해서 얘기를 좀 할 겁니다.
出席者 1 37:33 一个是当 y 大于 x 时也会打印,另一个是当 x 和 y 相等时也会打印。在这个程序中无法区分,对吗?是的,这是你们必须要考虑的。因此,当使用这种方法时,必须严格考虑 LS 条件。这个等号是否包含所有情况,是必须要仔细考虑的。不能就这样略过。在我们日常对话中,如果 x 大就放在右边,x 不大就放在左边,通常会想象当 y 大时放在左边。但在逻辑中并非如此。必须考虑这个等号条件。否则,当程序运行到等号条件时,可能会产生极其严重的后果。必须非常小心。我们将讨论多向选择结构。
Attendees 1 38:49
아까 택배비 얘기한 거 그 상황인데 그거를 조금 더 구역을 이제 나눈 겁니다.
그래서 2만 원 이상이면 배송료 2만 원 미만이면은 배송료가 3천 원 5천 원, 10만 원 이상이면은 배송료 안 받는 걸로 그런 식으로 이제 구역을 좀 세분화해서 무료와 3천 원 5천 원 이런 식으로 했습니다.
2만 원과 10만 원을 기준으로 구역을 나눴죠. 이런 경우에는 이렇게 나눠질 겁니다.
그렇죠 그래서 10만 원이 넘어가면 10만 원이 넘어가면 저 등모가 없죠.
10만 1원 이상이 되는 상황입니다. 그렇죠 10만 원까지도 배송료를 지불해야 되는 거예요.
出席者 1 38:49 刚才谈到的快递费情况,现在将区域进行了细分。如果超过 2 万元,快递费是 2 万元;低于 2 万元,快递费是 3000 元或 5000 元;如果超过 10 万元,则不收取快递费,这样将区域进一步细分为免费和 3000 元、5000 元等。以 2 万元和 10 万元为标准划分区域。在这种情况下,区域将会这样划分。如果超过 10 万元,那就是 10 万 1 元及以上的情况。在 10 万元及以下仍需支付快递费。
Attendees 1 39:47
10만 원이 넘어가면 넘어서야 배송료를 무료 배송으로 받을 수 있고요.
10만 원과 2만 원 사이에 있으면은 여기 왜 갑자기 8천 원이 나오냐 이거 잘못 쓴 거겠죠 3천 원이겠죠.
3천 원을 배송료로 낼 거고 2만 원이 안 되게 이거 뭐야 이거 누가 잘못 써줬다 그렇죠 10만 원 2만 원인데 여기서 왜 동그라미가 5개나 있어?
네 하나가 없애야 되죠. 하나 없애시다. 2만 원 이하가 되면은 배송료는 5천 원으로 내는 걸로 이렇게 돼 있습니다.
이거 오타가 많네요. 좀 10만 원이고 10만 원 맞나 이거 10만 원 맞지
如果超过 10 万韩元,就可以获得免运费,而在 10 万韩元和 2 万韩元之间,为什么突然出现了 8 千韩元?这肯定是写错了,应该是 3 千韩元。需要支付 3 千韩元的运费,不到 2 万韩元,这是怎么回事?谁写错了?10 万韩元和 2 万韩元,这里为什么有 5 个圆圈?是的,应该删除一个。删除一个。如果低于 2 万韩元,运费为 5 千韩元。这里有很多错误。10 万韩元,对吗?这是 10 万韩元没错吧。
Attendees 1 40:48
책에 이렇게 써져 있나 내가 쓰는 거 잘못 썼나 아무튼 예 그래서 프로그램을 하면은 이렇게 될 겁니다.
이런 식으로 이프와 x 조건 이렇게 x 안에 또 이프 룸이 들어가 있는 이런 조건 여러분들이 저기 프로그램 기본적인 거는 다들 어느 정도 하실 테니까 한 번씩 그냥 보고 지나가면 될 것 같아요.
这是书上写的内容吗?我写的是不是有误?总之,是的,当我们编程时,就会是这样。这种 if 和 x 条件,x 里面又嵌套了 if 语句的条件。大家对程序的基本知识应该都有一定了解,所以只需要看一眼就可以了。
Attendees 1 41:27
플로우 순서도하고 프로그램이 돼 있는 거를 같이 놓고 이렇게 보시면은 여기 또 들어오는 게 네 하여튼 약간 좀 일관성이 좀 없긴 한데 그냥 그냥 보시기 바랍니다.
이것도 등록을 넣어놨어요.
与会者 1 41:27 如果将流程图和程序放在一起对比,这里还会有进入的部分。总之有点不太一致,但请您这样查看。这里也已经添加了登记。
Attendees 1 42:01
다른 거는 다른 데는 뭐 오타나 이거 없는 거 맞죠? 뭐 이렇게 간단한 거 쓰는데도 오타가 많네요.
그죠? 그리고 이렇게 해서 이제 배송료는 얼마다 이렇게 해서 최종 결과를 냈는데 여기서 이제 더 나가면은 그래서 결제할 돈을 결정을 할 거면은 여기에 이제 이렇게 와서 상품값하고 배송료를 합해서 결제는 얼마를 해라 이런 식으로 계속 이어서 프로그램이 진행이 되는 식으로 갈 수 있겠죠.
그러면은 이제 전체적으로 제가 결제를 해야 되는 구매자가 결제를 해야 되는 금액을 알려주는 그런 프로그램이 만들어질 수 있겠죠.
한번 보시면 되고 이거 같은 경우는 아까 앞에서 봤던 큰 소 구하는 거 그거에 대한 얘기를 다시 얘를 좀 더 구체적으로 해놓은 겁니다.
그래서 XY를 입력하고 x가 큰 경우면은 x를 그렇지 않은 경우는 y를 아까 말씀드린 대로 부모에 대한 지금 판단을 안 하고 있기 때문에 이 프로그램은 사실상 별로 좋은 프로그램은 아닙니다.
与会者 1 42:01 其他地方没有错别字吗?即使是这样简单的书写也有很多错别字,对吧?然后像这样计算出配送费是多少,得出最终结果。如果继续深入,那么要确定付款金额,可以像这样将商品价格和配送费相加,告诉购买者需要支付多少钱,程序可以这样继续推进。这样就可以制作出一个能告诉购买者需要支付总金额的程序。这个例子与之前看到的求较大数的情况类似,只是对之前的情况做了更具体的阐述。输入 XY 后,如果 x 大则选 x,否则选 y。但由于没有对父母进行判断,所以这个程序实际上并不是一个很好的程序。
Attendees 1 43:31
그렇죠 저게 의도한 거라면은 x만을 위주로 의도를 한 거라면은 그렇게 되겠는데 여기서 또 x만을 된 거라면 그렇게 되겠는데 그렇지 않은 경우는 좀 문제가 있는 예시죠.
그다음에 반복문 지금 선택론은 좀 봤고 이제 반복문 얘기를 좀 봅시다.
반복문은 여러분들 대표적으로 포문하고 파일문을 알고 있습니다.
여러분들 포문하고 파일문 어떨 때 선택해서 쓰는지 구분해서 쓰나요?
프로그램 할 때 기본적인 구조는 크게 다르지는 않아요.
그죠? 뭔가 하여튼 뱅글뱅글 돌려요. 반복적으로 포문 안에 있는 거 또는 파이문 안에 있는 거를 반복적으로 돌리는데 두 개를 어떻게 구분해서 구분 그러니까 두 개를 어떤 상황에서 꼭 이거를 쓴다 이런 거는 사실상 없어요.
지금 여러분들한테는 그거 별로 그렇게 중요하게 취급을 안 하긴 할 겁니다.
근데 이제 저 때는 저 때는 그게 좀 중요한 포인트 중에 하나였습니다.
如果这是你的意图,如果只关注 x,那就是这样;但如果不是这种情况,这就是一个有问题的例子。接下来让我们来谈谈循环。现在我们已经讨论了选择论,现在来聊聊循环。循环大家都知道主要有 for 循环和 while 循环。你们在编程时会区分什么时候使用 for 循环,什么时候使用 while 循环吗?程序的基本结构大致是相同的,对吧?总之就是不断地旋转,反复执行 for 循环或 while 循环中的内容。但实际上,没有绝对的情况必须使用某种循环。对于你们来说,这可能并不是很重要。但在我那个时候,这确实是一个重要的要点。
Attendees 1 44:45
왜냐하면은 그러니까 일반적으로 그냥 프로그램 할 때는 포문이나 화이문에 대한 차이를 별로 고려를 하지 않는데 여러분들이 임베드드 시스템 쪽으로 가면은 하드웨어하고 연동이 돼 프로그램이 밀접하게 하드웨어하고 연동이 되면은 허문하고 파일문의 성능 차이가 나타나는 구간이 생길 때가 있습니다.
그래서 그럴 때는 포문과 화해문 중 어떤 걸 써야 할지를 검토를 하는 경우가 있어요.
특히 예전에 여러분들 중에 혹시 들어본 적이 있는지 모르겠는데 포트란이라는 랭귀지가 있습니다.
수학 연산을 위주로 만들어지는 프로그램인데 예전에 나사 같은 데서 굉장히 많이 썼다고 해요.
우주선 막 쏴 올리고 할 때 아폴로 날아가 다니고 할 때 그거 같은 경우는 포문하고 화문하고 성능 차이가 굉장히 많이 나는 걸로 알려져 있습니다.
저도 사실 코트란을 이런 게 포트란이다라고 그냥 한번 보기만 했습니다.
为什么呢?通常在编程时,人们不太考虑 for 循环和 while 循环的区别。但是,当你们进入嵌入式系统领域,程序与硬件紧密结合时,for 循环和 while 循环的性能差异可能会变得明显。在这种情况下,需要考虑使用哪种循环。特别是,你们可能听说过 Fortran 这种编程语言。它主要用于数学运算,据说 NASA 等机构以前经常使用。在阿波罗号飞行等情况下,据说 for 循环和 while 循环之间存在巨大的性能差异。我本人只是粗略地看过 Fortran 是怎么回事。
Attendees 1 45:47
예 그래서 실제로 포트란을 할 줄은 모르는데 예전에 우리 학교 다닐 때 제가 학교 다닐 때는 포트런을 조금 했습니다.
조금 그냥 맛배기로 이런 게 포트런이다라고 저희도 이제 c 위주로 했었기 때문에 그래서 그런 경우는 이제 따지는데 포문하고 빨면 크게 두 가지 종류가 있을 겁니다.
이런 경우에 이제 우리가 반복문을 쓰게 되죠. 전체 학생 수가 있는데 평균을 구하는 작업이 있어 그러니까 30명의 학생 수의 값을 더하고 나누고 하는 거를 한꺼번에 30명 분을 이렇게 계속 반복해서 수행을 해야 되는 거죠.
그리고 천 명이라면 천 명을 해야 되는 건 당연한 거고 그렇죠 저런 경우에 이제 우리가 포문 같은 거 사실 여러분들 포문이나 파일문은 아니고 포문 같은 경우에 가장 초반에 접근하는 게 타이머일 겁니다.
出席者 1 45:47 是的,实际上我不懂 Fortran,但是在我上学的时候,我稍微学过一些 Fortran。只是简单地了解一下 Fortran 是什么,因为我们主要学习 C 语言。在这种情况下,我们现在会使用两种主要的循环。比如,当我们需要计算全部学生的平均分时,就需要对 30 名学生的分数进行累加和除法运算。如果是 1000 名学生,那也是同样的道理。在这种情况下,我们会使用 for 循环。事实上,对于初学者来说,最早接触的可能是定时器。
Attendees 1 46:49
타이머하고 그런 것들 그래서 시계 같은 것도 포문으로 간단하게 만들어지죠.
포문 안에 포문 포문은 이렇게 세 번 돌리고 하는 식으로 구성이 되죠.
톱니 바퀴 돌아가는 것 같은 게 포문 구조죠. 톱니바퀴 이렇게 서로 물리는 구조 루프라는 표현을 씁니다.
그렇죠 오프라는 표현도 쓰고 있고 그런 식으로 이제 포먼을 만들어서 사용을 하는데 파일문을 구조를 한번 보시죠.
파일문 같은 경우는 이런 구조를 가지고 있습니다.
조건을 해서 명령을 반복하는 이런 구조 예시니까 그냥 예시로 보시면 됩니다.
이게 여기도 엔드 파일이라고 돼 있는데 엔드만 쓸 때 쓰는 것도 있고 그냥 엔드 파일 하여튼 그냥 예시로 그러니까 전체적인 문맥 구조를 보시면 돼요.
이 명령어 하나하나는 지금 상세하게 보실 부분은 아닙니다.
그냥 예시니까 파일문 같은 경우는 이런 구조로 돼 있습니다.
기본적으로 포문하고 조금 다른 구조죠. 포문 같은 경우는 내가 돌리려는 횟수를 정해놓고 사용을 합니다.
出席者 1 46:49 定时器和类似的东西,所以像时钟这样的东西也可以简单地用 for 循环来制作。for 循环可以嵌套,比如循环三次。它的结构就像齿轮互相啮合一样,我们称之为循环结构。没错,我们也使用"op"这样的表达。那么我们来看看 file 循环的结构。file 循环的结构是这样的:通过条件来重复执行命令。这只是一个示例,请这样理解。这里有一个"end file",有时候只写"end"。总之,这只是一个示例,你可以查看整体的上下文结构。现在不需要详细查看每个命令。基本上,file 循环的结构与 for 循环有些不同。对于 for 循环,我们会预先设定要循环的次数。
Attendees 1 48:15
시계 같은 경우 60번 초 60번 분 60번 시간 시는 20 24번 이렇게 돌리죠.
허무는 정해놓고 돌립니다. 내가 몇 번을 돌릴 건지 정해놓고 사용하는 게 포문이고요.
파일문 같은 경우는 내가 몇 번을 돌릴 건지 정하지 않고 사용하는 경우에 5일문을 사용합니다.
정하지 않고 쓸 때도 있고 그리고 실제로 몇 번을 돌려야 될지도 아예 가늠조차도 안 되는 경우도 포문을 사용합니다.
다만 포문은 요거 어떤 조건이 되면은 반복해서 빠져나오게끔 하는 거죠.
예 그게 이제 포문하고 파문하고 차이죠. 물론 포문도 만들어 놓고 그 조건에 의해서 포문을 중단시키는 방법으로 할 수도 있어요.
그렇게 할 수도 있어요. 그러니까 그거는 포문하고 파일 문이 서로 이럴 때는 이거고 저럴 때는 저거고 이렇게 딱 명확하게 구분 지어지지는 않습니다.
对于像时钟这样的情况,我们会转 60 秒、60 分、60 小时,时针是 20 和 24。我们设定一个终点并转动。使用 for 循环时,是预先确定要转动的次数。而对于像文件循环这样的情况,当不确定要转动的次数时会使用 while 循环。有时候不预先设定,有时甚至无法估计需要转动的次数时,也会使用 for 循环。但是 for 循环是在某个条件下重复并退出的。这就是 for 循环和 while 循环的区别。当然,for 循环也可以通过设置条件来中断循环。因此,不能非常明确地区分这两种循环在什么情况下使用。
Attendees 1 49:21
예 파일문으로 프로그램 된 거를 폼으로 바꿀 수 있는 상황도 많고 반대인 상황도 많고 그러니까 그렇긴 하지만 기본적으로 이제 특성 성격이 그렇게 이제 돼 있으니까 이런 조건에서는 파일문을 쓰고 저런 조건에서는 포문을 쓰는 이런 식으로 일단은 선택을 합니다.
그래서 이렇게 루프는 이런 식으로 어떤 조건이 되면 조건일 때 계속 돌리고 조건이 만족하지 않는 경우는 반복해서 빠져나오는 식으로 요거 물론 요게 바뀔 수는 있죠.
이게 참이고 이게 거짓일 수도 있고요. 그거는 프로그램 그 조건을 어떻게 만들어 주느냐의 선택이니까 환영합니다를 다섯 번 프린트해 주는 그런 간단한 포문입니다.
말씀드린 대로 포문이 아니고 파일 문입니다. 말씀드린 대로 이거 같은 경우
是的,很多情况下可以将用 while 循环编写的程序转换为 for 循环,反之亦然。但基本上,根据其基本特性,我们会在某些条件下选择使用 while 循环,在另一些条件下选择使用 for 循环。因此,循环是这样工作的:当满足某个条件时继续运行,不满足条件时退出循环。当然,这个条件可以是真或假。这取决于如何设置条件。这是一个简单的 for 循环,打印"欢迎"五次。如我之前所说,这实际上是一个 while 循环。
Attendees 1 50:25
이거 포문으로 바꿔도 그대로 문제가 없죠. 예 문제가 없습니다.
여기 이거 같은 경우는 사실 다섯 번이 안 되기 전에 여기서 빠져나오는 그런 구조가 있어야 파일 문에 특성을 이용하게 되는 그런 상황이 되는데 어쨌든 이렇게도 파문을 사용을 하니까요.
파문이든 포문이든 문제는 없습니다. 이때까지 안 쓰다가 굳이 여기서는 또 이걸 해줬어요.
그렇죠 각 반드시 초기화 넣어줘야 됩니다. 아는 서운대 변수죠.
여기서는 반드시 0 값을 넣어서 초기화를 시켜준 겁니다.
听众 1 50:25 这个用 for 循环也没有问题。对,没问题。在这种情况下,实际上在达到五次之前就需要退出的结构,这样才能利用文件的特性。无论如何,既然使用了 for 循环,那就没问题。到目前为止没有使用,但在这里还是使用了。对吧,必须要进行初始化。这是已知的变量。在这里必须将值初始化为 0。
Attendees 1 51:18
저거 실행하면은 이제 저렇게 프린트가 다섯 번 되겠죠.
그리고 끝날 겁니다. 이거 천 번 수행하려면은 그냥 이것만 갖다 주면 되죠.
그죠? 이거는 뭐 별로 뭐 저기하지 않고 요거 같은 경우에 이제 이런 경우에 문제가 되는 게 이거 소리 저기서 나는 건가 하는 소리 나 저런 소리 소리 되게 좀 예민하게 반응해 갖고 호물도 그렇고 파문도 그렇지만은 뭔가 상황이 잘못되면 무한 반복된다는 거 이거 굉장히 조심해야 되죠.
그래서 반복문 쓸 때 가장 주의해야 될 거는 사실 이거죠.
무한 반복시키는 거 물론 의도해서 무한 반복을 사용하기도 합니다.
특히 파라문 같은 경우는 무한 그러니까 그냥 대기 상태 어떤 대기 상태 어떤 입력을 대기한다든가 할 때 대기 상태로 만들 때 파일문을 무한 루프를 계속 돌리죠.
听众 1 51:18 执行后,打印会进行五次,然后就结束了。如果要执行一千次,只需要这样就可以。对吗?这种情况下没什么特别的。关键是要小心可能出现的无限循环问题。例如在声音检测或其他场景中,如果情况处理不当,可能会无限循环,这是非常需要注意的。使用循环时最需要注意的就是避免无限循环。当然,有时也会 intentionally 使用无限循环。特别是像 while 循环这样的,常常用于等待状态,比如等待某些输入时会持续保持循环。
Attendees 1 52:42
돌리다가 이제 어떤 특정 값이 입력이 들어오면은 그때 파일 노트에서 빠지는 식으로 그런 식으로 이제 프로그램을 사용 활용을 하는데 그런 거 그런 의도해서 이제 무한 루프를 돌리는 거는 얼마든지 쓸 수 있는데 프로그램을 잘못 프로그래밍을 하면서 해서 함으로써 무한 루프 들어가는 거 이건 되게 조심해야 되죠.
그래서 항상 포문이나 파일문 같은 거 작성을 하고 나면은
与会者 1 52:42 在进行循环时,当输入特定值时,就会从文件记录中移除,以这种方式使用和利用程序。这样,可以随时使用无限循环,但在编程时要特别小心地进入无限循环。因此,在编写 for 循环或文件循环等后,总是要注意
Attendees 2 53:12
그 부분만 따로 이렇게 딱
与会者 2 53:12 那部分单独这样地
Attendees 1 53:14
한번 실행을 해보고 무한 루프 상황이 발생하는 경우가 있나 없나를 확인을 한 다음에 발생하는 상황이 없다 싶으면은 이제 본 프로그램 안에 집어넣어서 전체적으로 돌리는 그런 기본 테스트 작업을 종종 합니다.
이제 물론 이건 이런 거 가지고 할 필요 없겠지만 그 프로그램이 굉장히 길어지고 이 사이사이에 여러 가지 뭔가 이렇게 외부에서 들어오는 데이터들이 뭔가 많이 들어오는 그런 좀 복잡한 프로그램인 경우는 소문하고 파일 문을 별도로 테스트하는 작업을 거치고 반드시 거치게 거치곤 합니다.
굉장히 중요하죠. 안 그러면 시스템 전체가 무한 노프에 빠져들어가서 전원을 껐다 켜지 않는 한은 되돌아오지 못하는 그런 강을 건너가는 경우가 있죠.
그래서 그런 부분들을 좀 조심해서 지금 여러분들 아직은 프로그램이 복잡도가 그렇게 높지가 않아가지고 무한 혹시라도 무한으로 들어가면은 그냥 네 그냥 그러고 말아버릴 수는 있겠지만 그런 거 하나하나 되게 새기셔야 됩니다.
参会人员 1 53:14 先执行一次,看看是否会出现无限循环的情况,如果确定没有发生这种情况,就将其放入主程序中整体运行,这是基本的测试工作。当然,对于这种简单的情况可能不需要这样做,但对于非常复杂的程序,特别是有大量外部数据输入的情况,通常会单独测试文件和模块,这是非常重要的。否则,整个系统可能会陷入无限循环,除非关闭电源否则无法恢复。因此,要非常小心这些细节。现在你们的程序复杂度还不高,即使陷入无限循环也可以忽略,但这些细节是值得认真对待的。
Attendees 1 54:33
본인이 뭔가 할 때 뭔가 실수가 일어나면은 이런 부분을 내가 실수했구나라는 거를 굉장히 새기셔야 돼요.
그냥 잘못 썼네 그냥 그러고 넘어가 그냥 가볍게 하고 넘어가실 일이 아닙니다.
지금 여러분들이 경험하시는 그거 하나하나가 굉장히 소중합니다.
그거 되게 소중하게 생각하셔야 돼요. 잘된 거든 잘못된 거든 굉장히 소중하게 생각하셔야 됩니다.
그게 나중에 그걸로 인해서 나중에 한 번이라도 실수를 덜 하게 된다면은 그 효과는 엄청날 겁니다.
1부터 9까지 0부터 9까지 프로그램 하는 거 이렇게 간단하게 이런 식으로 이런 거를 파일문으로 사실 써져 있으니까 되게 어색해요.
제가 볼 때는 이런 거는 파일문을 잘 안 쓰니까 이런 거 해요.
파일문으로 예시를 들어놓으니까 되게 어색합니다.
저는 보기에 하여튼 뭐 전혀 문제는 없습니다. 이렇게 한다고 해서 0부터 9까지 차례대로 프린트를 할 겁니다.
이거는 더하는 겁니다. 저 빈칸 한번 뭐 들어가는지 한번 채워보세요.
参会人员 1 54:33 当你做某事出现错误时,必须认真记住这一点。不要轻易地说"哦,我错了"就过去。你现在经历的每一件事都非常宝贵,要珍惜这些经历。无论是成功还是失败,都要认真对待。如果因此减少一次错误,那么效果将是巨大的。关于 0 到 9 的程序,因为文件示例已经写好,看起来有点生硬。我认为是因为不太常用文件方式,所以看起来很 awkward。对我来说,这完全没问题。这样做会依次打印 0 到 9。这是在累加。请尝试填写那个空白处。
Attendees 1 55:55
우리 빈칸 채우기 생각하면서 출석 체크합시다.
出席者 1 55:55 让我们在填空的同时进行签到。
Attendees 1 56:47
미리 4월 2
出席者 1 56:47 提前 4 月 2 日
Attendees 1 56:57
이 시간은
与会者 1 56:57 这段时间
Attendees 1 57:08
785번입니다.
与会者 1 57:08 785 号。
Attendees 1 57:37
출석하는 거
第 1 位出席者 57:37
Attendees 1 57:45
785번입니다.
第 1 位出席者 57:45 785 号
Attendees 1 58:06
제가 여러분들한테 NVIDIA 그거 보여드렸나요?
그 영상 로보트 로봇 쪽에 관심 있으신 분들은 그쪽 한번 또 살펴보세요.
NVIDIA가 로봇 프로세싱 쪽으로 또 본격적으로 한다고 하니까 지금 우리나라도 지금 로봇 쪽으로 많이 하고 있죠.
더군다나 현대 현대자동차가 그쪽으로 또 관심을 많이 가지고 있으니까 보여드렸죠.
보스톤 다이나믹스 그렇죠 네 거기 걔네들 로보 트 만든 거 보면 그거 이제 아마 현대자동차에서 자동차 생산에 본격적으로 조만간 투입을 할 것 같은데
我给大家展示过 NVIDIA 的那个视频吗?对于对机器人领域感兴趣的人来说,可以再看一看。NVIDIA 正在全面进军机器人处理领域,现在我们国家也在大力发展机器人技术。尤其是现代汽车也非常关注这个领域,所以我给你们展示过。波士顿动力公司,没错,他们制作的机器人,预计现代汽车很快就会在汽车生产中正式使用这些技术。
Attendees 1 59:00
그런 거 여러분 로봇 쪽에 관심 있으신 분들은 그런 거를 만드실 겁니다.
그러니까
对于对机器人领域感兴趣的人来说,你们将会制造这样的机器人。所以说。
Attendees 1 59:13
모터 제어 모터 제어 로보트 관절이 다 모터로 구성이 되죠.
모터 제어하는 거 뭐 이런 거 그리고 로봇이 작동하는 데는 여러분들 임베딩 시스템이 많이 들어갈 텐데 저도 잘 모르고 여러분들한테 얘기하니까 좀 약간 좀 거시긴 한데 그냥 제가 아는 범위 내에서는 로봇이 특히 실시간으로 제어를 해야 되잖아요.
갑자기 앞에 뭔가 물체가 나타나면은 바로 사람처럼 바로 반응을 해야 되니까 그런 센싱하고 빠르게 제어하고 하는 그게 OS나 이런 게 우리 윈도우 같은 OS로는 그거 절대 못합니다.
그런 OS가 따로 있어요. 그런 빠른 반응을 하게끔 그런 거 하려면은 프로그램도 기계를 직접적으로 다뤄야 되는 상황도 생길 겁니다.
그런 것들 한 번씩 보시면은 로봇이야 오래전부터 사실은 아주아주 옛날부터 많은 관심을 받았던 분야니까 그럼에도 불구하고 사실은 그동안 발전이 별로 더뎠죠.
근데 이제 요즘 최근 들어서 굉장히 많이 투자도 많이 되고 있고 빠르게 또 발전하는 부분 중에 하나죠.
与会者 1 59:13 电机控制 电机控制 机器人关节都是由电机组成的。控制电机之类的,然后机器人运行需要大量嵌入式系统,我自己也不太了解,跟你们讲有点勉强,但我就在我所知范围内说。机器人尤其需要实时控制。突然出现物体时,必须像人一样立即反应,这需要传感和快速控制,而普通的 Windows 操作系统绝对无法做到。有专门的操作系统。为了实现这种快速响应,程序有时也需要直接操作机器。尽管机器人从很早以前就备受关注,但发展其实一直很缓慢。然而现在,投资很大,发展也非常迅速。
Attendees 1 1:00:42
배터리 문제도 심각했었고 지금은 이제 배터리 문제도 많이 점점 해소가 돼 가고 있으니까 로버트 기껏 만들어놓고 한 10분 정도밖에 못 쓴다 그러면 그거 별로 쓸 필요 없죠.
그렇죠 출동 준비하고 문 앞에 딱 나가면은 배터리 다 돼서 멈춰 서버릴 테니까 그런 거는 뭐 의미가 없죠.
지금은 대략 전투 로봇 같은 경우도 한 2시간에서 한 서너 시간까지도 임무 수행을 하는 것 같더라고요.
기본적으로 진짜 사람이 터미네이터하고 싸울 일이 생길지도 모르겠어 여기 뭐 채워 넣을 거 한 번씩 채워보시면 될 것 같습니다.
이런 것들 있고요.
与会者 1 1:00:42 电池问题过去也很严重,现在电池问题正在逐渐解决。如果机器人造出来后只能使用 10 分钟,那就没什么用。出发准备好后,电池刚好用完就停在门口,这显然没有意义。现在战斗机器人大约可以执行 2-3 小时的任务。基本上,也许真的会有人与终结者作战,你可以尝试填充一些内容。
Attendees 1 1:01:47
그다음에 369 게임 하는 거 예 여기는 369 게임이 아니고 369 게임 프로그램은 아니고 유사입니다.
그냥 단순히 그냥 3회 배수만 지금 하는 거 그죠 선진국 게임은 3회 배수를 하는 게임은 아니죠.
여기는 그냥 간단하게 369 게임의 룰대로 프로그램을 이제 하면은 좀 예시가 길어지니까 그냥 간단하게 3의 배수만 예시를 했어요.
이런 식으로
接下来是 369 游戏,是的,这里不是 369 游戏,也不是 369 游戏程序,而是类似的。就是简单地处理 3 的倍数,对吧?发达国家的游戏不是处理 3 的倍数的游戏。这里是按照 369 游戏的规则简单地编写程序,因为例子可能会很长,所以我只是简单地举了 3 的倍数的例子。就是这样。
Attendees 1 1:02:27
프린트 아이 여기서 띄어쓰기가 돼 있는데 간단하게 그냥 예시를 한 겁니다.
1에서부터 여기 i가 0이 아니고 1서부터 시작을 하죠.
그죠 초기 값을 1로 넣었어요. 0으로 넣지 않고 보통 일반적으로 0으로 많이 쓰는데 이제 여기는 2부터 썼습니다.
그래서 1부터 100까지 등호가 있으니까 배까지 해서 3으로 나누서 나눠 떨어지면은 3의 배수인 걸로 그렇게 하는 식으로 해서 아는 계속 증가시키면서 이렇게 여기서부터 여기까지 지금 포문을 계속 돌리고 있는 거죠.
저기 파일 문을 파이문을 예를 들어서 하는 거예요.
이게 사실은 이대로 그냥 포를 써도 아무 문제가 없죠.
그렇게 해놨고요. 이거는 지금 간단한 예를 자꾸 들면서 그냥 반복적으로 보여주는 거니까 그냥 그냥 가볍게 보시면 될 것 같습니다.
지각하게 안 보셔도 될 것 같아요. 그렇죠 그냥 반복으로 자꾸 보면서 그냥 익숙해지자는 거니까 팩토리얼 계산하는 이 프로그램에 대한 겁니다.
팩토리얼
打印我,这里有空格,只是简单举个例子。从 1 开始,这里的 i 不是从 0 开始,而是从 1 开始。对吧?初始值设为 1。通常我们常常使用 0,但这里用了 2。所以从 1 到 100,因为有等号,所以到这个数为止,如果能被 3 整除,就认为是 3 的倍数。就这样通过不断增加来遍历。这里以 Python 为例。事实上,直接使用 for 循环也没有问题。这只是一个简单的反复举例,所以可以轻松看待。不需要过于在意。就是通过反复观察来熟悉这个阶乘计算程序。阶乘。
Attendees 1 1:03:55
여기가 왜 일이 있냐 그죠? 또 오타가 좀 많네요. i가 돼야 되는데 맞죠?
그렇죠 1이면 안 되죠.
与会者 1 1:03:55 这里为什么会有问题呢?还有很多拼写错误。应该是 i 对吗?是的,如果是 1 就不对了。
Attendees 1 1:04:15
예. 왜 이게 뭐가 많지 하여튼 예
与会者 1 1:04:15 是的。这是为什么会有这么多问题,总之是的。
Attendees 1 1:04:23
진짜 이거 설렁설렁 보고 지나갔었나 보네. 지난번에 오다가 지금 지금 하나씩 보다 보니까 더 많네요.
하여튼 예 이렇게 해서 이렇게 뱅글뱅글 이것도 돌리는 식으로 그렇게 돼 있습니다.
반복문 반복문은 많이 쓰는 구이니까 여러분들 이제 이거는 이제 집을 청소하는 그런 이제 집에 방이 한 10개쯤 되나 봐요.
방이 한 10개쯤 되는 것 같은데, 그 10개의 방을 청소하는 순차적으로 청소하는 그런 구조를 해놨습니다.
반복문 여기서부터 요까지로 지금 돌리고 있죠. 돌리고 있고 어떤 조건에 해당이 되면은 이제 빠져나갈 겁니다.
与会者 1 1:04:23 原来是这样轻描淡写地看过去了。上次来的时候,现在一点一点看,发现还挺多的。总之,是这样,像这样转来转去地旋转。重复语句是经常使用的,所以大家现在就像在打扫房子一样。好像房子有 10 个房间左右。看起来有大约 10 个房间,我们按顺序打扫这 10 个房间。从这里到那里现在正在运行。正在运行,如果符合某些条件,就会退出。
Attendees 1 1:05:18
그래서 10번째 방이 되면은 빠져나가는 방 그리고 여기서 보면은 방은 그냥 방의 위치나 이런 거는 어떻게 돼 있는지 모르겠고 그냥 방 번호 순서대로 지금 청소를 하게끔 그렇게 돼 있죠.
사실 방이 0번 방부터 0번 방부터 10번 방까지 10이니까 9번 방까지 이렇게 방이 있는 게 방이 순서대로 있어서 순서대로 하나씩 하나씩 청소해 가면은 가는 거면 가는 건데, 만약에 방 번호하고 방 순서가 일치하지 다르게 막 돼 있다 그러면은 방을 왔다 갔다 하면서 청소를 하겠죠.
여기저기를 그렇게 돼 있기는 한데, 그러니까 여러분들 만약에 이거를 사람 이거 사람 이렇게 그림을 사람처럼 사람으로 해놨는데 로보트가 저 방청소를 시킨다 로보트한테 그러면 저기에 방 위치 정보가 들어가야겠죠.
그죠 그래서 방 넘버링을 오더링을 어떻게 가져갈 거냐 이런 것도 사실 알고리즘에 포함이 돼야 됩니다.
与会者 1 1:05:18 所以当到第 10 个房间时就退出,从这里看,房间的位置或其他信息我不太清楚,就是按照房间号码顺序进行清扫。事实上,房间从 0 号房开始,一直到 10 号房,也就是 9 号房,房间是按顺序排列的,所以逐一逐个清扫。但如果房间号和房间顺序不一致,那么在清扫过程中就会来回走动。虽然是这样,但如果你把这个比作人,就像人在清扫一样,如果让机器人来清扫,那么就需要有房间位置信息。对吧?所以房间编号和顺序如何安排,这也是算法中应该包含的内容。
Attendees 1 1:06:34
물론 그건 딱 한 번 처음에 설정해 놓으면은 그걸로 계속 쓰면 되니까 설정하기 저기지만은 이런 간단한 예시이긴 한데 여러 가지 상황을 좀 한번 생각을 그냥 해보는 겁니다.
보고서 이런 것들도 필요하지 않겠나 제가 지금 말씀드린 거 외에도 더 필요한 거 무지하게 많겠지만 청소기에 들어가는 알고리즘도 사실 만만치 않죠 예 만만치 않습니다.
그것도 간단한 알고리즘 아니에요. 그냥 왔다 갔다 하면서 먼지 빨아들이는 거 그렇게 쉽게 생각할 일 아닙니다.
요즘 청소기도 많이 스마트해져 진짜 말 그대로 스마트해져가지고 경로 알고리즘 많이 들어갑니다.
当然,只要一开始设置好,就可以一直使用,虽然这是一个简单的例子,但我们要考虑各种情况。除了我现在提到的,报告等可能还需要更多内容。事实上,吸尘器中的算法也并不简单。仅仅来回移动吸灰尘并不像看起来那么容易。现在的吸尘器变得越来越智能,真的很智能,已经加入了很多路径算法。
Attendees 1 1:07:18
경로 탐색 알고리즘 그리고 청소기가 경로를 파악하는 방법에 대한 알고리즘도 여러 가지가 있고 그다음에 그냥 단순한 거리 센서 같은 걸로 경로를 탐색할 수도 있는데 지금은 잘 없는 걸로 알고 있는데 그러니까 대형 사무실 같은 데는 카메라 설치해 놓고 카메라가 방 구조를 스캔을 하고 거기에 맞게 저기 청소기가 움직이는 경로를 설정을 하고 그다음에 경로에 따라서 움직이다 보면은 몇 번 청소를 해보면은 그 구조 내에서 특히 더러움이 오염이 많이 발생하는 구역들이 나오죠.
그거는 이제 안에 또 오염 센서 같은 걸로 감지를 할 텐데 그렇게 되면은 구역은 특히 한 번 더 간다든가 그런 구석 같은 데 어떤 오염도가 좀 자주 발생하는 거 그 데이터가 좀 쌓여야겠죠.
그래서 그런 것들을 거기는 한 번 더 청소를 한다든가 이런 식으로 이제 프로그램이 만들어집니다.
路径搜索算法,以及吸尘器如何确定路径的算法有很多种。可以通过简单的距离传感器来探测路径,不过据我所知现在还不太普遍。比如在大型办公室,会安装摄像头扫描房间结构,然后根据扫描结果设置吸尘器的移动路径。随着多次清洁,会发现房间内某些区域污染程度更高。这可以通过内部污染传感器来检测。当积累了这些数据后,程序会对这些污染频繁的区域进行额外清洁,比如多清扫一次。
Attendees 1 1:08:25
저기 청소기 알고리즘도 그렇게 대충 그냥 마구잡이로 랜덤하게 돌아다니면서 하는 식으로 하는 시대는 그건 옛날 얘기고 점점 많이 좋아지고 있죠.
그 경로 알고리즘 그게 내비게이션 자동차 경로 찾아가는 알고리즘 내비게이션 가지고 여러분들 출발지와 목적지 딱 찍으면은 경로 이렇게 막 하잖아요.
교통 정보 어쩌고저쩌고 하면서 거기에 준하는 알고리즘을 사용합니다.
그래서 청소 알고리즘도 경로 알고리즘도 사실은 굉장히 많이 고민들 하고 많은 사람들이 고민하고 연구하고 그게 이제 자율주행 그다음에 그런 쪽으로 다 가는 거니까 어차피
参会者 1 1:08:25 现在已经不是过去那种扫地机器人随机乱转的时代了,算法正变得越来越好。就像导航汽车的路径算法,当你输入起点和终点时,它会规划路线,并考虑交通信息等因素。事实上,清洁机器人的路径算法和导航算法都是很多人深入研究的领域,这最终都是朝着自动驾驶等方向发展的。
Attendees 1 1:09:14
이런 것들 게이트 차가 들어오면은 하는 거 이거 예전에 한 몇 년 전에 몇 년 됐나 꽤 됐네요.
생각해 보니까 한 10년 가까이 된 것 같은데 자동차 무인 주차 시스템 그거 한번 같이 어떤 회사 분들하고 같이 한 적이 있었는데 자동차 주차장 거기는 이제 외부 주차장이었는데 모서리마다 기둥을 박아서 거기에 카메라 설치하고 센서 설치해서 카메라에서 자동차 다 이렇게 감지하고 입출되는 자동차 번호판 인식하고 자동 과금 시스템 자동 과금 시스템 연동하려면은 번호판 인식에 대한 정보가 들어와야 되니까 그게 또 경찰청하고 연결이 돼야 됩니다.
하여튼 그런 것들 복잡하게 있어요. 그런 거 그런 것도 해보면 되게 재미있어요.
실제로 해보면은 클라우드 회원 정보하고 경찰청의 자동차 넘버 개인 정보 받아야 되니까 법적으로 또 해결해야 되고 어쩌고저쩌고 할 게 많습니다.
간단하지 않아요 엘리베이터 얘기
参会者 1 1:09:14 这种技术,比如车辆进入时的系统,大概是十年前就开始的。我曾经和某些公司一起研究过无人停车系统。那是一个露天停车场,在每个角落都安装了支柱,上面安装摄像头和传感器,通过摄像头检测车辆,识别进出车辆的车牌,并连接自动收费系统。为了实现自动收费,还需要与警察厅的系统连接。这些系统其实很复杂,要涉及云会员信息、个人信息等,在法律上也需要解决很多问题。并不是一件简单的事。
Attendees 1 1:10:45
이건 여기까지 다 해야 되는데 뭐가 이렇게 너무 천천히 했나 별로 천천히 한 것 같진 않은데 다음 시간에 합시다.
우리 저기 다음 시간이 저거지 저거 해야 되잖아. 그렇죠 시험 봐야 되잖아.
그 공지한 대로 저기 저쪽인가 회화관이 저쪽 회화관에서 볼 겁니다.
거기 가시면은 좌석이 한 150석 정도 되는데 그러니까 이렇게 간격도 널찍널찍하고 그러니까 충분히 한 칸씩 앉으시고 뒤쪽에 앉지 마세요.
앞쪽으로만 앉으세요. 거기 한 1대 줄 되는데 앞에 앞에서부터 한 10번째 줄 정도까지 하면은 여기 70명 인원 다 앉을 수 있으니까 뒤쪽에 앉지 말고 앞쪽으로만 앉으시고 시험 시간은 우리 여기 강의 시간 그대로 그냥 하겠습니다.
근데 강의실을 아주 충분한 시간으로 해놨으니까 편하게 그 시간 동안 미리 와서 보시든가 아니면 시험 끝나고도 계속 그 자리에서 책을 보셔도 괜찮을 것 같아요.
与会人员 1 1:10:45 这些都应该完成,但为什么感觉进度这么慢?我觉得并不是特别慢。我们下次再继续吧。我们下次要做那个,对吧?我们还要考试。按照通知,我们将在那边的会话馆考试。如果你去那里,座位大约有 150 个,所以座位间隔很宽敞,你们可以每人间隔一个座位坐。不要坐在后排,请坐在前排。那里大约有一排,从前面数 10 排左右,70 名学生都可以坐下,所以不要坐在后排,只坐在前排。考试时间将与我们的授课时间保持一致。考场时间很充裕,你们可以提前到达,或者考试结束后继续在座位上看书。
Attendees 1 1:11:53
1시간 반 정도의 시험을 치를 수 있게 문제를 좀 그 정도 적당선에서 할 테니까 한 달 남짓 강의를 보셔서 아시겠지만은 뭐 이렇게 외워서 쓰고 이런 거는 뭐 할 내용도 별로 없어요.
그렇죠 그러니까 여러분들 세탁소 과제 낸 거 그런 식으로 풀이하는 그런 내용들하고 그냥 몇 가지 그냥 점수용으로 시험이라는 그래도 시험을 봤으면 뭔가 결과 점수가 나와야 되니까 그런 질문들 하고 여기서 뭐 어렵지 않게 그냥 가벼운 마음으로 준비를 하시면 될 것 같습니다.
펜 하고 들고 오셔갖고 가벼운 마음으로 시험을 하시면 될 것 같아요.
저기 공지 사항에 있는 것처럼 해놨으니까 질문 있으시면 질문 따로 하시고 그럼 월요일 날 시험 보고 수요일 강의는 하지 않겠습니다.
시험 기간에 다른 것들 여러분들 하실 거 많을 테니까 더군다나 여기 지금 2 3 4학년들이라서 다음 시간에 시험 보고 합시다.
与会人员 1 1:11:53 我将出一套大约 1.5 小时的考试试卷,考虑到你们已经听了一个多月的课,我不会让你们死记硬背。关于洗衣店作业的解题方式,这只是几个得分性质的问题。既然是考试,就应该有成绩,所以会有一些问题。你们可以轻松地准备,拿着笔轻松应对考试。按照通知的内容进行,如果有问题可以单独询问。我们将在周一考试,周三不上课。考试期间你们可能还有很多其他事情要做,尤其是现在是 2、3、4 年级的学生,我们下次再考试吧。
Attendees 1 1:13:26
이동 노드는 왜 안 올 시험 그래서 사진으로 번역기 쓰겠다고 하 그래요.
근데 번역기를 써야 될 정도로 한국 말 이해하는 데 좀 도움이 필요해요.
안돼요.
与会者 1 1:13:26 为什么移动节点没有上传?因此他说要使用翻译机进行翻译。但是,需要翻译机的程度说明他在理解韩语方面需要一些帮助。不行。
Attendees 1 1:13:56
이거를 가능하면 쉽게 표현을 좀 쉽게 하게
与会者 1 1:13:56 如果可能的话,请尽量简单地表达
Attendees 1 1:14:43
여기 올려놨나 네 맞습니다. 올려놨어요. 네 맞습니다.
그냥 내가 이거를 내가 막 이렇게 두고 그냥 지금 대충 얘기할 그런 건 아닌 것 같아 차근차근 보면서 생각하고 있는 거 얘기할 테니까 카카오톡으로 저녁에 저녁에 톡으로 얘기합시다.
그게 좋을 것 같아 어떻게 그게 서로 지금 이렇게 1~2분 얘기 하기에는 좀 그러니까 그냥 차근차근 그냥 시간 두고 천천히 얘기하면서 갈 수도 있겠다고 감사합니다.
뭐 필요한 거 갖고 와서 써요. 몇 개를 갖고 오려고
参会者 1 1:14:43 这里放上了吗?是的,没错。已经放上去了。是的,没错。这不像是我随意放在这里就随便聊的那种。我会一边仔细看一边思考,然后告诉你我的想法。晚上我们通过微信聊天吧,我觉得这样更好。毕竟现在聊 1-2 分钟可能有点困难,不如从容地、慢慢地边聊边进行。非常感谢。到时候我会带上需要的东西。打算带几个过来。
Attendees 2 1:15:26
그래 그럼 편한 대로 해요.
参会者 2 1:15:26 那就按照你方便的方式来吧。
Attendees 1 1:15:30
뭐야 오늘 오늘 한국 전.
出席者 1 1:15:30 是什么 今天 今天 韩国 全部。
clovanote.naver.com