Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 3
1

Выдаёт ошибку при появлении на экран графика. Посмотрите пожалуйста

28.05.2014, 15:23. Показов 391. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
uses  graphABC;
var a, b,  { Границы отрезка }
    r, r2,  { Предыдущее и текущее приближенные значения интеграла}
    tch: Real;  { Точность вычисления }
    i,
    n: Integer;  { Счетчик }
{ Интегрируемая функция }
Function f (x: real): real;
begin
f:= sin (x) / sqrt (x);{сама функция}
end;
Function simpson (a, b: real; n: integer): real;
var
s: real;      { Сумма }
h: real;      { Шаг }
m: integer;   { Счетчик }
mn: integer;  { Множитель }
begin
h:= (b - a) / (n - 1);  { Рассчитывается шаг }
s:= f (a) + f (b);      { Начальное значение шага }
mn:= 4;                 { Первый множдитель - 4 }
{ Суммирование остальных элементов }
for m:= 1 to n - 2 do
 begin
  s:= s + mn * f (a + h * m);
  if (mn= 4) then mn:= 2
  else mn:= 4;  { Именение множителя 2<>4 }
 end;
simpson:= s * h / 3;    { Возвращается вычисленное значение }
end;
{ Процедура вычисления порядка числа }
Procedure norm (a: real);
var n: real;
begin  { Если число слишком мало - возвращается ноль }
if (a < 0.00001)then n:= 0
else
 begin { Если число меньше единицы }
  if (a < 1) then
   begin
    n:= 1;
    repeat
    a:= a * 10;
    n:= n / 10;
    until (trunc(a) <> 0);
   end
  else
   begin  { Если число больше единицы }
    n:= 1;
    repeat
    a:=a / 10;
    n:=n * 10;
    until (trunc(a) = 0);
   end;
 end;
a := n;
end;
{ Построение графика функции }
Procedure out_grp (xmin, xmax, ymin, ymax: Real);
var  mx, my: Real;      { Масштабы по осям }
     xx, yy: Real;      { Текущие координаты }
     sx: Real;         { Шаг по оси X }
     dltx, dlty: Integer;{ Приращение на графике при смещении графика }
     s: string;        { Строка }
begin
clearwindow;
{ Выяснение порядков минимумов и максимумов }
norm(xmax);
norm(ymax);
norm(ymin); ymin:= ymin / 10;
norm(xmin); ymin:= ymin / 10;
if (xmin / xmax) > 0.01 then dltx:= 20
else dltx:= 0;
if (ymin / ymax) > 0.01 then dlty:= 20
else dlty:= 0;
{ Расчет масштабов }
mx:= (windowwidth-100) / (xmax - xmin);
my:= (windowheight-100) / (ymax - ymin);
{ Расчет приращения по X }
sx:= (xmax - xmin) / 550;
{ Вывод системы координат }
xx:= xmin;
repeat
setpencolor(clBlack);
line(trunc(40+mx*(xx-xmin)+dltx),20,trunc(40+mx*(xx-xmin)+dltx),469);
str(xx:4:1,s);
setpencolor(clBlue);
textout(trunc(40+mx*(xx-xmin)+dltx),475,s);
xx:=xx+50*sx;
until (xx > (xmax + 50 * sx));
yy:=ymin+(ymax-ymin)/10;
repeat
setpencolor(clBlack);
line(41,trunc(470-my*(yy-ymin)-dlty),630,trunc(470-my*(yy-ymin)-dlty));
str(yy:4:1,s);
setfontcolor(clBlue);
textout(20,trunc(470-my*(yy-ymin)-dlty),s);
yy:=yy+(ymax-ymin)/10;
until (yy > (ymax + (ymax - ymin) / 10));
line(40,0,40,480);
line(0,470,640,470);
line(40,0,38,10);
line(40,0,42,10);
line(640,470,630,472);
line(640,470,630,468);
{ Вывод графика }
xx:=xmin;
repeat
yy:=f(xx);
setpixel(trunc(40+mx*(xx-xmin)+dltx),trunc(470-my*(yy-ymin)-dlty),clRed);
xx:=xx+sx;
until (xx>xmax);
end;
begin
writeln ('Введите левую границу: ');
readLn (a);
while a <= 1 do
 begin
  writeln('Левая граница должна быть больше 1! Повторите ввод: ');
  readln (a);
 end;
writeln ('Введите правую границу:');
readln (b);
while b <= a do
 begin
  write ('Правая граница должна быть правее левой!');
  write (' Повторите ввод: ');
  readLn (b)
 end;
{ Вычисляется интеграл }
writeln ('Введите на сколько отрезков разбить интеграл: ');
readln(n);
r:= simpson(a,b,n);      { Начальное значение }
for i:=1 to n do
 begin
  r2:= r;                { Запоминается предыдущее значение }
  r:= simpson(a,b,n);       { Рассчитывается новое значение }
 end;                                 {точности }
{ Вывод результатов }
writeLn (' Результат по методу Симпсона равен: ',r:6:3);
writeLn ('Нажмите любую клавишу для продолжения');
readln;
{ Выводится график функции }
out_grp (a,b,f(b),f(a));
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2014, 15:23
Ответы с готовыми решениями:

Все по учебнику а программа выдает ошибку, посмотрите пожалуйста
#include &lt;iostream&gt; using namespace std; void simon (int); simon () int main () {

Посмотрите программу , и подкажите как ее доработать , при добавление информации о заявке выдает ошибку
Не удалось привести тип объекта &quot;kyrsach.BDDataSet&quot; к типу &quot;System.IConvertible&quot;.Невозможно...

Выдает ошибку, при выполнении построения графика
x=; y1=; y2=; y_min=min(); %Пересечение множеств subplot(1,3,1); plot(x, , ':'); %Построение...

Посмотрите код. Почему выдает ошибку?
Как исправить ошибку? Помогите пожалуйста Задача: Авиабилет Структура записи -пункт...

0
28.05.2014, 15:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2014, 15:23
Помогаю со студенческими работами здесь

Выдает ошибку но вроде все правильно посмотрите!
Задача в которой создается указатель второго порядка. #include &lt;iostream&gt; #include &lt;conio.h&gt;...

Подскажите пожалуйста в чем может быть трабл при компиляции класса выдает ошибку
Подскажите пожалуйста в чем может быть проблема: при компиляции класса выдает ошибку:...

Найдите пожалуйста ошибку. Код на Pascal'e. При проверке постоянно выдаёт nekorrectnye dannye
program EMV_RZ_1; uses crt; var eps,x,a,b:real; function f(x:real):real; begin ...

Одномерный массив. Вот листинг программы, но при запуске выдаёт ошибку 201. Исправьте, пожалуйста
Дан массив B из n элементов(n&lt;=30). Определить, представляют ли собой элементы массива возрастающую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru