Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




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

- Ввести значения переменных 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, используя форматный вывод.



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

 

 

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

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

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

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

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

{ задание 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.

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

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

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

Для табулирования функции требуется разбить отрезок [a,b] на n частей. Для этого нужно перебирать значения x от x=a до x=b с шагом  h=(b–a)/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;

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

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

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

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

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

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

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

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



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

 

 

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

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

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

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

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

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

{ задание 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.

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

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










Последнее изменение этой страницы: 2018-05-30; просмотров: 290.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...