Module: For 루프 문. 일반적인 작업


Problem

1/16

시퀀스 번호의 합 - 예제 1

Theory Click to read/hide

다음 문제를 해결하는 프로그램을 작성해 봅시다.
100에서 500 사이의 모든 정수의 합을 구합니다. 

이 문제를 풀면 합계를 찾기가 어려워집니다. 예를 들어 변수 s에 더한 결과를 간단히 쓰면 다음과 같습니다. <사업부 스타일="텍스트 정렬:센터">
s=100+101+102+103+...+500


컴퓨터가 산술식에서 줄임표를 사용하는 방법을 이해하지 못하고 100에서 500까지의 모든 숫자를 이 합계에 써야 하기 때문에 녹음 자체에 많은 시간이 걸립니다. 그리고 그러한 프로그램의 가치는 미미할 것입니다. 특히 숫자를 변경하고 다른 범위를 사용하려는 경우.

어떻게 해야 합니까?

위의 항목에 주의를 기울이면 "+"를 계속 사용합니다.
점차적으로 변수 s에 숫자를 추가할 수 있습니다. 예를 들어, 이 표기법을 사용하여
s := s + i;
우리가 여기서 한 일:
1) 오른쪽에 s+i, 표현을 넣습니다. 즉, 현재 메모리에 있는 변수 s의 값을 가져와 값을 추가합니다. 변수 i< 그것에 /strong>
2) 왼쪽에 변수의 이름을 설정합니다 s, 즉 오른쪽 계산의 전체 결과가 이 변수에 저장되므로 변수 값을 변경합니다. s. 

범위에서 숫자를 어디에서 얻을 수 있나요?

우리 범위에 속하는 100에서 500까지의 숫자는 i 변수에 하나씩 들어가야 합니다. 그리고 이것은 잘 알려진 for
루프를 사용하여 수행할 수 있습니다. 예를 들면 이런 식으로 <예비> 에스 := 0; // 처음에는 변수 s를 재설정해야 첫 번째 단계에서 숫자 100이 메모리에 있는 것이 아니라 0에 추가됩니다! for i := 100 to 500 do //변수 i가 1씩 증가하여 값을 100에서 500으로 변경하는 루프의 헤더 s := s + i; //변화하는 변수 i의 값을 변수 s에 점진적으로 추가하는 루프의 본문 // 결과는 변수 s에 다시 저장됩니다. 이 솔루션은 행동으로 합계를 계산하는 것과 매우 유사합니다
 s = 0 + 100 = 100
 s = 100 + 101 = 201
 s = 201 + 102  = 303
등.

Problem

1. 실행을 위해 이론적인 부분에서 분석된 프로그램을 실행하고 작업 결과를 봅니다.