본문 바로가기

컴퓨터 일반/프로그래밍언어론

(6)
프로그래밍언어 문제(2) C언어에서 배열이 A(3,4)로 선언되었다.배열의 시작주소가 200일 때A(1,3)의 주소는 얼마인가? A(3,4)는 3행 4열이므로200 (0,0)(0,1)(0,2)(0,3)(1,0)(1,1)(1,2) (1,3) (2,0)(2,1)(2,2)(2,3)A(1,3)의 주소는 207이다. 공식을 사용하여 주소를 구할수도 있다.위치가 (i,j)이고 크기가 (K,L)일때 행 우선이라면 L * i + j = 7207이 된다 main 함수를 찾는다정수형 변수 a,b와 배열 c가 선언되어 있다a에는 20, b에는 20, c[0]에는 20을 준다abc 202020  func(&a, b, c);를 호출한다&a는 주소값, b는 값, c는 주소값이 들어간다 위에서 만들어진 func() 함수를 보면x = *a; //a가 가진 ..
프로그래밍언어 문제(1) main 함수가 어디에 있는지 본다변수를 정리한다. a는 정수를, c와 d는 실수를 담는 변수이다3.5를 3에 대입하면, a는 정수형 변수이기에 3이 된다3을 c에 대입하면, c는 실수형 변수이기에 3.0이 된다.d는 연산자 우선순위에 따라 a/2를 먼저 하고 (3/2=1) 3+1+3.0 = 7.0이 된다acd33.07.0 main 함수가 어디에 있는지 본다, main에서 func(i)를 호출하는 문제이다.main에서 i를 선언했고, 5부터 시작해서 0이상일 때까지 반복한다 i는 1씩 감소한다.2로 나눴을때 나머지가 1이라면 func(i) 함수를 호출한다.함수 func(5)는 num이 1이 아니니까 return 5 * func(4)func(4)는 num이 1이 아니니까 return 4 * func(3) ..
프로그래밍(4) C언어 포인터, 배열 포인터포인터란 주소의 주소입니다오늘 길동이 집으로 모여, 그 길동이가 변수라고 생각하면 돼요.야, 서울시 oo동 oo번지로 모여 이렇게 말할 수도 있습니다c언어는 이렇게 주소를 사용할 수 있고 주소를 담을 수 있는 변수가 포인터입니다(자바는 포인터를 처리하지 않습니다)포인터는 주소이고, 주소를 담을 수 있는 변수를 포인터 변수라고 합니다.포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에는 *를 붙인다int *b; //b라는 변수는 이제 일반 숫자가 아닌 포인터(주소)를 담을 수 있는 정수형 변수이다char *c; //c라는 변수는 이제 포인터를 담을 수 있는 문자형 변수이다int a;는 기억 장소 어딘가에 가서 만들어진다, 주소를 알고 싶으면 &a로 알 수 있다int *b; int a; b ..
프로그래밍(3) 제어문 제어문프로그램과 c언어는 특별하지 않으면 위에서부터 아래로 흐른다.하지만 효율성을 위해 조건에 맞지 않으면 다시 하거나 반복하는 흐름을 만들기도 한다.흐름의 방향을 바꿔주는 것을 제어문이라고 한다.if문, for문, while문, do-while문, switch case문, break문, continue문이 있다.순서도가 나오면 먼저 변수를 적는다 (준비 기호)aevenodd1000 반복 변수 i가 1에서 시작되고(초기값) a가 될때까지(최종값) 1을 증가시킨다(증가값)i를 2로 나눠서 나머지가 0이면 even = even + i아니라면 odd에 누적시킨다(나머지가 0이면 짝수, 1이면 홀수)1이 증가해서 2가 된다a가 될때까지 반복한다 (a=10)aevenoddi10001  1  2 2  43 6 4 ..
프로그래밍(2) C언어 연산자 산술 연산자 : 전치연산/후치연산a = 1;b = ++a +1; //먼저 증가시키고 치환한다, 2+1=3을 b에 넣는다, a=2이다c = a++ +1; //연산 후에 치환한다, c=3, 그 다음에 a=3 abc2  1  24 (1과 3을 더한 것) 3 6 (a에 1을 더한 3에 3을 더한 것)346 프로그래밍은 적으면서 해야 편하다(디버깅)처음에는 낯설지만 하다 보면 점점 쉬워진다하지만 반드시 디버깅 해야한다안다고 머리로 풀면 백퍼센트 틀린다. 한 줄 한 줄 시키는대로 그대로 추적해서 그대로 써야 한다C언어의 관계 연산자와 비트 연산자, 논리연산자관계 연산자는 두 수의 대소를 비교하고, 비트 연산자는 컴퓨터가 저장하는 최소 단위인 비트끼리 연산하는 것이다우선순위는 산술 연산자 > 관계 연산자 > 논리 연..
프로그래밍(1) 순서도, C언어 기초 순서도순서도는 프로그램을 코딩하기 전에 그걸 그림으로 표현한 것이다.순서도를 보면 어디를 가도 이렇게 코딩하는 거구나, 하고 이해할 수 있다순서도는 항상 처음에 START, 마지막에 STOP이 나온다 (단자 기호)순서도나 프로그램은 별 말이 없으면 위에서부터 밑으로 진행이 된다 → FLOW 차트START 다음에는 준비 기호가 있다 (i, j, k)준비기호가 나오면 우리가 할일은 습관적으로 이 기호들을 적어두는 것이다. 이런 변수들을 사용한다는 것을 알아둔다.그 다음에는 수동 입력 기호가 있다. 키보드로 입력 받는 것을 말하는 것 (키보드로 i와 j값을 받는다)순서도나 프로그램 코드를 읽을 때는 반드시 거기에 나오는 변수를 적어가면서 변하는 값을 계속 추적하는 과정을 반드시 거쳐야 한다(디버깅)그 다음의 ..