Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
#1

Структура-пара - C++

29.01.2011, 21:22. Просмотров 1682. Ответов 7
Метки нет (Все метки)

Здравствуйте, форумчане.
Помогите пожалуйста с задачкой.Некоторые условия мне вообще не понятны, о них позже....
Вот где я сейчас:
Поле n дробное число, поле p целое число, показатель степени. Реализовать метод power() возведение
числа n в степень p. Метод должен правильно работать при всех допустимых значениях n и p .
...обязательно должны присутствовать:
ввод с клавиатуры read()
вывод на экран display()
метод инициализации init() ; метод должен контролировать значения аргументов на корректность

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
using namespace std;
struct Pair
{
    float n; // число
    int p; // степень
    void read(){ cout << "Введите число "; cin >> n; cout << "Введите степень(целое число)  " ; cin >> p; }
    void display() { cout << power(n,p); cout << endl;}
    float power(float n, int p){return pow(n, p);}
};
 
int main()
{
    setlocale(LC_ALL,"Rus");
    Pair obj1;
    while(1)
    {
    obj1.read();
obj1.display();
    }
}
Что то не нравится мне как я реализовал первые два пункта, особенно этот obj1
Может кто получше вариант предложит?

А вот с методом init() вообще не знаю как проверить что в переменную p вводится именно число и
именно целое. Помню в Basic с этим было просто -
PureBasic
1
if isnumber(p)
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2011, 21:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура-пара (C++):

Структура - пара - C++
Поле first — дробное положительное число, цена товара; поле second - целое положительное число, количество единиц товара. Реализовать метод...

Структура-пара - C++
Помогите пожалуйста решить задачу, очень нужно. Поле first - дробное число; поле second - дробное число, показатель степени. ...

Структура-пара - C++
Поле first — дробное число; поле second — целое полож. число, показатель степени. Реализовать метод Power() — возведение числа first в...

Структура-пара - C++
Структурой-парой называется структура с двумя полями, которые обычно имеют имена first и second. Требуется реализовать тип данных с помощью...

Структура-пара Задача - C++
Линейное ура-ние y=Ax+B.Поле first дробное число коэффициент А;Поле second-дробное число,коэффициент В.Реализовать метод root()-вычисление...

классы и объекты. структура-пара - C++
поле first- дробное положительное число, катет а прямоугольного треугольника; поле second - дробное положительное число, катет b прям....

7
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.01.2011, 21:35 #2
Цитата Сообщение от TheMachinist Посмотреть сообщение
не знаю как проверить что в переменную p вводится именно число и
именно целое.
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
29
30
31
32
#include <iostream>
#include <string>
#include <sstream>
 
template<class T>
T  correct_input(const std::string&  prompt)
{
    for(;;)
    {
        std::cout << prompt;
        std::string  str_val;
        std::cin >> str_val;
        std::istringstream  ssin(str_val);
        T  val;
        if(ssin >> val)
        {
            std::string  tmp;
            if(!(ssin >> tmp))
                return  val;
            else
                std::cerr << "INPUT ERROR" << std::endl;
        }
        else
            std::cerr << "INPUT ERROR" << std::endl;
    }
};
 
int main()
{
    int n = correct_input<int>("Input int val: ");
    return 0;
}
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
29.01.2011, 22:45  [ТС] #3
Народ, может кто-нибудь подскажет ????
Объявлена переменная типа int или float. Как реализовать проверку ввода чтобы вводилось только
число?(а не символ не слово и не еще что-нибудь)
Я два месяца не занимался С++, трудно все вспоминать. Мне бы только начать
asics спасибо конечно но в моем случае string не нужен.
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.01.2011, 22:48 #4
TheMachinist, Ну тогда пробуй так
C++
1
2
3
4
5
6
int n;
std::cin >> n;
if(!std::cin)
{
    //ERORR
}
Сработает ошибка, если будет введенно не число.
1
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
31.01.2011, 19:33  [ТС] #5
Сработает ошибка, если будет введенно не число.
Без цикла работает, а в бесконечном цикле зацикливается. А хотелось бы чтобы выводилось сообщение об ошибке и далее предлагалось ввести число.
Помогите пожалуйста. Для местных корифеев пустяк задачка то
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
31.01.2011, 19:44 #6
TheMachinist, Ну так в посте #2, как по мне, самый оптимальный вариант решение проблемы.
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
01.02.2011, 19:15  [ТС] #7
asics прежде чем предлагать какое-либо решение не мешает проверить работает ли код
Буду очень признателен если лично ты оставишь мои посты без ответов.Спасибо

Народ, кто-нибудь занимался с задачником Лаптева? Условия первой же задачи вызывают непонятки.
То ли задачник дурацкий то ли я еще не дорос до этих задач ....
Вот условие задачи:
Структурой-парой называется структура с двумя полями , которые обычно имеют имена first и
second. Требуется реализовать тип данных с помощью такой структуры. Во всех заданиях обязательно
должны присутствовать:
1 метод инициализации init; метод должен контролировать значения аргументов на корректность.
2 ввод с клавиатуры read.
3 вывод на экран display.
Реализовать внешнюю функцию с именем make_mun(), где mun - тип реализуемой структуры. Функция должна получать в качестве аргументов значения для полей структуры и возвращать структуру требуемого типа. При передаче ошибочных параметров следует выводить сообщение и заканчивать работу.


Не понимаю зачем здесь функция init. Если речь идет о контроле ввода, то это можно сделать в read
Что касается внешней функции make_mun() вообще не пойму задания.

Я не прошу готового решения, помогите решить пожалуйста
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
01.02.2011, 19:21 #8
Цитата Сообщение от TheMachinist Посмотреть сообщение
asics прежде чем предлагать какое-либо решение не мешает проверить работает ли код
.....
0
Миниатюры
Структура-пара  
01.02.2011, 19:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2011, 19:21
Привет! Вот еще темы с ответами:

Структура - пара: число и его степень - C++
Поле first — дробное число; поле second — дробное число, показатель степени. Реализовать метод Power() — возведение числа first в степень...

Структура-пара. Реализовать метод rangecheck() – проверку заданного числа - C++
Реализовать внешнюю функцию с именем make_mun(), где mun – тип реализуемой структуры. Функция должна получать в качестве аргументов...

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость. - C++
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать задач, тем всей группой поставим &quot;+&quot;...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар» - C++
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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