Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 15:20   #1
Anna080
 
Регистрация: 20.04.2013
Сообщений: 4
По умолчанию Составить программу по блок схеме на VBA

Уважаемые, помогите пожалуйста с двумя задачами!
1. не пойму как описать правильно ветвление, блок-схему и код прикладываю:
Sub задача1()
Dim a, b, c, f As Integer
Worksheets("Лист2").Select
Cells.Clear
a = InputBox("Введите значение a, ввод исходных данных")
b = InputBox("Введите значение b, ввод исходных данных ")
c = InputBox("Введите значение c, ввод исходных данных ")
If a = b Then
If b > c Then a = a + c
f = a - b
Else: a = a + b
f = a + c
If a <> b Then a = a + c
f = b + c
End If
MsgBox ("значение f=") & f
Cells(3, 3).Value = f
End Sub

2. вторая задачка я понимаю что простая, но как ее сделать не соображу. прикладываю ток файл с блок-схемой.
Заранее благодарна!
Вложения
Тип файла: doc блок-схема.doc (128.5 Кб, 39 просмотров)
Тип файла: doc блок-схема 2.doc (134.0 Кб, 19 просмотров)
Anna080 вне форума Ответить с цитированием
Старый 20.04.2013, 20:48   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Код надо форматировать: выделить код и нажать символ # в меню окна, в котором вводится сообщение.
Код:
Sub задача1()
Dim a, b, c, f As Integer
Worksheets("Лист2").Select
Cells.Clear
a = InputBox("Введите значение a, ввод исходных данных")
b = InputBox("Введите значение b, ввод исходных данных ")
c = InputBox("Введите значение c, ввод исходных данных ")
If a = b Then
   If b > c Then
       a = a + c
       f = a - b
   Else
       a = a + b
       f = a + c
   End If
Else
   a = a + c
   f = b + c
End If
MsgBox ("значение f=") & f
Cells(3, 3).Value = f
End Sub
Для второй задачи можно использовать While.
Код:
While i <= N
   if x[i] = 0 then
      k = k + 1
   end if
   i = i + 1
Wend
<Вывод К>
<Конец>
Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.04.2013, 21:35   #3
Anna080
 
Регистрация: 20.04.2013
Сообщений: 4
По умолчанию

Спасибо! Но в первой задаче у меня по прежнему результат выдает не верно(
Anna080 вне форума Ответить с цитированием
Старый 20.04.2013, 22:04   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
Но в первой задаче у меня по прежнему результат выдает не верно(
Ну не совсем неверный. Выдается тот, который Вы хотели получить.

На самом деле я не обратил внимание, что переменные определены и определены как целого типа.
Функция InputBox() возвращает строку и VBA умалчивает о том, что есть несоответствие типов.
Т.е. если a = 5, b = 7, то a + b = 57, а b + a = 75.
Там вроде надо доопределять это. Как не помню.

Можно поступить так:
a = Val(InputBox("Введите значение a, ввод исходных данных"))
b = Val(InputBox("Введите значение b, ввод исходных данных "))
c = Val(InputBox("Введите значение c, ввод исходных данных "))
Val() - функция, которая преобразует числа, записанные как строковый тип в число в обычно смысле.
Т.е. если a = 5, b = 7, то a + b = 12, и b + a = 12.



Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.04.2013, 22:35   #5
Anna080
 
Регистрация: 20.04.2013
Сообщений: 4
По умолчанию

теперь у меня все числа просто суммируются, я так поняла. Например если ввожу а=3, b=3, c=5 то получается f=11. А если я все правильно понимаю, то должно быть f=8. И как быть?
Anna080 вне форума Ответить с цитированием
Старый 21.04.2013, 13:15   #6
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Если еще не разобрались, то смотрите блок-схему.
В Вашем примере: а=3, b=3, c=5.
Т.о.
1. Первое ветвление - вправо: a = b.
2. Второе ветвление влево, т.к. b < c.
3. а = а + b
Компилятор выполняет эту операцию так: 3 + 3 = 6 --> a.
Комбинацию символов "-->" тут следует читать как - "Результат послать в"
Т.е. а = 6.
4. f = a + c. 6 + 5 = 11 --> f.
Т.е f = 11.

Так что ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 21.04.2013, 13:27   #7
Anna080
 
Регистрация: 20.04.2013
Сообщений: 4
По умолчанию

Все верно, я не правильно посмотрела блок-схему!! Спасибо вам огромное, что разжевали!!!) Очень благодарна!
Anna080 вне форума Ответить с цитированием
Старый 10.06.2016, 23:10   #8
spam_kate
Новичок
Джуниор
 
Регистрация: 10.06.2016
Сообщений: 1
По умолчанию

Помогите, пожалуйста, составить блок-схему для программы
Private Sub CommandButton1_Click()
Dim M, N, Result As Integer 'Создаем переменные для M, N и результата типа Integer
M = TextBox1.Value 'Присваиваем переменной M значение из TextBox1
N = TextBox2.Value 'Присваиваем переменной N значение из TextBox2
Result = 0 'Присваиваем результату значение 0
For counter = 1 To N 'Цикл от 1 до N
Result = Result + M 'Каждый раз прибавляем к результату число M
Next counter
TextBox3.Text = Result 'Запиываем в TextBox3 результат вычислений
End Sub
spam_kate вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить 2 программы на Free Pascal по готовой блок схеме sanka777 Помощь студентам 3 23.12.2012 16:38
составить программу (VBA) и блок-схему Мария7 Помощь студентам 0 08.12.2012 19:17
Реализовать программу по блок схеме daxx Фриланс 1 31.01.2012 17:17
По блок-схеме составить программу walgorn Паскаль, Turbo Pascal, PascalABC.NET 1 16.04.2010 11:31
Написать программу по блок-схеме! gog@ Помощь студентам 12 04.04.2009 17:53