3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584

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

20.10.2018, 15:52. Показов 16818. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru