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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
#1

Преобразовать строку->число->строку - C++

21.06.2011, 16:30. Просмотров 1892. Ответов 18
Метки нет (Все метки)

Всем доброго времени суток! Скоро будет экзамен по программированию.С++ начали изучать в конце семестра. В билете задача написать программу на с++ (мы пользуемся Borland C++ 3.1). Программа должна состоять из 3 функций:
1)-сама программа т.е. main;
2) функция которая переводит дробную из формата строка(исп. массив символов) в формат вещественный или целый;
3) функция переводящая результат 2 функции обратно т.е. из целочисленного или вещественного в строку
Использовать только библиотеки iostream.h и stdlib.h
и вывести на экран 3 столбика: 1ый входная строка 2ой выходная веществ. или целочис. 3) выходная строка
Помоги пожалуйста! Трудно понять язык (до этого изучали паскаль), напишите пожалуйста программу которая переведет допустим 0,101 в 2сс в 10сс. Т.е. результат должен быть таким:
0,101 0,625 0,101 вот такую строку программа должна показать на экране
входная строка и выходная (т.е. 1 и 3 столбик) не должны сильно отличаться!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 16:30     Преобразовать строку->число->строку
Посмотрите здесь:

Как преобразовать число в строку - C++
Здравствуйте! У меня такой вопрос: Нужно выводить на экран числа.Функция принимает указатель на строку Font->DrawTextA(NULL, ...

Как строку можно преобразовать в число??? - C++
Написать функцию, которая анализирует заданную строку и возвращает: · 1, если строка представляет собой запись целого числа; · 2 — если...

Как преобразовать строку цифр в число? - C++
Как преобразовать строку цифр в число?

Как преобразовать большое число в строку - C++
Делаю такое преобраование char szbuff; double X=3292373930; sprintf(szbuff, "%g", X); string X_str=szbuff; В результате...

Возможно ли преобразовать в число, строку вида: - C++
Если дана строка, например, (1+4+5+7), она может быть преобразована в число?

Как преобразовать шестнадцатеричное число в строку? - C++
как записать в строку шестнадцатеричное число? например 111111111 в основании 16 в строке должно выглядеть как 4581298449 в основании 10

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,368
Завершенные тесты: 1
21.06.2011, 16:39     Преобразовать строку->число->строку #2
преобразовать:
int
строку->число atoi()
число->строку itoa()

float
строку->число atof()
число->строку wsprintf(), например
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 16:48  [ТС]     Преобразовать строку->число->строку #3
Нельзя использовать библиотечные функции, вся работа должна быть основана на работе с масивами символов(выступающих в качестве строк)
Петррр
5947 / 3384 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
21.06.2011, 16:57     Преобразовать строку->число->строку #4
Числа должны быть вещественными?
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,368
Завершенные тесты: 1
21.06.2011, 16:59     Преобразовать строку->число->строку #5
auqarisu, извиняюсь не дочитал задаиие. А в чем собственно проблемы? Есть свои наработки? Показывайте.
Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 352
21.06.2011, 17:09     Преобразовать строку->число->строку #6
да уж какие тут могут быть наработки?
я же говорю - сий форум превратился из форума для начинающих программистов в форум для
студентов - попрошаек

вобщем не вижу смысла повторяться ...
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 17:31  [ТС]     Преобразовать строку->число->строку #7
Да уж простите меня, но мне надо было сдавать 2е курсовые на паскале, на с++ времени было мало... Трудно его понять....
Наброски есть:
входные данные константы (задаются в начале, забыл сказать) т.е. на входе мы имеем массив символов mas[5]={'0','.','1','0','1'} //извиняйте если неправильно пишу операторы и т.д. и т.п., синтаксис языка пока лучше не изучен.
Я думаю обрабатывать этот массив в цикле, как то удалить или переписать в другой массив дробную часть, как нибудь так:
for(i=1,i++)
{
mas1[i]=mas[i];
} далее перевести это в тип вещественный.(в зависимости от задания тип либо float либо int) и работать с ним...
Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 352
21.06.2011, 17:48     Преобразовать строку->число->строку #8
ну да, тебе однозначно тогда надо всё это дело прогнать через цикл
в цикле вытащить интовый код каждого символа
и преобразовать эти коды в инты
после чего "сцепить" вместе инты - и получишь число

а потом проделать всё с точностью до наоборот
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 17:51  [ТС]     Преобразовать строку->число->строку #9
А вот как преобразовать массив символов в число я думаю так:
после того как выделил дробь и работаем с ней т.е. mas1=101
int i;
float r=0;
for(i=0,i<2,i++)
{
if (mas1[i]='1') r=r+1/((i+1)*10);
}
если я правильно рассчитал мы должны получить 1/1*10+0/2*10+1/3*10=0,1+0+0,001=0,101
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
21.06.2011, 18:04     Преобразовать строку->число->строку #10
Wolfram Alpha стала популярной... и самые продвинутые научились ей пользоваться...

auqarisu, тебе только для этого числа надо?
возможны другие входные данные?
например 10.101
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 18:07  [ТС]     Преобразовать строку->число->строку #11
В билете не будут смешанных типов, будут только либо дроби(пример 0,10011) либо целые(1010), я хочу понять смысл как написать программу на том примере 0,101...
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
21.06.2011, 18:25     Преобразовать строку->число->строку #12
auqarisu, смотри попытаюсь рассказать общий случай для дроби
0.101
нужно отделить целую и дробную часть
0 и 101 - это строки (надеюсь поймешь как из строки сделать число целое, если нет расскажу)
в 101 посчитать кол-во знаков n=3
потом 101/10^n и складываешь целую часть и дробную

получили 0+0.101=0.101

обратно:
нужно использовать преобразование типов int(0.101) если можно ей пользоваться.
если нет то придется делать через циклы.
int(0.101) вернет целую часть числа т.е. 0
дальше 0.101 - int(0.101) = 0.101
честно не знаю как посчитать сколько знаков в числе после запятой, поэтому придется брать старые данные которые были в строке
и потом три раза умножаешь на 10 и записываешь в строку

вообще глупое задание на мой взгляд + несправедливо кому то целые, а кому то дробные
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 18:35  [ТС]     Преобразовать строку->число->строку #13
А можно объяснить как из строки в число? А подсчитать количество символов... в задании нам входные данные даются константами(из это легко определить количество эл-от в дроби или целом), а задачи будут разные могут быть если 10сс целое то перевести в 2сс строку и обратно, мне уловить суть, как это реализовать...

Добавлено через 3 минуты
Мне разобрать пример с 0.101, а другие примеры сам попробую сделать
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
21.06.2011, 20:04     Преобразовать строку->число->строку #14
auqarisu, отходил, смотри
C++
1
2
3
4
5
6
7
8
#include "stdio.h"
void main(){
int a;
char b[50];
b[0]='5';
a=b[0]-'0';
printf("%d",a);
}
т.е. из строки в цифру надо вычесть код 0(таблица ASCII)
а если из цифры в строку то прибавить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2011, 20:16     Преобразовать строку->число->строку
Еще ссылки по теме:

Преобразовать строку s в верхний регистр и переписать результат в строку S1 - C++
дана строка s в нижнем регистре. преобразовать строку s в верхний регистр и переписать результат в строку S1. Вывести строку S1 на экран....

Преобразовать число в строку/строкук в число - C++
Обьясните, как преобразововать число в строку и наоборот. Искал в гугле, но конкретного ответа так и не получил (все, что узнал, что есть...

Преобразовать число int в строку прописью char - C++
Например, вводим 40, 3 должно выдать sorok rubley tridcat kopeek. Пересмотрел много задач с похожей тематикой, но во-первых, ни одна не...

Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку. - C++
Задача направленная на усвоение следующих понятий: прототип функции; заголовок функции; тело функции; параметры, принимаемые функцией...


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

Или воспользуйтесь поиском по форуму:
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
21.06.2011, 20:16  [ТС]     Преобразовать строку->число->строку #15
А если перевести 0.101, то как будет выглядеть???

Добавлено через 4 минуты
Я вот тут навалял примерно программку, только она в место 0,101(2)=0,625(10) выдает 1,0625(10):
C++
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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
char mas[5]={'0','.','1','0','1'};
char mas1[3];
int i,k,n;
float a=1,r=1,res=0;
 
void main(char)
{
 clrscr();
 for(i=0;i<3;i++)
 {
  mas1[i]=mas[i+2];
 }
 
 for(i=0;i<3;i++)
 {
  if (mas1[i]=='1'){
  for(n=0;n<i+1;n++)
   r=r*2;
  }
  res+=1/r;
 }
 cout<<res;
getchar();
}
Yandex
Объявления
21.06.2011, 20:16     Преобразовать строку->число->строку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru