[Lập trình hướng đối tượng với Java] Ví dụ lớp trừu tượng (abstract class) [290916]

[Lập trình hướng đối tượng với Java] Ví dụ lớp trừu tượng (abstract class) [290916]
Xây dựng các class:
- Class NV (abstract)
 + Thuộc tính: Họ tên, địa chỉ, năm sinh, hệ số lương
 + Phương thức: Khởi tạo, nhập, tính lương (abstract), in thông tin
- Class LapTrinhVien kế thừa NV, bổ sung thêm
 + Thuộc tính: Số năm công tác
 + Phương thức: Tính lương
Trong đó: lương = hệ số lương * LCB + thưởng
(thưởng = 1,5 LCB nếu số năm công tác >10; ngược lại, thưởng = 1,0 LCB)
* Yêu cầu:
Nhập và in ra thông tin 01 nhân viên là lập trình viên
(họ tên, địa chỉ, năm sinh, lương)
------
Xây dựng Project như hình vẽ:


Code Java:

+ class NV

package vidu_loptruutuong_290916;
import java.util.Scanner;
public abstract class NV {
    // thuoc tinh
    final float LCB=1050000;
    String hoTen, diaChi;
    int namSinh;
    float heSoLuong;
 
    // Phuong thuc khoi tao
    public NV(String hoTen, String diaChi, int namSinh, float heSoLuong){
        this.hoTen=hoTen;
        this.diaChi=diaChi;
        this.namSinh=namSinh;
        this.heSoLuong=heSoLuong;
    }
 
    // Phuong thuc nhap thong tin
    public void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.println("\n * Nhap thong tin nhan vien: ");
        System.out.print("\n + Ho ten: ");
        hoTen=inp.nextLine();
        System.out.print("\n + Dia chi: ");
        diaChi=inp.nextLine();
        System.out.print("\n + Nam sinh: ");
        namSinh=inp.nextInt();
        System.out.print("\n + He so luong: ");
        heSoLuong=inp.nextFloat();
    }
 
    // Phuong thuc tinh luong (abstract)
    public abstract float TinhLuong();
 
    // In thong tin
    public void InTT(){
        System.out.print("\n * In thong tin nhan vien: ");
        System.out.print("\n + Ho ten: "+hoTen);
        System.out.print("\n + Dia chi: "+diaChi);
        System.out.print("\n + Nam sinh: "+namSinh);
        System.out.print("\n + He so luong: "+heSoLuong);
        System.out.print("\n + Luong thang: "+TinhLuong());
     
    }
}


+ class LapTrinhVien

package vidu_loptruutuong_290916;
import java.util.Scanner;
public class LapTrinhVien extends NV{
    // thuoc tinh
    int soNamCT;
 
    // phuong thuc khoi tao
    public LapTrinhVien(String hoTen, String diaChi, int namSinh, float heSoLuong,int soNamCT){
        super(hoTen, diaChi, namSinh, heSoLuong);
        this.soNamCT=soNamCT;
    }
 
    // phuong thuc nhap thong tin
    public void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
        System.out.print("\n + So nam cont tac: ");
        soNamCT=inp.nextInt();
    }
 
    // phuong thuc tinh luong
    public float TinhLuong(){
        float thuong;
        if(soNamCT>10)
            thuong=(float)1.5*LCB;
        else thuong=LCB;
        return (heSoLuong*LCB+thuong);
    }
}


+ class ViDu_LopTruuTuong_290916

package vidu_loptruutuong_290916;

public class ViDu_LopTruuTuong_290916 {
    public static void main(String[] args) {
        // Khai bao doi tuong Lap trinh vien
        LapTrinhVien bill =new LapTrinhVien("","",1,1,1);
        bill.NhapTT();
        bill.InTT();
    }
 
}
----------


Cùng bạn tự học CNTT - tailieucntt.org

[KTLT C/C++] Chữa bài Test - Kỹ thuật lập trình 280916

[KTLT C/C++] Chữa bài Test - Kỹ thuật lập trình 280916

Câu 1:  Viết chương trình thực hiện
+ Nhập vào từ bàn phím n,m,x (sao cho: n,m là số nguyên thỏa mãn, 2<=n<=m<=10 ; x là số thực thỏa mãn, 1<=x<=5)
+ Tính:
  S1= m!/((m-n)!*n!)
  S2= x^1 / 1! + x^2 / 2! + ... + x^n /n!

--------
Code TC3.0

// Cau 1.
#include<iostream.h>
#include<conio.h>
#include<math.h>
// khai bao bien toan cuc
int m,n;
float x;
// Nhap m,n,x
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<2||n>10) cout<<"\n Nhap lai n!";
}  while (n<2||n>10);
// nhap m
cout<<"\n Nhap m:\n";
do{
cout<<"\n m= "; cin>>m;
if(m<n||m>10) cout<<"\n Nhap lai m!";
}  while (m<n||m>10);
// nhap x
cout<<"\n Nhap x:\n";
do{
cout<<"\n x= "; cin>>x;
if(x<1||x>5) cout<<"\n Nhap lai x!";
}  while (x<1||x>5);
}
// Tinh giai thua
long GiaiThua(int a){
long gt=1;
for(int i=1;i<=a;i++)
gt=gt*i;
return gt;
}
// Tinh S1
long Tinh_S1(int m, int n){
return GiaiThua(m)/(GiaiThua(n)*GiaiThua(m-n));
}
// Tinh S2
float Tinh_S2(int n, float x){
float s=0;
for(int i=1;i<=n;i++)
s=s+(float)pow(x,i)/GiaiThua(i);
return s;
}
// In Ket qua
void InKQ(){
cout<<"\n S1= "<<Tinh_S1(m,n);
cout<<"\n S2= "<<Tinh_S2(n,x);
}
// Ham main
void main(){
clrscr();
Nhap();
InKQ();
getch();
}



-----------------------------------
Câu 2: Viết các hàm thực hiện
+ Nhập từ bàn phím dãy số nguyên có n phần tử ( 3<=n<=100)
+ In dãy vừa nhập
+ Tìm số chẵn đầu tiên trong dãy
+ Đếm tất cả các số là bội của 3 và 5 trong dãy
+ Sắp xếp dãy tăng dần, in dãy đã sắp xếp
+ Loại bỏ các số trùng nhau trong dãy và in ra màn hình


Code TC3.0

// Cau 2.
#include<iostream.h>
#include<conio.h>

// khai bao bien toan cuc
int n,a[100];

// Nhap day so
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<3||n>100) cout<<"\n Nhap lai n!";
}  while (n<3||n>100);
// nhap mang
cout<<"\n Nhap mang:\n";
for(int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]="; cin>>a[i];
}
}
// In day
void InDay(){
cout<<"\n In day: \n";
for(int i=0;i<n;i++)
cout<<a[i]<<", ";
}
// Tim so chan dau tien trong day
void TimSoChan(){
for(int i=0;i<n;i++)
if(a[i]%2==0) break;
if(i<n) cout<<"\n So chan dau tien la: "<<a[i];
else
cout<<"\n Day khong ton tai so chan.";
}
// Dem boi cua 3,5
void DemBoi(){
int dem=0;
for(int i=0;i<n;i++)
if(a[i]%3==0 &&a[i]%5==0)
dem++;
cout<<"\n So cac so la boi cua 3 va 5: "<<dem;
}
// Sap xep day tang dan
void SapXep(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
 if(a[i]>a[j])
  {
int t=a[i]; a[i]=a[j];a[j]=t;
  } // in day
InDay();
}
// Loai bo phan tu trung nhau
void LoaiPhanTuTrung(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
 if(a[i]==a[j])
  {
    for(int g=j;g<n-1;g++)
a[g]=a[g+1];
    n--;
  }
// In day
InDay();
}
// Ham main
void main(){
clrscr();
Nhap();
InDay();
TimSoChan();
DemBoi();
SapXep();
LoaiPhanTuTrung();
getch();
}



----------


Cùng bạn tự học CNTT - tailieucntt.org

[Lập trình Hướng đối tượng với Java] Ví dụ xây dựng lớp kế thừa trong Java [270916]

[Lập trình Hướng đối tượng với Java] Ví dụ xây dựng lớp kế thừa trong Java [270916]
Ví dụ xây dựng lớp kế thừa trong Java.
1. Xây dựng class SV
+ Thuộc tính:
- Mã sinh viên
- Tên sinh viên
- Năm sinh
- Giới tính
+ Phương thức:
- Nhập thông tin
- In thông tin
2. Xây dựng class SV_CNTT kế thừa (extends) class SV, bổ sung thêm
+ Thuộc tính:
- Học lớp
- Điểm: Lập trình Java(3tc), Cơ sở dữ liệu(3tc), Mạng máy tính(2tc),
Tiếng Anh(4tc)
(Điểm thi thỏa mãn, 0<= điểm <=10)
+ Phương thức
- Tính điểm trung bình
- Tính điểm tích lũy
*** Yêu cầu:
- Nhập vào thông tin của 1 sinh viên lớp CĐ CNTT
- In thông tin sinh viên vừa nhập (Mã SV, Họ tên, Năm sinh, giới tính,
Điểm trung bình, Điểm tích lũy).
---------------
Tạo project như hình vẽ dưới đây


Code:
+ class SV

// Xay dung lop cha (superclass)
package vidu_kethua_270916;
import java.util.Scanner;
public class SV {
    // thuoc tinh
    String maSV,hoTen,gioiTinh;
    int namSinh;
   
// phuong thuc
    // Nhap thong tin
    void NhapTT(){
        System.out.print("\n * NHAP THONG TIN SINH VIEN: ");
        Scanner inp=new Scanner(System.in);
        System.out.print("\n + Ma sinh vien: ");
        maSV=inp.nextLine();
        System.out.print("\n + Ho ten: ");
        hoTen=inp.nextLine();
        System.out.print("\n + Gioi tinh: ");
        gioiTinh=inp.nextLine();
        System.out.print("\n + Nam sinh: ");
        namSinh=inp.nextInt();      
    }
    // In thong tin
    void InTT(){
        System.out.print("\n * IN THONG TIN SINH VIEN: ");
        System.out.print("\n + Ma sinh vien: "+maSV);
        System.out.print("\n + Ho ten sinh vien: "+hoTen);
        System.out.print("\n + Gioi tinh: "+gioiTinh);
        System.out.print("\n + Nam sinh: "+namSinh);
    }
   
}

+ class SVCNTT
// Xay dung lop con (subclass)
package vidu_kethua_270916;
import java.util.Scanner;
public class SVCNTT extends SV{
    // thuoc tinh
    float dLapTrinh,dCSDL,dMang,dTA;
    // phuong thuc
    // nhap thong tin
    void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
       
        do{
        System.out.print("\n + Diem lap trinh: ");
        dLapTrinh=inp.nextFloat();
        if(dLapTrinh<0||dLapTrinh>10)
            System.out.print("\n Nhap lai diem Lap trinh ");
        }while(dLapTrinh<0||dLapTrinh>10);
       
        do{
        System.out.print("\n + Diem CSDL: ");
        dCSDL=inp.nextFloat();
        if(dCSDL<0||dCSDL>10)
            System.out.print("\n Nhap lai diem CSDL ");
        }while(dCSDL<0||dCSDL>10);
       
        do{
        System.out.print("\n + Diem Mang may tinh: ");
        dMang=inp.nextFloat();      
        if(dMang<0||dMang>10)
             System.out.print("\n Nhap lai diem Mang ");
        }while(dMang<0||dMang>10);
       
        do{
        System.out.print("\n + Diem Tieng Anh: ");
        dTA=inp.nextFloat();
        if(dTA<0||dTA>10)
            System.out.print("\n Nhap lai diem Tieng Anh ");
        }while(dTA<0||dTA>10);
    }
    // tinh diem trung binh
    float DiemTB(){
        return (dLapTrinh*3+dCSDL*3+dMang*2+dTA*4)/12;
    }
    // tinh diem tich luy
    int DiemTichLuy(){
        int dTL;
        float d=DiemTB();
        if(d<4) dTL=0;
        else if(d<5.5) dTL=1;
        else if(d<7) dTL=2;
        else if(d<8.5) dTL=3;
        else dTL=4;
        return dTL;
    }
    // in thong tin
    void InTT(){
        super.InTT();
        System.out.print("\n + Diem Trung binh: "+ DiemTB());
        System.out.print("\n + Diem Trung binh: "+ DiemTichLuy());              
    }
}


+ class ViDu_KeThua_270916 (class chính)

package vidu_kethua_270916;

public class ViDu_KeThua_270916 {
 
    public static void main(String[] args) {
        // khai bao doi tuong sinh vien
        SVCNTT t=new SVCNTT();
        t.NhapTT();
        t.InTT();
    }
   
}


----------


Cùng bạn tự học CNTT - tailieucntt.org

ICT SUBMIT 2016 : Cách mạng số - cơ hội và thách thức

Diễn đàn cấp cao CNTT - TRƯỜNG Việt Nam 2016 mở ra cơ hội tớ lớn cho sinh viên CNTT nói riêng và sinh viên Việt Nam nói chung.

Thủ tướng Nguyễn Xuân Phúc,  có bài phát biểu quan trọng mang tính chi đạo cụ thể. Trong đó nhấn mạnh vai trò đặc biệt quan trọng của CNTT - TT.
Qua dự báo của các chuyên gia, nhà lãnh đạo hàng đầu thì nguồn nhân lực CNTT đăng và sẽ thiếu hụt cả về số lượng và chất lượng một cách nghiệm trọng.
Ông Trương Đinh Tuyển,  trong bài dẫn của mình đã chỉ ra những cơ hội phát triển kinh tế của Việt Nam đã bị bỏ lỡ. Ông cũng chỉ ra các thách thức mà chúng ta phải đối mặt.
Trong diễn đàn đã nhắc nhiều về cuộc cách mạng công nghiệp lần thứ tư. Trong cuộc cách mạng này các xứ thế nổi bật nhất được kể tới như Điện toán nhận thức, trí tuệ nhân tạo, IoT (thế giới vạn vật kết nối), dữ liệu lớn, ...
Ông Trương Gia Bình dẫn dắt diễn đàn quan trọng mà chủ đề là Startup, gắn liền với chủ đề Quốc gia khởi nghiệp.


Sau diễn đàn này Chính phủ sẽ ban hành một loạt các qui định hỗ trợ trợ, thúc đẩy Startup và ứng dụng CNTT - TT. 
Thời cơ tuyệt vời đã đến với Sinh viên CNTT nói riêng và sinh viên Việt Nam nói chung. 
Chúc các bạn thành công.

TxT đưa tin từ ICT SUBMIT 2016.

[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm [210916]

[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm 

Xây dựng Project quản lý điểm cho sinh viên.
Yêu cầu: In ra thông tin sinh viên
- Họ tên
- Lớp
- Tuổi
- Điểm tổng kết
- Điểm chữ
(Biết rằng, sinh viên đã có các điểm năm 1,2,3)

* Lưu ý:
Tạo Project QLDiem
Code:

// Class SinhVien
package qldiem; 
import java.util.Scanner; 
public class SinhVien {
    // thuộc tính
    private String hoTen,tenLop;
    private int tuoi;
    private float diem1,diem2,diem3;
   
    // phương thức NhapTT
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Ho ten: ");      
        hoTen=inp.nextLine();
        System.out.print("\n Ten lop: ");
        tenLop=inp.nextLine();
        System.out.print("\n Tuoi: ");
        tuoi=inp.nextInt();
        System.out.print("\n Diem nam 1: ");
        diem1=inp.nextFloat();
        System.out.print("\n Diem nam 2: ");
        diem2=inp.nextFloat();
        System.out.print("\n Diem nam 3: ");
        diem3=inp.nextFloat();
    } 
    // Tính điểm
    private float TinhDiem(){
        return (diem1+diem2+diem3)/3;
    } 
    // Điểm chữ
    private char DiemChu(){
        char dChu;
        float dtb=TinhDiem();
        if (dtb<4) dChu='F';
        else if (dtb<5.5) dChu='D';
            else if (dtb<7) dChu='C';
                else if (dtb<8.5) dChu='B';
                    else dChu='A';
        return dChu;
    }
    // In thông tin
    void InTT(){
        System.out.println("\n "
                + "* IN THONG TIN SINH VIEN: "
                + "\n Ho ten: "+ hoTen
                + "\n Lop:" + tenLop
                + "\n Tuoi:" + tuoi
                + "\n Diem trung binh: "+TinhDiem()
                + "\n Diem chu: "+DiemChu());               
    }
}

// Class QLDiem (class chính)
package qldiem;
public class QLDiem {
 
    public static void main(String[] args) {
      // khai bao doi tuong
      SinhVien toto=new SinhVien();
      toto.NhapTT();
      toto.InTT();
   
    }
   
}

tailieucntt.org



----------


Cùng bạn tự học CNTT - tailieucntt.org

[Lập trình Hướng đối tượng với Java] Khai báo lớp (class) và đối tượng (object) [Ví dụ 210916]

[Lập trình Hướng đối tượng với Java] Khai báo lớp (class) và đối tượng (object) [Ví dụ 210916]

Sử dụng ngôn ngữ lập trình Java xây dựng Project BaiThi2 với các class sau:
- Class HinhHoc:
+ Thuộc tính: Tên hình
+ Phương thức: Khởi tạo, nhập thông tin (tên hình và số cạnh)
- Class HinhTron (hình tròn), kế thừa lớp HinhHoc, bổ sung thêm các thuộc tính và phương thức:
+ Thuộc tính: r (bán kính)
+ Phương thức: Nhập thông tin (kế thừa từ lớp HinhHoc; bố sung thêm nhập r), tính chu vi, tính diện tích, in kết quả.


* Lưu ý: 
Tạo project: KhaiBaoClass_Object.
Code:

package baithi2;
import java.util.Scanner;

// class HinhHoc
class HinhHoc{
    // thuoc tinh
    String tenHinh;
    // khoi tao
    public HinhHoc(String tenHinh){
        this.tenHinh=tenHinh;
    }
    // nhap thong tin
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Nhap ten hinh: ");
        tenHinh=inp.nextLine();
    }
}
// class HinhTamGiac
class HinhTron extends HinhHoc{
    // thuoc tinh
    float r;
    // khoi tao
    public HinhTron(String tenHinh,float r){
        super(tenHinh);
        this.r=r;       
    }
    // Nhap thong tin
    void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Nhap ban kinh: ");
        do{       
        System.out.print("\n + r: ");
        r=inp.nextFloat();
        if (r<=0)
            System.out.print("\n => Nhap lai ban kinh duong tron! ");
        }while(r<=0);
    }
    // Tinh chu vi
    float ChuVi(){
        return (float)(2*Math.PI*r);
    }
    // tinh dien tich
    float DienTich(){
        return (float)Math.PI*r*r;
    }

----------


Cùng bạn tự học CNTT - tailieucntt.org
    // In ket qua
    void InKQ(){
        System.out.print("\n In ket qua: ");
        System.out.print("\n + Ten hinh: "+tenHinh);
        System.out.print("\n + Chu vi: "+ChuVi());
        System.out.print("\n + Dien tich : "+DienTich());               
    }
}

// class chính
public class BaiThi2 {  
    public static void main(String[] args) {
        // khai bao doi tuong
        HinhTron tr=new HinhTron("",1);
        tr.NhapTT();
        tr.InKQ();
    }
   

}


tailieucntt.org

[Java core] Bài tập cấu trúc điều khiển và mảng [210916]

[Java core] Bài tập cấu trúc điều khiển và mảng [210916]

Sử dụng ngôn ngữ lập trình Java viết chương trình thực hiện (6 điểm):
- Nhập vào từ bàn phím dãy số nguyên dương có n phần tử (2< n < 20)
- In dãy số vừa nhập
- In ra màn hình số lớn nhất
Sắp xếp dãy số trên theo thứ tự tăng dần.


------------------
* Lưu ý:
Tạo project: Vidu210916
Code:

package Vidu210916;
import java.util.Scanner;

public class Vidu210916 {
  
    public static void main(String[] args) {
        // khai bao
        int [] a = new int[20];
        int n;
       
        // Nhap day so
        Scanner inp=new Scanner(System.in);
        do{
            System.out.print("\n n= ");
            n=inp.nextInt();
            if (n<2||n>20)
                System.out.print("\n Nhap lai n ");
        }while (n<2||n>20);
       
   
        for(int i=0;i<n;i++)
        {
            System.out.print("\n a["+i+"]= ");
            a[i]=inp.nextInt();
        }
       
        // in day so
        System.out.print("\n In day vua nhap: \n");
        for(int i=0;i<n;i++)       
            System.out.print(a[i]+", ");
           
        // in so lon nhat
        int max=a[0];
        for(int i=0;i<n;i++)       
            if(a[i]>max) max=a[i];
        System.out.print("\n So nho nhat: "+max);
       
        // Sap xep day tang dan
        for(int i=0;i<n-1;i++)       
            for (int j=i+1;j<n;j++)
            if(a[j]<a[i])
            {
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        
        System.out.print("\n Day da sap xep");                      
        for(int i=0;i<n-1;i++)       
            System.out.print(a[i]+", ");                      
    }   
}
tailieucntt.org

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Bài viết hay] Hãy trả lời những câu hỏi sau, trước khi quyết định trở thành một nhà phát triển độc lập.

[Bài viết hay] Hãy trả lời những câu hỏi sau, trước khi quyết định trở thành một nhà phát triển độc lập.

Lập trình viên độc lập

Tôi có nên trở thành một nhà phát triển độc lập?

Đây là một câu hỏi tôi chắc chắn rằng rất nhiều người sẽ bỏ qua trước khi họ bắt đầu cuộc hành trình của họ như là một nhà phát triển độc lập. Có một số thành công với những mục tiêu của họ, một số thì không. Tôi nghĩ trước khi bắt đầu bạn thực sự nên tự hỏi bản thân một số câu hỏi và nghiêm túc trả lời chúng càng thực tế càng tốt để tránh những "thất vọng" về sau. Nếu bạn muốn làm điều đó để trải nghiệm thì bạn có thể bỏ qua, bởi vì bạn sẽ tìm thấy được niềm vui của bạn. Nhưng nếu bạn muốn làm điều đó như một nghề nghiệp thực sự, bạn nên đọc những câu hỏi sau đây và trả lời chúng một cách thực tế nhất.

