프로시저를 사용하여 프로그램 코드 작성. 질문 및 작업 응용 프로그램 실행 및 결과 얻기

첫 번째 피연산자("expression1")로 모든 표현식을 사용할 수 있으며 그 결과는 bool 유형의 값입니다. 결과가진실 이면 두 번째 피연산자가 지정한 연산자인 "expression2"가 실행됩니다.

첫 번째 피연산자가 같은 경우거짓 , 세 번째 피연산자가 실행됩니다 - "expression3". 두 번째 및 세 번째 피연산자, 즉 "expr2" 및 "expr3"은 동일한 유형의 값을 반환해야 하며 void 유형이 아니어야 합니다. 조건문의 수행 결과는 "expression1"의 결과에 따라 "expression2"의 결과 또는 "expression3"의 결과가 된다.

운영자 사용 제한

"expression1" 값을 기반으로 하는 연산자는 "expression2" 또는 "expression3"의 두 값 중 하나를 반환해야 합니다. 이러한 표현에는 여러 가지 제한 사항이 있습니다.

  1. 사용자 정의 유형을 단순 유형 또는 열거형과 혼합할 수 없습니다. 포인터에 NULL을 사용하는 것은 합법적입니다.
  2. 값 유형이 단순하면 연산자 유형은 최대 유형이 됩니다(캐스팅 참조).
  3. 값 중 하나가 enum 유형이고 다른 하나가 숫자 유형이면 enum은 int로 바뀌고 두 번째 규칙이 적용됩니다.
  4. 두 값이 모두 열거형 값이면 유형이 같아야 하며 연산자의 유형은 열거형이 됩니다.

사용자 정의 유형(클래스 또는 구조)에 대한 제한사항:

  1. 유형이 동일하거나 하나가 다른 유형에서 상속되어야 합니다.
  2. 유형이 동일하지 않은 경우(상속) 하위는 암시적으로 상위로 캐스트됩니다. 즉, 연산자 유형은 상위 유형이 됩니다.
  3. 객체와 포인터를 혼합할 수 없습니다. 두 표현식 모두 객체이거나 포인터입니다. 포인터에 NULL을 사용하는 것은 합법적입니다.

메모

조건부 연산자를 오버로드된 함수에 대한 인수로 사용할 때는 조건부 연산자의 결과 유형이 컴파일 시간에 결정되므로 주의하십시오. 그리고 이 유형은 "expression2" 및 "expression3" 유형 중 더 큰 유형으로 정의됩니다.

예시:

void func(double d) ( Print("이중 인수: " ,d); )
void func(string s) ( Print("문자열 인수: " ,s); )

부울 식1=참;
이중 식2=M_PI;
문자열 식3= "3.1415926" ;

무효 OnStart()
{
func(식2);
func(Expression3);

func(식1?식2:식3);
func(!표현 1?표현 2:표현 3);// 문자열 유형으로의 명시적 캐스트에 대한 컴파일러 경고를 얻습니다.
}

// 결과:
// 이중 인수: 3.141592653589793

// 문자열 인수: 3.141592653589793
// 문자열 인수: 3.1415926

이전 단락에서 우리는 파스칼 프로그램의 구조를 알고, 데이터를 기술하는 방법을 배웠고, 대입 연산자를 고려했습니다. 이것은 데이터 변환 프로그램을 작성하기에 충분합니다. 그러나 이러한 변화의 결과는 우리에게 보이지 않을 것입니다.

에서 데이터를 출력하려면 랜덤 액세스 메모리모니터 화면에서 쓰기 출력 연산자가 사용됩니다.

여기에서 괄호 안에 출력 목록이 배치됩니다. 즉, 값이 인쇄되는 표현식 목록입니다. 변수 및 상수를 포함하여 숫자, 기호 및 논리 표현식이 될 수 있습니다.

아포스트로피로 묶인 임의의 문자 집합은 문자열 상수로 간주됩니다. 문자열 상수에는 키보드에서 입력한 모든 문자가 포함될 수 있습니다.

예시. write("s=", s) 문은 다음과 같이 실행됩니다.

  1. 아포스트로피로 묶인 문자가 화면에 표시됩니다. s=
  2. s라는 이름의 RAM 셀에 저장된 변수 값이 화면에 표시됩니다.

변수 s의 값이 15이고 정수 유형이면 화면에 s=15가 표시됩니다.

변수 s의 값이 15이지만 실제 유형이면 화면에 s=l.5E+01이 표시됩니다.

출력 문이 실행되면 출력 목록의 모든 요소가 차례로 직접 인쇄됩니다. 따라서 write (1, 20, 300) 연산자의 결과로 일련의 숫자 120300이 화면에 표시되며 이는 3개의 개별 숫자 상수가 아닌 숫자 120300으로 인식됩니다. . 인식을 위해 출력 데이터에 더 쉽게 액세스할 수 있도록 하는 방법에는 여러 가지가 있습니다.

출력 형식콜론 뒤에 지정된 정수로, 출력 값이 차지하는 화면 위치 수를 결정합니다. 화면에 예약된 위치보다 숫자의 자릿수가 적은 경우 빈 위치는 숫자 왼쪽에 공백으로 채워집니다. 콜론 뒤에 출력 형식에 지정된 숫자가 필요한 것보다 작으면 자동으로 필요한 최소값으로 증가합니다.

실수를 고정 소수점 형식으로 출력하려면 각 표현식에 대한 출력 목록에 두 개의 매개변수가 지정됩니다.

  1. 해당 수에 할당된 총 직위 수
  2. 숫자의 소수 부분에 있는 위치의 수입니다.

새로운 write 문이 실행되면 출력은 같은 줄에서 계속됩니다. 새 줄로 이동하려면 writeln 문을 사용합니다. write 및 writeln 문 사이에는 다른 차이점이 없습니다.

4.2.2. 최초의 파스칼 프로그램

고려 된 연산자를 사용하여 반지름이 5.4cm 인 원의 둘레와 면적을 계산하는 프로그램을 구성합니다.

이 문제의 초기 데이터는 반지름: r - 5.4cm이며, 프로그램 결과는 C - 원주 및 S - 원의 면적 값이어야 합니다. С, S 및 r은 실수 유형의 값입니다.

초기 데이터와 결과는 수학 과정에서 알려진 비율로 연결됩니다. С = 2πr, S = πr + . 이러한 공식을 사용하여 계산을 구현하는 프로그램은 다음과 같습니다.

이 프로그램은 정확하고 문제를 해결합니다. 실행을 위해 실행하면 다음과 같은 결과를 얻을 수 있습니다.

그러나 우리가 컴파일한 프로그램에는 중요한 단점이 있습니다. 단일 반경 값(5.4cm)에 대해 원의 둘레와 면적을 찾습니다.

다른 반지름 값에 대한 원의 둘레와 면적을 계산하려면 프로그램 텍스트를 직접 변경해야 합니다. 즉, 할당 연산자를 변경해야 합니다. 변경 기존 프로그램, 적어도 항상 편리한 것은 아닙니다(예: 프로그램이 크고 할당 연산자가 많은 경우). 아래에서 프로그램 텍스트를 변경하지 않고 프로그램 작동 중에 초기 데이터를 입력할 수 있는 연산자에 대해 알게 됩니다.

4.2.3. 키보드 입력

변수 값을 RAM에 입력하려면 읽기 입력 연산자를 사용하십시오.

읽기 문이 실행되면 컴퓨터는 데이터 대기 모드로 들어갑니다. 사용자는 키보드에서 데이터를 입력하고 키를 눌러야 합니다. 키 입력. 변수 숫자 유형의 여러 값은 공백이나 쉼표로 구분하여 입력할 수 있습니다. 문자 변수 입력 시 공백과 쉼표는 문자로 취급되어 설정할 수 없습니다.

