라라리라
2023.08.19 / Step 10 [함수] - 코딩 31 일차 본문
함수1_개념01_기본.html
<script>
/*
[개념] 함수의 기본 형태
[1] 함수의 정의
(1) function : 키워드
(2) test() : 이름
(3) {} : 실행영역
[2] 함수 실행
(1) test(); : 함수이름을 적는다.
[3] 함수의 이점
(1) 함수를 한번만들어 놓으면 다시 사용할때는 코드량이 줄어든다.
*/
function test() {
document.write("test 입니다.<br>");
}
// 위의 함수 정의는 설계에 해당하는 것으로 실행되는 것이 아니다.
test();
test();
</script>
함수1_개념02_매개변수와인자.html
<script>
/*
[개념] 함수의 매개변수와 인자
[1] 함수를 정의 할 때 매개변수를 설정할 수 있다.
[2] 매개변수를 설정한 함수는 함수를 사용할 때 반드시 인자를 넣어줘야한다.
[2] 매개 변수와 인자는 개수를 맞춰줘야한다.
*/
function plus(x, y) { // x와 y를 매개 변수라 한다.
document.write(x + "," + y + "<br>");
let rs = x + y;
document.write("rs = " + rs + "<br>");
document.write("<br>");
}
plus(10 , 3); // 10과 3을 인자라고 한다.
plus(); // NaN
plus(10); // NaN
plus(4, 54); // 58
</script>
함수1_개념03_계산기.html
<script>
/*
[개념] 함수 응용 계산기
*/
function plus(x , y) {
let c = x + y
document.write(c + "<br>");
}
function minus(x , y) {
let c = x - y
document.write(c + "<br>");
}
function multiply(x , y) {
let c = x * y
document.write(c + "<br>");
}
function division(x , y) {
let c = x / y
document.write(c.toFixed(2) + "<br>");
}
plus(10, 3);
minus(10, 3);
multiply(10, 3);
division(10, 3);
</script>
함수1_개념04_짝수홀수.html
<script>
/*
[문제]
1~100 사이의 숫자를 랜덤으로 저장하고
그 수가 짝수인지 홀수인지 출력하는 함수를 만드시오.
위 식을 10번 반복하시오.
[예시]
6 : 짝수
98 : 짝수
15 : 홀수
11 : 홀수
32 : 짝수
2 : 짝수
62 : 짝수
8 : 짝수
78 : 짝수
63 : 홀수
*/
function checkNum(num){
document.write(num + " : ");
if(num % 2 == 0){
document.write("짝수<br>");
}else{
document.write("홀수<br>");
}
}
for(let i=0; i<10; i++) {
let ran = parseInt(Math.random() * 100) + 1;
checkNum(ran);
}
</script>
함수1_개념05_반복문.html
<script>
/*
[문제]
1~10 사이의 숫자를 랜덤으로 저장하고,
1~ 랜덤 숫자까지의 합을 출력하는 함수를 만드시오.
[정답]
1부터 10까지의 합 : 55
*/
function checkNum(num){
let total = 0;
for(let i=1; i<=num; i++){
total += i;
}
document.write("1부터 " + num + "까지의 합 : " + total + "<br>");
}
let ran = parseInt(Math.random() * 10) + 1;
checkNum(ran);
</script>
함수1_개념06_배열.html
<script>
/*
[문제]
arr배열의 값들 중 50보다 큰 수만
출력해주는 함수를 만드시오.
[정답]
98
77
*/
function checkArr(arr){
for(let i=0; i<arr.length; i++){
if(arr[i] > 50){
document.write(arr[i] + "<br>");
}
}
}
let arr =[21, 45, 7, 98, 77];
checkArr(arr);
</script>
함수1_개념07_omr.html
<script>
/*
[문제]
omr배열은 정답이다.
me배열에 랜덤숫자(1~4)를 5개 저장 후,
omr과 비교하여 아래와 같이 출력하는 함수를 만드시오.
[예시]
omr = 1,4,3,2,1
me = 1,2,3,3,2
ox = o,x,o,x,x
*/
function omrCheck(omr){
let me = [];
let ox = [];
for(let i = 0; i < omr.length; i++){
let ran = parseInt(Math.random() * 4) + 1;
me[i] = ran;
if(omr[i] == me[i]){
ox[i] = "o";
}else{
ox[i] = "x";
}
}
document.write("omr = " + omr + "<br>");
document.write("me = " + me + "<br>");
document.write("ox = " + ox);
}
let omr = [1, 4, 3, 2, 1];
omrCheck(omr);
</script>
함수1_문제01_누적.html
<script>
/*
[문제]
1~10 사이의 숫자를 랜덤으로 2개 저장하고,
작은 숫자부터 큰 숫자까지의 합을 출력하는 함수를 만드시오.
[예시]
5, 3 ==> 3 + 4 + 5
2, 6 ==> 2 + 3 + 4 + 5 + 6
*/
let r1 = Math.floor(Math.random() * 10) + 1;
let r2 = Math.floor(Math.random() * 10) + 1;
function sum (r1, r2){
let total = 0;
document.write(`${r1}, ${r2} ==> `);
if(r2 < r1){
let temp = r1;
r1 = r2;
r2 = temp;
}
for(let i = r1; i <= r2; i++){
document.write(i + " ");
if(i < r2) document.write(" + ");
total += i;
}
document.write(" = " + total + "<br>");
}
sum(r1, r2);
</script>
함수1_문제02_짝수의개수.html
<script>
/*
[문제]
arr배열 안의 값들을 체크하여
짝수의 개수를 출력하는 함수를 만드시오.
[정답]
2
*/
function check (arr){
let count = 0;
for(let i = 0; i < arr.length; i++){
if(arr[i] % 2 == 0) count++;
}
document.write(count + "<br>");
}
let arr = [2, 45, 1, 12];
check(arr);
</script>
함수1_문제03_복권당첨.html
<script>
/*
[문제]
lotto배열이 당첨인지 꽝인지 체크하는 함수를 만드시오.
단, 7이 연속으로 3개이면 당첨이다.
[정답]
당첨
*/
function lottocheck (arr){
let count = 0;
let check = false;
for(let i = 0; i < arr.length; i++){
if(arr[i] == 7) count++
else count = 0;
if(count == 3){
check = true;
break;
}
}
if(check) document.write("당첨!<br>");
else document.write("꽝<br>");
}
let lotto = [1, 7, 7, 1, 7, 7, 7];
lottocheck(lotto);
</script>
함수1_문제04_일등.html
<script>
/*
[문제]
아래 배열은 시험점수와 학생이름이다.
일등의 학생이름을 출력해주는 함수를 만드시오.
[정답]
박민지
*/
function checkfirst (arr1, arr2){
let max = 0;
for(let i = 0 ; i < arr2.length; i++){
if(arr2[i] > max) max = arr2[i];
}
document.write(arr1[arr2.indexOf(max)]);
}
let name = ["이만수", "김철수", "박민지"];
let score = [54, 32, 92];
checkfirst(name, score);
</script>
함수1_문제05_전부짝수.html
<script>
/*
[문제]
배열의 랜덤값이 모두 짝수면 true를 출력하고,
하나라도 짝수가 아니면 false를 출력하는 함수를 만드시오.
단, 0은 짝수이다.
[정답]
true
*/
function check (arr){
let info = true;
for(let i = 0; i < arr.length; i++){
if(arr[i] % 2 == 1){
info = false;
break;
}
}
return info;
}
let arr = [10, 0, 2, 6];
document.write(check(arr));
</script>
함수1_문제06_배열가위바위보.html
<script>
/*
[문제]
철수와 민수는 가위바위보를 6회 하였다.
가위(0) , 바위(1) , 보(2) 를 뜻한다.
아래 배열은 각각 가위바위보를 낸 기록을 저장한것이다.
철수와 민수는 계단 50번째 부터 게임을 시작하였다.
철수와 민수는 게임을 모두 끝마치고 어느 위치에 있는지
출력해주는 함수를 만드시오.
[규칙]
이기면 5칸 올라간다.
비기면 1칸 올라간다.
지면 3칸 내려간다.
[정답]
철수 위치 = 64
민수 위치 = 48
*/
function Game (a, b, c, d){
for(let i = 0 ; i < a.length; i++){
if(a[i] == b[i]){
c += 1;
d += 1;
}
else if(a[i] == 0 && b[i] == 2){
c += 5;
d -= 3;
}
else if(a[i] == 1 && b[i] == 0){
c += 5;
d -= 3;
}
else if(a[i] == 2 && b[i] == 1){
c += 5;
d -= 3;
}
else {
c -= 3;
d += 5;
}
}
document.write("철수위치 = " + c + "<br>민수위치 = " + d + "<br>");
}
let 철수 = [0, 1, 2, 2, 1, 0];
let 민수 = [2, 1, 1, 2, 0, 1];
let 철수위치 = 50;
let 민수위치 = 50;
Game(철수, 민수, 철수위치, 민수위치);
</script>
함수1_문제07_물건채우기.html
<script>
/*
[문제]
철수는 편의점에서 아르바이트를 하고있다.
장사가 잘되서 라면이 많이 팔렸다.
진열장은 최대 10개를 채울수있다.
재고는 4칸의 상자에 5개씩 담겨져있다.
진열장을 앞에서부터 순차적으로 채워넣고
결과를 출력해주는 함수를 만드시오.
[정답]
진열장 = 10,10,10,6,1
*/
function count (x, y){
for(let i = 0; i < x.length; i++){
for(let j = 0; j < y.length; j++){
if(x[i] < 10 && y[j] > 0){
while(true){
if(x[i] == 10) break;
if(y[j] == 0) break;
x[i] ++;
y[j] --;
}
}
}
}
document.write(`진열장 = [${x}]`)
}
let 진열장 = [4, 0, 9, 3, 1];
let 재고 = [5, 5, 5, 5];
count(진열장, 재고);
</script>
함수1_문제08_배열택시.html
<script>
/*
[문제]
현재 택시는 5, 5 위치에 있다.
dir 배열은 뱡향을 뜻하고 0, 1, 2, 3은
북, 동, 남, 서를 뜻한다.
speed 배열은 속도를 뜻한다.
dir과 speed 배열은 택시가 매번 이동한 내용을 기록한것이다.
[예시]
처음에 dir이 0이니 북쪽을 뜻한다.
speed는 4이므로, y가 4증가해 x : 5 , y : 9 가 된다.
두 번째는 dir이 2이니 남을 뜻하고, speed는 2이므로
y가 2감소해 x : 5 , y : 7 이된다.
6번 모두 이동한 후 택시의 위치를 출력하시오.
[정답]
y = 0, x = 8
*/
function taxi (a, b, c, d){
for(let i = 0; i < b.length; i++){
if(b[i] == 0) d += a[i];
else if(b[i] == 1) c += a[i];
else if(b[i] == 2) d -= a[i];
else if(b[i] == 3) c -= a[i];
}
document.write(`y = ${d}, x = ${c}`);
}
let speed = [4, 2, 1, 5, 4, 2];
let dir = [0, 1, 3, 2, 2, 1];
let x = 5;
let y = 5;
taxi(speed, dir, x, y);
</script>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.08.21 / Step 10 [함수] - 코딩 33 일차 (0) | 2023.08.21 |
---|---|
2023.08.20 / Step 10 [함수] - 코딩 32 일차 (0) | 2023.08.20 |
2023.08.18 / Step 9 [문자열] - 코딩 30 일차 (0) | 2023.08.19 |
2023.08.17 / Step 9 [문자열] - 코딩 29 일차 (0) | 2023.08.17 |
2023.08.16 / Step 9 [문자열] - 코딩 28 일차 (0) | 2023.08.16 |