Thứ Hai, 21 tháng 10, 2013

Shell: Viết chương trình Shell vẽ hình tam giác cân


# Lập trình Shell: Viết chương trình Shell vẽ hình tam giác cân
#!/bin/sh
echo "Chuong trinh ve hinh tam gia can dat"
height=$1
ktrang=$1
for ((i=1;i<=height;i++))
do
          for ((kt=ktrang; kt>=1; kt--))
          do
                   echo -n " "
          done

          for ((j=1; j<=i; j++))
          do
                   echo -n "* "
          done
          ktrang=$(($ktrang-1))
          echo ""       
done
echo "The end"

exit 0
Tags: Lập trình, shell script, shells, bash shell

Shell: Viết chương trình Shell giải phương trình bậc hai : ax2 + bx + c = 0 (a, b, c nhập từ bàn phím)


#Viết chương trình Shell giải phương trình bậc hai : ax2 + bx +c =0 với các tham số a, b, c nhập từ bàn #phím. và kết quả chính xác đến 2 chữ số.
Tải mã nguồn chương trình

#!/bin/bash
echo -n "Nhap a= "
read a
echo -n "Nhap b= "
read b
echo -n "Nhap c= "
read c

delta=$(echo "$b^2 - 4*$a*$c" | bc)
if [ $delta -lt 0 ] then
     echo "pt vo nghiem"
elif [ "$delta" -eq 0 ] then
     echo -n "pt co nghiem kep x= "
     x=$(echo "scale=2; -$b/(2*$a)" | bc)
     echo "$x"
else
     echo "phuong trinh co 2 nghiem"
     x1=$(echo "scale=2; -($b + sqrt($delta))/(2*$a)" | bc)
     echo "x1= $x1"
     x2=$(echo "scale=2; -($b - sqrt($delta))/(2*$a)" | bc)
     echo "x2= $x2"
fi
exit 0

Tải mã nguồn chương trình

Thứ Hai, 14 tháng 10, 2013

JavaScript: Giải phương trình bậc hai Ax2 + Bx + C = 0


<html>
<head>
<title>Giai phuong trinh bac 2</title>
<script language="JavaScript">
function giai(form){
var x1,x2;
var x,y,z,delta;
x= parseInt(form.a.value);
y= parseInt(form.b.value);
z= parseInt(form.c.value);
delta=(y*y-4*x*z)
if(delta ==0){
alert("phuong trinh co nghiem kep");
x1=-y/(2*x) ;
x2=-y/(2*x);
form.x.value=eval(x1);
form.y.value=eval(x2);
}
else if(delta<0){
alert("phuong trinh vo nghiem");

else{
alert("phuong trinh co hai nghiem");
x1=(-y-Math.sqrt(delta))/(2*x);
x2=(-y+Math.sqrt(delta))/(2*x);
form.x.value=eval(x1);
form.y.value=eval(x2);
}
}
</script>
</head>
<body>
<form method="post">
<center>
<br>Nhap gia tri a:
<input type="text" name="a" value="">
<br> Nhap gia tri b:
<input type="text" name="b" value="">
<br>Nhap gia tri c:
<input type="text" name="c" value="">
<br>Đáp số:
<input type="text" name="x" value="">
<input type="text" name="y" value="">
<input type="button" value="giai" onClick="giai(this.form)">
</center>
</form>
</body>
</html>
[Download Mã nguồn: Chờ 5s, sau đó nhấn SKIP AD (để bỏ qua Quảng cáo)]

JavaScript: Giải phương trình bậc nhất Ax + B = 0


<html>
<head>
<title>giai phuong trinh bac 1</title>
<script language="JavaScript">
function giai(form){
var x;
var a,b;
a= parseInt(form.a.value);
b= parseInt(form.b.value);

if(a==0){
if(b==0) alert("phuong trinh vo so nghiem");
else alert("phuong trinh vo nghiem");
}
else{ 
alert("phuong trinh co 1 nghiem");
x=-b/a;
form.x.value=eval(x);
}
}
</script>
</head>
<body>
<form method="post">
<center>
<br>Nhap gia tri a:
<input type="text" name="a" value="">
<br> Nhap gia tri b:
<input type="text" name="b" value="">

<br>Đáp số:
<input type="text" name="x" value="">
<input type="button" value="giai" onClick="giai(this.form)">
</center>
</form>
</body>
</html>
[CLICK Download Mã nguồn: Chờ 5s, sau đó nhấn SKIP AD (để bỏ qua Quảng cáo)]

JavaScript: Code tạo chương trình máy tính điện tử


<html>
<head><script LANGUAGE="JavaScript">
function a_plus_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a+b
            form.ans.value = c
}
function a_minus_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a-b
            form.ans.value=c
}
function a_times_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a*b
            form.ans.value=c
}
function a_div_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a/b
            form.ans.value = c
}
function a_pow_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=Math.pow(a, b)
            form.ans.value = c
}
</script>
<title>May tinh don gian</title>
</head>
<body>
<form name="formx">
<p><input type="text" size="4" value="12" name="a">
<input type="button" value="  + " onClick="a_plus_b(this.form)">
<input type="button" value="  -  " onClick="a_minus_b(this.form)">
<input type="button" value="  x  " onClick="a_times_b(this.form)">
<input type="button" value="/  " onClick="a_div_b(this.form)">
<input type="button" value="  ^  " onClick="a_pow_b(this.form)">
<input type="number" size="4" value="3" name="b"> =
<input type "number" value="0" name="ans" size="9"> </p>
</form>
</body>
</html>
Tags: Lập trình, JavaScript, máy tính điện tử

Thứ Sáu, 11 tháng 10, 2013

Open Source: Những câu lệnh và thao tác hữu ích trong Ubuntu


Những thao tác và thủ thuật dưới đây có thể sẽ hữu ích cho bạn khi sử dụng Ubuntu cả 2 phiên bản Desktop và Server.
1. sudo: khi sudo được đi kèm trước một dòng lệnh nó sẽ gọi quyền root để thực thi câu lệnh đó, và khi thực thi xong nó sẽ trả lại quyền của user bạn đang dùng.
a. sudo apt-get install package_name: apt-get install sẽ tiến hành cài đặt gói phần mềm và bạn muốn cài đặt phần mềm gì thì thay package_name bằng tên của gói phần mềm cần cài đặt. Và bạn gọi sudo ở trước câu lệnh để yêu cầu quyền cài đặt của người dùng cao nhất ở đây là root hoặc xác nhận từ chính bạn nếu tên người dùng của bạn thuộc nhóm người dùng root.
VD: sudo apt-get install rar
b. sudo apt-get remove package_name: ngược lại của apt-get install, apt-get remove sẽ gỡ bỏ một gói phần mềm nào đó trong Ubuntu. Thay package_name bằng gói phần mềm bạn muốn gỡ bỏ.
VD: sudo apt-get remove rar
2. touch: tạo một file mới.
VD: touch hello.txt
&&: 2 ký từ && đi liên tiếp sẽ giúp bạn thực thi 2 câu lệnh với 1 dòng lệnh, tất nhiên nó sẽ thực thi 1 lệnh trước sau đó sẽ đến lệnh thứ 2. Câu lệnh dưới sẽ dùng touch để tạo một file mang tên helloworld.txt và sau đó sẽ dùng vi để mở và thêm nội dung vào file helloworld.txt
VD: touch helloworld.txt && vi helloworld.txt
3. wget download file dòng lệnh trên một host internet .
VD: wge http://getdeb.agetta.de/ubuntu/hardy…etdeb1_all.deb
4. dpkg: quản lý các gói phần mềm trong Ubuntu, muốn cài đặt 1 gói phần mềm bạn chỉ cần thêm vào tham số -i. Muốn gỡ bỏ thêm vào tham số -r. Bạn cần thêm lệnh sudo để có quyền tiến hành câu lệnh.
VD: dpkg -i ubuntu-tweak_0.3.5-1~getdeb1_all.deb #Sẽ cài đặt gói Ubuntu-Tweak
dpkg -r rar #Sẽ gỡ bỏ rar
5. ifconfig: các thông kết nối mạng và cấu hình mạng của máy.
6. ping: kiểm tra sự tồn tại của một máy tính nào đó trong mạng.
VD: ping 192.168.1.1
7. whereis: nếu bạn muốn biết một câu lệnh nằm ở đâu trong Ubuntu bạn chỉ gần gõ whereis câu lệnh
VD: whereis ls
8. find: tìm kiếm một tập tin. Câu lệnh dưới sẽ tìm trong đường dẫn thư mục /home/vunguyen tham số -name để tìm theo tên file và nếu như bạn muốn tìm file có đuôi là .txt thì chỉ gần thêm dấu * trước phần tên file mở rộng.
VD: find /home/vunguyen/ -name “*.txt”
9. uname -a: chỉ cần gõ là bạn sẽ biết được version của Linux kernel mà bạn đang sử dụng.
cat /etc/issue: phiên bản hiện tại của Ubuntu bạn đang dùng.
10. shutdown:
sudo shutdown -h now
sudo init 0
sudo halt

Thứ Ba, 1 tháng 10, 2013

Code C-C++: Các bài toán xử lý chuỗi (string) - (Phần 2)


1. Viết chương trình đổi những kí tự đầu tiên của mỗi từ thành chữ in hoa.
void chuhoadau(char *s){
    s[0]=toupper(s[0]);
while(strstr(s," ")!=NULL){
    s=strstr(s," ")+1;
    s[0]=toupper(s[0]);
} 
}

2. Viết chương trình đổi chữ xen kẻ 1 chữ hoa và 1 chữ thường.
Ví dụ: nhập ABCDEfgh đổi thành AbCdEfGh
void chuxenke(char *a){
  int n=strlen(a);
for(int i=0;i<n;i++){
  if(i%2==0)
  if((int)a[i]>=97 && (int)a[i]<=122)
     a[i]=char((int)a[i]-32);
     if(i%2==1)
     if((int)a[i]>=65 && (int)a[i]<=90)
     a[i]=char((int)a[i]+32);
} 
  puts(a);
}

3. Viết chương trình  đảo ngược các kí tự trong chuỗi.
Ví dụ: nhập ABCDE, xuất ra màn hình là:EDCBA
void daochuoi(char *s)
{   
puts(strrev(s)); 
}

4. Viết chương trình tìm kiếm 1 kí tự xem có trong chuỗi không, nếu có xuất ra vị trí của từ chứ kí tự  đó. (Vd: xâu a là “ho chi minh”: nhập ‘m’=>kết quả là 3)

int vitri(char *a,char *b){
int kq,d=0;
if(strstr(a,b)!=NULL){
kq=strlen(a)-strlen(strstr(a,b));
for(int i=kq;i>=0;i--)
if(a[i]==' ')
d++;
return d+1;
}
else return -1;
}

5. Viết 1 chương trình đếm một kư tự  xuất hiện bao nhiêu lần trong chuỗi.(vd: xâu a nhập là “ho chi minh”, nhập ‘i’ => kq: 2)
int diemtu(char *a,char *b){
int d=0;
while(strstr(a,b)!=NULL){
d++;
a=strstr(a,b)+1; 
} 
return d;
}
Tags: Lập trình, C, C++, C#, String, string, xử lý chuỗi

Bài đăng phổ biến