Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933

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

13.09.2015, 13:38. Показов 1755. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2015, 13:38
Ответы с готовыми решениями:

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

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

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

16
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 14:31
Чтение можно так изменить:
C++
1
2
3
4
while (inFile>>M[i].x && inFile>>M[i].y)
{
       i++;
}
Тогда i будет содержать количество считанных пар. Должно быть равно N. Проверяй в условии.
1
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 15:57  [ТС]
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
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:09
Цитата Сообщение от Senarist Посмотреть сообщение
появилась другая проблемка. Если допустим N=3 но вершин задано 4 то программа просто вылетает.
В случае если N = 4 а вершин указано 3, то все норм переходит в последний else.
Неужели новый массив придется заводить?
Так не должноо быть, всё это должно контролироваться при создании файла. Елси пишешь три пары, то, при создании и записи данных в файл, в первой строке файла, ничего кроме 3 не должно быть, и строк с данными должно только три быть.

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

Добавлено через 44 секунды
Цитата Сообщение от lss Посмотреть сообщение
А если содержимое файла выдумывать, то можно бесконечно код под выдумки подгонять.
Теперь я все предусмотрел
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:19
Цитата Сообщение от Senarist Посмотреть сообщение
Теперь я все предусмотрел
Да? А если N вообще не записать в файл?
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:23  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Да? А если N вообще не записать в файл?
Первый символ в любом случае будет считаться как N. Тут уж ниче не поделаешь.
Думаю что самые основные ошибки я учел. Например можно перепутать и не заметить 1 с l или не дописать координату.
И если N "как бы" не писать то вылезет последний else
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:27
Цитата Сообщение от Senarist Посмотреть сообщение
Думаю что самые основные ошибки я учел. Например можно перепутать и не заметить 1 с l или не дописать координату.
Хочешь заниматься пустыми выдумками - занимайся.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:31  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Хочешь заниматься пустыми выдумками - занимайся.
Ну значит прата тоже выдумщик
В одном из своих листингов он привел примерно похожий пример.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:33
Цитата Сообщение от Senarist Посмотреть сообщение
В одном из своих листингов он привел примерно похожий пример.
Пример чего? Покажи его код.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:39  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Пример чего? Покажи его код.
Перепечатывать лень. Но суть была в том что суммировать все цифры записанные в файле.
Использованы все те же условия что и я написал. Только у меня есть N. Пришлось на 1 условие больше писать.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.09.2015, 16:44
Цитата Сообщение от Senarist Посмотреть сообщение
Перепечатывать лень. Но суть была в том что суммировать все цифры записанные в файле.
Суть в том, что у него другой код, с другой задачей, поэтому не надо Прату приплетать. Выдумывай дальше.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:50  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Суть в том, что у него другой код, с другой задачей
Суть как раз в том что его прога не крашится при не верном вводе
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.09.2015, 16:57
Цитата Сообщение от 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
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:57  [ТС]
6.16 стр 294
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.09.2015, 16:58
Цитата Сообщение от Senarist Посмотреть сообщение
6.16 стр 294
Да я уж сам нашёл...
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
13.09.2015, 16:59  [ТС]
Цитата Сообщение от gru74ik Посмотреть сообщение
Ctrl+C, Ctrl+V трудно уже сделать? Эх-хе-хе...
Эт слишком просто)) Ручками над
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.09.2015, 16:59
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru