Приведем текст алгоритма в записи псевдокодом:
алгоритм Таблица функций
вещ xn, xk, dx, yn, yk, dy, f
начало
вывести сообщение:|yn/xn|
для xn=0, xn<=xk, xn=xn+dx
вывести сообщение: xn
вывести команду: *с новой строки*
для yn=0,1, yn<=yk, yn=yn+dy
вывести сообщение: yn
для xn=0, xn<=xk, xn=xn+dx
вывести команду: *с новой строки*
вывести команду: *с новой строки*
конец
Приведем схему программы:
Начало
xn=0;
xk=2; dx=0.25; yn=-0.5; yk=0.5; dy=0.1
|yn/xn|
2
xn=0;
xn<=xk; xn=xn+dx
3
xn
*Переход на строку ниже*
1
yn=0.75;
yn<=yk; yn=yn+dy
2
yn
4
3
xn=0;
xn<=xk; xn=xn+dx
f=
f
10
3
4
1
*Переход на строку ниже*
11
2
*Переход на строку ниже*
12
Конец
Номер блока |
Описание |
1 |
Известные значения xn=0; xk=2; dx=0.25; yn=-0.5; yk=0.5;dy=0.1 |
2 |
Вывод сообщения | yn/xn | |
3 |
Проверка условия xn=0; xn<=xk; xn=xn+dx. Цикл выполняется, пока условие истинно. Как только условие принимает значение "ложь" реализуется выход из цикла и начинает выполняться следующий оператор |
4 |
Вывод значения xn |
5 |
Переход на строку ниже |
6 |
Проверка условия yn=0.75; yn<=yk; yn=yn+dy. Цикл выполняется, пока условие истинно. Как только условие принимает значение "ложь" реализуется выход из цикла и начинает выполняться следующий оператор |
7 |
Вывод значения yn |
8 |
Проверка условия вложенного цикла xn=0; xn<=xk; xn=xn+dx. Цикл выполняется, пока условие истинно. Как только условие принимает значение "ложь" реализуется выход из цикла и начинает выполняться следующий оператор |
9 |
Вычисление f |
10 |
Вывод значения f |
11 |
Переход на строку ниже |
12 |
Переход на строку ниже |
Текст программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
double xn,xk,dx,yn,yk,dy,f;
xn=0; xk=2; dx=0.25; yn=-0.5; yk=0.5; dy=0.1;
printf("\n\n\n\n");
printf("|yn/xn|");
for(xn=0;xn<=xk;xn=xn+dx)
printf("| %.1lf|",xn);
printf("\n");
for(yn=0.1;yn<=yk;yn=yn+dy)
{
printf("| %.2lf|",yn);
for(xn=0;xn<=xk;xn+=dx)
{
f=pow(e,xn)+ pow(e,-xn)/(pow(e,yn)-pow(e,-yn)*asin((xn+yn)/2);
printf("|%.3lf|",f);
}
printf("\n");
}
printf("\n");
getch();
}
Лабораторная работа 5.
Задание.
Разработать алгоритм с процедурами и функциями. Результат вывести на дисплей.
Вариант 5.
Формула:
функция:
где a=3, b=5, m=4.
Псевдокод.
Создаются переменные a, b, m, k, k1, k2, s1, s2, z, s.
переменным присваиваются значения a=3; b=5; m=4; k1=1; k2=2.
Переменной k присваивается значение k1. Цикл. Если k<=m то вычисляется
z= a*pow(2.7,3*k)/(k+b)+log((10*(a+k)))/sqrt(k+a); s1=s1+z; k=k+1 цикл начинается заново.
Если k>=m
Переменной z присваивается значение 0.
Переменной k присваивается значение k1. Цикл. Если k<=m то вычисляется
z= a*pow(2.7,3*k)/(k+b)+log((10*(a+k)))/sqrt(k+a); z=z*4.5; s2=s2+z; k=k+1
цикл начинается заново. Если k>=m
Вычисляется s=s11-pow(s2,2)/m
Перенос строки
Вывод на экран значения s.
Схема работы системы.
начало
a=3;b=5;m=4; k1=1;k2=2;
конец
k=k2;k<=m;k=k+1
z=a*pow(2.7,3*k)/(k+b)+ +log((10*(a+k)))/sqrt(k+a)
s1=s1+z
k=k2;k<=m;k++
z=a*pow(2.7,3*k)/(k+b)+ +log((10*(a+k)))/sqrt(k+a)
z=0
z=z*4.5
s2=s2+z
s=s11-pow(s2,2)/m
\n
s
Текст программы.
#include<conio.h>
#include<stdio.h>
#include<math.h>
double fk (double, double, double);
void main (void)
{
double a,b,m,k,k1,k2,s1,s2,z,s;
a=3;b=5;m=4;k1=1;k2=2;
for(k=k2;k<=m;k++)
{
z=fk(a,b,k);
s1=s1+z;
}
z=0;
for(k=k2;k<=m;k++)
{
z=fk(a,b,k);
z=z*4.5;
s2=s2+z;
}
s=s11-pow(s2,2)/m;
printf(“\n”);
printf(“s=%lf”,s);
getch();
}
double fk (double a, double b, double k)
{
double f;
f=a*pow(2.7,3*k)/(k+b)+log((10*(a+k)))/sqrt(k+a);
return f;
}
