IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Проверка данных на вводе, С++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый вечер необходимо написать программу которая считает факториал, Пользователем вводится точность E которая не должна превышать диапазон 0.1<= E<=0.0001, и x, где x действительное число x>0.5. Саму программу для подсчета факториала я написал, проблема возникла с проверками на вводе, т.е нужно чтобы пользователь не мог ввести число не выходящее за диапазон, и чтобы не был введен символ. Раньше писал программы на pascal там все реализовавалось достаточно просто с помощью IOResult и обычного цикла. Заранее благодарю за помощь.


#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main ()
{
int i;
float sum,chisl,znam,x,e;
char ch;
clrscr();
do
{
printf ("Vvedite x: ",'/n');
scanf ("%f",&x);
}
while (x>0.5);

printf ("Vvedite e: ",'/n');
scanf ("%f",&e);
i=0;
sum=0;
do
{
i++;
chisl = pow ((x-i),i);
znam = i*(pow (x,i));
sum = sum + (chisl/znam);

}
while (e<sum);

printf ("%02f",sum);

getch();
return 0;
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


int main(int argc, char **argv)
{
char a[80];
gets(a);
bool q = true;
for (int i=0; a[i]; i++){
if ( !isdigit(a[i]) ) {
q=false;
break;
}
}
cout <<q;
return 0;
}
Это для примера щас сделал smile.gif. Вот тут можешь посмотреть, готовые фунции по преобразованию строк в числа
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Ну, и к чему эта самодеятельность, если все вышеприведенное прекрасно решается встроенными средствами С? smile.gif

do
{
printf ("Vvedite x: \n");
if(!scanf("%f",&x))
{
printf("error...\n");
fflush(stdin);
}
}
while (x <= 0.5);

do
{
printf ("Vvedite e: \n");
if(!scanf("%f",&e))
{
printf("error...\n");
fflush(stdin);
}
}
while(e < 0.0001 || e > 0.1);
И попробуй ввести нечисловое значение или число, не попадающее в заданный интервал...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Владимир, спасибо, я только начал изучать этот язык, столько тонкостей глаза разбегаются....

P.S Посоветуйте какуй-нибудь книжку, или автора, Спасибо.

Добавлено через 13 мин.
Цитата(Client @ 16.02.2010 19:41) *

int main(int argc, char **argv)
{
char a[80];
gets(a);
bool q = true;
for (int i=0; a[i]; i++){
if ( !isdigit(a[i]) ) {
q=false;
break;
}
}
cout <<q;
return 0;
}
Это для примера щас сделал smile.gif. Вот тут можешь посмотреть, готовые фунции по преобразованию строк в числа


Спасибо огромное за ресурс интересные примеры.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
Посоветуйте какуй-нибудь книжку, или автора

ПОИСК КНИГ.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.04.2024 18:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name