วิธีการประกาศตัวแปรชุด ตัวแปรชุด score

Download Report

Transcript วิธีการประกาศตัวแปรชุด ตัวแปรชุด score

Arrays
Arrays
array หรื อแถวลำดับ คือโครงสร้ำงข้อมูลที่สำมำรถเก็บข้อมูล
ชนิดเดียวกัน เป็ นกลุ่มหรื อชุดที่เรี ยงต่อกันเป็ นแถว

 array
จะมีโครงสร้ำงเป็ นแบบเชิงเส้น(Linear) ดังนั้น
เรำสำมำรถระบุค่ำถัดไปหรื อก่อนหน้ำของแต่ละค่ำใน array
ได้
Array 1 มิติ
 กำรประกำศตัวแปร
ชนิดข้ อมูล ชื่อตัวแปร[ขนาดของarray];
เช่น
int a[20];
char c[15];
float score[24];
วิธีการประกาศตัวแปรชุ ด
int score[5];
ตัวแปรชุ ด score
score
score[0]
score[1]
score[2]
score[3]
score[4]
จำกตัวอย่ำง เป็ นกำรประกำศตัวแปรชุดชนิด integer ชื่อ
score ซึ่งมีขนำดเท่ำกับ 5
 หมำยถึง ตัวแปรชุด score สำมำรถเก็บข้อมูลจำนวนเต็มได้
5 ค่ำ นัน่ เอง

กำรระบุตำแหน่งหรื อค่ำใน array จะใช้ตวั เลข index
 score[0]
คือ คะแนนสอบของนักเรี ยนคนที่ 1
ตัวเลข index ซึ่งจะเริ่ มต้นที่ 0 เสมอ
จะเห็นว่ำ ตัวแปร array ง่ำยต่อกำรอ้ำงอิงเพื่อใช้งำน
ซึ่งถ้ำไม่ใช้ array จะต้องประกำศตัวแปรถึง 5 ตัว หรื อถ้ำต้องกำรเก็บคะแนนของ
นักเรี ยน 24 คน ก็เพียงประกำศ int score[24]; ไม่จำเป็ นต้องประกำศตัวแปรถึง
24 ตัว!!!
int score[5];
score[0] = 13;
กำหนดค่ำให้กบั score ช่องแรก
score[4] = 42;
กำหนดค่ำให้กบั score ช่องสุ ดท้ำย
score
ใน
memory
random values เพราะยังไม่ มกี ารกาหนดค่ าให้
-1068
13
22541
18253
-5673
6570
score[0]
score[1]
score[2]
score[3]
score[4]
42
ตัวอย่ำงกำรอ้ำงถึงสมำชิกในตัวแปรชุด
#include<stdio.h>
int main()
{ int a[5]={5};
int i = 2;
printf(“a[0] = %d\n”, a[0]);
เพรำะเหตุใด a[1] ในตอนแรกจึงเท่ำกับ 0 ??
printf(“a[1] = %d\n”, a[1]);
a[2] = a[0]+3;
เรำสำมำรถอ้ำงอิงถึงสมำชิกใน array โดยใช้ตวั แปรได้ เช่น a[i]
a[1] = a[i]+10;
a[i+1] = 20;
เรำสำมำรถอ้ำงอิงถึงสมำชิกใน array โดยอยูใ่ นรู ปของ
a[4] = a[i-1];
printf(“a[1] = %d\n”, a[1]); expression ได้ เช่น a[i-1], a[i+1], a[i*2]
printf(“a[2] = %d\n”, a[2]);
printf(“a[3] = %d\n”, a[3]);
printf(“a[4] = %d\n”, a[4]);
return 0;
}
ทดลองเขียนโปรแกรมรับและแสดงผลเลขจำนวนเต็ม 5 จำนวน
#include<stdio.h>
int main()
{ int score[5];
scanf(“%d”,&score[0]);
scanf(“%d”,&score[1]);
scanf(“%d”,&score[2]);
scanf(“%d”,&score[3]);
scanf(“%d”,&score[4]);
printf(“%d ”,score[0]);
printf(“%d ”,score[1]);
printf(“%d ”,score[2]);
printf(“%d ”,score[3]);
printf(“%d ”,score[4]);
return 0;
}
รับข้อมูลเลขจำนวนเต็ม 5 จำนวน
เก็บใส่ ในตำแหน่งของตัวแปรชุด score
แสดงข้อมูลเลขจำนวนเต็ม ที่เก็บในตัวแปรชุด
score
สังเกตโค้ดที่เขียนซ้ ำๆกัน
#include<stdio.h>
int main()
{ int score[5];
scanf(“%d”,&score[0]);
scanf(“%d”,&score[1]);
scanf(“%d”,&score[2]);
scanf(“%d”,&score[3]);
scanf(“%d”,&score[4]);
printf(“%d ”,score[0]);
printf(“%d ”,score[1]);
printf(“%d ”,score[2]);
printf(“%d ”,score[3]);
printf(“%d ”,score[4]);
return 0;
}
จะเห็นว่ำเป็ นกำรสัง่ ให้รับเลขจำนวนเต็มซ้ ำๆ
กัน 5 ครั้ง ดังนั้น ใช้ for ช่วยวนลูปได้
จะเห็นว่ำเป็ นกำรสัง่ ให้แสดงผลเลขจำนวนเต็ม
ซ้ ำๆกัน 5 ครั้ง ดังนั้น ใช้ for ช่วยวนลูปได้
เปลี่ยนไปใช้คำสัง่ for เพื่อวนลูป รับและแสดงค่ำ
#include<stdio.h>
int main()
{ int score[5];
scanf(“%d”,&score[0]);
scanf(“%d”,&score[1]);
scanf(“%d”,&score[2]);
scanf(“%d”,&score[3]);
scanf(“%d”,&score[4]);
printf(“%d ”,score[0]);
printf(“%d ”,score[1]);
printf(“%d ”,score[2]);
printf(“%d ”,score[3]);
printf(“%d ”,score[4]);
return 0;
}
#include<stdio.h>
int main()
{ int score[5];
int i;
for(i=0;i<5;i++)
scanf(“%d”,&score[i]);
for(i=0;i<5;i++)
printf(“%d”,score[i]);
}
return 0;
โปรแกรมรับและแสดงผลเลขจำนวนเต็ม 5 จำนวน
ที่ใช้คำสัง่ for ในกำรวนซ้ ำเพื่อรับ-แสดงค่ำ
#include<stdio.h>
int main()
{ int score[5];
int i;
for(i=0;i<5;i++)
scanf(“%d”,&score[i]);
for(i=0;i<5;i++)
printf(“%d”,score[i]);
}
return 0;
รับข้อมูลเลขจำนวนเต็ม 5 จำนวน
เก็บใส่ ในตำแหน่งของตัวแปรชุด score
แสดงข้อมูลเลขจำนวนเต็ม ที่เก็บในตัวแปร
ชุด score
กำรประกำศตัวแปรและกำหนดค่ำเริ่ มต้นในครำวเดียว
int a[5] = { 1, 2, 3, 4, 5};
a
1
a[0]
2
a[1]
3
4
5
a[2]
a[3]
a[4]
กำรประกำศตัวแปรและกำหนดค่ำเริ่ มต้นในครำวเดียว