1. Trở thành một nhà phát triển độc lập vì bạn thích thế hay bạn muốn tạo dựng sự nghiệp theo con đường này? 

Đối với nhiều người, đây thực sự chỉ là một sở thích hay một cái gì đó họ làm bán thời gian trong khi họ tìm kiếm một công việc toàn thời gian. Quyết định trở thành một nhà phát triển độc lập toàn thời gian mà không nhận thấy được những khó khăn đã được chứng minh là sẽ trở thành một thảm họa chứ không phải là một giấc mơ trở thành sự thật. Để có được một sản phẩm để ra bán, bạn sẽ phải đảm nhiệm rất nhiều công việc. Nếu bạn thực hiện dự án của bạn một mình, ở mức độ tối thiểu bạn cần code, thiết kế scene/level, tạo video/audio, tạo/chỉnh sửa hình ảnh, test, quản lý tài khoản, và tiếp thị sản phẩm của bạn. Nếu bạn không thể làm tất cả những điều này, bạn cần phải tìm kiếm một đội hoặc sẽ phải đối mặt với một chuỗi dài của sự thất vọng và lo lắng.

2. Bạn có đủ khả năng về tài chính cũng như làm chủ cảm xúc khi thất bại? 

Nó sẽ xảy ra, chắn chắn là thế. Nếu trò chơi đầu tiên bạn làm mà đạt được thành công vang dội tức là bạn chỉ vừa trúng số mà thôi. Nhiều khả năng nó sẽ lấy đi của "một chút" thời gian và tiền bạc. Và nếu như bạn không thể mạnh dạng chấp nhận thất bại và cố gắng thử lại một lần nữa, bạn sẽ không thể bước tiếp.

3. Bạn có chắc chắn là những game, ứng dụng bạn sẽ phát triển chỉ cần 1 mình bạn (hoặc thêm một người nào đó) là có thể hoàn thiện? 

Là một nhà phát triển độc lập hoặc nhóm indie nhỏ đòi hỏi bạn phải có khả năng để làm một loạt các nhiệm vụ không "chuyên ngành" khác. Nó giống như bạn là một thợ xây chính, nhiệm vụ của bạn là xếp những cục gạch để xây bức tường, nhưng vì bạn chỉ có một mình, bạn cần phải tự mình xách nước, xúc cát, trộn hồ.... Nếu bạn đang nghĩ đến việc làm một cái gì đó rất chuyên nghiệp và to lớn về quy mô, bạn cần phải suy nghĩ về những rủi ro so với những phần thưởng mà dự án có thể mang lại. Bạn có đủ khả năng tài chính để làm việc trên một dự án 1-2 năm? Nếu không, có lẽ bạn nên bắt đầu từ những cái nhỏ nhất và làm việc theo cách nào đó để bạn có thể phát triển ra nhiều tham vọng lớn hơn.

4. Bạn có thực sự thích thú tất cả các khía cạnh của làm game, ứng dụng? 

Để tạo ra được một sản phẩm, từng công đoạn/thành phần của sự phát triển là sẽ lấy đi của bạn một số lượng thời gian rất đáng kể. Có lẽ sẽ có một số giai đoạn mà bạn không thích hoặc nhàm chán như cắt ghép ảnh, tìm kiếm audio cho từng hành động... Bạn có chắc là bạn có đủ kiên nhẫn để vượt qua những công đoạn này? Nếu bạn không, bạn sẽ có thể bỏ qua hoặc thấy mình tăng tốc để lướt qua các công đoạn này và cuối cùng bạn đã tạo ra một cái gì đó không hoàn thiện.

Đây chỉ là một số câu hỏi mà bạn nên biết trước khi bạn quyết định đi theo con đường phát triển độc lập, nhưng tôi nghĩ nó đã bao hàm hết tất cả những vấn đề của con đường này. Hãy dành một chút thời gian và nghiêm túc trả lời chúng. Tất nhiên, thất bại là một điều tốt nếu bạn có kế hoạch cho nó. Thất bại có thể dạy cho bạn những bài học mà thành công sẽ không bao giờ dạy cho bạn. Nhưng nếu bạn có thể "xử lý" được những câu hỏi này, tôi tin rằng... cho dù bạn có thất bại, nó cũng không thể đánh gục được bạn.

Nguồn gamestudio

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Đồ họa máy tính] Sử dụng thuật toán DDA_Line và tô màu miền kín để vẽ ngôi nhà [C\C++]

Sử dụng thuật toán DDA_Line và thuật toán tô màu miền kín:
Viết chương trình C\C++ vẽ ngôi nhà.




/*  Tô màu miền kín với thuật toán quét dòng */

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#include<dos.h>
// LÀM TRÒN
int Round(float a){
return (int)(floor(a+0.5));
}
// HAM DDA_LINE -x
void ddaline_x(int x1, int y1, int x2, int y2, int c) 
{
   float k,x,y,m;
   k=(float)(y2-y1)/(x2-x1);
   x=x1; y=y1;
   putpixel(x,y,c);
   while (x<=x2){
//delay();
x=x+1;
y=y+k;
putpixel((int)(x),Round(y),c);
   }
}
// HAM DDA_LINE - y
void ddaline_y(int x1, int y1, int x2, int y2, int c)
{
   float k,x,y,m;
   k=(float)(y2-y1)/(x2-x1);
   x=x1; y=y1;
   putpixel(x,y,c);
   while (y<=y2){
delay(10);
y=y+1;
x=x+1.0/k;
putpixel((int)(x),Round(y),c);
   }
}

// duong thang // 0x
void Line_ox(int x1, int x2, int y, int c){
for(int x=x1;x<=x2;x++)
putpixel(x,y,c);
}

// duong thang // 0y
void Line_oy(int x, int y1, int y2, int c){
for(int y=y1;y<=y2;y++)
putpixel(x,y,c);
}

// To mau quet dong mai nha
void ToMaiNha(int y1,int y2,int c){
int x1,x2;
    for(int y=y1;y<=y2;y++)
{
x1=400-2*y;
x2=x1+300;
Line_ox(x1,x2,y,c);
}
}

// to mat truoc
void ToMatTruoc(int x1, int y1, int x2, int y2, int c) 
{
for(int x=x1;x<=x2;x++)
Line_oy(x,y1,y2,c);
}

// to doc nha
void ToDocNha(int y1, int y2, int c) 
{
for(int y=y2;y>=y1;y--){
ddaline_x(400,y,600,y-20,c);
}
// To mau theo thuat toan duong bien
void FloodFill (int x, int y, int in_color, int new_color) 
{
if (getpixel(x, y) == in_color){
putpixel(x, y, new_color);
FloodFill(x-1, y, in_color, new_color);
FloodFill(x+1, y, in_color, new_color);
FloodFill(x, y-1, in_color, new_color);
FloodFill(x, y+1, in_color, new_color);  
}
// HAM CHINH
void main(){
    clrscr();
    int gdriver = DETECT,gmode;
    initgraph(&gdriver,&gmode,"c:\\TC\\BGI");
    cout<<"\** VE NGOI NHA **\n"; 
/* Vẽ các cạnh song song với ox */
// AF
Line_ox(100,400,300,5);
// CD
Line_ox(200,300,200,5);
// GK
Line_ox(100,400,150,5);
// LH
Line_ox(200,500,100,5); 
/* Vẽ các cạnh song song với oy */
// AK
Line_oy(100,150,300,5);
// BC
Line_oy(200,200,300,5);
// DE
Line_oy(300,200,300,5);
// GF
Line_oy(400,150,300,5);
// IJ
Line_oy(600,130,280,5);
/* Vẽ các cạnh xiên */
// KL
ddaline_x(100,150,200,100,5);
// GH
ddaline_x(400,150,500,100,5);
// HI
ddaline_x(500,100,600,130,5);
// FJ
ddaline_x (400,300,600,280,5); 
/* Tô màu ngôi nhà */
   // tô mái nhà
       ToMaiNha(100,150,7);
   // tô tường trước
       ToMatTruoc(100,150,400,300,2);
   // Tô cửa chính
       ToMatTruoc(200,200,300,300,8);
   // Tô đốc nhà
       ToDocNha(150,300,6);
   // Tô phần tam giác đốc nhà
       FloodFill(500,130,0,6);
       getch();
       closegraph();
}
-----------
* Đề nghị các bạn sử dụng các thuật toán khác để vẻ đoạn thẳng và phối hợp các phương pháp tô màu khác nhau để vẻ ngôi nhà.

tailieucntt.org

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Java] Một số ví dụ về cấu trúc điều khiển và mảng trong Java [Chữa bài tập 200416]

 [Code Java] Một số ví dụ về cấu trúc điều khiển và mảng trong Java [Chữa bài tập 200416]


Bài 1. Viết chương trình tính hóa đơn tiền điện
Khung giá:
- 0 đến 100: đơn giá điện 1200đ
- 101 đến 150: đơn giá điện 1500đ
- 151 đến 200: đơn giá điện 1800đ
- lớn hơn 200: đơn giá 2000đ
Yêu cầu: In hóa đơn tiền điện với
+ Họ tên khách hàng:
+ Số đầu:
+ Số cuối:
+ Thành tiền:


package bai1_java_200416;
import java.util.Scanner;

public class Bai1_Java_200416 {
    public static void main(String[] args) {
       String hoTen;
       int soDau,soCuoi;
       float thanhTien;
      
       // Nhap thong tin khach hang
       Scanner inp=new Scanner(System.in);
       System.out.print("\n Ho ten KH: ");
       hoTen=inp.nextLine();
       do{
        System.out.print("\n So dau: ");
        soDau=inp.nextInt();
        if(soDau<0)
            System.out.print("\n Nhap lai so dien ");
       }while(soDau<0);
      
       do{
       System.out.print("\n So cuoi: ");
       soCuoi=inp.nextInt();
       if  (soCuoi<soDau)
            System.out.print("\n Nhap lai so dien ");
       }while (soCuoi<soDau);
      
       int soDien=soCuoi-soDau;
      
       // Tinh tien
       if(soDien<=100)
           thanhTien=soDien*1200;
       else if(soDien<=150)
           thanhTien=100*1200+(soDien-100)*1500;
       else if(soDien<=200)
           thanhTien=100*1200+50*1500+(soDien-150)*1800;
       else
           thanhTien=100*1200+50*1500+50*1800+(soDien-200)*2000;
      
       System.out.print("\n IN THONG TIN HOA DƠN:\n");
       System.out.println("\n + Ho ten khach hang:  "+ hoTen);
       System.out.println("\n + So dien dau: "+soDau);
       System.out.println("\n + So dien cuoi: "+soCuoi);
       System.out.println("\n + Thanh tien: "+thanhTien);
      
      
    }
   
}






Bài 2. Viết chương trình 
- Nhập số thực x, thỏa mãn 1<=x<=3; số nguyên n, thỏa mãn 1<=n<=1000.
- Tính: s=1/x+2!/x^2 +... n!/x^n.

package bai2_java_200416;
import java.util.Scanner;
public class Bai2_Java_200416 {

  
    public static void main(String[] args) {
        float x;
        int n;
       
       Scanner inp=new Scanner(System.in);
       System.out.print("\n Nhap x, n: ");
      
       do{
        System.out.print("\n x= ");
        x=inp.nextFloat();
        if(x<1||x>3)
            System.out.print("\n Nhap lai x ");
       }while(x<1||x>3);
      
      
       do{
        System.out.print("\n n= ");
        n=inp.nextInt();
        if(n<1||n>1000)
            System.out.print("\n Nhap lai n ");
       }while(n<1||n>1000);
      
       //Tinh s
      
       float s=0;
      
       for (int i=1;i<=n;i++)
       {
           // tinh giai thua cua i
           long gt=1;
           for (int j=1;j<=i;j++)
               gt=gt*i;
           s=(float)gt/(float)Math.pow(x,i);
       }
      
       System.out.println("\n S= "+ s);
    }
   
}


Bài 3. Viết chương trình thực hiện
- Nhập vào dãy số nguyễn dương, có không quá 100 phần tử
- In ra vị trí số chẵn
- Sắp xếp dãy tăng dần


package bai3_java_200416;
import java.util.Scanner;
public class Bai3_java_200416 {

   
    public static void main(String[] args) {
        // khai bao mang
        int[] a=new int[100];
        int n;
        // nhap so phan tu mang
        Scanner inp=new Scanner(System.in);
        do{
        System.out.print("\n n= ");
        n=inp.nextInt();
        if(n<1||n>100)
            System.out.print("\n Nhap lai n ");
       }while(n<1||n>100);
       
        // Nhap mang
        for (int i=0;i<n;i++)
            do{
                System.out.print("\n a["+i+"]= ");
                a[i]=inp.nextInt();
                if(a[i]<0)
                    System.out.print("\n Nhap lai a["+i+"]");
            }while(a[i]<0);
        // In ra vi tri so chan
        System.out.print("\n In ra vi tri so chan:\n");      
        for (int i=0;i<n;i++)
            if(a[i]%2==0) System.out.print(i+ ", ");      
       
        // Sap xep day tang dan
        System.out.print("\n Sap xep day tang dan:\n");      
        for (int i=0;i<n;i++)
            for (int j=i+1;j<n;j++)
                if(a[i]>a[j])
                {
                    int t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
               
        for (int i=0;i<n;i++)
            System.out.print(a[i]+" , ");
    }
   
}


Bài 4. Đổi cơ số 10 ra 2.
 /*
- Nhập vào từ bàn phím số nguyên a (0<a<255)
- Đổi a ra số nhị phân, in kết quả ra màn hình
*/

package doi10ra2;
import java.util.Scanner;
// Doi co so
 class DoiCoSo{
        int a;
        int m[]=new int[8];
        void DoiCoSo(){
            // Nhap a
            Scanner in=new Scanner(System.in);
            do{
                System.out.printf("\n a= ");
                a=in.nextInt();
                if (a<0||a>255)
                    System.out.printf("\n a= ");
            }while (a<0||a>255);
            // khoi tao mang
            int i;
            for(i=0;i<8;i++)
                m[i]=0;
            // Doi co so
            i=7;           
            while (a!=0)
            {
                m[i--]=a%2;
                a=a/2;               
            }
            // In so co so 2
            System.out.printf("\n In ket qua: ");
            for(i=0;i<8;i++)
                System.out.printf(m[i]+"");           
        }
       
     }

class Doi10ra2 {

    public static void main(String[] args) {
        DoiCoSo t=new DoiCoSo();
        t.DoiCoSo();
    }
}
// -----------------------------------------------


http://lap-trinh-may-tinh.blogspot.com/

[Tự học lập trình Android] Bài 1: Giới thiệu về Android và hướng dẫn cài đặt Android SDK

I. Giới thiệu Android [Nguồn vietnamandroid.com]
1. Android là gì?
Android ™ cung cấp một bộ đầy đủ các phần mềm cho các thiết bị di động: Android là gì? là một hệ thống điều hành, middleware và các ứng dụng di động chủ chốt. Các Android Software Development Kit (SDK) bây giờ đã có.

Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại vào năm 2005).

Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai.


2. Lịch sử phát triển Anroid
Tháng 7 năm 2005, Google mua lại Android, Inc., một công ty nhỏ mới thành lập có trụ sở ở Palo Alto, California, Mỹ. Những nhà đồng sáng lập của Android chuyển sang làm việc tại Google gồm có Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập công ty Wildfire Communications), Nick Sears (từng là phó chủ tịch của T-Mobile), và Chris White (trưởng nhóm thiết kế và phát triển giao diện tại WebTV). Khi đó, có rất ít thông tin về các công việc của Android, ngoại trừ việc họ đang phát triển phần mềm cho điện thoại di động. Điều này tạo những tin đồn về việc Google có ý định bước vào thị trường điện thoại di động.

Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động dựa trên hạt nhân Linux, được họ tiếp thị đến các nhà sản xuất thiết bị cầm tay và các nhà mạng trên những tiền đề về việc cung cấp một hệ thống mềm dẻo, có khả năng nâng cấp mở rộng cao. Một số nguồn tin cho biết trước đó Google đã lên danh sách các thành phần phần cứng và các đối tác phần mềm, đồng thời ra hiệu với các nhà mạng rằng họ sẵn sàng hợp tác ở nhiều cấp độ khác nhau. Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố Wall chú thích rằng Google muốn đưa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các phương tiện truyền thông in và online cũng sớm có bài viết về những tin đồn cho rằng Google đang phát triển một thiết bị cầm tay mang thương hiệu Google. Và lại càng có nhiều suy đoán sau bài viết về việc Google đang định nghĩa các đặc tả công nghệ và trình diễn các mẫu thử với các nhà sản xuất điện thoại di động và nhà mạng.

3. Tính Năng Mở của hệ điều hành Android là gì?
Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp. Nó được xây dựng để được thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc bằng cách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ra phong phú hơn và nhiều hơn nữa những kinh nghiệm cố kết cho người dùng. Android được xây dựng trên mở Linux Kernel. Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động. Android là mã nguồn mở, nó có thể được liberally mở rộng. Nền tảng này sẽ tiếp tục tiến triển như cộng đồng nhà phát triển công việc cùng nhau để xây dựng các ứng dụng di động sáng tạo.

4. Tất cả các ứng dụng có thể được tạo ra cho Android?
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba. Họ tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng dụng và dịch vụ. Với các thiết bị xây dựng trên Hệ điều hành Android, người dùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ. Họ có thể trao đổi trên màn hình của điện thoại, những phong cách của dialer, hoặc bất kỳ ứng dụng. Họ thậm chí có thể hướng dẫn điện thoại của họ để sử dụng hình ảnh ưa thích của họ xem các ứng dụng để xử lý xem tất cả các hình ảnh.

4. Phá bỏ các rào cản ứng dụng của Android?
Android phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo. Ví dụ, một nhà phát triển có thể kết hợp thông tin từ các trang web với dữ liệu trên điện thoại di động của một cá nhân – ví dụ như địa chỉ liên hệ của người dùng, lịch, hoặc vị trí địa lý – để cung cấp một trải nghiệm người dùng có liên quan hơn. Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận cho họ một cơ hội để kết nối.

5. Với Android tốc độ nhanh & phát triển ứng dụng dễ dàng
Android cung cấp truy cập đến một loạt các thư viện công cụ hữu ích và có thể được sử dụng để xây dựng các ứng dụng phong phú. Ví dụ, Android cho phép các nhà phát triển để có được vị trí của điện thoại, và cho phép các thiết bị để giao tiếp với nhau tạo điều kiện cho đồng đẳng rich-to-peer ứng dụng xã hội. Ngoài ra, Android bao gồm một tập hợp đầy đủ công cụ đã được xây dựng từ mặt đất lên cùng với việc cung cấp nền tảng phát triển, với năng suất cao và cái nhìn sâu vào các ứng dụng của họ.

6. Phát triển Android ROM
Rất nhiều nhà phát triển hệ điều hành Android đã vào cuộc và các ROM cho Android độc đáo được ra đời với nhiều tích năng nổi trội được tích hợp và đầy sáng tạo

II. Hướng dẫn cài đặt Android SDK
1. Download và Cài đặt Eclipse, Android SDK.
Bước 1: Truy cập: http://developer.android.com/sdk/index.html
Bước 2: Download bộ cài đầy đủ bao gồm Eclipse và Android SDK : ADT Bundle for Windows
 


Bước 3: Giải nén, chạy file SDK Manager (trong bước phải chờ khá lâu)
Bước 4: Mở Android SDK, bạn sẽ có giao diện như sau:


2. Bắt đầu lập trình với Android
Bước 1: Mở Project mới

Bước 2: Mở ứng Android mới

Bước 3: Đặt tên gói ứng dụng Android
Bước 4: Chọn vị trí lưu Project
(Bạn có thể chọn icon cho ứng dụng hoặc bỏ qua bước này với icon mặc định, 
click Next -> Next -> Finish)
Bước 4: Môi trường soạn thảo code


-----------------------------------------
Xem thêm bài và ví dụ khác:
Bài 1: Giới thiệu về Android và hướng dẫn cài đặt Android SDK

----------


Cùng bạn tự học CNTT - tailieucntt.org

Tags

Android ASP Assembly Bài giảng lập trình C và Cpp Bài viết hay Biểu diễn thuật toán Bubble-Sort C C sharp C++ Cây (tree) Cây quyết định CDSL phân tán Công nghệ điện toán đám mây Công nghệ lập trình Cơ sở dữ liệu CSS Danh ngôn lập trình Danh sách liên kết (list) Datamining Đệ quy Đồ họa Độ phức tạp của thuật toán Giải hệ phương trình tuyến tính Góc học tập Góc suy ngẫm Google App Engine Heap-Sort Hệ quản trị CSDL Học lập trình Học lập trình C và CPP qua ví dụ học lập trình Java HTML Insert-sort iOS Java Java Căn bản java core Java GUI JavaScript Kiếm tiền online Kỹ thuật đồ họa máy tính Kỹ thuật lập trình Lập trình căn bản Lập trình Cơ sở dữ liệu Lập trình hướng đối tượng Lập trình hướng đối tượng với Java Lập trình mạng Lập trình mobile lập trình viên Lập trình viên độc lập Luyện thi IC3 Lý thuyết Cơ sở dữ liệu Lý thuyết đồ thị Mạng máy tính Mẹo tìm kiếm trên Google Merge-Sort MS Access Ngôn ngữ lập trình Nhúng code Assembly trong C\C++ Oracle phần cứng máy tính PHP Queue (hàng đợi) Quick-Sort Seclection-sort SQL Stack (ngăn xếp) Thiết kế Web Thủ thuật máy tính Thuật toán Thuật toán di truyền Thuật toán Đệ quy Thuật toán K-Mean Thuật toán khác Thuật toán leo đồi Thuật toán ma trận Thuật toán Sắp Xếp -Sort Thuật toán Tìm kiếm - Search Tiện ích máy tính Tìm kiếm nhị phân Tìm kiếm tuần tự (Line search) Tin học văn phòng Tin tức công nghệ Tính định thức của ma trận Toán rời rạc Trí tuệ nhân tạo Tự học lập trình Android Tự học lập trình C và CPP Tự học lập trình java qua các ví dụ Ứng dụng cơ sở dữ liệu VB XML Xử lý ma trận (mảng 2 chiều) Xử lý mảng 1 chiều Xử lý ngoại lệ