사용자가 입력한 변수의 첫 번째 값은 입력 목록에서 이름이 가장 먼저 위치하는 메모리 위치에 위치하는 식으로 진행되므로 입력 값(입력 스트림)의 유형은 지정된 변수의 유형과 일치해야 합니다. 변수 선언 섹션에서.

예시. 허락하다

var i, j: 정수; x:실제; 에이: 문자;

변수 i, j, x와 값 1, 0, 2.5 및 "A"를 할당합니다. 이를 위해 읽기(i, j, x, a) 연산자를 사용하고 다음 방법 중 하나로 입력 스트림을 구성합니다.

여기서는 서로 다른 구분 기호(공백, 쉼표)를 사용했을 뿐만 아니라 입력 스트림을 1, 2, 4줄로 표시했습니다.

키보드 입력의 경우 다음을 사용할 수도 있습니다. readln 문, 실행 후 커서가 새 줄로 점프한다는 점에서만 read 문과 다릅니다.

read 문을 사용하여 데이터 입력을 구성하여 프로그램 n_1을 개선해 보겠습니다. 그리고 사용자가 프로그램의 용도를 알고 컴퓨터가 그에게 기대하는 동작을 정확히 이해할 수 있도록 writeln 연산자를 사용하여 해당 텍스트 메시지를 표시합니다.

개선된 프로그램의 결과:

이제 우리 프로그램은 r 값에 대해 원의 둘레와 면적을 계산할 수 있습니다. 즉, 단일 문제가 아니라 전체 클래스의 문제를 해결합니다. 또한 프로그램은 초기 데이터의 입력과 결과의 출력을 명확하고 편리하게 구성합니다. 이것은 친숙한 사용자 인터페이스를 제공합니다.

가장 중요한

read 및 readln 입력 문은 변수 값을 RAM에 입력하는 데 사용됩니다.

출력 연산자 write 및 writeln은 RAM에서 모니터 화면으로 데이터를 출력하는 데 사용됩니다.

초기 데이터의 입력과 결과의 출력은 명확하고 편리하게 구성되어야 합니다. 이것은 친숙한 사용자 인터페이스를 제공합니다.

질문 및 작업

  1. 프로그램 실행 중에 변수 summa의 값을 입력하는 명령문을 작성하십시오.
  2. 정수 변수 i, y, k에는 각각 값 10, 20, 30이 할당되어야 합니다. 입력 스트림에 해당하는 입력 문을 작성하세요.
      가) 20 10 30
      나) 30 20 10
      다) 10 30 20
  3. 세 변이 주어진 삼각형의 면적을 계산하는 데 필요한 변수를 설명하고 필요한 입력을 제공하는 연산자를 기록하십시오.
  4. 명령문을 실행한 결과는 무엇입니까?
      a) 쓰다 (a)
      b) 쓰기 (1 a ")
      c) 쓰기 (1 a = 1, a)
  5. write(f)문을 수행한 후 다음과 같은 숫자가 나왔다면 변수 f는 무엇입니까?
      가) 125
      나) 1.25E+2
  6. 어떻게 표시할 수 있습니까? 실수고정 소수점 형식으로?
  7. 두 개의 숫자를 입력하고 역순으로 출력하는 명령문을 작성하십시오.
  8. 프로그램의 일부가 주어졌을 때:

    읽다); 읽기(b); c:=a+b; 쓰기(a,b); 쓰다

    입력 및 출력 문의 수를 줄여 단순화합니다.

  9. 프로그램의 일부가 주어졌을 때:

    a:=10; b:=a+l: a:=b-a; 쓰다 (a, b)

    컴퓨터 화면에 어떤 숫자가 표시됩니까?

  10. 두 변이 주어진 직사각형의 넓이와 둘레를 계산하는 프로그램을 작성하십시오.

"플라스틱 카드 인쇄용 프린터" - 하나의 플라스틱 카드에 두 배의 정보를 넣을 수 있습니다. 가격. 플라스틱 카드 인쇄용 프린터. 지브라 P110i/ P120i. 검토 모델 범위. 경제적인 풀 컬러 플라스틱 카드 프린터. 고성능 다양한 선택 추가 장치코딩.

