C++프로그램의 실행 순서 구조 및 관계 및 논리 연산 자 설명

7019 단어 C++차례연산 자
C++순서 구조 프로그램
[예]일원 이차 방정식 ax2+bx+c=0 의 뿌리 를 구하 십시오.a,b,c 의 값 은 실행 할 때 키보드 로 입력 하고 그들의 값 은 b2-4ac≥0 을 만족시킨다.x1,x2 의 알고리즘 을 구하 다.다음 C++프로그램 을 만 들 수 있 습 니 다.

#include <iostream>
#include <cmath> //           sqrt,       cmath
using namespace std;
int main( )
{
 float a,b,c,x1,x2;
 cin>>a>>b>>c;
 x1=(-b+sqrt(b*b-4*a*c))/(2*a);
 x2=(-b-sqrt(b*b-4*a*c))/(2*a);
 cout<<"x1="<<x1<<endl;
 cout<<"x2="<<x2<<endl;
 return 0;
}
운행 상황 은 다음 과 같다.

4.5 8.8 2.4 L
x1=-0.327612
x2=-1.17794
프로그램 에서 수학 함 수 를 사용 하려 면 헤더 파일 cmath(오래된 헤더 파일 math.h 를 사용 할 수도 있 지만 C+새로운 형식의 헤더 파일 을 사용 하 는 것 을 권장 합 니 다)를 포함 해 야 합 니 다.프로그램 을 쓸 때 수학 표현 식 을 합 법 적 인 C++표현 식 으로 정확하게 바 꾸 는 것 에 주의해 야 한다.
이 를 통 해 알 수 있 듯 이 순서 구조의 프로그램의 각 실행 문 구 는 순서대로 실 행 된 것 이다.이런 절 차 는 가장 간단 하고 이해 하기 쉽다.
C++관계 연산 과 논리 연산(관계 연산 자 와 논리 연산 자)
종종 특정한 조건 이 만족 하 는 지 에 따라 집행 내용 을 결정 하도록 요구한다.예 를 들 어 쇼핑 은 1000 원 이하 의 경우 50%할인 하고 1000 원 이상 은 10%할인 합 니 다.
C++는 if 문 구 를 제공 하여 이러한 조건 선택 을 실현 합 니 다.예:

  if amount<1000 tax=0.95; //amount      ,tax    
  else tax=0.9; // amount<1000,    ,tax=0.95,  tax=0.9
  pay=amount*tax; //pay    

