Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/76: Рейтинг темы: голосов - 76, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584

Структура "Прогноз погоды"

20.10.2018, 15:52. Показов 16729. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла проблема.
Нужно написать структуру, заполнив ее всякими значениями.
И нужно: Определить среднее количество осадков в местности, которая указана с клавиатуры в заданный период. Определить список местностей, где на заданную дату температура была +10. Определить направление ветра в заданной местности на заданную дату.
Может дадите какой-нибудь совет как по каждому пункту писать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2018, 15:52
Ответы с готовыми решениями:

Прогноз погоды
Написать программу, которая принимает в себя массив из 7 чисел, каждое из которых соответствует температуре в этот день недели. Далее...

Прогноз погоды: получать данные о погоде с какого-нибудь сайта
Возможно ли средствами c++ получать данные о погоде с какого-нибудь сайта и выводить их, например, на консоль?

Структура "Прогноз погоды". Массив записей
Создайте массив записей со следующей структурой: Помогите, пожалуйста

59
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
28.10.2018, 12:46
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от a_lar Посмотреть сообщение
некорректно работает программа
Включай отладчик значит и вылавливай ошибку.
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 13:03  [ТС]
Nishen, программа то работает, просто вечно выдает dni error когда вводиться местность
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 13:58  [ТС]
В 97 строке ошибка: бинарный "==": не найден оператор, принимающий левый операнд типа "std::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
int vet(int n) //среднее количество осадков  
{
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    
    for (int i = 0; i < n; i++)
    {
        osad = s[i].kol / s[i].dni;
        if (s[n].mestnost == osad && s[i].kol==s[i].dni) {
 
            cout << "sred osad " << endl;
 
        }
        else
        {
            cout << "error!" << endl;
 
 
        }
 
        return ++n;
    }
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.10.2018, 14:01
Цитата Сообщение от a_lar Посмотреть сообщение
В 97 строке ошибка:
В 97 строке это у вас. Тот код который вы сюда отправили не содержит 97 строку...

Вы пытаетесь сравнить переменные для типов которых не определен оператор сравнения и компилятор не знает какой код генерировать для сравнения этих двух переменных.. Определите соответствующий оператор сравнения
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 14:03  [ТС]
Undisputed, Вот весь код:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include "pch.h"
#include <string>
#include <iostream>
#include <cstdlib> 
 
using namespace std;
 
struct pogoda
{
    string mestnost;
    int data;
    int dni;
    int kol;
    int intens;
    char skorost[100];
    string napravl;
    int temp;
    char den[20];
    char night[20];
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "dni: " << endl;
    cin >> s[n].dni;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << " sr_ temperatyra \n" << endl;
    cin >> s[n].temp;
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < 1; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n" << endl;
        cout << "skorost: " << s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "sr_temperatyra \n" << s[i].temp << endl;
        cout << "den " << s[i].den << endl;
        cout << "night " << s[i].night << endl;
    }
 
}
int t(int n) // температура где +10 гр
{
 
    int dat = 0;
 
    cout << " vvod dati ";
    cin >> dat;
    for (int i = 0; i < 1; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == dat && s[i].temp == 10)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else
            cout << "v etot den' ne bilo temperaturi 10 " << endl;
    }
    return ++n;
}
int vet(int n) //среднее количество осадков  
{
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    
    for (int i = 0; i < n; i++)
    {
        osad = s[i].kol / s[i].dni;
        if (s[n].mestnost == osad && s[i].kol==s[i].dni) {
 
            cout << "sred osad " << endl;
 
        }
        else
        {
            cout << "error!" << endl;
 
 
        }
 
        return ++n;
    }
 
}
int main()
{
    int i = 0, a, b, n = 0;
    cout << "menu" << endl;
    while (1)
    {
        cout << "1 - vvod;" << endl <<
            "2 - all baza" << endl <<
            "3 - mestonst gde 10" << endl <<
            "4 -sr kol-vo ocadkov" << endl;
        cin >> a;
        switch (a)
        {
        case 1:
        {
            system("cls");
            n = add(n);
            system("cls");
            break;
        }
        case 2:
        {
            Out(n);
            break;
        }
        case 3:
        {   n = t(n);
        break;
        }
        case 4:
        { n = vet(n);
        break;
        }
        }
    }
}
Помогите с ошибкой пожалуйста
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
28.10.2018, 14:05
Цитата Сообщение от a_lar Посмотреть сообщение
(s[n].mestnost == osad
у Вас mestnost - это строка,
а osad - это число.
Естественно, их сравнить нельзя.
Может имелось ввиду
C++
1
s[n].kol == osad
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.10.2018, 14:06
a_lar,
Я не знаю какие именно типы данных вам нужны. Тут по разному можно (и даже без оператора сравнения).
Можете например заменить тип переменной int osad написав вместо int string
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 14:07  [ТС]
zss, ну вот по заданию нужно же ввести местность словами, когда меняю тип на инт допустим, то программа ломается
в чем ошибка не понимаю
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.10.2018, 14:07
ну или mestnost сменить на int.
а вообще логика какая то странная. сравнивать местность с осадками...
по логике это вроде как разные типы данных вообще то
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 14:09  [ТС]
Undisputed, у меня есть: местность, дни, дата, температура, температура днем, температура ночью, количество осадков, их интенсивность, скорость ветра и направление ветра
а как сделать без сравнения?

Добавлено через 55 секунд
Undisputed, Само задание: Определить среднее количество осадков в местности, которая указана с клавиатуры в заданный период. Определить список местностей, где на заданную дату температура была +10. Определить направление ветра в заданной местности на заданную дату.
Температура 10 градусов у меня сделана, не могу со средним количество осадков никак(
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.10.2018, 14:11
a_lar,
так я не говорю что сравнения не нужны.
просто с точки зрения понятий местность и осадки это разные вещи которые сравнивать как то не очень логично (на мой взгляд)

это как сравнивать машину и стену
т.е я имел ввиду что сам подход какой то не логичный

а так с чем надо сравнивать с тем и сравнивайте
главное что бы типы были сравнимы
если из коробки с++ такое сравнение не предусмотрено - определите свой оператор сравнения
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 14:13  [ТС]
Undisputed, мне тоже кажется, что это не логично.
подскажите, пожалуйста, как логичнее?
я вот вообще в этом задание ноль
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.10.2018, 14:17
само задание оно вроде нормально поставлено
у вас проблема в организации кода
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 14:23  [ТС]
Undisputed,я же говорю, что не понимаю, как высчитать это среднее. помогите

Добавлено через 4 минуты
zss, ConsoleApplication9.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00CA10D4. теперь
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
28.10.2018, 18:24
Не понимаю смысл всех полей структуры.
Поправил только код и типы переменных:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <string>
#include <iostream>
#include <cstdlib> 
 
using namespace std;
 
struct pogoda
{
    string mestnost;
    string data;
    int dni;  
    int kol;
    double intens;
    double skorost;
    int temp;
    string napravl;
    string den;
    string night;
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "dni: " << endl;
    cin >> s[n].dni;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << " sr_ temperatyra \n" << endl;
    cin >> s[n].temp;
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < n; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n" << endl;
        cout << "skorost: " << s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "sr_temperatyra \n" << s[i].temp << endl;
        cout << "den " << s[i].den << endl;
        cout << "night " << s[i].night << endl;
    }
 
}
void t(int n) // температура где +10 гр
{
 
    string dat = 0;
 
    cout << " vvod dati:";
    cin >> dat;
    bool present = false;
    for (int i = 0; i < n; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == dat && s[i].temp == 10)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
            present = true;
        }
    }
    if(!present)
    cout << dat<<" ne bilo temperaturi 10 " << endl;
}
void vet(int n) //среднее количество осадков  
{
    string mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
 
    for (int i = 0; i < n; i++)
    {
        if (s[n].mestnost == mest) 
        {
 
            if (s[i].dni != 0)
            {
                double osad = (double)s[i].kol / s[i].dni;
                cout << "sred osad " << osad << endl;
            }else
                cout << "sred osad 0" << endl;
        }
    }
 
}
int main()
{
    cout << "menu" << endl;
    int n = 0;
    while (1)
    {
        cout << "1 - vvod;" << endl <<
            "2 - all baza" << endl <<
            "3 - mestonst gde 10" << endl <<
            "4 -sr kol-vo ocadkov" << endl;
        int a; cin >> a;
        switch (a)
        {
        case 1:
            system("cls");
            n = add(n);
            system("cls");
            break;
        case 2:
            Out(n);
            break;
        case 3:
            t(n);
            break;
        case 4:
            vet(n);
            break;
        }
    }
    system("pause");
    return 0;
}
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 18:59  [ТС]
zss, все равно 4 действие просто проскакивает и возвращается в меню.
Не выводит никакой информации.
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
28.10.2018, 19:09
Лучший ответ Сообщение было отмечено a_lar как решение

Решение

У Вас была опечатка, я не заметил:
Цитата Сообщение от zss Посмотреть сообщение
if (s[n].mestnost == mest)
C++
1
if (s[i].mestnost == mest)
А вообще-то для отлавливания таких блох существует отладчик:
Как пользоваться отладчиком (в Visual Studio)
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 19:45  [ТС]
zss, блин, спасибо вам огромное! вы очень помогли!

Добавлено через 28 минут
zss, все равно не выдает, где 0 средняя температура = не выдает.
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
28.10.2018, 20:31
Лучший ответ Сообщение было отмечено a_lar как решение

Решение

Цитата Сообщение от a_lar Посмотреть сообщение
все равно не выдает
Повторяю:
Как пользоваться отладчиком (в Visual Studio)
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 20:36  [ТС]
zss, все все) все исправлено, еще раз вас благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2018, 20:36

Прогноз погоды
Здравствуйте, помогите пожалуйста решить задачу: Программист Виктор занимается совершенно секретными разработками в области...

Прогноз погоды
Составить приложение которое по введенному прошедшему дню календаря показывает прогноз погоды. Не знаю с чего начать даже.

Прогноз погоды
Добрый день. Подскажите возможно ли вывести отдельно в ячейки погодные условия (давление, температура, скорость и направление ветра)?

Прогноз погоды
Привет всем) &quot;l1 - список, элементами которого являются структуры, в которых хранятся дневные сводки температуры за месяц. Сформировать...

Прогноз погоды
Пишу телеграм-бота. Показывает погоду на данный момент. Как реализовать ежедневную рассылку прогноза погоды на сутки?


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru