Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-й семестр / Лаб.работы / Мет.ук. к л.р.2.doc
Скачиваний:
72
Добавлен:
12.03.2016
Размер:
2.4 Mб
Скачать

Пример 2

В листинге 2 представлена программа, которая вычисляет значение числа pi c точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1-1/3+1/5-1/7+1/9+…. приближается к значению pi/4 при достаточно большом количестве членов ряда. Каждый член ряда с номером n вычисляется по формуле:1/(2*n-1) и умножается на минус один, если n четное (определить, является ли n четным, можно проверкой остатка от деления n на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда становиться меньше, чем заданная точность вычисления.

Для создания программы использовалась среда разработки NetBeans IDE 8.0. На рисунке 4 показан состав проекта программы.

Рисунок 4 – Состав проекта программы

Создание проекта в NetBeans: Файл -> Создать проект -> Java -> Приложение Java.

Компиляция, сборка и выполнение проекта: Выполнить -> Запустить проект.

На рисунке 5 показан результат выполнения программы.

Листинг 2

package primer2;

import java.util.Scanner;

public class Primer2 {

public static void main(String[] args) {

{ double pi, t; // вычисляемое значение ПИ, точность вычисления

Int n; //номер члена ряда

double elem; //значение члена ряда

pi = 0; n = 1;

Scanner in = new Scanner(System.in);

System.out.print("Укажите точность вычисления числа ПИ: ");

t = in.nextDouble();

elem = 1;

while(elem >= t)

{ elem = 1./(2*n-1);

if (n % 2 == 0) pi -= elem;

else pi += elem;

n++;

}

pi *= 4;

System.out.printf("ПИ равно %.4f\n",pi);

System.out.println("Проссумировано " + n + " членов ряда");

}

}

}

Рисунок 5 – Результат выполнения программы

Задание 3

Создать программу на языке C#, реализующую циклический алгоритм решения задачи индивидуального варианта.

Индивидуальные варианты:

1.

21 – 26

Пример 3

В листинге 3 представлена программа вычисления:

Исходные данные

x - аргумент функции

e0 - точность вычисления.

Для решения используем переменные:

y - накопленная сумма

p - числитель добавляемого слагаемого (накапливаемое произведение)

k - не накапливаемая величина (увеличение на 2)

m - знаменатель - накапливаемое значение

Начальные значения k=1; p=x; y=0; m=1

При переходе к следующей итерации цикла переменные меняются по формуле:

y=y+p/k; k=k+2; p=-p*x*x; m=m*k*(k-1);

Для создания программы использовалась среда разработки MS Visual C# 2010 Express. На рисунке 6 показан состав проекта программы.

Рисунок 6 – Состав проекта программы

Создание проекта в MS Visual C# 2010 Express: Файл -> Создать проект -> Консольное приложение.

Компиляция, сборка и выполнение проекта: Отладка -> Начать отладку (F5).

На рисунке 7 показан результат выполнения программы.

Листинг 3

using System;

namespace Primer3

{

class Program

{

static void Main(string[] args)

{

double x, p, y, e0;

int k, m;

string st;

Console.WriteLine("введите аргумент x");

st = Console.ReadLine();

x = Convert.ToDouble(st);

Console.WriteLine("введите точность");

st = Console.ReadLine();

e0 = Convert.ToDouble(st);

y = 0.0;

p = x;

k = 1;

m = 1;

do

{ y += p / m;

k = k + 2; // не накапливается

p = -p * x * x;

m = m * k * (k - 1); // накапливается

} while (Math.Abs(p / m / y) > e0);

st = Convert.ToString(y);

Console.WriteLine("y=" + st);

Console.ReadKey();

}

}

}

Рисунок 7 – Результат выполнения программы

10

Соседние файлы в папке Лаб.работы