//консольный вывод
System.out.println("Лабораторная работа №2");
System.out.println("Вариант №0");
System.out.println("ПО-11-1");
System.out.println("Пупкин Василий");
System.out.println();
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Введите значение переменной x:");
// преобразование из строкового значения в вещественное
x=Double.parseDouble(input);
// формирование строки вывода
text="Значение переменной х равно:\n" + x;
// вызов диалогового окна эхо-печати
JOptionPane.showMessageDialog(null, text);
//консольный вывод
System.out.printf("x=%5.2f\n", x);
// вычисление значений переменных по заданному алгоритму
if ((int) Math.floor(x) % 2!= 0) //выделение целой части числа
y = -1.0; //и приведение ее к целому типу
else y = 1.0;
// формирование строки вывода
text="Значение переменной y равно:\n" + y;
// вызов диалогового окна вывода переменных
JOptionPane.showMessageDialog(null, text);
//консольный вывод
System.out.printf("y=%5.2f\n", y);
}
}
3.4. На языке PHP:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
Лабораторная работа №2
</title>
</head>
<body BgColor="silver" text="blue">
<H2>Лабораторная работа №2</h2>
<H3>Ветвления</h3>
Вариант №0
<br>ПО-11-1
<br>Пупкин Василий
<br>
<br>
<Form name="LabRab_2" action="" method="POST">
Введите значение x:<br>
<input type="text" name="x" size="5"><br>
<input type="submit" value="Вычислить"><br>
</form>
<?php
// получение значения переменной из формы
$x=$_POST['x'];
// начальные значения
// выходных переменных
$y=NULL;
// вычисление переменных по заданному алгоритму
//выделение целой части числа и приведение ее к целому типу
if ((int) floor($x) % 2!= 0)
$y = -1.0;
else $y = 1.0;
//вывод результата в окно браузера
if ($x!='')
{
echo '<br>Результат вычислений:';
echo '<br>$y=', $y;
}
?>
</body>
</html>
- Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №2
Вариант 1
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 2
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 3
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 4
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 5
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 6
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 7
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 8
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 9
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 10
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 11
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 12
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 13
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 14
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 15
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 16
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 17
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 18
Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли:
Вариант 19
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Вариант 20
Составить алгоритм и написать код программы, вычисляющей значения функции y, заданной графически, по значениям аргумента x, введенным с консоли:
Лабораторная работа № 3
Циклы, управляемые условиями
Тема: Программирование алгоритмов циклической структуры.
Цель работы: Освоить программирование циклических алгоритмов с циклами, управляемыми условиями: циклами с предусловиями и циклами с постусловиями.
Освоить программирование циклических алгоритмов с вложенными циклами. Освоить методику тестирования программ.
Задание на лабораторную работу
- Получить задание в соответствии с номером своего варианта.
- Вывести рекуррентную формулу вычисления суммы ряда.
- Определить общее слагаемое суммы и выразить его через предыдущее, использовав переходной коэффициент (для удаления факториалов из формулы).
- Составить схему алгоритма решения задачи.
- Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
- Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования
- в нормальных условиях,
- при граничных условиях,
- при некорректных входных данных,
- по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,
- по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
- Получить результат.
- Оформить отчет по лабораторной работе.
Пример оформления работы
1. Составить алгоритм и написать код программы, вычисляющей значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x(x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями функции f=cos(x). Результаты вычислений вывести в виде таблицы с заголовком.
- разложение функции cos(x) в ряд Тейлора.
Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:
Общий вид слагаемого суммы может быть записан в следующем виде:
Для сокращения объема вычислений выразим его через предыдущее слагаемое:
Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:
Раскроем эту формулу:
Тогда текущий член ряда будет вычисляться по формуле:
Начальное значение находим подстановкой в формулу для общего члена значения n=0:
Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.
Задачу решим вложенными циклами:
- во внешнем цикле – цикле с постусловием – будем изменять значение аргумента от начального до конечного с заданным шагом,
- во внутреннем цикле – цикле с предусловием – будем определять значение суммы ряда с заданной точностью для отдельных точек – значений аргумента.
- Схема алгоритма решения задачи:
- Код программы
3.1. На языке Паскаль:
Program Variant_0;
Uses WinCRT;
Var x, s, f, x_nach, x_kon, delta_x, eps, t: Real;
n: Word;
Begin
WriteLn('Лабораторная работа №3');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
{ввод исходных данных}
WriteLn(‘Ввод исходных данных:’);
Write('x_nach=');
ReadLn(x_nach);
Write('x_kon=');
ReadLn(x_kon);
Write('delta_x=');
ReadLn(delta_x);
Write('eps=');
ReadLn(eps);
WriteLn;
{эхо-печать}
WriteLn('Для x=', x_nach:0:3, ' до ', x_kon:0:3, ' шаг=', delta_x:0:3, ' точность=', eps:0:5);
WriteLn;
WriteLn(' x n s f');
WriteLn('-----------------------------------');
x:=x_nach;
Repeat
{внешний цикл – изменение аргумента}
t:=1.0; {первое слагаемое}
s:=1.0; {начальное значение суммы}
n:=1;
f:=cos(x); {точное значение суммы}
While (Abs(t)>eps) Do
{внутренний цикл – вычисление суммы ряда в отдельной точке}
Begin
t:=-t*x*x/(2.0*n*(2.0*n-1.0)); {очередное слагаемое}
s:=s+t; {очередная сумма}
n:=n+1;
End;
WriteLn(x:0:3, ' ', n:3, ' ', s:0:6, ' ', f:0:6);
x:=x+delta_x; {изменение значения аргумента}
Until(x>x_kon);
End.
3.2. На языке Си:
#include <stdio.h> //директивы препроцессора
#include <conio.h>
#include <math.h>
Int main()
{
//описание переменных
float x, s, f, x_nach, x_kon, delta_x, eps, temp;
int n;
printf("\nЛабораторная работа №3");
printf("\nВариант №0");
printf("\nПО-11-1");
printf("\nПупкин Василий\n");
printf("\nВвод исходных данных:\n"); //ввод исходных данных
printf("\nx_nach=");
scanf("%f", &x_nach); //начальное значение аргумента
printf("\nx_kon=");
scanf("%f", &x_kon); //конечное значение аргумента
printf("\ndelta_x=");
scanf("%f", &delta_x); //шаг изменения аргумента
printf("\neps=");
scanf("%f", &eps); //точность вычислений
//эхо-печать
printf("\nДля x=%5.3f до %5.3f с шагом $5.3f и точностью %5.3f\n", x_nach, x_kon, delta_x, eps);
printf("\n x n s f");
printf("\n--------------------------------------");
x = x_nach;