С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
1

Табулирование функции на заданном интервале с заданным шагом

14.10.2012, 17:02. Просмотров 1398. Ответов 10
Метки нет (Все метки)

Табулирование функции.дан отрезок от 1 до 11 с шагом 0.5,первое значение у меня берется 1.5,а должно быть 1,попытался испол.цикл for но тоже не получ
Delphi
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
program табулирование;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
 
     x,xn,xk,dx,y,x1,y1,cont1,cont2:real; // аргумент, начало отр.,конец отрезка
     i,s,qounter1,qounter2:integer;
     n:byte;
     symbol:char;
 
begin
repeat
qounter1:=0;
qounter2:=0;
writeln ('vvedite nachalo otrezka'); readln(xn);
writeln ('vvedite conec otrezka'); readln(xk);
writeln ('vvedite shag'); readln(dx);
 
 
x:=xn;
x1:=xn;
 
 
 
 
 
 
 
writeln (#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
 
 writeln (#186,'  nomer tochki  ',#186,'  argument       ',#186,'   f(x)=cos(x)   ',
         #186,'  f(x)=sin(x)   '#186);
 
while x<=xk do begin
              if x+dx/2<xk then
 
writeln (#204#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #206#205#205#205,
 
         #205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205,
         #205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,#185);
 
 
 
 
          x:=x+dx;
          x1:=x1+dx;
          y:=cos(x);
          y1:=sin(x1);
 
          if (cont1>0) and (y<0) or (cont1<0) and (y>0) then
          inc(qounter1);
          if (cont2>0) and (y1<0) or (cont2<0) and (y1>0) then
          inc(qounter2);
 
 
          cont1:=y;
          cont2:=y1;
 
 
          for n := 0 to s do
          s:=n+1;
 
           if x<xk+dx/2 then
 
 
writeln (#186,   s ,'               ',#186,x:5:1,'            ',#186,y:6:2,'           ',
         #186,y1:6:2,'          ',#186);
 
 
 
 
 
          end;
 
 
writeln (#204#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#185);
writeln (#186,'Kolichestvo izmeneniy znaka       ',#186,qounter1,'                ',
         #186,qounter2,'               '#186);
writeln (#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205,
         #202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188);
 
 
 
writeln;
writeln;
writeln;
writeln('Povtorit?<Y/N>');
readln(symbol);
until UpCase (symbol)='N';
writeln;
      writeln('programma zaverchena');
sleep(1000);
 exit end .
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 17:02
Ответы с готовыми решениями:

Табулирование заданной функции на интервале x1 до x2 с шагом dx Delphi
программа должна выводить у окно формы максимальное ,минимальное та среднее...

Табулирование функции на заданном интервале.
Для аргумента , изменяющегося от –0.6 с шагом 0.05 вычислить 20 значений...

Вычислить значения функции f(x) на заданном интервале, с шагом h
Задания в Delphi:) Вычислить значения функции f(x) на заданном интервале, с...

Табулирование функции на заданном интервале. Нахождение min и max значений
Задание: получить табл значений на интервале в 12 точках. Найти max и min...

Найти значения функции на заданном отрезке с заданным шагом
Пожалуйста, объясните конструкцию цикла for to do для шага 0.2

10
sumrak95
Избранный
83 / 83 / 42
Регистрация: 08.06.2012
Сообщений: 174
14.10.2012, 17:33 2
Ты тут присваиваешь значение x т.е. x:=1+0,5
Delphi
1
2
x:=x+dx;
...
т.е. уже прибавляешь один шаг и выводишь значение x как раз со значением 1.5 ниже
Delphi
1
2
3
...
writeln (#186,   s ,'               ',#186,x:5:1,'            ',#186,y:6:2,'           ',
         #186,y1:6:2,'          ',#186);
0
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
14.10.2012, 18:50  [ТС] 3
я потом поменя на цикл с иззвестным кол-вом операций сделал
for x:=xn to xk do
begin
x:=x+dx;
end;
но компилятор выдает ошибку
0
FIL
Модератор
3422 / 2556 / 728
Регистрация: 19.09.2012
Сообщений: 7,926
14.10.2012, 19:08 4
Цитата Сообщение от Nike1995 Посмотреть сообщение
я потом поменя на цикл с иззвестным кол-вом операций сделал
for x:=xn to xk do
begin
x:=x+dx;
end;
но компилятор выдает ошибку
У тебя x: real, а в for можно использовать только integer.
0
sumrak95
Избранный
83 / 83 / 42
Регистрация: 08.06.2012
Сообщений: 174
14.10.2012, 19:42 5
Верни преждний цикл и просто
Замени
Delphi
1
2
x:=xn;
x1:=xn;
На
Delphi
1
2
x:=xn-dx;
x1:=xn;
1
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
14.10.2012, 20:35  [ТС] 6
о! про тип не подумал...спасибо

Добавлено через 34 минуты
теперь выяснилось, что и счетчик неправильно перемены знака считает...если ввести отрезок от 1 до 33 и шаг 4
0
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
21.10.2012, 20:28  [ТС] 7
после того как я изменил
x:=xn;
x1:=xn;
На
x:=xn-dx;
x1:=xn;
у меня значения функции из сместились на одну строчку вниз...т.е. то что должно соответствовать для аргумента 1 (с шагом функции 1) приписывается к аргументу 2...и еще смену знаков не верно считает

Добавлено через 35 секунд
почему, подскажите пжл=))
0
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
21.10.2012, 22:18 8
Delphi
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
program табулирование;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
Const
  Line1 =
#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#203#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187;
  Line2 =
#204#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#185;
  Line3 =
#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188;
  Line4 =
#204#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#206#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#185;
 
var
   x,xn,xk,dx,y,x1,y1,cont1,cont2:real; // аргумент, начало отр.,конец отрезка
   s,qounter1,qounter2:integer;
   symbol:char;
begin
  repeat
    qounter1:=0;
    qounter2:=0;
    writeln ('vvedite nachalo otrezka'); readln(xn);
    writeln ('vvedite conec otrezka'); readln(xk);
    writeln ('vvedite shag'); readln(dx);
 
    x:=xn;
    x1:=xn;
    s:=0;
    cont1:=cos(x);
    cont2:=sin(x1);
 
    writeln (Line1);
    writeln (#186,'   nomer tochki   ',#186,'  argument       ',#186,'   f(x)=cos(x)   ',
             #186,'  f(x)=sin(x)   '#186);
    writeln (Line2);
    while x<=xk do
    begin
      x1:=x1+dx;
      y:=cos(x);
      y1:=sin(x1);
 
      if (cont1>0) and (y<0) or (cont1<0) and (y>0) then
      inc(qounter1);
      if (cont2>0) and (y1<0) or (cont2<0) and (y1>0) then
      inc(qounter2);
 
      cont1:=y;
      cont2:=y1;
 
      s:=s+1;
 
      if x<xk+dx/2 then
 
      writeln (#186, s:3 ,'               ',#186,x:5:1,'            ',#186,y:6:2,'           ',
               #186,y1:6:2,'          ',#186);
      x:=x+dx;
      If x<=xk Then
      writeln (Line2);
    end;
 
    writeln (Line4);
    writeln (#186,'Kolichestvo izmeneniy znaka         ',#186,' ',qounter1:3,'             ',
             #186,' ',qounter2:3,'            '#186);
    writeln (Line3);
    writeln;
    writeln;
    writeln;
    writeln('Povtorit?<Y/N>');
    readln(symbol);
  until UpCase(symbol)='N';
  writeln;
  writeln('programma zaverchena');
  Sleep(1000);
  exit;
end.
1
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
21.10.2012, 23:15  [ТС] 9
спасибо большое, вот только 42 строчку переместить к 60, чтобы кол-во перемен знака для второй ф-ции правильно считало и все вообще круто будет=))
0
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
21.10.2012, 23:47 10
Ну да. Чего-то я упустил из вида, что там две функции.

Добавлено через 15 минут
Вообще-то, там этот x1 и даром не нать. Поставь вместо x1 - x при вычислении y1. А x1 - убери из кода.
И строка 56 - тоже не нужна.
0
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
22.10.2012, 00:08  [ТС] 11
тоже ступил)) еще раз спасибо
0
22.10.2012, 00:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2012, 00:08

Вычислить сумму положительных значений Sin(fi) На интервале [a,b] с заданным шагом
Помогите написать программу для задачи &quot;Вычислить сумму положительных значений...

Вычислить сумму отрицательных значений Cos(fi) на интервале [а, b] с заданным шагом
Получается нужно чтобы все шаги отображались а я вроде как сделал в консоле но...

Вычислить количество отрицательных значений sin(ф) на интервале {a,b} с заданным шагом
нужна помощь в создании программы используя оператор цикла с предусловием в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru