Hiển thị các bài đăng có nhãn Kỹ thuật lập trình. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Kỹ thuật lập trình. Hiển thị tất cả bài đăng

Thứ Tư, 13 tháng 11, 2013

Shell: Viết script tính can chi của năm dương lịch.

clear
echo "nam bang"
read nam
case `expr $nam % 10` in
    0)can="canh" ;;
    1)can="tan" ;;
    2)can="nham" ;;
    3)can="quy" ;;
    4)can="giap" ;;
    5)can="at" ;;
    6)can="binh" ;;
    7)can="dinh" ;;
    8)can="mau" ;;
    9)can="ky" ;;
esac
case `expr $nam % 12` in
    0)chi="than." ;;
    1)chi="dau." ;;
    2)chi="tuat." ;;
    3)chi="hoi." ;;
    4)chi="ty." ;;
    5)chi="suu." ;;
    6)chi="dan." ;;
    7)chi="mao." ;;
    8)chi="thin." ;;
    9)chi="ti." ;;
    10)chi="ngo." ;;
    11)chi="mui." ;;
esac
echo "$can - $chi"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng

Shell: Viết Script tính tổng các số lẻ từ 1-n (n nguyên, nhập từ bàn phím)

clear
echo "n="
read n
i=1
tong=0
while [ $i -lt $n ]
do
  if [ `expr $i % 2` -ne 0 ]; then
      tong=`expr $tong + $i`
  fi
  i=`expr $i + 1`
done
echo "tong la: $tong"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng lẻ

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


clear
echo "Chuong trinh giai phuong trinh bac nhat"
echo "Nhap gia tri a = "
read a
echo "Nhap gia tri b = "
read b

if [ $a -eq 0 ];then
            if [ $b -eq 0 ];then
                        echo "Phuong trinh vo so nghiem"
            else
                        echo "Phuong trinh vo nghiem"
            fi
else
            x=$(echo "scale=3; (-$b)/$a" | bc)
            echo "Phuong trinh co 1 nghiem x = $x"
fi
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, giải phương trình bậc nhất

Thứ Bảy, 9 tháng 11, 2013

Shell: Viết Script giải hệ phương trình bậc nhất 2 ẩn.

Ax + By = C
A1x + B1y = C1


hpt(){
          D=$(echo "scale=3; $1 * $5 - $2 * $4" | bc)
          Dx=$(echo "scale=3; $3 * $5 - $2 * $6" | bc)
          Dy=$(echo "scale=3; $1 * $6 - $3 * $4" | bc)
          if [ $D -ne 0 ];then
                   x1=$(echo "scale=3; $Dx/$D" | bc)
                   x2=$(echo "scale=3; $Dy/$D" | bc)
                   echo "Phuong trinh co nghiem duy nhat: x = ($x1,$x2)."
          elif [ $D -eq 0 ] && [ $Dx -eq 0 ] && [ $Dy -eq 0 ];then
                   echo "Phuong trinh vo so nghiem"
          else
                   echo "Phuong trinh vo nghiem"
          fi
}

hpt $1 $2 $3 $4 $5 $6

#Lưu ý: khi chạy admin@ubuntu~#/demo/bai1.sh  4 3 8 5 1 6

Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, giải hệ phương trình bậc nhất 2 ẩn

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

Shell: Viết script in ra chuỗi đảo ngược từ chuỗi ban đầu.

Ví dụ: Chuỗi ban đầu: 123. Chuỗi đảo ngược: 321.
clear
echo -e -n "Nhap chuoi:\t"
read sau
h=${#sau}
until [ $h -le 0 ]
do     
          echo -n `expr substr $sau $h 1`
          h=$(($h - 1))
done
echo -e "\n"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, in chuỗi, chuỗi đảo ngược

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

Thứ Hai, 30 tháng 9, 2013

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


1. Đếm có bao nhiêu khoảng trắng trong chuỗi (string)
int demkhoangtrang(char *s){
int d=0;
while(strstr(s," ")!=NULL){
   d++;
   s=strstr(s," ")+1;
}
return d;

}
2. Nhập vào một chuỗi, hãy loại bỏ những khoảng trắng thừa trong chuỗi (string).
void xoakhoangtrang(char *s){   
char *c=strstr(s,"  "); 
while(c!=NULL){
int t=strlen(s)-strlen(c);
for(int i=t;i<strlen(s);i++)
   s[i]=s[i+1];
   c=strstr(s,"  ");
}
if(s[0]==' ')
   s=s+1; //xoa khang trang dau chuoi
   int n=strlen(s);
   if(s[n-1]==' ')
   s[n-1]='\0';//xoa khoang trang cuoi chuoi
       cout<<s;  //for(int i=0;i<n;i++)

//cout<<s[i];
3. Nhập vào hai chuỗi s1 và s2, nối chuỗi s2 vào s1. Xuất chuỗi (string) s1 ra màn hình
void noichuoi(char *a,char *b){
   strcat(a,b);
   puts(a); 
}
4. Đổi tất cả các kí tự (string) có trong chuỗi thành chữ thường (không dùng hàm strlwr).
void chuthuong(char *a)
{
    for(int i=0;i<strlen(a);i++)
        if(a[i]>=65 && a[i]<=90)
            a[i]=a[i]+32;
        puts(a);                        
}
5. Đổi tất cả các kí tự (char) trong chuỗi sang chữ in hoa (không dùng hàm struppr).
void chuhoa(char *a)
{
for(int i=0;i<strlen(a);i++)
a[i]=toupper(a[i]); 
puts(a);                       
}

Code C-C++: Các bài toán sử dụng mảng 1 chiều


Các bài toán thao tác với mảng 1 chiều:
- Nhập vào 1 dãy số nguyên có n số (1<=n<=100)
- In ra màn hình các số lớn hơn 0
- Tìm max
- Tính tổng các số lớn hơn 10

#include<iostream.h> 
#include<conio.h> 
void main(){
        int a[100],n;
// Nhap so phan tu n
        do{ 
        cout<<"\n n= "; cin>>n; 
        if(n<1||n>100)   cout<<"\n Nhap lai n!";
        }while (n<1||n>100);
 // Nhap day so
        cout<<"\n Nhap day so:";
        for (int i=0; i<n;i++){
         cout<<"\n a["<<i<<"]= "; 
        cin>>a[i];  }
 // In ra cac so >=0
         cout<<"\n In ra so khong am: ";
        for (i=0;i<n;i++)
        if (a[i]>=0)
        cout<<a[i]<<", ";
 // Tim max
        int max=a[0];
        for (i=0;i<n;i++)
               if (a[i]>max) max=a[i];
               cout<<"\n Max= "<<max;
 // Tinh tong so >10
        long s=0;
        for (i=0;i<n;i++)
               if (a[i]>10) s+=a[i];  cout<<"\n Tong= "<<s;
         getch();

} 

Chủ Nhật, 29 tháng 9, 2013

Code C-C++: Tính giá trị của biểu thức: S = 2! + 4! + 6! + … + n! (với n nguyên, nhập vào từ bàn phím).


Tính giá trị của biểu thức: S = 2! + 4! + 6! + … + n! (với n nguyên, nhập vào từ bàn phím).
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main(){
    int n;
    cout<<"\n Nhap n="; cin>>n;
    int gt=1,s=0;
    for(int i=2; i<=n;i=i+2){
for (int j=1;j<=i;j++) gt=gt*j;
     s=s+gt;
     gt=1;
   }
    cout <<"\n Tong S="<<s;
    getch();
}

Bài đăng phổ biến