"PC 주변기기" - 주변기기. 프린터. 기록. 디지털 카메라. 연결 수단의 계층. 비디오 어댑터. PU 분류. 범용 직렬 버스. CD-R. 선택 옵션. 내장 플래시. 개척자. 자연. 모뎀. 비디오 터미널. 스캐너. PC 주변기기. 쥐의 분류.

"정보 입력 및 출력 수단" - 스캐너. 음모자. 브라운관. 프린터. 건반. 디지털 카메라와 사진 카메라. 기능. 범용 입력 장치. 정보 입력 및 출력 장치. 그래픽 태블릿. 생쥐.

"정보 출력 장치" - 컴퓨터 장치. 모니터의 해상도가 높을수록 이미지 품질이 높아집니다. 결점 잉크젯 프린터: 높은 잉크 소비량; 높은 연료 보급 비용. 평면 패널 액정(LCD) 모니터는 소형이며 방사선을 방출하지 않습니다. 정보 출력 장치. 모니터는 범용 장치정보 출력.

"프린터" - 로컬. 열 블록, 퓨저, 퓨저 - 토너가 용지에 구워지는 장치입니다. 레이저. 매트릭스(바늘). 시간이 지남에 따라 자산이 손실되고 전문가가 정기적으로 교체해야 합니다. 잉크젯. 회로망. 사용자가 변경했습니다. 프린터의 특성. 현상액, 캐리어, 현상액 - 토너를 포토 롤러로 옮기는 가장 작은 금속 입자.

"I/O 하위 시스템" - 중단점. 테이블. 지속적인 배치. 기인하다. 파일 권한. 인덱스의 연결 목록입니다. 데이터. 물리적 조직. 직접 메모리 액세스. 인덱스 순차 파일. 설치. 인터럽트에 의해 제어되는 I/O. 디렉토리 액세스 권한. 병렬 작업의 조직.

주제에 총 27개의 프레젠테이션이 있습니다.

프로그램 코드는 그림 1에 나와 있습니다. 4.3-9.

Option Strict On Option Explicit On Imports System.Math Public Class Form1 "TextBox에 점 좌표를 입력하는 함수 Function vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "결과를 TextBox에 출력하는 절차 Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "두 점의 좌표에서 선분의 길이를 계산하는 함수 Public Function Line Length(ByVal x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "둘레 및 면적 계산 절차 삼각형의 Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single, ByRef S As Single ) Dim A, B, C, Pp As Single A = Segment Length(x1, y1, x2, y2) "긴 음수 계산 함수 호출 B = 선의 길이(x2, y2, x3, y3) C = 길이 선의 (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng( Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Button1 클릭 이벤트 핸들러 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System. EventArgs) 핸들 Button1.Dim x1 As Single, x2 As Single, x3 As Single Dim y1 As Single, y2 As Single, y3 As Single Dim Per As Single, Plo As Single x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Button2.Click 처리 End End Sub End 클래스

애플리케이션 실행 및 결과 얻기

결과는 그림에 나와 있습니다. 4.3-10.

결과의 정확성 증명

답=
= 2.82843 B =
= 2

C \u003d \u003d 2 P \u003d A + B + C \u003d 6.828427; Рр = Р/2 = 3.414213 S= = 2


주제에 대한 보안 질문

“VB 프로그램, 모듈 및 절차의 구조.

선형 구조 알고리즘을 위한 프로그래밍 도구"

1. 수학적 모델이란 무엇입니까?

2. 컴퓨터 문제를 해결하는 주요 단계는 무엇입니까?

3. 컴퓨터의 참여 없이 컴퓨터 문제 해결의 어떤 단계가 수행됩니까?

4. 물체 또는 현상의 수학적 모델이라고 하는 것은 무엇입니까?

5. 프로그램 개발 프로세스의 단계는 무엇입니까?

6. 알고리즘이라고 하는 것은 무엇입니까?

