Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Do //внешний цикл - изменение аргумента



{

temp = 1.0; //первое слагаемое

s = 1.0; //начальное значение суммы

n = 1; //количество итераций на каждом шаге

f = cos(x); //точное значение функции

//внутренний цикл - вычисление суммы ряда

while (fabs(temp) > eps)

{

//очередное слагаемое

temp *= - x * x / (2.0 * n * (2.0 * n - 1.0));

s += temp; //очередная сумма

n++; //количество итераций

}

printf(" \n%5.3f %d %0.6f %0.6f", x, n, s, f);

x += delta_x; //увеличение аргумента на шаг delta_x

}

while (x < = x_kon);

printf(" \n--------------------------------------" );

return 0;

}

3.3. На языке Java:

 

package javaapplication3;

// Импорт библиотеки графических компонентов Swing

import javax.swing.*;

import java.util.*;

public class JavaApplication3 // задание нового класса

{

// описание главного метода main этого класса

public static void main(String[] args)

{

//описание переменных:

// действительного типа

Double x, s, f, x_nach, x_kon, delta_x, eps, temp;

Int n; // целого типа

String input, text; // строк класса String

//консольный вывод

System.out.println(" Лабораторная работа №3" );

System.out.println(" Вариант №0" );

System.out.println(" ПО-11-1" );

System.out.println(" Пупкин Василий" );

System.out.println();

// вызов диалогового окна ввода исходных данных

input=JOptionPane.showInputDialog(" x_nach=" );

// преобразование из строкового значения в вещественное

x_nach=Double.parseDouble(input);

//консольный вывод

System.out.printf(" x_nach=%5.2f\n", x_nach);

input=JOptionPane.showInputDialog(" x_kon=" );

x_kon=Double.parseDouble(input);

//консольный вывод

System.out.printf(" x_kon=%5.2f\n", x_kon);

input=JOptionPane.showInputDialog(" delta_x=" );

delta_x=Double.parseDouble(input);

//консольный вывод

System.out.printf(" delta_x=%5.2f\n", delta_x);

input=JOptionPane.showInputDialog(" eps=" );

eps=Double.parseDouble(input);

//консольный вывод

System.out.printf(" eps=%8.5f\n", eps);

// формирование строки вывода

text=" Значения входных переменных: \nx_nach=" + x_nach + " \nx_kon=" + x_kon + " \ndelta_x=" + delta_x + " \neps=" + eps;

// вызов диалогового окна эхо-печати

JOptionPane.showMessageDialog(null, text);

//консольный вывод

System.out.println(" --------------------------------------" );

System.out.println(" x n s f" );

System.out.print(" --------------------------------------" );

// вычисление значений переменных по заданному алгоритму

x = x_nach;

Do //внешний цикл - изменение аргумента

{

temp = 1.0; //первое слагаемое

s = 1.0; //начальное значение суммы

n = 1; //количество итераций на каждом шаге

f = Math.cos(x); //точное значение функции

//внутренний цикл - вычисление суммы ряда

while (Math.abs(temp) > eps)

{

//очередное слагаемое

temp *= - x * x / (2.0 * n * (2.0 * n - 1.0)); s += temp; //очередная сумма

n++; //количество итераций }

//консольный вывод

System.out.printf(" \n%5.3f %d %7.6f %7.6f", x, n, s, f);

x += delta_x; //увеличение аргумента на шаг delta_x

}

while (x < = x_kon);

//консольный вывод

System.out.println();

System.out.println(" --------------------------------------" );

}

}

3.4. На языке PHP:

 

<! DOCTYPE html>

< html>

< head>

< meta http-equiv=" Content-Type" content=" text/html; charset=UTF-8" >

< title>

Лабораторная работа №3

< /title>

< /head>

< body BgColor=" silver" text=" blue" >

< H2> Лабораторная работа №3< /h2>

< H3> Циклы, управляемые условиями< /h3>

Вариант №0

< br> ПО-11-1

< br> Пупкин Василий

< br>

< br>

< Form name=" LabRab_3" action=" " method=" POST" >

Начальное значение аргумента: < br>

< input type=" text" name=" x_nach" size=" 5" > < br>

Конечное значение аргумента: < br>

< input type=" text" name=" x_kon" size=" 5" > < br>

Шаг изменения аргумента: < br>

< input type=" text" name=" delta_x" size=" 5" > < br>

Точность вычислений: < br>

< input type=" text" name=" eps" size=" 5" > < br>

< input type=" submit" value=" Вычислить" > < br>

< /form>

<? php

// получение значения переменной из формы

$x_nach=$_POST['x_nach'];

$x_kon=$_POST['x_kon'];

$delta_x=$_POST['delta_x'];

$eps=$_POST['eps'];

if (($x_nach! ='') & & ($x_kon! ='') & & ($delta_x! ='') & & ($eps! =''))

{

//эхо-печать

echo " < br> Для x=$x_nach до $x_kon с шагом $delta_x и точностью $eps";

echo '< br> -----------------------------------------< br> ';

echo '...x..........n...............s....................f';

echo '< br> -----------------------------------------';

// вычисление переменных по заданному алгоритму

$x = $x_nach;

Do //внешний цикл - изменение аргумента

{

$temp = 1.0; //первое слагаемое

$s = 1.0; //начальное значение суммы

$n = 1; //количество итераций на каждом шаге

$f = cos($x); //точное значение функции

//внутренний цикл - вычисление суммы ряда

while (abs($temp) > $eps)

{

//очередное слагаемое

$temp *= - $x * $x / (2.0 * $n * (2.0 * $n - 1.0));

$s += $temp; //очередная сумма

$n++; //количество итераций

}

echo" < br> ";

printf(" %5.3f%'.7d%'.15.6f%'.15.6f", $x, $n, $s, $f);

$x += $delta_x; //увеличение аргумента на шаг delta_x

}

while ($x < = $x_kon);

echo " < br> -----------------------------------------";

}

? >

< /body>

< /html>

