diff --git a/avg-height-finder-alt/README.md b/avg-height-finder-alt/README.md new file mode 100644 index 0000000..11893ca --- /dev/null +++ b/avg-height-finder-alt/README.md @@ -0,0 +1,70 @@ +![Banner](info/banner.png) + +[![PGTechs](https://img.shields.io/static/v1.svg?color=ff0000&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=PG%20Techs&message=YouTube)](https://www.youtube.com/c/PGTechs "ช่อง YouTube ของเรา") +[![PGVCPlus](https://img.shields.io/static/v1.svg?color=0572e6&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=PGVC%2B&message=Facebook)](https://www.facebook.com/PrincegameRVCPlus "เพจข่าวสาร Distributed Computing ของเรา บน Facebook") + +อีกหนึ่งแอปพลิเคชันคุณภาพจาก SashaPGT + +* ทุกแอปพลิเคชันผ่านการทดสอบติดตั้งและใช้งานใน Linux-based test machine ของเรา + +* ใช้งานได้อย่างสะดวกรวดเร็ว ด้วยสคริปต์ติดตั้งแบบสำเร็จรูป ทั้งเฉพาะผู้ใช้และ System-wide + +* รองรับ Linux ทุก Distribution + + + + +# sashapgt/avg-height-finder-alt + +[![OS](https://img.shields.io/static/v1.svg?color=52A2dA&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=OS&message=Fedora%2034)](https://getfedora.org "Fedora Linux") +[![Language](https://img.shields.io/static/v1.svg?color=004082&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Language&message=C%2B%2B)](https://en.wikipedia.org/wiki/C%2B%2B "C++ Programming Language") +[![IDE](https://img.shields.io/static/v1.svg?color=48bf7f&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=IDE&message=KDevelop%205)](https://kdevelop.org "A cross-platform IDE for C, C++, Python, QML/JavaScript and PHP") +[![Compiler](https://img.shields.io/static/v1.svg?color=ffcfab&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Compiler&message=GCC%2011.2.1)](https://gcc.gnu.org "GNU Compiler Collection") + + +"จงเขียนโปรแกรมเพื่อรับข้อมูลความสูงของนักเรียน 10 คน แล้วแสดงผลลัพธ์ความสูงของนักเรียน 10 คน พร้อมหาว่าความสูงเฉลี่ยของนักเรียน 10 คนเป็นเท่าไร" + +โปรแกรมจะรับค่าความสูงของทั้ง 10 คน แสดงผลตวามสูงของทั้ง 10 คน และแสดงค่าเฉลี่ยออกมา + +**เป็นอีกเวอร์ชันหนึ่งของ avg-height-finder ในเวอร์ชันนี้ จะมีการใช้ array ในการเก็บและแสดงผลค่าตัวแปร** + +**ตัวอย่างการทำงานของโปรแกรม** + +![Screenshot](info/screenshot.png) + +**วิธีติดตั้ง (สำหรับ Linux เท่านั้น)** + +1. โคลน git นี้ + + `$ git clone https://gitlab.com/sashapgt/avg-height-finder-alt.git` + +2. cd เข้าโฟลเดอร์ของ git นี้ แล้วรันสคริปต์ติดตั้ง + + `$ cd avg-height-finder-alt && bash install.sh` + +3. เรียกใช้จากเทอร์มินัล (Shell autocomplete จะยังไม่ทำงานสำหรับคำสั่งใหม่นี้ หากต้องการ autocomplete กรุณาปิดเทอร์มินัล แล้วเปิดใหม่อีกครั้ง) + + `$ avg-height-finder-alt` + + + +**วิธีถอนการติดตั้ง (สำหรับ Linux เท่านั้น)** + +1. รันสคริปต์ถอนการติดตั้งจากในโฟลเดอร์ git นี้ + + `$ bash uninstall.sh` + +2. ลบโฟลเดอร์ git นี้ + +**การแก้ปัญหา** + +หากไม่สามารถรันได้เนื่องจาก Command not found ให้ดูว่ามี ~/.local/bin ใน $PATH หรือไม่ +สามารถตรวจสอบได้โดยการ + + echo $PATH + +หากไม่มี Home folder ของคุณ ตามด้วย .local/bin ให้เพิ่มบรรทัดนี้ลงใน Shell startup script ของคุณ (เช่น .bashrc .zshrc) + + export PATH="$PATH:$HOME/.local/bin" + + diff --git a/avg-height-finder-alt/info/banner.png b/avg-height-finder-alt/info/banner.png new file mode 100755 index 0000000..686ee90 Binary files /dev/null and b/avg-height-finder-alt/info/banner.png differ diff --git a/avg-height-finder-alt/info/screenshot.png b/avg-height-finder-alt/info/screenshot.png new file mode 100644 index 0000000..9908f91 Binary files /dev/null and b/avg-height-finder-alt/info/screenshot.png differ diff --git a/avg-height-finder-alt/install.sh b/avg-height-finder-alt/install.sh new file mode 100755 index 0000000..569824a --- /dev/null +++ b/avg-height-finder-alt/install.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +DIR1=$HOME/.local/bin +DIR2=/usr/bin +APPNAME=avg-height-finder-alt + + clear + if [[ "${EUID}" -eq 0 ]]; then + echo " " + echo "คุณกำลังใช้สิทธิ์ Root! ต้องการดำเนินการติดตั้งต่อใน $DIR2 หรือไม่" + echo " " + echo "1) ไม่" + echo "2) ใช่" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + until [[ -z "$INSTALLCHOICE" || "$INSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$INSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + done + case "$INSTALLCHOICE" in + 1|"") + exit + ;; + 2) + DIR=$DIR2 + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + g++ -o $APPNAME main.cpp && mv $APPNAME $DIR + ;; + esac + else + echo " " + echo "เลือกผู้ใช้ที่ต้องการติดตั้งให้" + echo " " + echo "1) $USER ($DIR1)" + echo "2) ทุกคน ($DIR2)" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + + until [[ -z "$INSTALLCHOICE" || "$INSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$INSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + done + case "$INSTALLCHOICE" in + 1|"") + DIR=$DIR1 + if [[ ! -d "$DIR" ]]; then + mkdir $DIR + fi + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + g++ -o $APPNAME main.cpp && mv $APPNAME $DIR + ;; + 2) + DIR=$DIR2 + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + printf "\nกรุณาใส่รหัสผ่าน sudo หากถูกถามในการติดตั้ง\n\n" + g++ -o $APPNAME main.cpp && sudo mv $APPNAME $DIR + ;; + esac + fi + printf "\nการติดตั้ง $APPNAME ใน $DIR เสร็จสมบูรณ์\n" diff --git a/avg-height-finder-alt/main.cpp b/avg-height-finder-alt/main.cpp new file mode 100644 index 0000000..3a7b2d2 --- /dev/null +++ b/avg-height-finder-alt/main.cpp @@ -0,0 +1,16 @@ +#include + +int main() { + float a[10],avg,cumu; + printf("ใส่ความสูงของ 10 คน : "); + for(int i=0;i<10;i++){ + scanf("%f", &a[i]); + } + for(int i=0;i<10;i++){ + printf("ความสูงของคนที่ %d คือ %.1f\n",i+1, a[i]); + cumu=cumu+a[i]; + } + avg=cumu/10; + printf("\nความสูงเฉลี่ยคือ %.1f\n", avg); + return 0; + } diff --git a/avg-height-finder-alt/uninstall.sh b/avg-height-finder-alt/uninstall.sh new file mode 100755 index 0000000..7a07e59 --- /dev/null +++ b/avg-height-finder-alt/uninstall.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +DIR1=$HOME/.local/bin +DIR2=/usr/bin +APPNAME=avg-height-finder-alt + + clear + if [[ "${EUID}" -eq 0 ]]; then + echo " " + echo "คุณกำลังใช้สิทธิ์ Root! ต้องการถอนการติดตั้งจาก $DIR2 หรือไม่" + echo " " + echo "1) ไม่" + echo "2) ใช่" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " UNINSTALLCHOICE + + until [[ -z "$UNINSTALLCHOICE" || "$UNINSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$UNINSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " UNINSTALLCHOICE + done + case "$UNINSTALLCHOICE" in + 1|"") + exit + ;; + 2) + DIR=$DIR2 + if [[ -f "$DIR/$APPNAME" ]]; then + echo "กำลังถอนการติดตั้ง $APPNAME จาก $DIR" + sudo rm $DIR/$APPNAME + else + echo "ไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + fi + ;; + esac + else + echo " " + echo "เลือกผู้ใช้ที่ต้องการถอนติดตั้งให้" + echo " " + echo "1) $USER ($DIR1)" + echo "2) ทุกคน ($DIR2)" + echo " " + read -p "ใส่คำตอบของคุณ : " UNINSTALLCHOICE + until [[ -z "$UNINSTALLCHOICE" || "$UNINSTALLCHOICE" =~ ^[1-2]$ ]]; do + echo "$UNINSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง" + read -p "ใส่คำตอบของคุณ :" UNINSTALLCHOICE + done + case "$UNINSTALLCHOICE" in + 1) + DIR=$DIR1 + if [[ -f "$DIR/$APPNAME" ]]; then + printf "\nกำลังถอนการติดตั้ง $APPNAME จาก $DIR\n" + rm $DIR/$APPNAME + else + printf "\nไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + exit + fi + ;; + 2) + DIR=$DIR2 + if [[ -f "$DIR/$APPNAME" ]]; then + printf "\nกำลังถอนการติดตั้ง $APPNAME จาก $DIR\n" + printf "\nกรุณาใส่รหัสผ่าน sudo หากถูกถามขณะถอนการติดตั้ง\n\n" + sudo rm $DIR/$APPNAME + else + printf "\nไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + exit + fi + ;; + "") + exit + ;; + esac + fi + printf "\nการถอนการติดตั้ง $APPNAME จาก $DIR เสร็จสมบูรณ์\n" diff --git a/avg-height-finder/README.md b/avg-height-finder/README.md new file mode 100644 index 0000000..ee06f4e --- /dev/null +++ b/avg-height-finder/README.md @@ -0,0 +1,68 @@ +![Banner](info/banner.png) + +[![PGTechs](https://img.shields.io/static/v1.svg?color=ff0000&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=PG%20Techs&message=YouTube)](https://www.youtube.com/c/PGTechs "ช่อง YouTube ของเรา") +[![PGVCPlus](https://img.shields.io/static/v1.svg?color=0572e6&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=PGVC%2B&message=Facebook)](https://www.facebook.com/PrincegameRVCPlus "เพจข่าวสาร Distributed Computing ของเรา บน Facebook") + +อีกหนึ่งแอปพลิเคชันคุณภาพจาก SashaPGT + +* ทุกแอปพลิเคชันผ่านการทดสอบติดตั้งและใช้งานใน Linux-based test machine ของเรา + +* ใช้งานได้อย่างสะดวกรวดเร็ว ด้วยสคริปต์ติดตั้งแบบสำเร็จรูป ทั้งเฉพาะผู้ใช้และ System-wide + +* รองรับ Linux ทุก Distribution + + + + +# sashapgt/avg-height-finder + +[![OS](https://img.shields.io/static/v1.svg?color=52A2dA&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=OS&message=Fedora%2034)](https://getfedora.org "Fedora Linux") +[![Language](https://img.shields.io/static/v1.svg?color=004082&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Language&message=C%2B%2B)](https://en.wikipedia.org/wiki/C%2B%2B "C++ Programming Language") +[![IDE](https://img.shields.io/static/v1.svg?color=48bf7f&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=IDE&message=KDevelop%205)](https://kdevelop.org "A cross-platform IDE for C, C++, Python, QML/JavaScript and PHP") +[![Compiler](https://img.shields.io/static/v1.svg?color=ffcfab&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Compiler&message=GCC%2011.2.1)](https://gcc.gnu.org "GNU Compiler Collection") + + +"จงเขียนโปรแกรมเพื่อรับข้อมูลความสูงของนักเรียน 10 คน แล้วแสดงผลลัพธ์ความสูงของนักเรียน 10 คน พร้อมหาว่าความสูงเฉลี่ยของนักเรียน 10 คนเป็นเท่าไร" + +โปรแกรมจะรับค่าความสูงของทั้ง 10 คน แสดงผลตวามสูงของทั้ง 10 คน และแสดงค่าเฉลี่ยออกมา + +**ตัวอย่างการทำงานของโปรแกรม** + +![Screenshot](info/screenshot.png) + +**วิธีติดตั้ง (สำหรับ Linux เท่านั้น)** + +1. โคลน git นี้ + + `$ git clone https://gitlab.com/sashapgt/avg-height-finder.git` + +2. cd เข้าโฟลเดอร์ของ git นี้ แล้วรันสคริปต์ติดตั้ง + + `$ cd avg-height-finder && bash install.sh` + +3. เรียกใช้จากเทอร์มินัล (Shell autocomplete จะยังไม่ทำงานสำหรับคำสั่งใหม่นี้ หากต้องการ autocomplete กรุณาปิดเทอร์มินัล แล้วเปิดใหม่อีกครั้ง) + + `$ avg-height-finder` + + + +**วิธีถอนการติดตั้ง (สำหรับ Linux เท่านั้น)** + +1. รันสคริปต์ถอนการติดตั้งจากในโฟลเดอร์ git นี้ + + `$ bash uninstall.sh` + +2. ลบโฟลเดอร์ git นี้ + +**การแก้ปัญหา** + +หากไม่สามารถรันได้เนื่องจาก Command not found ให้ดูว่ามี ~/.local/bin ใน $PATH หรือไม่ +สามารถตรวจสอบได้โดยการ + + echo $PATH + +หากไม่มี Home folder ของคุณ ตามด้วย .local/bin ให้เพิ่มบรรทัดนี้ลงใน Shell startup script ของคุณ (เช่น .bashrc .zshrc) + + export PATH="$PATH:$HOME/.local/bin" + + diff --git a/avg-height-finder/info/banner.png b/avg-height-finder/info/banner.png new file mode 100755 index 0000000..686ee90 Binary files /dev/null and b/avg-height-finder/info/banner.png differ diff --git a/avg-height-finder/info/screenshot.png b/avg-height-finder/info/screenshot.png new file mode 100644 index 0000000..b11546c Binary files /dev/null and b/avg-height-finder/info/screenshot.png differ diff --git a/avg-height-finder/install.sh b/avg-height-finder/install.sh new file mode 100755 index 0000000..0a45492 --- /dev/null +++ b/avg-height-finder/install.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +DIR1=$HOME/.local/bin +DIR2=/usr/bin +APPNAME=avg-height-finder + + clear + if [[ "${EUID}" -eq 0 ]]; then + echo " " + echo "คุณกำลังใช้สิทธิ์ Root! ต้องการดำเนินการติดตั้งต่อใน $DIR2 หรือไม่" + echo " " + echo "1) ไม่" + echo "2) ใช่" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + until [[ -z "$INSTALLCHOICE" || "$INSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$INSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + done + case "$INSTALLCHOICE" in + 1|"") + exit + ;; + 2) + DIR=$DIR2 + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + g++ -o $APPNAME main.cpp && mv $APPNAME $DIR + ;; + esac + else + echo " " + echo "เลือกผู้ใช้ที่ต้องการติดตั้งให้" + echo " " + echo "1) $USER ($DIR1)" + echo "2) ทุกคน ($DIR2)" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + + until [[ -z "$INSTALLCHOICE" || "$INSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$INSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " INSTALLCHOICE + done + case "$INSTALLCHOICE" in + 1|"") + DIR=$DIR1 + if [[ ! -d "$DIR" ]]; then + mkdir $DIR + fi + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + g++ -o $APPNAME main.cpp && mv $APPNAME $DIR + ;; + 2) + DIR=$DIR2 + printf "\nกำลัง Build และติดตั้ง $APPNAME ใน $DIR\n" + printf "\nกรุณาใส่รหัสผ่าน sudo หากถูกถามในการติดตั้ง\n\n" + g++ -o $APPNAME main.cpp && sudo mv $APPNAME $DIR + ;; + esac + fi + printf "\nการติดตั้ง $APPNAME ใน $DIR เสร็จสมบูรณ์\n" diff --git a/avg-height-finder/main.cpp b/avg-height-finder/main.cpp new file mode 100644 index 0000000..8b17abb --- /dev/null +++ b/avg-height-finder/main.cpp @@ -0,0 +1,11 @@ +#include + +int main() { + float a,b,c,d,e,f,g,h,i,j,avg; + printf("ใส่ความสูงของ 10 คน : "); + scanf("%f %f %f %f %f %f %f %f %f %f", &a,&b,&c,&d,&e,&f,&g,&h,&i,&j); + printf("ความสูงของแต่ละคนเป็นไปดังนี้: %.1f %.1f %.1f %.1f %.1f %.1f %.1f %.1f %.1f %.1f", a,b,c,d,e,f,g,h,i,j); + avg=(a+b+c+d+e+f+g+h+i+j)/10; + printf("\nความสูงเฉลี่ยคือ %.1f", avg); + return 0; + } diff --git a/avg-height-finder/uninstall.sh b/avg-height-finder/uninstall.sh new file mode 100755 index 0000000..a009108 --- /dev/null +++ b/avg-height-finder/uninstall.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +DIR1=$HOME/.local/bin +DIR2=/usr/bin +APPNAME=avg-height-finder + + clear + if [[ "${EUID}" -eq 0 ]]; then + echo " " + echo "คุณกำลังใช้สิทธิ์ Root! ต้องการถอนการติดตั้งจาก $DIR2 หรือไม่" + echo " " + echo "1) ไม่" + echo "2) ใช่" + echo " " + read -p "ใส่คำตอบของคุณ [1] : " UNINSTALLCHOICE + + until [[ -z "$UNINSTALLCHOICE" || "$UNINSTALLCHOICE" =~ ^[1-2]$ ]]; do + printf "\n$UNINSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง\n\n" + read -p "ใส่คำตอบของคุณ [1] : " UNINSTALLCHOICE + done + case "$UNINSTALLCHOICE" in + 1|"") + exit + ;; + 2) + DIR=$DIR2 + if [[ -f "$DIR/$APPNAME" ]]; then + echo "กำลังถอนการติดตั้ง $APPNAME จาก $DIR" + sudo rm $DIR/$APPNAME + else + echo "ไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + fi + ;; + esac + else + echo " " + echo "เลือกผู้ใช้ที่ต้องการถอนติดตั้งให้" + echo " " + echo "1) $USER ($DIR1)" + echo "2) ทุกคน ($DIR2)" + echo " " + read -p "ใส่คำตอบของคุณ : " UNINSTALLCHOICE + until [[ -z "$UNINSTALLCHOICE" || "$UNINSTALLCHOICE" =~ ^[1-2]$ ]]; do + echo "$UNINSTALLCHOICE: ค่าที่ใส่ไม่ถูกต้อง" + read -p "ใส่คำตอบของคุณ :" UNINSTALLCHOICE + done + case "$UNINSTALLCHOICE" in + 1) + DIR=$DIR1 + if [[ -f "$DIR/$APPNAME" ]]; then + printf "\nกำลังถอนการติดตั้ง $APPNAME จาก $DIR\n" + rm $DIR/$APPNAME + else + printf "\nไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + exit + fi + ;; + 2) + DIR=$DIR2 + if [[ -f "$DIR/$APPNAME" ]]; then + printf "\nกำลังถอนการติดตั้ง $APPNAME จาก $DIR\n" + printf "\nกรุณาใส่รหัสผ่าน sudo หากถูกถามขณะถอนการติดตั้ง\n\n" + sudo rm $DIR/$APPNAME + else + printf "\nไม่สามารถถอนการติดตั้งได้เนื่องจากยังไม่ได้ติดตั้งแอปพลิเคชันใน $DIR" + exit + fi + ;; + "") + exit + ;; + esac + fi + printf "\nการถอนการติดตั้ง $APPNAME จาก $DIR เสร็จสมบูรณ์\n"