Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
1

Как записать условие

13.09.2015, 13:38. Показов 1184. Ответов 16
Метки нет (Все метки)

Сижу и туплю. Как мне записать условие в 80 строке, чтобы если к примеру в фале записано:
3
2 4
1 2
7
то условие не выполнялось. (т.е если даже отсутствует хотя бы 1 член из поля)

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
////////////////////////////////////////////////////////////////////////
/*
 ôàéëå íà äèñêå íàõîäèòñÿ òåêñòîâûé ôàéë, ñîäåðæàùèé              ///
îïèñàíèå âåðøèí ìíîãîóãîëüíèêà â ôîðìàòå:                           ///
N - êîë-âî âåðøèí                                                    ///
x1 y1                                                               ///
x2 y2                                                               ///
.....                                                               ///
xN yN        - êîîðäèíàòû ÷åðåç ïðîáåë                             ///
Íàïèøèòå ôóíêöèþ, ñ÷èòûâàþùóþ ïî èìåíè ôàéëà ìàññèâ âåðøèí.       ///
*/
//////////////////////////////////////////////////////////////////////
 
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<vector>
using std::cin;
using std::cout;
using std::ifstream;
const int SIZE = 20;
 
    //////////////////////////////////////////////////////////////////////
struct Point
{
    double x;
    double y;
};
ifstream inFile;
void GetPoint(const char filename[], int SIZE, std::vector<Point> &M);
 
    //////////////////////////////////////////////////////////////////////
