Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_лабы_ЭМ.doc
Скачиваний:
13
Добавлен:
17.11.2018
Размер:
802.3 Кб
Скачать

3. Описание программы

Программа написана на алгоритмическом языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows XP/MS DOS, на платформе х86.

3.1. Описание логической структуры программы.

Для получения результата необходимо:

  • Ввести значения переменных a,b с клавиатуры.

  • Организовать вычисление значения a*b+1 с помощью подпрограммы, например процедуры с заголовком: Procedure Proc (a,b:real; var c:real);

  • Организовать вычисление значения (a5)/b в виде функции с заголовком: Function Func (a,b:real):real;

  • Сравнить значения a и b с помощью условия (If Then ) и с учетом проверки в X присвоить либо a*b+1, либо 25, либо (a5)/b.

  • Вывести на экран значение X, используя форматный вывод.

3.2. Блок-схема программы.

3.3 Описание входных данных

a, b – переменные типа Real;

3.4. Описание выходных данных

Xпеременная типа Real.

3.5. Описание программы (листинг)

{ задание 2}

Program ZAD_2;

Uses Crt;

Var

a,b,c,X:Real;

Procedure Proc(a,b:real; var c:real);

begin

c := a*b+1;

end;

Function Func(a,b:real):real;

begin

Func := (a-5)/b;

end;

Begin

ClrScr;

Write('a='); ReadLn(a);

Write('b='); ReadLn(b);

if a=b then X := 25;

if a<b then X := Func(a,b);

if a>b then

begin

Proc(a,b,c);

X := c;

end;

Write('X=', X:5:2);

ReadLn;

End.

3.6. Тестовые примеры

Необходимо протестировать программу для различных тестовых примеров (подобрать самостоятельно).

3.7. Интрфейс программы в режиме выполнения

Результаты работы программы выглядят следующим образом:

Задание 3.

1. Постановка задачи

Произвести табулирование функции на отрезке [a,b] (вывод на экран в табличном виде значений функции в точках x, которые будут выбираться из указанного отрезка [2,3], разбитого на 10 частей), используя два вида циклов While Do и For To Do. Функцию оформить как подпрограмму.

2. Теоретическое введение

Для табулирования функции требуется разбить отрезок [a,b] на n частей. Для этого нужно перебирать значения x от x=a до x=b с шагом h=(ba)/n.

Для цикла с параметром точка x будет определятся так x=a+ih.

Для цикла с условием точка x будет определятся так x=x+h.

Для ввода значений переменных необходимо использовать стандартные процедуры: Read и ReadLn, для вывода Write или WriteLn.

Табулируемую функцию нужно оформить как подпрограмму:

Function F(x:real):real;

begin

F := cos(sqrt(x))+0.5*x-0.8;

end;

3. Описание программы

Программа написана на алгоритмическом языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows XP/MS DOS, на платформе х86.

3.1. Описание логической структуры программы.

Для получения результата необходимо:

  • Ввести значения переменных a,b,n с клавиатуры.

  • Вычислить значения шага.

  • Организовать вывод на экран в табличном виде значений функции F в точках x с помощью цикла While Do: While x<=b do ...

  • Организовать вывод на экран в табличном виде значений функции F в точках x с помощью цикла For: For i:=0 to n do ...

3.2. Блок-схема программы.

3.3 Описание входных данных

a, b – переменные типа Real;

n – переменная типа Integer;

3.4. Описание выходных данных

Таблица на экране.

3.5. Описание программы (листинг)

{ задание 3}

Program ZAD_3;

uses Crt;

var

a,b,h,x,y:real; i,n:integer;

function F(x:real):real;

begin

F:=cos(sqrt(x))+0.5*x+0.8;

end;

Begin

clrscr;

write('a='); readln(a);

write('b='); readln(b);

write('n='); readln(n);

h:=(b-a)/n;

writeln(' X | Y ');

writeln(' ----------------');

{while do}

x:=a;

while x<=b do

begin

y:=F(x);

writeln(' ', x:5:2, ' | ', y:5:2);

x:=x+h;

end;

{for do}

for i:=0 to n do

begin

x:=a+i*h;

y:=F(x);

writeln(' ', x:5:2, ' | ', y:5:2);

end;

ReadLn;

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]