  1. Компиляция, отладка, тестирование и получение результата:

 

Задания на лабораторную работу №3

Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x(x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком.

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Вариант 11

Значения переменных a и x ввести с консоли:

Вариант 12

Вариант 13

Вариант 14

Вариант 15

Вариант 16

f(x)=

Вариант 17

(-π < x< π )

f(x)=

Вариант 18

f(x)=

Вариант 19

f(x)=

Вариант 20

f(x)=

Лабораторная работа № 4

Циклы с параметром

Тема: Программирование алгоритмов циклической структуры.

Цель работы: Освоить программирование циклических алгоритмов с циклами с параметром. Освоить программирование циклических алгоритмов с вложенными циклами. Освоить методы тестирования программ.

 

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.
  2. Составить схему алгоритма решения задачи.
  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

- в нормальных условиях,

- при граничных условиях,

- при некорректных входных данных,

- по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,

- по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.

  1. Получить результат.
  2. Оформить отчет по лабораторной работе.

 

Пример оформления работы

Задание 1.

1. Для заданного с консоли значения n определить сумму числового ряда:

Результаты вычислений вывести в виде таблицы с заголовком. Вычисленные значения ряда сравнить со значением функции f=e.

Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:

Общий вид слагаемого суммы может быть записан в следующем виде:

Для сокращения объема вычислений выразим его через предыдущее слагаемое:

Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:

Раскроем эту формулу:

 

Тогда текущий член ряда будет вычисляться по формуле:

Начальное значение находим подстановкой в формулу для общего члена значения n=0:

Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.

 

2. Схема алгоритма решения задачи:

 

3. Код программы

 

 

3.1. На языке Паскаль:

 

Program Variant_0;

Uses WinCRT;

Var s, f, t: Real;

i, n: Word;

Begin

WriteLn('Лабораторная работа №4_1');

WriteLn('Вариант №0');

WriteLn('ИС-11-1');

WriteLn('Пупкин Василий');

WriteLn;

{ввод исходных данных}

WriteLn('Ввод исходных данных: ');

Write('n=');

ReadLn(n);

WriteLn;

WriteLn('----------------');

WriteLn(' i s');

WriteLn('----------------');

t: =1.0;

s: =1.0;

f: =exp(1.0);

For i: =1 To n Do

Begin

t: =t/i; {очередное слагаемое}

s: =s+t; {очередная сумма}

WriteLn(i: 3, ' ', s: 0: 6);

End;

WriteLn('----------------');

WriteLn;

WriteLn(' f=', f: 0: 6);

End.

3.2. На языке Си:

#include < stdio.h> //директивы препроцессора

#include < conio.h>

#include < math.h>

Int main()

{


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 942; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.088 с.)
Главная | Случайная страница | Обратная связь