int main()
{
    char filename[SIZE];
    cout<<"Enter name of data file: ";
    cin.getline(filename, SIZE);
    inFile.open(filename);
    if(!inFile.is_open())
    {
        cout<<"Could not open the file "<<filename<<std::endl;
        cout<<"Program terminating.\n";
        exit(EXIT_FAILURE);
    }
    
    
    std::vector<Point>mass;
    
    GetPoint(filename, SIZE, mass);
    return 0;
}
    //////////////////////////////////////////////////////////////////////
    void GetPoint(const char filename[], int SIZE, std::vector<Point> &M)
    {
        int N;
        inFile>>N;
        if (N == 0 || !inFile)
        {
            cout<<"No data processed or bad input.\n";
            exit(1);
        }
        M.resize(N);
        int i = 0;
        while (inFile.good())
        {
            inFile>>M[i].x;
            inFile>>M[i].y;
            i++;
        }
            
        if (inFile.eof())
            cout<<"End of file reached.\n";
        else if (inFile.fail())
            cout<<"Input terminated by data mismatch.\n";
            
        else
            cout<<"Input terminated for unknown reason.\n";
        
        
        if()
        {
        cout<<"The number of apex: "<<N<<std::endl;
        for (int i=0; i<M.size(); i++ )
            {
                cout<<M[i].x<<' '<<M[i].y<<std::endl;
            }
        }
            
        
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2015, 13:38
Ответы с готовыми решениями:

Как записать условие??
необходимо что бы проверялось условие на возрастание последовательности и на то что если n&gt;а15 то...

Как правильно записать условие?
как вывести правильно чтобы правильно показывало Например если: у пользователя 600 очков...

Как правильно записать условие?
Есть некоторая функция которая берёт данные из файла и сравнивает их. std::string result_left,...

Как правильно записать условие
#include &lt;iostream&gt; #include &lt;windows.h&gt; //#include &lt;ctime&gt; #include &lt;cmath&gt; using namespace...

16
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 14:31 2
Чтение можно так изменить:
C++
1
2
3
4
while (inFile>>M[i].x && inFile>>M[i].y)
{
       i++;
}
Тогда i будет содержать количество считанных пар. Должно быть равно N. Проверяй в условии.
1
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 15:57  [ТС] 3
Iss появилась другая проблемка. Если допустим N=3 но вершин задано 4 то программа просто вылетает.
В случае если N = 4 а вершин указано 3, то все норм переходит в последний else.
Неужели новый массив придется заводить?

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
////////////////////////////////////////////////////////////////////////
/*
 ôàéëå íà äèñêå íàõîäèòñÿ òåêñòîâûé ôàéë, ñîäåðæàùèé              ///
îïèñàíèå âåðøèí ìíîãîóãîëüíèêà â ôîðìàòå:                           ///
N - êîë-âî âåðøèí                                                    ///
x1 y1                                                               ///
x2 y2                                                               ///
.....                                                               ///
xN yN        - êîîðäèíàòû ÷åðåç ïðîáåë                             ///
Íàïèøèòå ôóíêöèþ, ñ÷èòûâàþùóþ ïî èìåíè ôàéëà ìàññèâ âåðøèí.       ///
*/
//////////////////////////////////////////////////////////////////////
 
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<vector>
using std::cin;
using std::cout;
using std::ifstream;
const int SIZE = 20;
 
    //////////////////////////////////////////////////////////////////////
struct Point
{
    double x;
    double y;
};
ifstream inFile;
void GetPoint(const char filename[], int SIZE, std::vector<Point> &M);
 
    //////////////////////////////////////////////////////////////////////
int main()
{
    char filename[SIZE];
    cout<<"Enter name of data file: ";
    cin.getline(filename, SIZE);
    inFile.open(filename);
    if(!inFile.is_open())
    {
        cout<<"Could not open the file "<<filename<<std::endl;
        cout<<"Program terminating.\n";
        exit(EXIT_FAILURE);
    }
    
    
    std::vector<Point>mass;
    
    GetPoint(filename, SIZE, mass);
    return 0;
}
    //////////////////////////////////////////////////////////////////////
    void GetPoint(const char filename[], int SIZE, std::vector<Point> &M)
    {
        bool wait = true;
        while (wait)
        {
            int N;
            inFile>>N;
            if (N == 0 || !inFile)
            {
                cout<<"No data processed or bad input.\n";
                break;
            }
            M.resize(N);
            int i = 0;
            while ( inFile>>M[i].x && inFile>>M[i].y )
            {
                i++;
            }
            
            if (inFile.eof())
                cout<<"End of file reached.\n";
            else if (inFile.fail())
            {
                cout<<"Input terminated by data mismatch.\n";
                break;
            }
            
            else
            {
                cout<<"Input terminated for unknown reason.\n";
                break;
            }
        
            if(i == N)
            {
            cout<<"The number of apex: "<<N<<std::endl;
            for (int i=0; i<M.size(); i++ )
                cout<<M[i].x<<' '<<M[i].y<<std::endl;
            
            }   
            else
                cout<<"The number of declared origin does not match the apex";
            wait = false;
        }   
        
    }
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:09 4
Цитата Сообщение от Senarist Посмотреть сообщение
появилась другая проблемка. Если допустим N=3 но вершин задано 4 то программа просто вылетает.
В случае если N = 4 а вершин указано 3, то все норм переходит в последний else.
Неужели новый массив придется заводить?
Так не должноо быть, всё это должно контролироваться при создании файла. Елси пишешь три пары, то, при создании и записи данных в файл, в первой строке файла, ничего кроме 3 не должно быть, и строк с данными должно только три быть.

Добавлено через 2 минуты
А если содержимое файла выдумывать, то можно бесконечно код под выдумки подгонять.
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:16  [ТС] 5
lss добавил условие
C++
1
while (i < N && inFile>>M[i].x && inFile>>M[i].y )
Выскакивает проверка написанная в 80 строке

Добавлено через 44 секунды
Цитата Сообщение от lss Посмотреть сообщение
А если содержимое файла выдумывать, то можно бесконечно код под выдумки подгонять.
Теперь я все предусмотрел
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:19 6
Цитата Сообщение от Senarist Посмотреть сообщение
Теперь я все предусмотрел
Да? А если N вообще не записать в файл?
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:23  [ТС] 7
Цитата Сообщение от lss Посмотреть сообщение
Да? А если N вообще не записать в файл?
Первый символ в любом случае будет считаться как N. Тут уж ниче не поделаешь.
Думаю что самые основные ошибки я учел. Например можно перепутать и не заметить 1 с l или не дописать координату.
И если N "как бы" не писать то вылезет последний else
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:27 8
Цитата Сообщение от Senarist Посмотреть сообщение
Думаю что самые основные ошибки я учел. Например можно перепутать и не заметить 1 с l или не дописать координату.
Хочешь заниматься пустыми выдумками - занимайся.
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:31  [ТС] 9
Цитата Сообщение от lss Посмотреть сообщение
Хочешь заниматься пустыми выдумками - занимайся.
Ну значит прата тоже выдумщик
В одном из своих листингов он привел примерно похожий пример.
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:33 10
Цитата Сообщение от Senarist Посмотреть сообщение
В одном из своих листингов он привел примерно похожий пример.
Пример чего? Покажи его код.
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:39  [ТС] 11
Цитата Сообщение от lss Посмотреть сообщение
Пример чего? Покажи его код.
Перепечатывать лень. Но суть была в том что суммировать все цифры записанные в файле.
Использованы все те же условия что и я написал. Только у меня есть N. Пришлось на 1 условие больше писать.
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:44 12
Цитата Сообщение от Senarist Посмотреть сообщение
Перепечатывать лень. Но суть была в том что суммировать все цифры записанные в файле.
Суть в том, что у него другой код, с другой задачей, поэтому не надо Прату приплетать. Выдумывай дальше.
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:50  [ТС] 13
Цитата Сообщение от lss Посмотреть сообщение
Суть в том, что у него другой код, с другой задачей
Суть как раз в том что его прога не крашится при не верном вводе
0
Эксперт CЭксперт С++
5054 / 2241 / 330
Регистрация: 20.02.2013
Сообщений: 5,601
Записей в блоге: 24
13.09.2015, 16:57 14
Цитата Сообщение от Senarist Посмотреть сообщение
В одном из своих листингов он привел примерно похожий пример.
Хоть бы номер листинга сказал, что ли...

Добавлено через 2 минуты
Цитата Сообщение от Senarist Посмотреть сообщение
Перепечатывать лень.
Ctrl+C, Ctrl+V трудно уже сделать? Эх-хе-хе...
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
// sumafile.cpp -- functions with an array argument
#include <iostream>
#include <fstream>          // file I/O support
#include <cstdlib>          // support for exit()
const int SIZE = 60;
int main()
{
    using namespace std;
    char filename[SIZE];
    ifstream inFile;        // object for handling file input
 
    cout << "Enter name of data file: ";
    cin.getline(filename, SIZE);
    inFile.open(filename);  // associate inFile with a file
    if (!inFile.is_open())  // failed to open file
    {
        cout << "Could not open the file " << filename << endl;
        cout << "Program terminating.\n";
        // cin.get();    // keep window open
        exit(EXIT_FAILURE);
    }
    double value;
    double sum = 0.0;
    int count = 0;          // number of items read
 
    inFile >> value;        // get first value
    while (inFile.good())   // while input good and not at EOF
    {
        ++count;            // one more item read
        sum += value;       // calculate running total
        inFile >> value;    // get next value
    }
    if (inFile.eof())
        cout << "End of file reached.\n";
    else if (inFile.fail())
        cout << "Input terminated by data mismatch.\n";
    else
        cout << "Input terminated for unknown reason.\n";
    if (count == 0)
        cout << "No data processed.\n";
    else
    {
        cout << "Items read: " << count << endl;
        cout << "Sum: " << sum << endl;
        cout << "Average: " << sum / count << endl;
    }
    inFile.close();         // finished with the file
    // cin.get();
    return 0;
}
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:57  [ТС] 15
6.16 стр 294
0
Эксперт CЭксперт С++
5054 / 2241 / 330
Регистрация: 20.02.2013
Сообщений: 5,601
Записей в блоге: 24
13.09.2015, 16:58 16
Цитата Сообщение от Senarist Посмотреть сообщение
6.16 стр 294
Да я уж сам нашёл...
0
53 / 57 / 34
Регистрация: 14.03.2014
Сообщений: 796
13.09.2015, 16:59  [ТС] 17
Цитата Сообщение от gru74ik Посмотреть сообщение
Ctrl+C, Ctrl+V трудно уже сделать? Эх-хе-хе...
Эт слишком просто)) Ручками над
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2015, 16:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Подскажите как записать условие
В матрице А(n*n) найти Сред.Арифметическое элементов последнего столбца и возвести полученное...

Как записать третье условие
Как записать третье условие if? Оно почему-то не срабатывает совсем, если пишу число больше 100 или...

Как правильно записать условие в оператор if
Имеется структура pro. Надо пропустить в if те элементы структуры, которые находятся в промежутке...

Как правильно в программке записать условие нахождения бесконечности?
в примере y=exp(x)/x, где x принимает значения от -6 до + 1 c шагом 1 необходимо определить при...


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

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

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