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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2014, 01:02   #1
Xorigan
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 10
Хорошо Найти сумму произведений цифр целой и дробной частей. Visual Basic 2008 Express Edition

Найти сумму произведений цифр целой и дробной частей.
Помогите составить код пожалуйста.

Ссылка на Visual Basic 2008 Express Edition - Microsoft:
go.microsoft.com/?linkid=7729280

Вот; пока только перемножает только целую часть:

Код:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim number As String
        Dim c As String, d As String

        Dim rc As Integer

        number = TextBox1.Text

        c = Int(TextBox1.Text)
        d = (TextBox1.Text - Int(TextBox1.Text)) * 10 ^ (Len(TextBox1.Text - Int(TextBox1.Text)) - 2)

        rc = 1
        While number <> 0
            rc = rc * (number Mod 10)
            number = number \ 10
        End While


        MsgBox("Результат: " & rc)

    End Sub

End Class

Последний раз редактировалось Stilet; 23.06.2014 в 10:52.
Xorigan вне форума Ответить с цитированием
Старый 23.06.2014, 02:11   #2
Xorigan
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 10
По умолчанию

Нашел в интернете код на паскале - перемножает 2 первых дробных числа

Код:
uses crt;
var x:real;
    p,a,i:word;
begin
clrscr;
write('Введите вещественное число с дробной частью не менее 2х знаков x=');
readln(x);
p:=1;a:=1;
for i:=1 to 2 do
 begin
  a:=a*10;
  p:=p*(trunc(x*a)mod 10);
 end;
write('P=',p);
readln
end.
Xorigan вне форума Ответить с цитированием
Старый 23.06.2014, 03:04   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Xorigan Посмотреть сообщение
Ссылка на Visual Basic 2008 Express Edition - Microsoft:
go.microsoft.com/?linkid=7729280
Дожили! Уже дошло до ссылок на компиляторы. Выложили бы ещё ссылку на Паскаль, раз уж так.
Цитата:
Сообщение от Xorigan Посмотреть сообщение
Нашел в интернете код на паскале
Судя по всему, можно предположить, что предыдущий код на Visual Basic тоже.
Цитата:
Сообщение от Xorigan Посмотреть сообщение
перемножает 2 первых дробных числа
У Вас в самом 1м посте стоит совсем другая задача. Причём здесь это?
Держите. Учитесь.
Код:
number = TextBox1.Text
c = Int(number)
d = number.Substring(InStr(TextBox1.Text, ","))
rc = 1
rd = 1
While c <> 0
  rc = rc * (c Mod 10)
  c = c \ 10
End While
While d <> 0
  rd = rd * (d Mod 10)
  d = d \ 10
End While
MsgBox("Результат:" + (rc + rd).ToString())
Однако, для того, чтобы Вам было интересно самому разобраться в предоставленном коде, а не просто скопировать готовое:
  1. Код написан на Visual Basic 2012
  2. В коде имеется небольшая малозаметная ошибка, которая, в прочем, при определённых обстоятельствах, может, как говорится, "всё испортить". Ваша цель - найти её и устранить.
Streletz вне форума Ответить с цитированием
Старый 23.06.2014, 03:07   #4
Xorigan
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 10
По умолчанию

Спасибо биг. Подсказку сделаете? Я в функциях как раз ничего не знаю( Они то мне и нужны)

Вообще не очень понял, в чем ошибка; поменял, что не понравилось и все работает! Спасибо огромное!

Код:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim number As String
        Dim c As String
        Dim d As String

        Dim rc As String
        Dim rd As String


        number = TextBox1.Text
        c = Int(number)
        d = number.Substring(InStr(TextBox1.Text, ","))

        rc = 1
        While c <> 0
            rc = rc * (c Mod 10)
            c = c \ 10
        End While

        rd = 1
        While d <> 0
            rd = rd * (d Mod 10)
            d = d \ 10
        End While
        MsgBox("Результат:" & ((rc + rd).ToString()))

    End Sub

End Class

Последний раз редактировалось Stilet; 23.06.2014 в 10:53.
Xorigan вне форума Ответить с цитированием
Старый 23.06.2014, 03:24   #5
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Смех

Пожалуйста!
Цитата:
Вообще не очень понял, в чем ошибка
Просто, Вы и не пытались её найти, что в общем-то не удивительно.
Streletz вне форума Ответить с цитированием
Старый 23.06.2014, 03:27   #6
Xorigan
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 10
По умолчанию

Так она будет влиять на работу программы, или нет?)
Xorigan вне форума Ответить с цитированием
Старый 23.06.2014, 03:47   #7
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Xorigan Посмотреть сообщение
Так она будет влиять на работу программы, или нет?)
Что это за ошибка, если она не влияет на работу программы?
Только, как я уже писал выше, для того, чтобы её обнаружить и устранить, необходимо разобраться в том, как работает код. Это не синтаксическая ошибка. Поэтому, при компиляции Visual Studio её не увидит. Так, что придётся самостоятельно искать.
Как-то так.
P.S. Если сомневаетесь, ошибка в коде действительно есть. Когда Вы поймёте как работает код, Вы сами убедитесь в этом.
Streletz вне форума Ответить с цитированием
Старый 23.06.2014, 08:38   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОФФТОП ВКЛ

Цитата:
Найти сумму произведений цифр целой и дробной частей.
дожили... Вот и выросло поколение преподавателей, которые не знают, что вещественные (дробные) числа представлены в компьютере с некоторой ТОЧНОСТЬЮ. Т.е. говорить даже о том, чтобы вывести ВСЕ цифры дробной части числа, нельзя!


ОФФТОП ВЫКЛ

Цитата:
Код:
        Dim c As String
....
        While c <> 0
...
            c = c \ 10
Это что - РАБОТАЕТ?! Неужели бейсику настолько наплевать на типы данных, что он их сам конвертирует при любой надобности?!!! o_O
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.06.2014, 10:38   #9
Xorigan
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 10
По умолчанию

Просто сделаю
Код:
number = Val(TextBox1.Text)
Xorigan вне форума Ответить с цитированием
Старый 23.06.2014, 14:19   #10
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Радость

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вещественные (дробные) числа представлены в компьютере с некоторой ТОЧНОСТЬЮ
Точность, в данном случае задаётся при вводе числа с клавиатуры. Обратите внимание на то, что я, в своём коде, сразу ухожу от вещественных типов и, в дальнейшем, работаю с 2мя целыми числами.
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Это что - РАБОТАЕТ?!
Работает!
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Неужели бейсику настолько наплевать на типы данных, что он их сам конвертирует при любой надобности?!!!
Здесь используется не Basic, а Visual Basic.NET. В этом языке поддерживается динамическая типизация.
Streletz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция в Visual C++ 2008 Express Edition MacTiger Visual C++ 16 26.10.2014 20:19
Проблемка в Microsoft Visual C++ 2008 Express Edition Vega89 Visual C++ 12 14.08.2009 15:05
Visual C++ 2008 Express Edition Grisman Visual C++ 1 02.03.2009 20:19
Разделитель дробной и целой частей числа voron29 Win Api 2 17.12.2008 10:56