Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
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>
Задания на лабораторную работу №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. 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; Нарушение авторского права страницы