Форум программистов, компьютерный форум CyberForum.ru

Перевод слов в цифры (по правилу a-1, b-2, z-26, aa-27...) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив ( вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами) http://www.cyberforum.ru/cpp-beginners/thread984191.html
Необходимо вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами массива. Затем упорядочить все элементы массива по убыванию вот код #include <cstdlib> #include <iostream> #include <math.h>
C++ Определить входит ли корень уравнения в отрезок Здравствуйте. Подскажите пожалуйста, как лучше сделать. .есть 3 корня уравнения - x1, x2, x3 .Дан определенный промежуток на оси х.( например от x=3 до x=8) Нужно определить, входит ли данный корень в этот промежуток. Желательно с кодом, если можно.. Заранее спасибо. Очень благодарен за то, что вы помогаете http://www.cyberforum.ru/cpp-beginners/thread984184.html
Функции Класса C++
Добрый день , возник вопрос. К примеру есть класс class C_class{ void func_1(); void func_2(); } //Возможно ли вызвать функцию класса func_2 из func_1 ? и как этго сделать ? void class::func_1{ Тут нужно вызвать функцию func_2();
C++ Найти сумму положительных элементов двумерного массива
Всем привет.Нужна помощь в написании этой программы: программа случайным образом заполняет двумерный масив 6*5 целыми числами из диапазона и находит сумму положительных элементов на пересечении четных строе и нечетных столбцов. Вснем кто лткликнулся большое спасибо!!!
C++ Написать программу, которая в строке заменяет символы http://www.cyberforum.ru/cpp-beginners/thread984171.html
Всем привет .Очень срочно нужна программка. Нужен код программы ,которая в строке введенной пользователем заменяет символы s и t на + и ! и подсчитывает количество таких замен. Всем кто откликнулся большое спасибо!:)
C++ OpenCV Всем здрасти :D Начал изучать OpenCV, и стоит такая задача. Есть видеофайл, который нужно вывести на экран, но вывести его нужно так: http://www.cyberforum.ru/attachment.php?attachmentid=319692&stc=1&d=1382396232 Где RGB - результат R1G1B1 - предыдущий кадр R2G2B2 - текущий кадр Омега принимает любое значение. Буду очень признателен, если кто знает где про это можно почитать. Либо... подробнее

Показать сообщение отдельно
Светла
3 / 3 / 0
Регистрация: 22.03.2012
Сообщений: 15
23.10.2013, 12:10     Перевод слов в цифры (по правилу a-1, b-2, z-26, aa-27...)
Доброго времени! Думаю, что, в случае, когда на входе у вас цифра, то и рассматривать ее нужно как цифру. У вас идет привязка к длине, что ни есть хорошо и, вероятнее всего, там и багует.

Давайте посмотрим на задачу по-другому. На входе слово (у которого, верно, есть длина - len), вы его переводите в "цифру" функциями суммирования и умножения. Можно было бы обойтись одной функцией, работающей по приблизительной формуле:
цифра = сумма(i = 0,... i < len-1)= (basei)*numj,i+1.
Что под этим имею ввиду:
основание(base) всегда 26, в случае, когда len = 1, base по формуле вырождается в единицу.
numj,i+1 - это ваша буква, от самой первой, которая дает порядок числа, до самой последней, которая уже показывает единицы.

Пример: dax = 2754 = 26*26*4(d=4) + 26*1(a=1) + 1(26 в нулевой степени)*24.

Далее, о цифре. Несмотря на то, что поступает целое число, я буду рассматривать его как дробное, ибо так удобнее( массив char в double функцией double atof ( const char * str ), имея все то же неизменное основание 26, начинаем экспериментировать:
2754 / 26 = 105,9230....
105,9230..../26 = 4, 07396...

Мысля начинает шевелиться:"Что бы это значило?".
Цифра 4 похожа на d, а остаток от деления, наверное - остальные буквы? Если дробную часть от первого деления помножить на 26, то получим живое число - 24. Улыбаемся и машем - это х. А вот если такой трюк провернуть со вторым остатком от деления, получится ерунда. Пробуем просто 105 на 26 разделить, дробную часть снова множим - вуаля - 1(а).
Таким образом, вспоминая, что есть функция double modf ( double x, double * intpart );, которая разделяет целые и дробные части, решаем проблему, запихивая функцию в цикл.
Удачи!
 
Текущее время: 04:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru