Bài tập 5: tính tổng (1/2->1/n)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài tập 5: tính tổng (1/2->1/n)

Bài gửi  nguyenan on Wed Jan 05, 2011 8:10 am

Bài 005
Tính tổng S(n) = 1/2 + 1/3 + 1/4 + ... + 1/n

nguyenan

Tổng số bài gửi : 27
Join date : 04/01/2011
Age : 25
Đến từ : Việt Nam

Xem lý lịch thành viên http://dh10th.co.cc

Về Đầu Trang Go down

Bài làm của Nguyễn An

Bài gửi  nguyenan on Wed Jan 05, 2011 8:25 am

Bài này còn 1 lỗi chỗ tính số thập phân . Các bạn vào xem tiếp nhé

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace tinhtongbinhphuong
{
class tingtong
{
private Int16 n;
private float tu, mau;
private float tong = 0;
public void nhap()
{
Console.WriteLine("Ban hay nhap gioi han day so ");
Console.Write("n = ");
n = Int16.Parse(Console.ReadLine());
}
public void tinhtong()
{
float s = 0;
while (n >= 2)
{
s += (float)1 / n;
n--;
}
tong = s;
}
public void tinhtongtp()
{
float tutam = 0;
float mautam = 1;
for (int i = 2; i <= n; i++)
{
mautam *= (float)i;
}
for (int j = 2; j <= n; j++)
{
tutam += (float)mautam / j;
}
tu = tutam;
mau = mautam;

}
public float UCLN()
{
float t, m;
t = Math.Abs(tu);
m = Math.Abs(mau);
while (t != m)
{
if (t > m) t = t - m;
if (t < m) m = m - t;
}
return t;
}
public void toigian()
{
float u = UCLN();
tu = tu / u;
mau = mau / u;
if ((tu < 0) && (mau < 0))
{
tu = Math.Abs(tu);
mau = Math.Abs(mau);
}
}
public void xuat()
{
Console.WriteLine("Tong = " + tong);
Console.WriteLine("dang phan so : " + tu + "/" + mau);
}
}
class Program
{
static void Main(string[] args)
{
tingtong t = new tingtong();
t.nhap();
t.tinhtong();
t.tinhtongtp();
http://t.toigian();
t.xuat();
Console.ReadLine();
}
}
}

nguyenan

Tổng số bài gửi : 27
Join date : 04/01/2011
Age : 25
Đến từ : Việt Nam

Xem lý lịch thành viên http://dh10th.co.cc

Về Đầu Trang Go down

Re: Bài tập 5: tính tổng (1/2->1/n)

Bài gửi  levientrinh_10TH on Thu Jan 06, 2011 12:08 am

Bài này tôi có trả lời cho ông về vấn đề này trên Group.
Tôi xin nhắc lại như sau: biến n bạn dùng trong hàm public void tinhtong() đã giảm dần tới 1 trong vòng lặp while, cho nên cách duy nhất để thoát khỏi lỗi này là dùng biến tạm để chứa tạm thời giá trị của n trong vòng lặp while, để biến n không bị thay đổi trong hàm public void tinhtongtp().
Thân chào ! Wink

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

bài của mình làm nè

Bài gửi  caophuochoa on Thu Jan 06, 2011 10:25 pm

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace bai5
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            int i;
            float S = 0;
            Console.WriteLine("tinh tong S=1/2+1/3+1/4+...+1/n");
            Console.WriteLine("nhap vao n");
            n = int.Parse(Console.ReadLine());
            while (n < 2)
            {
                Console.WriteLine("moi ban nhap vao so lon hon 2");
                n = int.Parse(Console.ReadLine());
               
               
            }
         
           
            for (i = 2; i <= n; i++)
            {
                S = S +(float) 1/i;
               
            }
           
            Console.WriteLine("tong la S={0}", S);
        }
    }
}

caophuochoa

Tổng số bài gửi : 4
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 5: tính tổng (1/2->1/n)

Bài gửi  Sponsored content Today at 9:57 pm


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết