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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2008, 20:47   #11
Kortes
 
Регистрация: 21.12.2008
Сообщений: 9
По умолчанию

Всем огромное спасибо, буду разбираться )))
И доставать иногда глупыми вопросами )
Kortes вне форума Ответить с цитированием
Старый 21.12.2008, 20:50   #12
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
2Goblin
У Майкрософта нету, а вот у Борланда есть.
по крайней мере в Visual Studio 2005 приведенный мною код работает. Еще в stdio.h есть функция getchar, но я не знаю так же она работает или нет
pu4koff вне форума Ответить с цитированием
Старый 21.12.2008, 20:53   #13
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Ну значит в студии эта функция работает чуть не так как в Билдере. Просто ее еще используют для задержки экрана. Так вот задержка в Билдере есть, а в Студии - нету. Хотя в дебаге она там и не нужна...
MaTBeu вне форума Ответить с цитированием
Старый 22.01.2011, 23:43   #14
BrutalSnowflake
Пользователь
 
Аватар для BrutalSnowflake
 
Регистрация: 22.01.2011
Сообщений: 25
По умолчанию

У вопрос. Заключаеться он в том, что как сделать проверку принадлежности вводимого с "базой данных"(массивом). Т.е. вот я задал массив с int[]={"I","IV","V","IX","X","XL","L"... и тд.}, и допустим я во время работы программы введу чмсло MMCXLVII, как мне осуществить в коде определение каждого символа (или пары символов для таких чисел как XC и тд.)? Спс заранее!
BrutalSnowflake вне форума Ответить с цитированием
Старый 22.01.2011, 23:52   #15
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

напишите функцию которая будет вычислять значение и возвращать его
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 22.01.2011, 23:56   #16
BrutalSnowflake
Пользователь
 
Аватар для BrutalSnowflake
 
Регистрация: 22.01.2011
Сообщений: 25
По умолчанию

Блин, я извиняюсь, но я только начинаю изучать язык, потому немного невтыкаю.
Эммм...какое значение вычислять и что возвращать? Как вообще осуществить процесс определения каждой части введённой строки поотдельности? т.е если я ввёл DCXLV чтоб оно определило, что D = 500 , C = 100, XL = 40 , V = 5?
BrutalSnowflake вне форума Ответить с цитированием
Старый 23.01.2011, 10:13   #17
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

//объявляете число, сумму все этих букв
Код:
long int summ=0;

//идем по строке

for (int i=0;i<strlen(a);i++){
	switch(a[i]){
		case 'D':summ+=500;
			break;
		case 'C':summ+=100;
			break;
		case 'V':summ+=5;
			break;
		case 'X':if (a[i+1]=='L') summ+=40;
			break;
		default:
			break;
	}	
}
//потом возвращаете это значение
//то есть все это выглядеть должно по идее так:

//функция:
Код:
int rimSumm(char *a)//которая принимает в себя строку символов, тут через указатель, потому что если строка большая, копирование будет задерживать
					//чтобы без копирования - (char a)? ,без *
{
	long int summ=0;//объявляете число, сумму все этих букв
	
	int strl=strlen(a);//при желании можно эту переменную убрать,
	
	for (int i=0;i<strl;i++){
		switch(a[i]){
			case 'D':summ+=500;
				break;
			case 'C':summ+=100;
				break;
			case 'V':summ+=5;
				break;
			case 'X':if (a[i+1]=='L') summ+=40;
				break;
			default:
				break;
		}	
	}
	return summ;//возвращаем значение суммы
}
//в программе все это выглядит вот так:

Код:
int main(){
char chislo[100]="";
cout<<"Введите число: ";
cin>>chislo;
cout<<chislo<<" = "<<rimSumm(chislo)<<endl;
system("pause");
return 0;
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 23.01.2011, 14:29   #18
BrutalSnowflake
Пользователь
 
Аватар для BrutalSnowflake
 
Регистрация: 22.01.2011
Сообщений: 25
По умолчанию

Огромное спасибо, буду пробывать собрать. Покрайней мере вроде самый большой вопрос понял Только с указателем не понял ничего, зачем он?
Код:
//...тут через указатель, потому что если строка большая, копирование будет задерживать
//чтобы без копирования - (char a)? ,без *
Вот это непонял вообще, что здесь имееться ввиду
BrutalSnowflake вне форума Ответить с цитированием
Старый 23.01.2011, 15:53   #19
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

это для больших объемов работ, если не требуется, массив через копирование в функцию передается вот так : (char a[]) - это через копирование, (char a) - неверно, кстати говоря , если не поставить [] - будет приниматься символ, а не массив

в общем, ничего не меняйте, станет интересно - любой учебник по C++ , тема "указатели"
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 23.01.2011, 17:34   #20
BrutalSnowflake
Пользователь
 
Аватар для BrutalSnowflake
 
Регистрация: 22.01.2011
Сообщений: 25
По умолчанию

В этой строке: int rimSumm(char *a)
Почему без []?
BrutalSnowflake вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$I: автоматический контроль операций ввода-вывода. Викдон Паскаль, Turbo Pascal, PascalABC.NET 10 21.11.2008 20:45
Римские цифры Sergeevich Помощь студентам 2 26.05.2008 18:21
Контроль ввода данных в классе oleg kutkov Общие вопросы C/C++ 1 14.04.2008 22:19