Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
 Аватар для mrs.Anastacia
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 13

Написать программу для вычисления значения функции с использованием операторов ветвления If и выбора Select Case

11.01.2012, 18:33. Показов 10274. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Во вложении функция.
Задание: Написать программу для вычисления значения функции с использованием операторов ветвления If и выбора Select Case.
Вот первая программа с использованием If
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Command1_Click()
 
Dim x As Double  
Dim y As Double 
x = CDbl(Text1.Text)
If x < -3.14 / 2 Then
    y = 0
ElseIf x > 3.14 / 2 Then
    y = 1
Else
    y = Sin(x)
End If
Label1.Caption = CStr(y)
End Sub

Вот вторая программа с использованием Select Case
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command1_Click()
 
Dim x As Double  
Dim y As Double 
x = CDbl(Text1.Text)
Select Case x
    Case Is < -3.14 / 2
        y = 0
    Case -3.14 To 0
        y = -Sin(x)
    Case Is > 3.14 / 2
        y = 1
 
End Select
Label1.Caption = CStr(y)
End Sub
Проблема в том, что у меня не получается вставить еще одно условие в первой программе про "y=-sin(x)", а во второй программе про "y=sin(x)". А они оба должны быть и в той, и в той программе.

Подскажите пожалуйста, что надо исправить?
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2012, 18:33
Ответы с готовыми решениями:

Составить программы вычисления и печати значения функции f(x) с использованием операторов условного перехода IF и case
Составить программы вычисления и печати значения функции f(x) с использованием операторов условного перехода IF и оператора вы- бора...

Вычисление значения функции с использованием операторов ветвления if
Я только учусь, помогите пожалуйста... третий день не могу построить этот график... спасибо всем кто ответит!)

Составить программу вычисления значения функции с использованием оператора CASE
Помогите пожалуйста. Составить программу вычисления значения функции с использованием оператора CASE при целом x и вещественных a,b,c ...

8
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
12.01.2012, 10:10
1. Elseif x > -3.14 and x < 0
y = -Sin(x)
2.Case Else

Добавлено через 14 часов 42 минуты
Visual Basic
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
Private Sub Command1_Click()
Dim x As Double
Dim y As Double
x = CDbl(Text1.Text)
If x < -3.14 / 2 Then
    y = 0
ElseIf x > 3.14 / 2 Then
    y = 1
ElseIf x > -3.14 / 2 And x < 0 Then
    y = -Sin(x)
Else
    y = Sin(x)
End If
Label1.Caption = CStr(y)
End Sub
 
Private Sub Command2_Click()
 
Dim x As Double
Dim y As Double
x = CDbl(Text1.Text)
Select Case x
    Case Is < -3.14 / 2
        y = 0
    Case -3.14 To 0
        y = -Sin(x)
    Case Is > 3.14 / 2
        y = 1
    Case Else
        y = Sin(x)
End Select
Label1.Caption = CStr(y)
End Sub
1
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
12.01.2012, 10:16
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Command1_Click()
pi = 4 * Atn(1)
Dim x#, y#
x = CDbl(Text1)
If x < -pi / 2 Then
    y = 0
ElseIf x < 0 Then
    y = -Sin(x)
ElseIf x < pi / 2 Then
    y = Sin(x)
Else
    y = 1
End If
Label1 = y
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command2_Click()
pi = 4 * Atn(1)
Dim x#, y#
x = CDbl(Text1)
Select Case x
    Case Is < -pi / 2
        y = 0
    Case -pi / 2 To 0
        y = -Sin(x)
    Case 0 To pi / 2
        y = Sin(x)
    Case Else
        y = 1
End Select
Label1 = y
End Sub
2
 Аватар для mrs.Anastacia
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 13
13.01.2012, 17:45  [ТС]
Спасибо! Я в принципе так и делала, только меня смущало, что у результата не было минуса, спустя неделю до меня дошло-таки, что - на - дает + надо брать отпуск, срочно
К этому же рисунку еще один вопрос:
1) Вычислить значения табличной функции для всех значений аргумента на интервале [–3, 3] с шагом 0,2. Результат выдать на экран в виде таблицы.
2) Программно найти самую левую на интервале [–2, 2] (с точностью 0,1) точку, в которой значение функции принимает отрицательное значение, и самую правую точку на том же интервале, в которой значение функции принимает положительное значение.
Левую отрицательную я нашла, а вот с правой положительной - проблемы..

Visual Basic
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 f(x As Double) As Double
Select Case x
    Case Is < -3.14 / 2
        f = 0
    Case -3.14 To 3.14
        f = -Sin(x)
    Case Is > 3.14 / 2
        f = 1
End Select
End Function
 
 
Private Sub Command1_Click()
Dim x As Double              
Dim y As Double              
Dim found As Boolean     
For x = -3 To 3 Step 0.2
        y = f(x)
    Print Round(x, 2), Round(y, 5)      
Next x
 
found = False
For x = -2 To 2 Step 0.1
     y = f(x)
     If y < 0 Then
        found = True
        Print "Самая левая точка с отриц. значением функции ", Round(x, 1), y
        Exit For
     End If
Next x
If Not found Then Print "Нет точки с отрицательным значением функции"
End Sub
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
13.01.2012, 23:02
Visual Basic
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
Function f(ByVal x As Double) As Double  'обрати внимание на передачу аргумента
Select Case x
    Case Is < -3.14 / 2
        f = 0
    Case -3.14 To 3.14
        f = -Sin(x)
    Case Is > 3.14 / 2
        f = 1
End Select
End Function
 
 
Private Sub Command1_Click()
Form1.Cls
For x = -30 To 30 Step2
    Print Round(x / 10, 2), Round(f(x / 10), 5)
Next x
 
found_right = False
found_left = False
 
For x = -20 To 20
    If f(x / 10) > 0 Then found_right = True: y1 = f(x / 10): x1 = x / 10
    If f(x / 10) < 0 And Not found_left Then found_left = True: _
    y2 = f(x / 10): x2 = x / 10
Next
 
Print "Ïðàâîå çíà÷åíèå " & IIf(found_right, "x=" & x1 & " y=" & Round(y1, 5), "íå íàéäåíî")
Print "Ëåâîå çíà÷åíèå " & IIf(found_left, "x=" & x2 & " y=" & Round(y2, 5), "íå íàéäåíî")
End Sub
Добавлено через 17 минут
цикл по инту чтоб не округлять x
0
 Аватар для mrs.Anastacia
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 13
17.01.2012, 21:36  [ТС]
не идет
Миниатюры
Написать программу для вычисления значения функции с использованием операторов ветвления If и выбора Select Case  
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
17.01.2012, 21:39
Цитата Сообщение от mrs.Anastacia Посмотреть сообщение
не идет
Пробел после step
0
 Аватар для mrs.Anastacia
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 13
17.01.2012, 22:39  [ТС]
я аж покраснела
а почему мой ответ различен с твоим про самую левую с отрицательным значением?
они же вроде одинаковы должны быть...
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
17.01.2012, 23:21
Потому что Round(x, 1)
потому что при цикле по не целой переменной, x будет смещаться не ровно на 0.1
выведи в своей задаче
Visual Basic
1
Print "Ñàìàÿ ëåâàÿ òî÷êà ñ îòðèö. çíà÷åíèåì ôóíêöèè " & x & " " & y
поэтому и предложил цикл на инте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2012, 23:21
Помогаю со студенческими работами здесь

Составить программу вычисления значения функции с использованием оператора CASE
Составить программу вычисления значения функции с использованием оператора CASE при целом x и вещественных a,b,c: y=\begin{cases} ...

Составить программу вычисления значения функции с заданной точностью с использованием операторов WHILE и REPEAT
Составить программу вычисления значения функции с заданной точностью с использованием операторов WHILE и REPEAT..UNTIL. Ряд: ...

Составить программу для вычисления функции, используя оператор выбора case
Введите три целых положительных числа a, b, c. Определите остаток k от деления на 5 величины M, равной: M=(a+sqr(b)+c)/c, вычислите...

Составить программу вычисления функции двумя способами (If Then Else и Select Case)
помогите пожалуйста очень срочно надо 7 вариант

Составить программу для решения задачи, используя оператор выбора Select-Case
Составить программу для решения задачи, используя оператор выбора Select-Case. Составить программу, которая по знаку арифметической...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru