Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Vaver
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 98
#1

Оператор выбора в функции - Delphi

25.02.2017, 21:15. Просмотров 216. Ответов 19
Метки нет (Все метки)

Ребят подскажите пожалуйста в чем ошибка?
Почему функция не возвращает результат в зависимости от выбора
переменой vib присваивается значение 1,2,3,4 но действия не происходит

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
unit Unit2;
 
interface
type
Arr = array[0..1000] of real;
function integral ( a,b,h:real; vib:integer) : Arr;
function znachenie (a,b,h:real; vib:integer):real;
implementation
 
function znachenie (a,b,h:real; vib:integer):real;
var
 i,n: integer;
 summa:real;
 begin
 summa:=0;
 n:=trunc((a-b)/h);
 case vib of
    1:
      for i:=1 to n do
        begin
         summa:=summa +(ln(i-1)+h/2);
         Result:=summa ;
        end;
 
    2:
      for i:=1 to n do
        begin
         summa:=summa +(cos(i-1)+h/2);
        Result:=summa ;
        end;
    3:
      for i:=1 to n do
        begin
         summa:=summa +(sin(i-1)+h/2);
         Result:=summa ;
        end;
    4:
      for i:=1 to n do
        begin
         summa:=summa +(sin(i-1)/cos(i-1)+h/2);
         Result:=summa ;
        end;
 end;
end;
 
 
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2017, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор выбора в функции (Delphi):

Оператор выбора Case - Delphi
procedure TFormReport.Gen_ReportsClick(Sender: TObject); begin {$REGION ' ICylinder '} if (SelectSurface(ICylinder,nil)as ICylinder)...

Оператор выбора ( в делфи 7) - Delphi
Помогите пожалуйста решить задачу в делфи 7( желательно еще описать все пошаговые действия) а то я не очень в этой проге разбираюсь ((( ...

Оператор выбора или что-то другое? - Delphi
Дана строка, изображающая десятичную запись целого числа. Вывести строку, изображающую двоичную запись этого же числа. var s:string;...

Оператор выбора для компонента Edit - Delphi
Здравствуйте! Вот моя процедура: procedure TForm1.Button1Click(Sender: TObject); var id1,id2,i,j:integer; f1:TextFile; ...

Составить программу, использующую оператор множественного выбора - Delphi
1. Используя оператор множественного выбора, составить программу, позволяющую решить поставленную задачу. Зная текущую дату,...

Оператор множественного выбора, вывод значения в Memo - Delphi
var c:string;i:integer; begin i:=strtoint(Edit2.Text); case i of -100..2:x:=sqr(x)+4*x+5; 3..10:x:=1/(sqr(x)+4*x+5); ...

19
Vaver
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 98
25.02.2017, 21:54  [ТС] #16
и эта фунуция возвращает значение если написать
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
function znachenie (a,b,h:real; vib:integer):real;
var
 i,n: integer;
 summa:real;
 begin
 summa:=0;
 n:=trunc((a-b)/h);
 [COLOR="red"]case vib of
    1:
      [COLOR="Red"] Result:=vib ;[/COLOR][/COLOR]
      
 
    2:
      for i:=1 to n do
        begin
         summa:=summa +(cos(i-1)+h/2);
         Result:=summa ;
        end;
    3:
      for i:=1 to n do
        begin
         summa:=summa +(sin(i-1)+h/2);
         Result:=summa ;
        end;
    4:
      for i:=1 to n do
        begin
         summa:=summa +(sin(i-1)/cos(i-1)+h/2);
         Result:=summa ;
        end;
 end;
end;
0
cfbogd
25.02.2017, 21:56
  #17

Не по теме:

Joey, мое терпение исчерпано, я пас

0
Vaver
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 98
25.02.2017, 22:34  [ТС] #18
Ребят спасибо за оптимизацию кода!
Но логики это не меняет никак!
оператор выбора case of в одной функции работает с циклом while
а с циклом for нет хотя переменной vib присваивается значение индекса радиогрупп

Добавлено через 8 минут
А логическую ошибку я сам нашел!
n:=trunc((a-b)/h);
надо было n:=trunc((b-a)/h);
т к n было меньше 0 то и цикл for был от 1 до -89
Искренне спасибо за оптимизацию кода!
0
cfbogd
25.02.2017, 23:02
  #19

Не по теме:

Цитата Сообщение от valera7794647 Посмотреть сообщение
Но логики это не меняет никак!
потому что её у тебя нет

0
Vaver
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 98
25.02.2017, 23:28  [ТС] #20
Не по теме:

Цитата Сообщение от valera7794647 Посмотреть сообщение
Но логики это не меняет никак!
потому что её у тебя нет

Добиться результата можно разными путями!
Кто-то более длинным способом кто-то короче!
У меня пока опыта нет !
Поэтому решаю задачи по мере своей компетенции!
Возможно потом немного упростил бы синтаксис!
Набрасываться что логики нет не стоит))
Не было бы логики и это бы не написал!
Для начинающего думаю не так критично.
Еще раз спасибо за упрощение синтаксиса!
Ответ на свой вопрос нашел сам!
Всем спасибо!
0
25.02.2017, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2017, 23:28
Привет! Вот еще темы с ответами:

Условные операторы ,Оператор выбора ,Операторы цикла - Delphi
Helpp =)) 1) На числовой оси расположены три точки: A, B, C. Определить, какая из двух последних точек (B или C) расположена ближе к...

Функции и оператор case - Delphi
Решить задачу с помощью функции и оператора case: дано целое число в диапазоне 20-69, определяющее возраст(в годах). Вывести строку -...

Разработать программу выбора и построение 5 графиков функции - Delphi
Разработать программу выбора и построение 5 графиков функции: у=cos(x), y=sin(x), y=x2+4x-6, y=lg(x), y=ex.

Условный оператор: найти значение функции в зависимости от условия - Delphi
Помогите решить, пожалуйста


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

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

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