Пиши Дома Нужные Работы

Обратная связь

Программирование алгоритмов разветвляющейся структуры

Пример. Вычислить значение функции.

если

 

а) с использованием условного оператора if-then-else

Паскаль-программа

 

Program prim21;

var a,b,c,x,y:real;

n:integer;

begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

c=xa b=x+a
if c<=0 then

begin y:=-10.5; n:=1; end

else

if c=>3.5 then

да begin y:=c+ln(b); n:=3; end

else

нет begin y:=exp(c)+2*b; n:=2; end;

writeln(‘x=’,x:1:3,’ c=’,c:1:3,’ y=’,

да y:1:3,’ n=’,n);

end.

нет

y=eс+2b, n=2
y=c+lnb, n=3
Результат

y=-10.5, n=1
Введите а=7.35

           
     
 
 
 


x=1.927 c=14.162 y=16.389 n=3

 
 


 

 

 



б) c использованием оператора выбора case

 

Паскаль-программа

 
 


Program prim22;

var a,b,c,x,y:real;

k:integer;

 
begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

c=x·a b=x+a
if c<=0 then k:=1 else

if c<=3.5 then k:=2 else k:=3;

case k of

1: y:=-10.5;

да 2: y:=exp(c)+2*b;

3: y:=c+ln(b);

нет end;

да writeln(‘x=’,x:1:3,’ c=’,c:1:3,’

=’,y:1:3,’ k=’,k);

  k=1
нет end.

  k=3
  k=2
Результат

Введите а=7.35

x=1.927 c=14.162

y=16.389 k=3

нет

       
 
   
 

 

 


  y=-10.5
да k=1

 
 

 


k=2

       
   
 
 
  y=c+lnb

 

 


k=3

         
   
 
   
 
 

 

Суммирование рядов

 

Задача. Разработать программу вычисления точного Y и прибли-женного S значений функции при изменении её аргумента от xн до xк

с шагом Δx.

Приближенное значение функции, представленной бесконечным рядом , вычислять путем суммирования членов ряда до достижения требуемой точности = . То есть прибавлять очередной член ряда до тех пор, пока его значение по абсолютной величине не станет меньше . Для предотвращения зацикливания предусмотреть завершение процесса суммирования членов ряда по заданному максимальному номеру члена ряда =1000.



Ниже рассмотрены примеры суммирования бесконечных рядов трех типов:

а) текущий член ряда ai вычисляется непосредственно;

б) текущий член ряда ai вычисляется по рекуррентной формуле

,

где ;

в) текущий член ряда ai является произведением двух сомножителей , где вычисляется непосредственно, а -по рекуррентной формуле. Формула итерации для текущего члена находится в виде: ,

где .

Примеры

а) рассматривается вариант вычисления суммы бесконечного ряда, текущий член ai которого вычисляется непосредственно и имеет вид, например,

и т.д.

 

Пример 1.

; ;

;

- вычисляется непосредственно;



 

           
   
Паскаль-программа
   
Блок-схема алгоритма
 
 
 

 

 


 


б) рассматривается вариант вычисления суммы бесконечного ряда, текущий член ai которого содержит степенные выражения, факториалы и имеет вид, например.

и т.д.

 

Пример 2.

 

; ;

- вычисляется по рекуррентной формуле в виде:

, ;

Рекуррентная формула

;

Проверка

- формула верна;


 

           
   
Паскаль-программа
   
Блок-схема алгоритма
 
 
 

 

 

 

 

 


в) рассматривается вариант вычисления суммы бесконечного ряда, текущий член ai которого содержит выражения, вычисляемые непосредственно, и выражения с факториалами и степенями и имеет вид, например,

и т.д.

 

Пример 3.

 

;

.

Решение

 

Вывод формулы итерации:

1. Определение типа члена ряда. - смешанный тип

,где

– вычисляется непосредственно, а

- по рекуррентной формуле.

 

2. Определение формулы итерации в виде:

, ,

,

Формула итерации: , , .

 

3. Проверка: , - формула верна.


Блок-схема алгоритма Паскаль-программа

 

Program prim43;

const n=1000; e=0.0001

label met;

var x,y,s,xn,xk,dx,c,a: real;

i:integer;

  x=xн
begin

write(‘Введите xn,xk,dx=’);

readln(xn,xk,dx);

x:=xn;

while x<=xk do

нет begin

y:=arctan(x); s:=x; c:=x;

for i:=1 to n do

 
да begin c:=-x*x*c;

a:=c/(2*i+1);

if abs(a)<e then goto

met; s:=s+a;

s=x c=x
end;

met: writeln(‘x=’,x:3:1,

‘ y=’y:8:5,’ s=’,s:8:5,

’ i=’,i);

x:=x+dx;

end

end.

       
 
   
 

 


 

 
 
c=-x2c, a=c/(2·I+1)


Результаты

Введите xn,xk,dx=0.2 0.8 0.2

x=0.2 y=0.19740 s=0.19733 i=2

x=0.4 y=0.38051 s=0.38048 i=4