관계 연산 과 관계 표현 식
위의 if 구문 중의"amount<1000"은 산술 연산 이 아니 라 관계 연산 을 실현 합 니 다.실제 비교 연산 으로 두 데 이 터 를 비교 해 비교 한 결 과 를 판단 하 는 것"이 라 고 말 했다.amount<1000'은 하나의 비교 식 으로 고급 언어 에서 관계 표현 식 이 라 고 부 르 는데 그 중에서'>'는 비교 문자 로 관계 연산 자 라 고 부른다.
C++의 관계 연산 자 는 다음 과 같 습 니 다.
  •     <    (작 음)
  •     <=        (작 거나 같 음)           우선 순위 동일(고)
  •     >    (크다
  •     >=        (크 거나 같 음) 
  •     ==        (과 같다
  •     !=       (다 름           우선 순위 동일(저)
  • 우선 순위 에 대하 여:
    앞의 4 가지 관계 연산 자(<,<=,>,>=)의 우선 순위 가 같 고,뒤의 두 가지 도 같다.앞의 네 가 지 는 뒤의 두 가지 보다 높다.예 를 들 어'>'는'='보다 우선 합 니 다.">"는"<"우선 순위 와 같 습 니 다.
    관계 연산 자의 우선 순 위 는 산술 연산 자 보다 낮다.
    관계 연산 자의 우선 순 위 는 할당 연산 자 보다 높다.
    예 를 들 면:
  • c>a+b 는 c>(a+b)
  • 과 같다.
  • a>b==c 는(a>b)==c
  • a==b
  • a=b>c 는 a=(b>c)
  • 과 같다.
    관계 연산 자로 두 표현 식 을 연결 하 는 식 을 관계 표현 식 이 라 고 합 니 다.관계 표현 식 의 일반적인 형식 은 다음 과 같다.
    
                   
    
    그 중의'표현 식'은 산술 표현 식 이나 관계 표현 식 일 수 있 습 니까?논리 식?할당 식?문자 식.예 를 들 어 다음은 모두 합 법 적 인 관계 표현 식 입 니 다.
    
      a>b, a+b>b+c,(a==3)>(b==5), 'a'<'b', (a>b)>(b<c)
    
    관계 표현 식 의 값 은 논리 값,즉'진짜'또는'가짜'입 니 다.예 를 들 어 관계 표현 식'5==3'의 값 은'가짜'이 고'5>=0'의 값 은'진짜'이다.C 와 C++에 서 는 모두 수치 1 로'진짜'를 나타 내 고 0 으로'가짜'를 나타 낸다.다음 할당 식 이 있 으 면:
  •     d=a>b 는 d 가 얻 은 값 은 1
  • 이다.
  •     f=a>b>c  f.얻 은 값 은 0
  • 입 니 다.
    논리 상수 와 논리 변수
    C 언어 는 논리 적 인 데 이 터 를 제공 하지 않 았 고 관계 표현 식 의 값(진짜 또는 가짜)은 각각 수치 1 과 0 으로 대표 합 니 다.C++논리 적 데이터 가 추가 되 었 습 니 다.논리 형 상수 가 두 개 밖 에 없 는데 그것 이 바로 false(가짜)와 true(진짜)이다.
    논리 적 변 수 는 형식 식별 자 bool 로 정의 해 야 합 니 다.값 은 true 와 false 중 하나 일 수 밖 에 없습니다....와 같다
    
      bool found, flag=false; //      found flag,  flag    false
      found=true; //     true      found
    
    논리 변 수 는 키워드 bool 로 정의 되 기 때문에 불 변수 라 고도 부른다.논리 형 상수 는 불 상수 라 고도 부른다.논리 형 이란 불 형 이다.
    논리 유형 을 만 드 는 목적 은 절 차 를 볼 때 직관 적 이 고 이해 하기 쉽다 는 것 이다.
    컴 파일 시스템 에서 논리 적 데 이 터 를 처리 할 때 false 를 0 으로 처리 하고 true 를 1 로 처리 합 니 다.따라서 논리 형 데 이 터 는 수치 형 데이터 와 산술 연산 을 할 수 있다.
    0 이 아 닌 정 수 를 논리 적 변수 에 부여 하면'진짜'로 처리 합 니 다.예 를 들 어
    
      flag=123; //   flag   true
      cout<<flag;
    
    출력 은 수치 1 입 니 다.
    논리 연산 과 논리 표현 식
    때때로 하나의 관계 표현 식 만 으로 는 지정 한 조건 을 정확하게 표시 할 수 없다.
    C++논리 연산 자 3 가 지 를 제공 합 니 다:
    (1) &&  논리 와(다른 언어 에 해당 하 는 AND)
    (2) ||  논리 또는(다른 언어 에 해당 하 는 OR)
    (3) !논리 비(다른 언어 에 해당 하 는 NOT)
    논리 연산 예 는 다음 과 같다.
  • a&b 가 a,b 가 진실 이 라면 a&b 가 진실 이다.
  • a||b  만약 a,b 중 하나 가 진실 이 라면 a||b 는 진실 이다.
  • !a 만약 a 가 진실 이 라면!가짜
  • 하나의 논리 표현 식 에 여러 개의 논리 연산 자가 포함 되 어 있 으 면 다음 과 같은 우선 순위 로 합 니 다.
    (1) !(비)→&&(와)→?(혹은"!"삼자 중 가장 높 은 것 이다.
    (2)논리 연산 자 중의"&"와"|"은 관계 연산 자 보다 낮 습 니 다."!"산술 연산 자 보다 높다.
    예 를 들 면:
  • (a>b) && (x>y)  a>b&x>y
  • 으로 쓸 수 있 습 니 다.
  • (a==b) || (x==y)  a==b||x=y
  • 으로 쓸 수 있 습 니 다.
  • (!a)||(a>b)작성 가능!a || a>b
  • 두 관계 표현 식 을 논리 연산 자 로 연결 하면 논리 표현 식 이 되 고 위의 몇 가지 식 은 논리 표현 식 입 니 다.논리 식 의 일반적인 형식 은
    
                   
    
    논리 식 의 값 은 논 리 량 인'진짜'나'가짜'입 니 다.앞에서 설명 한 바 와 같이 논리 연산 결 과 를 제시 할 때 수치 1 로'진'을 대표 하고 0 으로'가'를 대표 하지만 하나의 논 리 량 이'진'인지 아 닌 지 를 판단 할 때 취 하 는 기준 은 그 값 이 0 이면'가'라 고 생각 하고 그 값 이 0 이면'진'이 라 고 생각 하 는 것 이다.예 를 들 면:
    (1)만약 a=4 라면!a 의 값 은 0 이다.a 의 값 은 0 이 아니 기 때문에'진'으로 간주 되 고 그것 에 대해'비'연산 을 하면'가'를 얻 고'가'는 0 으로 대표 된다.
    (2)만약 a=4,b=5 라면 a&&b 의 값 은 1 이다.a 와 b 는 모두 0 이 아니 기 때문에'진짜'로 여 겨 진다.
    (3)a,b 값 은 이전 과 같 고 a-b|a+b 의 값 은 1 이다.a-b 와 a+b 의 값 은 모두 0 값 이 아니 기 때문이다.
    (4)a,b 값 은 이전 과 같 습 니 다!a|b 의 값 은 1 입 니 다.
    (5)4&&0|2 의 값 은 1 이다.
    C++에서 정형 데 이 터 는 논리 표현 식 에 나타 날 수 있 습 니 다.논리 연산 을 할 때 정형 데이터 의 값 이 0 또는 0 이 아 닌 것 에 따라 논리 적 인 양 이나 진실 으로 한 다음 에 논리 연산 에 참가 할 수 있 습 니 다.
    이 몇 가지 예 를 통 해 알 수 있 듯 이 논리 연산 결 과 는 0 이 아니면 1 이 고 다른 수치 일 수 없다.논리 표현 식 에서 논리 연산 에 참가 하 는 연산 대상 은 0("가짜")또는 0 이 아 닌 모든 수치("진짜"에 따라)일 수 있 습 니 다.한 표현 식 의 서로 다른 위치 에 수치 가 나타 나 면 해당 구역 은 어떤 것 이 수치 연산 이나 관계 연산 의 대상 이 고 어떤 것 이 논리 연산 의 대상 인지 나 누 어야 합 니 다.
    실제로 논리 연산 자 양쪽 의 표현 식 은 관계 표현 식 이나 정수(0 과 비 0)일 뿐만 아니 라 문자 형 과 같은 모든 유형의 데이터 일 수도 있 습 니 다.부동 소수점 형 이나 지침 형 등.시스템 은 최종 적 으로 0 과 비 0 으로 그것들 이'진짜'또는'가짜'에 속한다 고 판정 했다.예 를 들 어'c'&&  'd'의 값 은 1 이다.
    C++의 관계 연산 자 와 논리 연산 자 를 익히 면 복잡 한 조건 을 논리 적 표현 식 으로 교묘 하 게 표현 할 수 있다.예 를 들 어 어느 해(year)가 윤년 인지 아 닌 지 를 판별 해 야 한다.윤년 의 조건 은 다음 과 같은 두 가지 중 하나 에 부합된다.① 4 로 나 눌 수 있 지만 100 으로 나 눌 수 없다.② 100 으로 나 눌 수도 있 고 400 으로 나 눌 수도 있다.예 를 들 면 2004?2000 년 은 윤년,2005?2100 년 은 윤년 이 아니다.
    논리 적 표현 식 으로 표시 할 수 있 습 니 다.
    
    (year % 4 == 0 && year % 100 != 0) || year % 400 == 0
    
    year 가 특정한 정수 값 으로 지정 되 었 을 때 상기 표현 식 값 이 진짜(1)이면 year 는 윤년 이다.그렇지 않 으 면 해 는 윤년 이 아니다."!"를 추가 할 수 있 습 니 다.비 윤년 을 판별 하 는 데 쓰 인 다.
    
    !((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    
    표현 식 값 이 진짜 라면 year 는 비 윤년 입 니 다.다음 의 논리 적 표현 식 으로 비 윤년 을 판별 할 수도 있다.
    
    (year % 4 != 0) || (year % 100 == 0 && year % 400 !=0)
    
    표현 식 값 이 사실 이 라면 year 는 윤년 이 아니다.표현 식 의 오른쪽 괄호 안에 있 는 다른 연산 자(%,!,&,=)에 주의 하 십시오.의 연산 우선 순위.

    좋은 웹페이지 즐겨찾기