논리쩍으로 쓰다보니 존대말 잠시 생략합니다. 초반은 의사코드로 후반은 c로 설명합니다. ITcomptia는 뭔지 모르는 상태에서 설명합니다. 혹시 몰라 기초부터 설명했지만, 급하시면 [맨 마지막 부분]만 보세요
//0. integer를 알자 int, integer정수 몇번을 셀때 서수로 쓰인다. say hello 2.5번 (x)
//1. iterator를 알자 for iterator from 1 to 5 hello 출력결과 다섯번 인사
짧게 쓰면 for i 1 to 5 //i= integer, iterator hello 출력결과 다섯번 인사
//2. index를 알자. 집합 A의 원소가 a,b,c 이라 할 때 A={a,b,c} a[0]=a a[1]=b a[2]=c 여기서 0,1,2가 index
for index from 0 to 2 say each item 출력 결과 a,b,c
for i 0 to 2 //i= integer, iterator, index(item_index),
say A[i] 출력 결과 a,b,c
c.f. 11부터 5개라 하면 11,12,13,14,15가 되는데, 이는 11부터 0,1,2,3,4를 더한 것 이런 식으로, 0은 원래 시작점을 의미함. 따라서 i는 1부터 시작하는 경우보다 0부터 시작하는 경우가 많음.
//여기까지가 i 한 글자에 대한 설명. x로 기억하시길래, 길게 설명.
//지금 물어본 질문의 예상 의도, 답 말고 교육의도 x=10 //x for x factor additional_value=0 //가산치를 바꿔 보겠다.
for i 1 to 5 //integer, iterator, //0이 아니라 1부터 시작하무로 서수 5번, //counter,c,k 등으로 받기도 하나, 보통 integer로 봐서 i로 받음. additional_value=i //여러번 바꿨으나 가산치는 최종적으로 5가 됨.
say x + additional_value 출력 결과 15
x=10 for i 1 to 5 a=i
say x+a 출력 결과 15
왜 i를 쓰는지 고민한 적 없다면, 여기까지 이해하는데 2시간 소모하길 권함. 돌아가는 것 같아도 나중에 코드를 읽는 능력이 좋아짐. 차 한 잔, 라면 한 그릇, 뭐든.
----------------------------------------------------------------- 이제 이해만 했으므로 실습 안 하면 날아감. https://www.learn-c.org/ 나중에, 일단 여기 있는 거 다 한 번씩 해보길. 예상 소요시간 1주-1개월, 느긋하게
지금은 일단 ide가 필요하므로 hello world 클릭 start exercise 클릭 코드 대충 읽고 run 클릭 문제 풀어버리면 다음 문제로 넘어가 버림 바뀌지 않은 화면에서 우측 하단 출력 결과 확인 웹상의 가상 ide 확보 완료 문제 코드를 모두 지우고 다음 코드로 대체하고 run //^a, delete, ^c, ^v, run
#include <stdio.h>
int main() { int i; for (i = 0; i < 10; i++) { printf("%d\n", i); }
return 0; } 출력 결과 0 1 2 3 4 5 6 7 8 9 //일단 이런 식이구나 하고 써 봄. 생각할 시간을 갖는다.
//최종 공부거리, 붙여넣기 후 run //^a, delete, ^c, ^v, run #include <stdio.h> int main() {
int x=10; int a=0; int new_x=0;
int i; for (i = 1; i < 6; i++) { //<6은 서수라서 =<5의 의미입니다. a=i; } new_x = x + a;
printf("x+a= %d", new_x); return 0; }
출력결과 x+a= 15
생각할 시간을 갖는다.
이상입니다. 출제자의 의도가 이 이상일 수 있는데, 질문으로 추측해 보면, 지금은 일단 여기까지만 잘 아는 것이 좋겠습니다.
---------------------------------------------[맨 마지막 부분] 상기 내용을 안다고 봤을 때 풀이는 y=10, //y는 10 for x 1 to 5 //x는 최종적으로 5 y=x+1 //y=6 NEXT //모르는 명령어 y=x+2 //y=5+2 일때, y의값은? //7 보기 17은 있는데 7은 없으므로 모양을 맞춘다는 미명하에 문제를 마구 바꿔보면
y=10, //y는 10 for x 1 to 5 //x는 최종적으로 5 y=x+1 //y는 6 NEXT //모르겠고, 일단 for loop에서 빠져 나왔다고 가정하고 y+=x+2 //=기호를 +=기호로 바꾼다면, y=y+x+2의 의미이므로, y=6+5+2, 그럼 13 //하지만 13은 보기에 없고, 저 5가 i=0;i<5; 였다면 0,1,2,3,4, 그러면 12
제가 추측할 수 있는 것은 여기까지입니다. 쓰고나서 보니, 시험 한 문제 결과에 관심있는 사람한테 눈치없이 너무 기초를 설명한 기분이 듭니다. 씨익
#include <stdio.h> int main() {
int y=10;
int x; for (x = 1; x < 5; x++) { y=x+1; } y += x + 2;
printf("y= %d", y); return 0; }
출력결과 12
결국 이 문제였다면, += 이 연산자를 몰랐다는 건데, a=2는 a라는 변수에 2를 담는다는 뜻이고, a+=2는 a라는 변수에 원래 a의 값과 2의 합을 담으라는 뜻이어서 a가 100이었다면 102가 됩니다.
WR
0
2020-08-08 18:42:08
답변 감사합니다 시간이 없어서 제가하고싶은말만 하게되는점 죄송합니다 질문한 문제를 살짝틀은 문제가 밑의 문제입니다 풀이법은 거의 동일합니다
y=10 FOR x 1 to 5 y=y+x NEXT(그냥 그렇다면, 다음으로 를 의미하는거같습니다) y=2*y , y=?
이 문제 풀이는 FOR구문이 x를 다 더하여 15이고, 25=10+15가 됩니다 그후 밑 식에 2를 곱하여 최종적으로 답은 50이 됩니다 이 계산식을 활용할때 제 글 질문의 답은 어떻게 유추되어질까요?
0
2020-08-08 19:28:30
8시 약속이 있어 다음 댓글 못 다는 점 양해 바랍니다.
지금 주신 문제 돌리면
#include <stdio.h> int main() {
int y=10;
int x; for (x = 1; x < 6; x++) { y=y+x; printf("each y= %d\n", y); } y = y * 2;
printf("total y= %d", y); return 0; }
출력결과
each y= 11 each y= 13 each y= 16 each y= 20 each y= 25 total y= 50
문제의 흐름상 당연한 문제입니다.
처음 문제는 for 의 iterator가 단순히 영향을 미치는 문제고 (기본)
두번째 문제는 영향을 받은 y가 다시 영향을 받는 문제입니다. (기본의 응용)
출제순서가 자연스럽습니다.
따라서, 처음에 설명했던, 위의 12가 답이 되는 경우 설명과 제 의견은
이 두번째 문제를 본 후에도 같습니다. (=와 += 착오였을 거라는)
맨처음 원래대로 돌리면
#include <stdio.h> int main() {
int y=10;
int x; for (x = 1; x < 6; x++) { y=x+1; printf("each y= %d\n", y); } y = y + 2;
printf("total y= %d", y); return 0; }
출력 결과
each y= 2 each y= 3 each y= 4 each y= 5 each y= 6 total y= 8
8이 나오는데 말씀 하신 보기에 없기 때문에 그렇습니다.
죄송합니다. 약속 시간에 약간 늦어서 오늘은 더이상 글 못 올립니다.
0
2020-08-08 22:32:13
맨 처음 올려주신 코드의 맨 마지막을 +2가 아니라 두번째 문제처럼 x2로 해도
12가 나옵니다만 이거였던 걸까요.
글쓴이가 시험 후 문제를 기억에 의존해 질문한다고 착각한 제 실수 였네요.
보면서 옮겼는데 *이 애스터리스크가 작아서 +이 플러스로 보인 거였나 봅니다.
즐공 하세요. 그럼 이만
#include <stdio.h>
int main() {
int y=10;
int x; for (x = 1; x < 6; x++) { y=x+1; printf("each y= %d\n", y); } y = y * 2;
printf("total y= %d", y); return 0;
}
출력결과
each y= 2 each y= 3 each y= 4 each y= 5 each y= 6 total y= 12
ITcomptia 라는 언어가 있는건가요?
그게 아니고 수도코드를 적으신거면 뭔가 문제를 잘못 기억하고 계신 거 같아요