Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы - Паскаль, Си, Java, PHP.doc
Скачиваний:
65
Добавлен:
04.06.2015
Размер:
5.29 Mб
Скачать

Задания на лабораторную работу №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 примем равным единице.

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

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

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()

{

float s, f, temp; //описание переменных

int i, n;

printf("\nЛабораторная работа №4_1");

printf("\nВариант №0");

printf("\nПО-11-1");

printf("\nПупкин Василий\n");

//ввод исходных данных

printf("\nВвод исходных данных:\n");

printf("\n n=");

scanf("%d", &n); //количество слагаемых суммы

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

printf("\n i s ");

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

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

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

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

for (i=1; i<=n; i++)

{

temp /= i; //очередное слагаемое

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

printf("\n%3d %0.6f", i, s);

}

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

printf("\n f=%0.6f\n", f);

return 0;

}

    1. На языке Java:

package javaapplication4_1;

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

import javax.swing.*;

import java.util.*;

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

{

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

public static void main(String[] args)

{

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

Double s, f, temp; // действительного типа