라라리라
2023.07.24 / Step 2 [논리] - 코딩 5 일차 본문
논리1_개념01_논리연산자.html
<script>
/*
1. 산술 연산자
2. 비교 연산자
3. 논리 연산자
(1) &&(and 연산자) : 양쪽 모두 참이어야 참
t && t = t
t && f = f
f && t = f
f && f = f
(2) ||(or 연산자) : 어느한쪽이라도 참이면 참
t || t = t
t || f = t
f || t = t
f || f = f
(3) !(not 연산자) : 참이면 거짓으로, 거짓이면 참으로 변환
!true = false
!false = true
*/
// && (and)
// || (or)
// ! (not);
</script>
논리1_개념02_and.html
<script>
/*
[문제]
변수num의 값이 3의 배수이면서, 짝수인지 확인하시오.
[정답]
true
*/
let num = 12;
let b = (num % 3 == 0) && (num % 2 == 0);
console.log(b);
document.write(b+"<br>");
</script>
논리1_개념03_or.html
<script>
/*
[문제]
변수 num의 값이 3의 배수이거나, 짝수인지 확인하시오.
[정답]
true
*/
let num = 12;
let b = num % 3 == 0 || num % 2 == 0;
console.log(b);
document.write(b);
</script>
논리1_개념04_합격.html
<script>
/*
[문제]
점수가 60 이상이고, 100 이하이면
true를 출력하시오.
[정답]
true
*/
let a = 70
let b = 60 <= a && 100 >= a
console.log(b);
document.write(b);
</script>
논리1_개념05_점수차이.html
<script>
/*
[문제]
철수는 국어 80점, 수학 29점을 받았다.
민수는 국어 76점, 수학 40점을 받았다.
두 학생의 점수 차이는 7이거나 -7이다.
위 식을 논리연산자로 표현하시오.
*/
let 철수국어 = 80;
let 철수수학 = 29;
let 철수합계 = 철수국어 + 철수수학;
let 민수국어 = 76;
let 민수수학 = 40;
let 민수합계 = 민수국어 + 민수수학;
let 점수차이 = (7 == 철수합계 - 민수합계) || (-7 == 철수합계 - 민수합계);
console.log(점수차이);
document.write(점수차이);
</script>
논리1_개념06_회원가입.html
<script>
/*
[문제]
joinId 와 joinPw 는 회원가입할 때 저장한 값이다.
loginId 와 loginPw 는 로그인을 위해 저장한 값이다.
로그인이 가능한지 확인하시오.
[정답]
true
*/
let joinId = "qwer";
let joinPw = "qwer1234";
let loginId = "qwer";
let loginPw = "qwer1234";
let pass = joinId == loginId && joinPw == loginPw;
console.log(pass);
document.write(pass);
</script>
논리1_문제01_가장큰수.html
<script>
/*
[문제]
아래 변수 a, b, c 중에서 a에 가장 큰 수가 저장되어 있는지 확인한다.
a가 가장 큰 수이면 true를 출력하도록 식을 만드시오.
[정답]
true
*/
let a = 6;
let b = 2;
let c = 5;
let rs = a > b && a > c
console.log(rs);
document.write(rs);
</script>
논리1_문제02_과락.html
<script>
/*
[문제]
3과목의 평균이 60점 이상이면 합격이다.
단, 평균이 합격일지라도, 어느 한 과목이 50점 미만이면 불합격이다.
아래 시험점수는 합격인지 구하시오.
[정답]
false
*/
let 국 = 100;
let 영 = 87;
let 수 = 49;
let 평균 = (국 + 영 + 수) / 3 >= 60;
let 과락 = 국 > 50 && 영 > 50 && 수 > 50;
let 합격여부 = 평균 == 과락;
console.log(합격여부);
document.write(합격여부);
</script>
논리1_문제03_귤사과.html
<script>
/*
[문제]
귤 6개의 무게는 840g, 사과 3개의 무게는 750g이다.
귤 5개의 무게가 사과 2개의 무게보다 무겁고,
사과 4개의 무게가 귤 7개의 무게보다 무거우면,
true를 출력하시오.
[정답]
true
*/
let 귤 = 840 / 6;
let 사과 = 750 / 3;
let rs = 귤 * 5 > 사과 * 2 && 사과 * 4 > 귤 * 7;
console.log(rs);
document.write(rs);
</script>
논리1_문제04_연필.html
<script>
/*
[문제]
연필 80자루를 학생 6명에게 남김없이 똑같이 나누어 주고,
몇 자루가 남았다.
학생 한 명당 나눠준 연필 개수가 4의 배수이고,
남은 연필 수가 짝수이면 true를 출력하시오.
[정답]
false
*/
let 연필 = 80;
let 학생 = 6;
let 나눠준연필수 = parseInt(연필 / 학생);
let 남은연필 = (연필 % 학생);
document.write(나눠준연필수 + "<br>");
document.write(남은연필 + "<br>");
let rs = 나눠준연필수 % 4 == 0 && 남은연필 % 2 == 0;
console.log(rs);
document.write(rs + "<br>");
</script>
논리1_문제05_체력장.html
<script>
/*
[문제]
철수는 체력장을 한다.
종목은 윗몸일으키기와 철봉이다.
둘 중 하나만 성공해도 체력장 통과이다.
윗몸일으키기는 1분에 35개를 하면 통과이다.
철봉은 1분에 7개를 하면 통과이다.
철수는 윗몸일으키기를 3분 20초에 123개를 한다.
철봉은 5분에 32개를 한다.
철수는 체력장을 통과 할 수 있을지 구하시오.
[정답]
true
*/
let 윗몸 = (35 / 60);
let 철봉 = (7 / 60);
let 철수윗몸 = (123 / 200);
let 철수철봉 = (32 / 300);
let rs = (철수윗몸 >= 윗몸 || 철수철봉 >= 철봉);
console.log(rs);
document.write(rs);
</script>
논리2_개념01_연립방정식.html
<script>
/*
[연립방정식]
미지수가 2개 이상이면 한개의 식으로는 해결이 불가능하다.
서로 연결된 두방정식을 연립방정식이라고한다.
아래 식의 풀이과정을 주석으로 작성하시오.
*/
let a = 0;
let b = 0;
let result = a - 4 * b == 1 && 5 * a + 4 * b == -19;
/*
a - 4b = 1 / 5a + 4b = -19;
a - 4b = 1
a = 1 + 4b
5 * (1 + 4b) + 4 * b = -19
5 + 20b + 4b = -19
24b - -24
b = -1
a + 4 = 1
a = -3
4a + 8b - -20
a + 2b = -5
a = -2b -5
-2b - 5 -4b = 1
-6b = 6
b = -1
a = -3
*/
a = -3
b = -1
result = a - 4 * b == 1 && 5 * a + 4 * b == -19;
console.log(result);
document.write(result);
</script>
논리2_개념02_연립부등식.html
<script>
/*
[연립부등식]
미지수가 2개 이상이면 한개의 식으로는 해결이 불가능하다.
서로 연결된 두부등식을 연립부등식이라고한다.
[문제]
어떤수a에 3를 곱하였더니 6 이되었습니다.
위a를 2로 나누면 b 가 더크다.
위 설명을 식으로 표현하고 답을 구하는 연립부등식을 주석으로 표현하시오.
*/
let a = 0;
let b = 0;
let result = a * 3 == 6 && b > a / 2;
/*
a * 3 == 6 && b > a / 2;
3a = 6 / b > 0.5a ;
6a = 12 / 2b > 5a;
a = 2 / 2b > 10;
b > 5;
b > 1;
*/
a = 2;
b = 2;
result = a * 3 == 6 && b > a / 2;
console.log(result);
document.write(result);
</script>
논리2_개념03_도형.html
<script>
/*
[문제]
사각형 가로는 7이다.
사각형 가로는 삼각형 가로와 같다.
삼각형 가로는 삼각형 세로보다 2크다.
삼각형 넓이 3개의 합이 사각형의 넓이와 같다.
사각형의 가로와 세로, 삼각형의 가로와 세로를 구하시오.
[정답]
사각형의 가로 = 7
사각형의 세로 = 7.5
삼각형의 가로 = 7
삼각형의 세로 = 5
*/
let 사각형가로 = 7;
let 삼각형가로 = 사각형가로;
let 삼각형세로 = 삼각형가로 - 2;
let 사각형넓이 = 3 * (삼각형가로 * 삼각형세로) / 2;
let 사각형세로 = 사각형넓이 / 7;
console.log(사각형가로);
console.log(사각형세로);
console.log(삼각형가로);
console.log(삼각형세로);
document.write(사각형가로 + "<br>");
document.write(사각형세로 +"<br>");
document.write(삼각형가로 +"<br>");
document.write(삼각형세로 + "<br>");
</script>
논리2_개념04_올레길.html
<script>
/*
[문제]
제주도 올레길을 갈때는 시속 2킬로미터로 걷고,
올때는 같은 길을 시속 3킬미터로 걸어서
전체 걸리는 시간을 5시간 이하로 하려고 한다.
최대 몇킬로미터 지점까지 갔다가 되돌아 오면되는지 구하시오.
위식을 표현하고, 풀이과정을 주석으로 작성하시오.
*/
/*
[풀이]
갈때 = x
올때 = y
x == y
x / 2 + x / 3 <= 5
6 * (x / 2 + x / 3) <= 30
3x + 2x <= 30
x = 6
y = 6
*/
let 갈때 = 6 ;
let 올때 = 6 ;
let rs = 갈때 / 2 + 올때 / 3 <= 5 && 갈때 == 올때;
console.log(rs);
document.write(rs);
</script>
논리2_문제01_장학생.html
<script>
/*
[문제]
국어점수가 100점이거나 수학 점수가 100점이면 장학생이다.
아래는 철수의 점수이다.
철수가 장학생이면 true 출력하시오.
[정답]
false
*/
let kor = 99;
let math = 99;
let rs = kor == 100 || math == 100;
console.log(rs);
document.write(rs);
</script>
논리2_문제02_동물원.html
<script>
/*
[문제]
철수네 반 학생들은 소풍을 나왔다.
학생 수는 전부 24명이고 일부는 동물원 관람, 나머지 학생은 미술관을 관람하였다.
동물원 입장료는 3000원이고, 미술관 입장료는 1000원이다.
학생 24명의 총 입장료는 40000원이었다.
동물원에 입장한 학생 수와 미술관에 입장한 학생 수를 각각 구하시오.
주석으로 표현하시오.
[정답]
동물원 = 8
미술관 = 16
*/
let 학생수 = 24;
let 동물원요금 = 3000;
let 미술관요금 = 1000;
let 동물원학생 = 0;
let 미술관학생 = 0;
let 총학생요금 = 40000;
let rs = 동물원학생 + 미술관학생 == 학생수 && (동물원요금 * 동물원학생) + (미술관요금 * 미술관학생) == 총학생요금;
/*
동물원학생수 a
미술관학생수 b
a + b = 24
3000a + 1000b = 40000
a + b = 24 && 3000a + 1000b = 40000
3a + b = 40
a = 24 - b
3 * (24 - b) + b = 40
72 - 3b + b = 40
72 - 2b = 40
-2b = -32
b = 16
a = 8
*/
동물원학생 = 8
미술관학생 = 16
rs = 동물원학생 + 미술관학생 == 학생수 && (동물원요금 * 동물원학생) + (미술관요금 * 미술관학생) == 총학생요금;
console.log(rs);
document.write(rs);
</script>
논리2_문제03_미술관.html
<script>
/*
[문제]
중학생인 미연이는 부모님과 함께 미술관에 갔다.
어른의 입장료가 청소년의 입장료보다 2000원이 더 비싸고,
세 사람의 입장료가 13000원일 때, 미연이의 입장료를 구하시오.
[정답]
어른 입장료 = 5000
청소년 입장료 = 3000
*/
let 미연이입장료 = 0;
let 어른입장료 = 미연이입장료 + 2000;
let 입장료총액 = 13000;
let rs = 2 * 어른입장료 + 미연이입장료 == 입장료총액;
/* 어른입장료 = 청소년입장료+2000
2 * (청소년입장료+2000) + 청소년입장료 = 13000
2청 + 4000 + 청 = 13000
3청 = 9000
청 = 3000
*/
미연이입장료 = 3000;
어른입장료 = 미연이입장료 + 2000;
console.log(미연이입장료);
document.write(미연이입장료 +"<br>");
console.log(어른입장료);
document.write(어른입장료+ "<br>");
rs = 2 * 어른입장료 + 미연이입장료 == 입장료총액 && 어른입장료 == 미연이입장료 + 2000;
console.log(rs);
document.write(rs + "<br>");
</script>
논리2_문제04_산책로.html
<script>
/*
[문제]
철수는 총거리가 5km인 산책로를 걷는데
처음에는 시속 4km로 걷다가 도중에 힘이 들어
남은 거리는 시속 2km로 걸어서 2시간 만에 산책을 마쳤다.
시속 4km로 걸은 거리와 시속 2km로 걸은 거리를 각각 구하시오.
주석으로 표현하시오.
[정답]
시속4km 거리 = 2
시속2km 거리 = 3
*/
/*
뛴거리 = a
걸은거리 = b
a + b = 5
a/4 + b/2 = 2
a + 2b = 8
a = 8 - 2b
8 - 2b + b = 5
-b = - 3
b = 3
a = 2
*/
뛴거리 = 2;
걸은거리 = 3;
총거리 = 5;
산책시간 = 2;
rs = 뛴거리 + 걸은거리 == 5 && 뛴거리 / 4 + 걸은거리 / 2 == 산책시간;
console.log(rs);
document.write(rs + "<br>");
</script>
논리2_문제05_수학시험.html
<script>
/*
[문제]
철수네 학교 수학 시험은 4점짜리 문제와 5점짜리 문제가 섞여서 출제된다.
철수는 20개의 문제를 맞혀서 90점을 받았다.
각각 몇 문제씩 맞혔는지 구하시오.
주석으로 표현하시오.
[정답]
4점짜리 문제 = 10
5점짜리 문제 = 10
*/
/*
4점 = a
5점 = b
a + b = 20
4a + 5b = 90
a = 20 - b
4(20 - b) + 5b = 90
80 - 4b + 5b = 90
b = 10
a = 10
*/
let _4점문제갯수 = 10;
let _5점문제갯수 = 10;
let 철수점수 = 90;
let 철수맞힌갯수 = 20;
console.log(철수점수 == 4 * _4점문제갯수 + 5 * _5점문제갯수);
document.write((철수점수 == 4 * _4점문제갯수 + 5 * _5점문제갯수) + "<br>");
console.log(철수맞힌갯수 == _4점문제갯수 + _5점문제갯수);
document.write((철수맞힌갯수 == _4점문제갯수 + _5점문제갯수)+ "<br>");
let rs = (철수점수 == 4 * _4점문제갯수 + 5 * _5점문제갯수) && (철수맞힌갯수 == _4점문제갯수 + _5점문제갯수);
console.log(rs);
document.write(rs+ "<br>");
</script>
논리2_문제06_연립방정식.html
<script>
/*
[연립방정식]
미지수가 2개 이상이면 한 개의 식으로는 해결이 불가능하다.
서로 연결된 두 방정식을 연립방정식이라고 한다.
아래 식의 풀이 과정을 주석으로 작성하시오.
*/
let c = 0;
let d = 0;
let rs1 = 3 * c - d == 1 && -2 * c + d == -3;
/*
3 * c - d = 1 / -2 * c + d = -3;
3c - d = 1 / -2c + d = -3
d = 3c - 1 / -2c + 3c - 1 = -3
c = -2
d = -7
*/
c = -2;
d = -7;
rs1 = 3 * c - d == 1 && -2 * c + d == -3;
console.log(rs1);
document.write(rs1+ "<br>");
let e = 0;
let f = 0;
let rs2 = 5 * e - 2 * f == 2 && e + 3 * f == 14;
/*
5 * e - 2 * f = 2 / e + 3 * f = 14
5e - 2f = 2 / e + 3f = 14
e = 14 - 3f
5 * (14 - 3f) - 2f = 2
70 - 15f -2f = 2
68 = 17f
f = 4
e = 2
*/
e = 2;
f = 4;
rs2 = 5 * e - 2 * f == 2 && e + 3 * f == 14;
console.log(rs2);
document.write(rs2+"<br>");
</script>
논리2_문제07_오리다리.html
<script>
/*
[문제]
어느 농장에는 토끼와 오리가 모두 35마리가 있다.
토끼와 오리의 다리의 수의 합이 96개일 때,
토끼와 오리는 각각 몇 마리 인지 주석으로 표현하시오.
[정답]
토끼 = 13
오리 = 22
*/
/*
토끼 = x
오리 = y
x + y = 35
4x + 2y = 96
y = 35 - x
4x + 70 - 2x = 96
2x = 26
x = 13
y = 22
*/
let 총합 = 35;
let 다리수합 = 96;
let 토끼수 = 13;
let 오리수 = 22;
let rs = 토끼수 + 오리수 == 총합 && 4 * 토끼수 + 2 * 오리수 == 다리수합;
console.log(rs);
document.write(rs+"<br>");
</script>
논리2_문제08_체력테스트.html
<script>
/*
[문제]
철수는 체력테스트 중이다.
체력테스트는 달리기와 윗몸일으키기이다.
운동장을 5바퀴 반을 도는데 11분 50초 이하이면 통과이다.
철수는 운동장 2바퀴 도는 데 261초가 걸린다.
윗몸일으키기는 55초 동안 35개를 하면 통과이다.
철수는 3분 동안 118개를 한다고 했을 때,
체력테스트는 둘 중 한 종목만 통과해도 된다.
단, 철수는 항상 같은 속도로 달리기와 윗몸일으키기를 한다.
철수는 통과할 수 있을지 주석으로 표현하시오.
[정답]
true
*/
/*
5.5 / 60 * 11 + 50 <= 2 / 261
35 / 55 <= 118 / 180
*/
let 운동장바퀴기준 = 5.5;
let 운동장시간_초 = 60 * 11 + 50;
let 철수운동장바퀴 = 2;
let 철수운동장시간_초 = 261;
let 윗몸갯수기준 = 35;
let 윗몸시간기준 = 55;
let 철수윗몸갯수 = 118;
let 철수윗몸시간 = 3 * 60;
let rs = 운동장바퀴기준 / 운동장시간_초 <= 철수운동장바퀴 / 철수운동장시간_초 || 윗몸갯수기준 / 윗몸시간기준 <= 철수윗몸갯수 / 철수윗몸시간;
console.log(rs);
document.write(rs);
</script>
논리3_개념01_자리수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 3이고 10의 자리가 4이면,
true 출력하시오.
[정답]
true
*/
let a = 3340;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 / 10);
let rs = 백의자리 == 3 && 십의자리 == 4;
console.log(rs);
document.write(rs);
</script>
논리3_개념02_배수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 4의 배수 이거나 10의 자리가 홀수이면,
true 출력하시오.
[정답]
false
*/
let a = 3340;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 / 10);
let rs = 백의자리 % 4 == 0 || 십의자리 % 2 == 1;
console.log(rs);
document.write(rs);
</script>
논리3_개념03_약수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 30의 약수 이거나 10의 자리가 25의 약수이면,
true 출력하시오.
[정답]
true
*/
let a = 3340;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 / 10);
let rs = 30 % 백의자리 == 0 || 25 % 십의자리 == 0;
console.log(rs);
document.write(rs);
</script>
논리3_개념04_연산자총정리.html
<script>
/*
[연산자 총정리]
1. 소괄호 연산자 : ( )
2. 산술 연산자 : * / %
3. 산술 연산자 : + -
4. 비교 연산자 : > < >= <= == !=
5. 논리 연산자 : && || !
6. 대입 연산자 : =
*/
let x = 10;
let y = 3;
let result = (x + y > 3) || ((y + 5) * 7 < 35);
console.log(result);
document.write(result + "<br>");
let rs1 = x + y > 3;
let rs2 = (y + 5) * 7 < 35;
let rs3 = rs1 || rs2;
console.log(rs3);
document.write(rs3 + "<br>");
</script>
논리3_문제01_배수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 6의 배수 이거나 10의 자리가 짝수이면,
true 출력하시오.
[정답]
true
*/
let a = 3640;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 /10);
let rs = 백의자리 % 6 == 0 || 십의자리 % 2 == 0;
console.log(rs);
document.write(rs);
</script>
논리3_문제02_약수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 30의 약수 이거나 10의 자리가 25의 약수이면,
true 출력하시오.
[정답]
true
*/
let a = 3340;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 / 10);
let rs = 30 % 백의자리 == 0 || 25 % 십의자리 == 0;
console.log(rs);
document.write(rs);
</script>
논리3_문제03_자리수.html
<script>
/*
[문제]
아래 변수의 a값이
100의 자리가 3이고 10의 자리가 4이면,
true 출력하시오.
[정답]
false
*/
let a = 3640;
let 백의자리 = parseInt(a % 1000 / 100);
let 십의자리 = parseInt(a % 100 / 10);
let rs = 백의자리 == 3 && 십의자리 == 4;
console.log(rs);
document.write(rs);
</script>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.07.26 / Step 3 [조건문] - 코딩 7 일차 (0) | 2023.07.26 |
---|---|
2023.07.25 / Step 2 [비교] - 코딩 6 일차 (0) | 2023.07.25 |
2023.07.23 / Step 1 [산술] - 코딩 4 일차 (0) | 2023.07.23 |
2023.07.22 / Step 1 [변수] - 코딩 3 일차 (0) | 2023.07.22 |
2023.07.22 / Step 1 [기초] - 코딩 3 일차 (0) | 2023.07.22 |