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

Поиск по условию в уже введённых данных - C++

Восстановить пароль Регистрация
 
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
04.12.2012, 21:00     Поиск по условию в уже введённых данных #1
Известны данные о моделях ноутбуков к их стоимости. Необходимо обеспечить ввод этих данных в программу, после этого следует найти ноутбук, стоимость которого максимально близка к средней стоимости, вычисленной по всем ноутбукам.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 17:38     Поиск по условию в уже введённых данных #2
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
33
34
35
36
37
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
Вот ваша программа
Может можно реализовать намного проще но у меня получилось так

Добавлено через 16 минут
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
33
34
35
36
37
38
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    if(k.cen==0)break;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
вот правильный вариант в том было несколько ошибок
Программа далеко не идеальна может быть очень много ошибок уже при работе в ней так как в цену можно ввести не только числа но и буквы и т.д.

Добавлено через 54 минуты
и вместо этого "Чтобы выйти введите цену 0" в коде нужно ввести "Чтобы начать поиск"
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 18:14  [ТС]     Поиск по условию в уже введённых данных #3
Boshop, спасибо! щас буду разбираться подробнее в каждой строчке не подскажешь какую-нибудь литературу по структурам в плюсах? книжка Липмэна есть, но структуры там что-то особо не объясняли =(
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 18:33     Поиск по условию в уже введённых данных #4
Возьми Шилдта книгу по ++

Добавлено через 9 минут
Только учти тут нужно очень сильно ее доработать очень много будет проверок на исключения и т.д.
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 20:42  [ТС]     Поиск по условию в уже введённых данных #5
Boshop, учту) спасибо =)

Добавлено через 2 часа 6 минут
Boshop, скопипастил программу в visual studio, запускаю, но после дебага выдаёт ошибку =( программа совсем не запускается...
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
05.12.2012, 23:10     Поиск по условию в уже введённых данных #6
Какие выдает ошибки? у меня работает идеально...
до этого подключал библиотеки и использовал пространство имен?
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
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <math.h>
using namespace std;//это все подключил?
struct noteboo
{
    string mark;
    int cen;
};
int main()
{
    setlocale(LC_ALL,"Russian");
    vector<noteboo> notebook;
    noteboo k;
    k.cen=1;
    int ce=0;
    int p=0;
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0";
    cout << "Введите цену ноутбука";
    cin >> k.cen;
    if(k.cen==0)break;
    cout << "Введите марку ноутбука";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука:";
    cin >> ce;
    int j=0;
    int l=1000000;
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
    cout << "Самый лучший вариант это:" << notebook[j].mark <<"Стоимость которого:"<< notebook[j].cen;
    cin.get();
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 23:33  [ТС]     Поиск по условию в уже введённых данных #7
Boshop, до этого подключал только iostream)) дополнил ещё твоим вариантом, но всё-равно он почему-то не может правильно определить "vector<noteboo> notebook" в 13-й строчке, тупо красным подчёркивает...
http://i49.***********/big/2012/1205/...c1b24023bc.png вот скриншот окна visual studio
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
05.12.2012, 23:54     Поиск по условию в уже введённых данных #8
Подключить надо

C++
1
#include<vector>
Добавлено через 7 минут
Вот так: еще string надо включить
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <math.h>
#include<string>
#include<vector>
 
using namespace std;
 
struct noteboo
{
    string mark;
    int cen;
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    vector<noteboo> notebook;
 
    noteboo k;
 
    k.cen=1;
    int ce=0;
    int p=0;
 
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0: " <<endl;
    cout << "Введите цену ноутбука:  ";
    cin >> k.cen;
 
    if(k.cen==0)break;
    cout << "Введите марку ноутбука: ";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука: ";
    cin >> ce;
 
    int j=0;
    int l=1000000;
 
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
 
    cout << "Самый лучший вариант это:    " << notebook[j].mark <<"    Стоимость которого:"<< notebook[j].cen<<endl;
 
    cin.get();
    return 0;
}
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
05.12.2012, 23:59  [ТС]     Поиск по условию в уже введённых данных #9
Цитата Сообщение от DPS Посмотреть сообщение
Подключить надо

C++
1
#include<vector>
Добавлено через 7 минут
Вот так: еще string надо включить
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <math.h>
#include<string>
#include<vector>
 
using namespace std;
 
struct noteboo
{
    string mark;
    int cen;
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    vector<noteboo> notebook;
 
    noteboo k;
 
    k.cen=1;
    int ce=0;
    int p=0;
 
    while(k.cen!=0)
    {
    cout << "Чтобы выйти введите цену 0: " <<endl;
    cout << "Введите цену ноутбука:  ";
    cin >> k.cen;
 
    if(k.cen==0)break;
    cout << "Введите марку ноутбука: ";
    cin >> k.mark;
    notebook.push_back(k);
    }
    cout << "Ввведите искомую цену ноутбука: ";
    cin >> ce;
 
    int j=0;
    int l=1000000;
 
    for(int i=0;i<notebook.size();i++)
    {
        if(abs(ce-notebook[i].cen)<l)
        {
            l=notebook[i].cen;
            j=i;
        }
    }
 
    cout << "Самый лучший вариант это:    " << notebook[j].mark <<"    Стоимость которого:"<< notebook[j].cen<<endl;
 
    cin.get();
    return 0;
}
Вот, отлично! Спасибо! Теперь всё работает =) Извиняюсь за кнопочку "Не согласен", промахнулся с "плюсом"
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
06.12.2012, 07:22     Поиск по условию в уже введённых данных #10
ну надеюсь помог
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 13:39     Поиск по условию в уже введённых данных #11
Boshop, не то ищите
Цитата Сообщение от mykl Посмотреть сообщение
следует найти ноутбук, стоимость которого максимально близка к средней стоимости, вычисленной по всем ноутбукам.
т.е. надо найти среднее арифметическое среди стоимости всех ноутбуков, а потом только искать
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
06.12.2012, 18:52  [ТС]     Поиск по условию в уже введённых данных #12
Boshop, конечно помог =) спасибо!

Добавлено через 44 секунды
I.M., вроде бы всё правильно ищет программа
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 18:55     Поиск по условию в уже введённых данных #13
mykl, ну как же правильно, если желаемая стоимость вводится с клавиатуры? в задании же сказано, что ее надо вычислить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 20:58     Поиск по условию в уже введённых данных
Еще ссылки по теме:

C++ Поиск максимального числа среди введённых чисел. Проверить код
C++ Текстовой файл с уже введенным текстом зашифровать и вывести уже зашифрованный
C++ Проверка введенных данных; выполнение кода по условию

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

Или воспользуйтесь поиском по форуму:
mykl
 Аватар для mykl
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 68
06.12.2012, 20:58  [ТС]     Поиск по условию в уже введённых данных #14
I.M., ммм... ну да в принципе, немного отошли от самого задания, но думаю это не будет принципиальным) в субботу преподу покажу, если не понравится, то уже можно будет немного передать...
Yandex
Объявления
06.12.2012, 20:58     Поиск по условию в уже введённых данных
Ответ Создать тему

Метки
введённых, данных, поиск, условию
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru