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

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

20.10.2018, 15:52. Показов 16668. Ответов 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,827
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
13786 / 10979 / 6491
Регистрация: 18.12.2011
Сообщений: 29,271
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
13786 / 10979 / 6491
Регистрация: 18.12.2011
Сообщений: 29,271
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
13786 / 10979 / 6491
Регистрация: 18.12.2011
Сообщений: 29,271
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
13786 / 10979 / 6491
Регистрация: 18.12.2011
Сообщений: 29,271
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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru