Xp
Free-Talk

ITcomptia 간단한 프로그램처리문제 부탁드립니다

 
1
  271
Updated at 2020-08-08 12:23:29

y=10, for x 1 to 5
y=x+1
NEXT
y=x+2
일때, y의값은?

보기는 12 15 17 세개가 있었습니다
문제가 잘 기억이 안나지만 이런 형태였습니다
답과 풀이를 부탁드리고 싶습니다..

구글이나 책을봐도 잘 모르겠네요


8
Comments
1
2020-08-08 13:49:40

ITcomptia 라는 언어가 있는건가요?

그게 아니고 수도코드를 적으신거면 뭔가 문제를 잘못 기억하고 계신 거 같아요

WR
2020-08-08 14:05:03

컴퓨터관련 자격시험입니다
for의 위치가
for
y=x+1 이었던거같기도하네요 죄송합니다

1
2020-08-08 17:30:01

논리쩍으로 쓰다보니 존대말 잠시 생략합니다.
초반은 의사코드로 후반은 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
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이 됩니다
이 계산식을 활용할때 제 글 질문의 답은 어떻게 유추되어질까요?

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이 나오는데 말씀 하신 보기에 없기 때문에 그렇습니다.
 
죄송합니다. 약속 시간에 약간 늦어서 오늘은 더이상 글 못 올립니다.
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

WR
Updated at 2020-08-08 23:37:52

안녕하세요
방금 시험내용을 보고 확인되서 답변드립니다
문제내용은

y=10,for x 1 to 5
y=y+1
next
y=y+2, y=?

보기 1) 7 2) 12 3) 15 4) 17

이었습니다만, 말씀하신 답 12를 선택했습니다 (for 위치는 y=y+1 바로위에 있었을수도 있어요..헷갈려서)

덕분에 시험 간신히 합격했습니다
ITComptia fundamental이라고 it기초 자격시험이었습니다 신입사원인데 기업에서 따라고해서요

정말 덕분에 합격된것 같습니다 술이라도 사드리고싶네요
편안한밤 보내주시길 바라겠습니다...

2021-05-15 14:04:33

술은 못 마십니다. 감사하구요. 읽기모드라 1년만에 로그인을 해서 답장이 늦어 죄송합니다.

혹시 뚝섬유원지 농구장에 언젠가 우연히 오시면 농구 한 겜 30분정도 서로 부담 없고 좋을 것 같네요. 음료수는 제가 사지요. 문제는 로그인을 잘 안한다는 것. 걍 언제 한번 식사라도 수준으로 들어주세요.

결과가 좋아서 저도 기뻐요.

글쓰기
검색 대상
띄어쓰기 시 조건








SERVER HEALTH CHECK: OK