7. 알고리즘의 주요 속성은 무엇입니까?

8. 알고리즘을 설명하는 방법은 무엇입니까?

9. 알고리즘 체계에서 일반적으로 어떤 그래픽 기호가 표시됩니까?

10. 통역사는 어떻게 작동합니까?

11. 컴파일러는 어떻게 작동합니까?

12. 선형 알고리즘이란 무엇입니까?

13. 순환 알고리즘이란 무엇입니까?

14. 분기 알고리즘이란 무엇입니까?

15. 함수와 프로시저를 실행한 결과를 전송하는 것의 차이점은 무엇입니까?

16. 그럴듯한 결과를 얻는 것이 프로그램의 정확성을 증명합니까?

17. 프로그램을 확인(보기, 스크롤)하지 않으면 어떤 오류가 감지되지 않은 채로 남을 수 있습니까?

18. 프로그램 테스트는 디버깅과 어떻게 다릅니까?

19. 테스트가 프로그램의 정확성을 증명할 수 있습니까?

20. 벤치마크 테스트 결과는 프로그램 작업의 어떤 단계에서 계산됩니까?

21. 테스트 프로세스의 주요 단계를 나열하십시오.

22. 구문 오류와 의미 오류의 차이점은 무엇입니까?

23. 에 대한 기계 메시지의 부재로 입증된 바와 같이 구문 오류?

24. 컴파일러가 감지할 수 없는 오류의 종류는 무엇입니까?

25. 프로그램이란?

26. 프로그램의 오류를 검색하고 제거하는 단계는 무엇입니까?

27. 프로그래밍 시스템이란 무엇입니까?

28. 절차란 무엇입니까?

29. 절차가 있는 프로그램의 이점은 무엇입니까?

30. VB에서 사용할 수 있는 절차적 프로그래밍 도구는 무엇입니까?

31. 프로그램의 개별 절차 간에 데이터가 어떻게 교환됩니까?

32. 실제 및 형식 매개변수는 무엇입니까?

33. 매개변수로 전달하는 방법: 상수, 변수, 표현식?

34. 전역 변수는 어떻게 사용됩니까?

35. 지역 변수는 어떻게 사용됩니까?

36. 형식 매개변수란 무엇입니까?

37. 실제 매개변수는 무엇입니까?

38. 프로시저가 호출되면 어떻게 됩니까?

39. 매개변수를 프로시저에 어떻게 전달할 수 있습니까?

40. 어떤 매개변수가 값으로 전달되나요?

41. 어떤 매개변수가 주소로 전달됩니까?

42. 절차적 프로그래밍이란?

43. 함수를 실행한 결과는 무엇입니까?

44. 함수 내에서 로컬이 되도록 개별 변수를 어떻게 선언합니까?

45. 함수를 일찍 종료하는 데 사용되는 연산자는 무엇입니까?

46. 함수와 프로시저를 호출할 때 제어되는 것은 무엇입니까?

47. 변수 매개변수를 값으로 전달하려면 형식 매개변수를 어떻게 선언해야 합니까?

48. 변수 매개변수를 주소로 전달하기 위해 형식 매개변수를 어떻게 선언해야 합니까?

49. 호출 프로그램에서 함수 프로시저가 어떻게 호출됩니까?

50. 절차의 결과는 무엇입니까?

51. 절차를 일찍 종료하기 위해 사용되는 명령문은 무엇입니까?

52. 기능 및 절차에 대한 설명은 어디에서 찾을 수 있습니까?

53. Public 문으로 선언된 변수는 어디에서 사용할 수 있습니까?

54. 개인 운영자는 어디에 위치할 수 있습니까?

55. 댓글이란 무엇이며 녹음 규칙은 무엇입니까?

56. 프로그램 시작시 변수의 값은 무엇입니까?

57. 절차와 기능이 설명(정의)된 이유는 무엇입니까?

58. 절차는 어떻게 호출됩니까?

59. 함수는 어떻게 호출됩니까?


비슷한 정보입니다.


관련 출판물