//문1) 아래와 같이 출력하시오
/*
12345
23456
34567
45678
56789
*/
/*
12345
23456
34567
45678
56789
*/
/*내가 한 것
for(a=1; a<=5; a++){
document.write(a);
for(b=a+1; b<=a+4; b++) {
document.write(b);
}
document.write("<br>");
}*/
//답안
for(let a=0; a<5; a++){
for(let b=a+1; b<=a+5; b++) {
document.write(b);
}
document.write("<br>");
}
//문2)아래 그림과 같이 출력하시오
/*
@★★★
★@★★
★★@★
★★★@
*/
/*
@★★★
★@★★
★★@★
★★★@
*/
for(let x=1; x<=4; x++){
for(let y=1; y<=4; y++) {
if(y==x) {
document.write("뱅");
}
else {
document.write("별");
}
}
document.write("<br>");
}
//문3) 아래와 같이 누적의 합을 출력하시오 (회전수 증가)
/*
1+ ... +10=55
1+ ... +20=210
1+ ... +30=465
1+ ... +90=
1+ ... +100=5050
*/
let sum = 0;
for( let a = 10; a<= 100; a += 10 ){
for( let b = 1; b <= a; b++) {
sum = sum + b;
}
document.write("1+...+" + a + "=" + sum);
document.write("<br>");
sum=0; //다음행 sum이 0으로 시작되도록
}
/*
a=10
b=1 1<=10 sum=0+1
2<=10 sum=1+2
...
10<=10 sum=45+10
a=20
b=1 1<=20 sum=55+1 <<여기서부터 문제 발생,
1행의 sum값이 남아 있어 0으로 초기화해주어야 함
2<=20 sum=56+2
*/
//문4) 1~100사이 중에서 짝수의 합, 홀수의 합을 각각 구하시오
/* 내가한것(연산자틀려서 고침)
let sum1 = 0;
let sum2 = 0;
for( let a = 0; a <= 100; a++ ) {
if(a % 2 == 0) {
sum1 = sum1 + a;
}else {
sum2 =sum2 + a;
}
}
document.write("짝수합 : " + sum1+ "<br>");
document.write("홀수합 : " + sum2);
*/
//2. 두 개를 번갈아가며 시행하는 스위치이론
/*
let flag = false;
for( let a = 1; a <= 100; a++) {
if(flag) {
even = even + a;
flag = false;
}else {
odd = odd + a;
flag = true;
}
}
*/
/*
a=1 1<=100
if(false)
(1은 100보다 작으므로 참인 경우인 else문 실행)
else {flag=true}
>>a가 1이므로 홀수인 경우에 실행되는 부분
2<=100
if(true) {flag=false}
>>a가 2이므로 짝수인 경우에 실행되는 부분
3<=100
if(false)
else{flag=true}
*/
//문5) 다음식의 결과를 구하시오
// 1 - 2 + 3 - 4 + 5 ... -100 = ?
/*
let even = 0;
let odd = 0;
let sum = even + odd;
for( let a = 1 ; a <= 100; a++){
if(a % 2 == 0) {
even = even - a
}else{
odd = odd + a
}
document.write("짝수합 : " + even + "<br>");
document.write("홀수합 : " + odd + "<br>");
document.write("<hr>");
}
//document.write("합 : " + sum);
*/
//2) 스위치이론 반영
let hap = 0;
flag = false;
for(let a =1 ; a<=100; a++) {
if(flag){
hap = hap-a;
flag=false;
}else{
hap = hap+a;
flag=true;
}
}
document.write("1 - 2 + 3 - 4 + 5 ... -100 = " + hap);
document.write("<hr>");
o 배열
// 참조 https://www.w3schools.com/js/js_arrays.asp
let kor=[]; //배열선언
kor[0]=10; //배열 요소의 인덱스는 0부터 시작
kor[1]=20; //배열 요소의 인덱스는 1씩 증가
kor[2]=30;
//배열선언 및 초기값
let points=[40, 100, 25, 3, 7];
document.write(points.length);// 배열 요소의 개수 5
document.write("<hr>");
* 배열 요소의 확인법
1) document.write(points); //배열 요소의 전체값 반환
2) for(let i = 0; i<points.length; i++) {
document.write(points[i]);
}//반복문 통한 배열 요소 전체 확인
3)
for( i in points ) { //뒤 변수 값을 하나씩 앞 변수에 넣음
document.write(points[i]);
===========================
o 배열연습문제
let num = [7, 8, -9, 5, 6];
let size=num.length;
document.write(num);
document.write("<hr>");
----------------------------------------------------------//문1)배열 요소의 전체 합을 구하시오
/*방법2=내가한것
document.write("배열 요소의 전체 합");
for(let a = 0; a < size ; a++) {
let sum= 0 ;
sum = sum + num[a];
}
document.write(sum);
document.write("<hr>");
*/
//방법1
document.write(num[0]+num[1]+num[2]+num[3]+num[4]);
document.write("<hr>");
//방법3 for ( in )사용
let sum = 0;
for( a in num ) {
sum = sum + num[a];
}
document.write(sum);
document.write("<hr>");
///////////////////////////////////////////////////////////////////////////////////////////////////////
//문2)음수의 개수를 구하시오
document.write("음수의 개수");
let minnum = 0;
for(let a = 0 ; a < size ; a++ ){
if(num[a] < 0) {
minnum++;
}
}
document.write(minnum);
document.write("<hr>");
//////////////////////////////////////////////////////////////////////////////////////////////
//문3)최대값, 최소값을 각각 구하시오
//방법1 내림차순 정렬 활용
/*
num.sort(function(a, b){return b - a});//8,7,6,5,-9
document.write(num[0]); //최댓값
document.write("<hr>");
document.write(num[size-1]); //최솟값
document.write("<hr>");
*/
//방법2 안됨 NaN으로 출력, Math.max()에는 배열을 통으로 넣으면 안됨
/*
document.write(Math.max(num));
document.write("<hr>");
document.write(Math.min(num));
document.write("<hr>");
*/
//방법3 두 값을 비교해 큰 놈(작은놈)이 맥스(민)자리를 차지하는 알고리즘
let max = num[0]; //최댓값
let min = num[0]; //최솟값
/*
7<7 if(max<num[0])
7<8 max=8 if(max<num[1]) max=num[1]
8<-9 if(max<num[2])
8<9 if(max<num[3]) max=num[3]
8<6 if(max<num[4])
*/
for( i = 0 ; i < size ; i++ ) {
if(max < num[i]) {
max=num[i];
}
if(min>num[i]) {
min=num[i];
}
}
document.write("최대값" + max);
document.write("<hr>");
document.write("최소값" + min);
document.write("<hr>");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//문4)num[4]요소의 등수를 구하시오
/*
6<7 if(num[4]<num[0]) r=1+1
6<8 if(num[4]<num[1]) r=2+1
6<-5 if(num[4]<num[2])
6<9 if(num[4]<num[3]) r=3+1
6<6 if(num[4]<num[4])
*/
//구하려는 요소를 1등으로 놓고 거기에 밀려난 횟수 더하기
let r = 1;
for(let i = 0 ; i < size ; i++ ){
if(num[4] < num [i]) {
r++;
}
}
'수업노트' 카테고리의 다른 글
| 23.2.16(목) (0) | 2023.02.16 |
|---|---|
| 23.2.15(수) (0) | 2023.02.16 |
| 23.2.13 (월) (0) | 2023.02.13 |
| 23.2.9 (목) (0) | 2023.02.09 |
| 23.2.8(수) (0) | 2023.02.08 |