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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2018, 15:12   #1
ВаLерий
Новичок
Джуниор
 
Регистрация: 16.09.2018
Сообщений: 8
По умолчанию [C#] Напишите программу, которая проверяет вторую с права цифру в восьмеричном представлении числа, введенного пользователем.

Напишите программу, которая проверяет вторую с права цифру в восьмеричном представлении числа, введенного пользователем. Число вводиться в десятичном представлении. //Не могу понять как написать дальше

Код:
using System;
using System.Windows.Forms;
using Microsoft.VisualBasic;

namespace Trudnye_zadachi_three
{
    class Program
    {
        static void Main()
        {
        int a, b, c;
            Console.WriteLine("Введите число которое попадает в диапазон от 5 до 10");
            a = Int32.Parse(Console.ReadLine());
            if (a >= 5 && a <= 10)
            {
                Console.WriteLine("Число подходит");
                Console.WriteLine("Теперь введите число,а я вычислю сколько в нем тысяч");
                a = Int32.Parse(Console.ReadLine());
                b = a / 1000 % 10;
                Console.WriteLine(b + " тысяч");
                Console.ReadKey();
                Console.WriteLine("введите число,а я вычислю вторую справа цифру в восмеричном представлении");
                a = Int32.Parse(Console.ReadLine());
            }
            else
            {
                MessageBox.Show("Ошибка", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            
        }
    }
}
ВаLерий вне форума Ответить с цитированием
Старый 16.09.2018, 19:27   #2
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от ВаLерий Посмотреть сообщение
Не могу понять как написать дальше
Конвертировать десятичное число в 8-ричное. Вроде на шарпе это просто, есть готовая функция
Код:
using System;
 
class Program
{
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число");
            string i = Convert.ToString(Convert.ToInt32(Console.ReadLine(), 8));
            Console.WriteLine("В восьмеричной системе: {0}",i);
        }
}
Выделить из строки i второй справа символ вообще не сложно, сами справитесь.
Подсказка .Substring

Последний раз редактировалось kvitaliy; 16.09.2018 в 19:31.
kvitaliy вне форума Ответить с цитированием
Старый 16.09.2018, 20:31   #3
ВаLерий
Новичок
Джуниор
 
Регистрация: 16.09.2018
Сообщений: 8
По умолчанию

Почему string i, а не int i ?
ВаLерий вне форума Ответить с цитированием
Старый 16.09.2018, 20:48   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что восьмеричные и т.п. представления существуют только при выводе строки, 4-м байтам в int нет до этого никакого дела.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.09.2018, 20:55   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если брать по три бита в int справа налево, то эти триады и будут восьмеричные в двоичном представлении. Так же как по четыре - шестнадцатиричные

зы

можно делать И битовое с 112 и сдвиг вправо на 3 - вот тебе и вторая справа 8-ричная )

зы зы 56, а не 112
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 17.09.2018 в 00:08.
Аватар вне форума Ответить с цитированием
Старый 17.09.2018, 09:56   #6
ВаLерий
Новичок
Джуниор
 
Регистрация: 16.09.2018
Сообщений: 8
По умолчанию

Цитата:
Сообщение от kvitaliy Посмотреть сообщение
Конвертировать десятичное число в 8-ричное. Вроде на шарпе это просто, есть готовая функция
Код:
using System;
 
class Program
{
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число");
            string i = Convert.ToString(Convert.ToInt32(Console.ReadLine(), 8));
            Console.WriteLine("В восьмеричной системе: {0}",i);
        }
}
Выделить из строки i второй справа символ вообще не сложно, сами справитесь.
Подсказка .Substring
Конвертирование происходит не верно, к примеру: ввожу 45 в десятичной, в восьмиричной должно получаться 55, а выводит 37.
Почему?????

Последний раз редактировалось Alex11223; 17.09.2018 в 10:20.
ВаLерий вне форума Ответить с цитированием
Старый 17.09.2018, 10:24   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что тут конвертация из 8 в 10, а не наоборот.
Читайте документацию по функциям, меняйте на что надо.
Ну и гугл пока не забанили https://www.google.com/search?q=c%23+dec+to+oct
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.09.2018, 10:29   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ВаLерий Посмотреть сообщение
Конвертирование происходит не верно, к примеру: ввожу 45 в десятичной, в восьмиричной должно получаться 55, а выводит 37.
Почему?????
так запятую не там поставили и восьмёрка у Вас попадает в Convert.ToInt32(xx, 8)

сравните:
Код:
            string i = Convert.ToString(Convert.ToInt32(Console.ReadLine()),8);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.09.2018, 10:35   #9
ВаLерий
Новичок
Джуниор
 
Регистрация: 16.09.2018
Сообщений: 8
По умолчанию

Огромное всем спасибо! Только начал изучать программирование, поэтому дуб дубом пока) Если у кого есть обучающий материал, кроме того что имеется в инете, скидывайте, буду очень благодарен!
ВаLерий вне форума Ответить с цитированием
Старый 17.09.2018, 11:02   #10
ВаLерий
Новичок
Джуниор
 
Регистрация: 16.09.2018
Сообщений: 8
По умолчанию

Напишите программу, которая проверяет вторую с права цифру в восьмеричном представлении числа, введенного пользователем. Число вводиться в десятичном представлении.
Так решил ее я. Какие есть еще варианты?
ВаLерий вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программу, которая создает двухмерный массив и заполняет его по следующему принципу: первый элемент массива принимает значение введенного пользователем числа, второй - число + 1 DEXTER322 Помощь студентам 5 31.03.2019 11:01
[python] функция, которая рассчитывает сумму всех цифр некоторого трехзначного числа, введенного пользователем в консоли, без использования операторов цикла AlexBrave Помощь студентам 12 27.03.2018 16:38
Программа, которая проверяет является ли введенное пользователем число простым С++ программирование Помощь студентам 3 23.01.2014 06:22
программа, которая проверяет есть ли введенное пользователем число простым C++ программирование Помощь студентам 3 21.01.2014 14:49
В двоичном представлении числа инвертировать последнюю цифру. Lexman777 Паскаль, Turbo Pascal, PascalABC.NET 6 25.01.2012 10:42