int a[5] = { 1, 2, 3, 4, 5};
int a[] = {1, 2, 3, 4, 5};
int *a = {1, 2, 3, 4, 5}
เหมือนกัน
กำรประกำศตัวแปรและกำหนดค่ำเริ่ มต้นในครำวเดียว
int a[7] = { 1, 2, 3, 4, 5};
a
1
a[0]
2
3
4
5
0
a[1]
a[2]
a[3]
a[4]
a[5]
สังเกตว่ำ a[5] และ a[6] จะเป็ น 0 เพรำะกำหนดค่ำเริ่ มต้นเพียง 5 ค่ำเท่ำนั้น
0
a[6]
array - initialize
int
a[5] = { 1, 2, 3};
printf(“%d”, a[3]); จะได้ผลลัพธ์อย่ำงไร
โจทย์ 1
รับเลขจำนวนเต็ม เก็บใส่ ในตัวแปรชุด A และ B ซึ่งมีขนำด
เท่ำกับ 5 แล้วหำผลบวกของข้อมูลในตำแหน่งที่ตรงกันของตัว
แปร A และ B แล้วแสดงผล

A:1 3 4 6 4
B:1 2 3 4 5
A+B : 2 5 7 10 9
โจทย์ 2
รับเลขจำนวนเต็ม 5 เก็บใส่ ตวั แปรชุด แล้วหำค่ำเฉลี่ยของตัวเลข
ทั้ง 5 ตัวนี้ เช่น

input : 10 3 2 6 4
average : 5.00
โจทย์ 3
รับเลขจำนวนเต็ม 5 ตัวแล้วหำผลรวมของตัวเลขที่มีค่ำมำกกว่ำ
ค่ำเฉลี่ยของตัวเลขทั้ง 5 ตัวนี้ เช่น

input : 10 3 2 6 4
average : 5.00
output : 16
โจทย์ 4
รับเลขจำนวนเต็ม 5 ตัว เก็บไว้ในเซต A และอีก 5 ตัวเก็บไว้
ในเซต B แล้วหำ

A
union B
 A intersect B
A– B
B-A