да x=0.6 y=0.54042 s=0.54044 i=7

x=0.8 y=0.67474 s=0.67480 i=13

нет

       
 
   
 

 


 

 
 



5. Работа с массивами

 


Задача. Разработать программу решения 4-х взаимосвязанных задач

1) расчёт элементов квадратной матрицы A=a(i,j), i,j=1,2,…

по заданной формуле;

 

2) вычисление элементов вектора X=x(i) i=1,2,…

по заданному правилу;

 

3) упорядочение элементов матрицы А или вектора Х;

 

4) вычисление значения функции y по заданной формуле.

 

Пример.

1) ; ;

 

2) ; ;

 

3) упорядочить элементы второго столбца матрицы А по

убыванию значений;

 

4) ; .

 

Задание выполнить для n=6.

Замечание. Предварительно провести отладку программы при n=3, для чего получить решение задачи вручную (или с помощью калькулятора) и проверить полученные данные на ЭВМ.


 

Блок-схема алгоритма

       
   
 
 

 

 


нет

           
   
s=s+xk
 
   
 
 



да

           
   
   
k=j
 
 
 

 

 


нет

           
 
   
     
 
 

 

 


нет
  y=y*xi*s
да

           
   
 
     
 
 

 


да

           
 
   
     
 
 

 


Паскаль-программа

program prim5;

var a:array[1..10,1..10] of real;

x:array [1..10] of real;

i,j,k,n:integer;

y,s,c:real;

begin

writeln(‘Введите n’); read(n);

{---------------------------------------часть 1-----------------------------------}

for i:=1 to n do

for j:=1 to n do

a[i,j]:=(2*j*i+4*i)/j;

writeln(‘ ‘:20,’МАТРИЦА А’);

for i:=1 to n do

begin

for j:=1 to n do write(a[i,j]:8:3);

writeln;

end;

{---------------------------------------часть 2-----------------------------------}

for i:=1 to n do

begin

s:=0;

for j:=1 to n do s:=s+sqr(a[i,j]);

x[i]:=sqrt(s)/n;

end;

writeln(‘ ‘:20,’ВЕКТОР Х’);

for i:=1 to n do write(x[i]:8:3);

{---------------------------------------часть 3-----------------------------------}

for i:=1 to n-1 do

begin

k:=i;

for j:=i+1 to n do

if a[j,2]>a[k,2] then k:=j;

if i<>k then

begin

c:=a[i,2]; a[i,2]:=a[k,2]; a[k,2]:=c;

end;

end;

writeln(‘ ‘:14,’УПОРЯДОЧЕННАЯ МАТРИЦА’);

for i:=1 to n do

begin

for j:=1 to n do write(a[i,j]:8:3);

writeln;

end;

{---------------------------------------часть 4-----------------------------------}

y:=1;

for i:=1 to n do

begin

s:=0;

for k:=1 to n do s:=s+x[k];

if x[i]<>0 then y:=y*x[i]*s;

end;

writeln(‘ЗНАЧЕНИЕ ФУНКЦИИ У=’,y:1:3);

end.

 

Результаты

Введите n=6

МАТРИЦА А

6.000 4.000 3.333 3.000 2.800 2.667

12.000 8.000 6.667 6.000 5.600 5.333

18.000 12.000 10.000 9.000 8.400 8.000

24.000 16.000 13.333 12.000 11.200 10.667

30.000 20.000 16.667 15.000 14.000 13.333

36.000 24.000 20.000 18.000 16.800 16.000

 

ВЕКТОР X

1.555 3.110 4.665 6.220 7.776 9.331

 

УПОРЯДОЧЕННАЯ МАТРИЦА А

6.000 24.000 3.333 3.000 2.800 2.667

12.000 20.000 6.667 6.000 5.600 5.333

18.000 16.000 10.000 9.000 8.400 8.000

24.000 12.000 13.333 12.000 11.200 10.667

30.000 8.000 16.667 15.000 14.000 13.333

36.000 4.000 20.000 18.000 16.800 16.000

 

ЗНАЧЕНИЕ ФУНКЦИИ Y=123454118108000.000



Список рекомендуемой литературы

 

1. Задания для практических и лабораторных занятий по информатике (работы 1-5): Методические указания./ Cост. Т.Г. Умергалин,

И.Г. Мухамадеев, Э.В. Писаренко - Уфа: изд-во УГНТУ,1997.-51 с.

2. Основы программирования и работы в интегрированной среде Турбо-Паскаль: Методические указания./ Cост Т.Г. Умергалин,

И.Г. Мухамадеев - Уфа: изд-во УГНТУ,1992.-45 с.

3. Емелина Е.И. Основы программирования на языке Паскаль. - М.: Финансы и статистика, 1997.-208 с.

4. Фаронов В.В. Турбо Паскаль: В 3-х кн. Кн. 1. Основы Турбо Паскаля. – М.: Учебно-инженерный центр “МВТУ-ФЕСТО ДИДАКТИК”,1992. – 304 с.

 

 


 


 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.