Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 23.11.2019
Сообщений: 21

Нормализовать заданные физические величины

15.12.2019, 17:15. Показов 1967. Ответов 8

Студворк — интернет-сервис помощи студентам
Привет! У меня задача сделать программу, которая бы наглядно нормализировала заданные физические величины, например из киловатт переводила в ватты, и все такое. Вот моя программа:

C++ (Qt)
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
#include <cassert>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
struct MessWert
{
    double wert;
    string einheit;
};
 
void ausgeben(MessWert const *messwert, int format)
{
    assert(messwert);
 
    cout << messwert->wert << ' ' << messwert->einheit;
 
    switch (format) {
    case 1:
        cout << std::endl;
        break;
    case 2:
        cout.put(' ');
        break;
    case 3:
        cout << ' ' << endl;  
        break;
    }
}
 
int normieren(MessWert &messwert)
{
    if (messwert.einheit == "A" || messwert.einheit == "V" ||
        messwert.einheit == "W")
    {
        return 0;
    }
 
    if (messwert.einheit.length() != 2 || messwert.einheit[1] != 'A' &&
        messwert.einheit[1] != 'V' && messwert.einheit[1] != 'W')
    {
        return 42;
    }
 
    switch (messwert.einheit[0]) {
    case 'n':
        messwert.wert *= 0.000000001;
        break;
    case 'u':
        messwert.wert *= 0.000001;
        break;
    case 'm':
        messwert.wert *= 0.001;
        break;
    case 'k':
        messwert.wert *= 1000.;
        break;
    case 'M':
        messwert.wert *= 1000000;
        break;
    default:
        return 42;
    }
 
    messwert.einheit = messwert.einheit.substr(1);
    return 0;
}
 
int leistung(MessWert const &operand1, MessWert const &operand2,
    MessWert &ergebnis)
{
    MessWert foo{ operand1 };
    MessWert bar{ operand2 };
 
    if (normieren(foo) || normieren(bar))
        return 42;
 
    if (!(foo.einheit == "V" && bar.einheit == "A") &&
        !(foo.einheit == "A" && bar.einheit == "V"))
    {
        return 42;
    }
 
    ergebnis.wert = foo.wert * bar.wert;
    ergebnis.einheit = "W";
    return 0;
}
 
int main()
{
 
    MessWert a{ 20, "uA" };
    MessWert b{ 10, "kV" };
 
    ausgeben(&a, 2);
    ausgeben(&b, 1);
 
    MessWert c{ a };
    normieren(c);
    ausgeben(&c, 2);
 
    MessWert d{ b };
    normieren(d);
    ausgeben(&d, 1);
 
    MessWert e;
    if (leistung(a, b, e)) {
        cerr << "Leistung konnte nicht berechnet werden :(\n\n";
        return 42;
    }
 
    vector werte{ a, b, c, d, e };
    for (auto const &w : werte)
        ausgeben(&w, 1);
}
Выводит ошибки в строках 114, 115, 151 и 155 под названием "cannot convert 'MessWert' to 'double' in initialisation"
А также в строке 171 выводит ошибку "missing template rguments before 'werte'"
И в строке 172 "'werte' was not declared in this scope"

Кроме того еще куча предупреждений.

Я не могу понять почему, не вижу что не так, исправьте пожалуйста!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2019, 17:15
Ответы с готовыми решениями:

Кинематика равномерного и неравномерного вращательного движения (физические величины)
Какие у них физические величины: нашел вот что у равномерного это 1. ускорение (полное, нормальное, угловое, тангенциальное); ...

Дан массив B = [ {b [i, j] }, i=1,10; j=1,10 ] - найти заданные величины
Помогите пожалуйста решить задачу 1. Найти max-элемент 4 столбца 2.Найти нулевые элементы во всех строках и вывести их индексы на экран...

С помощью элементов массива вычислить заданные величины
Дан массив а(15). Найти: 1) произведение отличных от нуля элементов массива; 2) количество элементов кратных 4 с четными индексами; ...

8
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
15.12.2019, 17:18
Цитата Сообщение от etaaaaaa Посмотреть сообщение
vector werte{ a, b, c, d, e };
C++
1
vector<MessWert>  werte{ a, b, c, d, e };
0
0 / 0 / 0
Регистрация: 23.11.2019
Сообщений: 21
15.12.2019, 17:24  [ТС]
Извините, поправки! В конце шибки выводит в строках 73, 74, 99 и 103 под названием "cannot convert 'MessWert' to 'double' in initialisation"
А также в строке 113 выводит ошибку "missing template rguments before 'werte'"
И в строке 114 "'werte' was not declared in this scope"
В 115 "cannot convert 'const int' to 'const MessWert' for argument '1' to 'void ausgeben const MessWert*. int)'"

Не успела поправить!

Добавлено через 2 минуты
zayats80888 теперь выводит ошибку " no matching function for call to 'std::vector<MessWert>::vector(<brace-enclosed initializer list>)' "
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
15.12.2019, 17:41
Цитата Сообщение от etaaaaaa Посмотреть сообщение
теперь выводит ошибку
должны быть поддержка C++11
0
0 / 0 / 0
Регистрация: 23.11.2019
Сообщений: 21
15.12.2019, 17:49  [ТС]
zayats80888 у меня просто С++ ((
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
15.12.2019, 17:56
Лучший ответ Сообщение было отмечено etaaaaaa как решение

Решение

Цитата Сообщение от etaaaaaa Посмотреть сообщение
у меня просто С++
Попробуй включить, тут информация:
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

Добавлено через 3 минуты
если не получится, замени строки 113-115 на
C++
1
2
3
4
5
6
7
8
    vector<MessWert> werte;
    werte.push_back(a);
    werte.push_back(b);
    werte.push_back(c);
    werte.push_back(d);
    werte.push_back(e);
    for (size_t i = 0; i < werte.size(); ++i)
        ausgeben(&werte[i], 1);
1
0 / 0 / 0
Регистрация: 23.11.2019
Сообщений: 21
15.12.2019, 18:08  [ТС]
zayats80888 да, теперь в тех строках ошибки нет, спасибо! А не знаете, что делать с предыдущими ошибками?
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
15.12.2019, 18:12
Лучший ответ Сообщение было отмечено etaaaaaa как решение

Решение

Цитата Сообщение от etaaaaaa Посмотреть сообщение
А не знаете, что делать с предыдущими ошибками?
какими?

Добавлено через 2 минуты
а, я понял, замените фигурные скобки на круглые
0
0 / 0 / 0
Регистрация: 23.11.2019
Сообщений: 21
15.12.2019, 18:25  [ТС]
zayats80888 Спасибо, заработало! Не уверена, что получила правильный результат, но компилируется! :*
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2019, 18:25
Помогаю со студенческими работами здесь

Заданные действительные величины и логичны. Разработать программу, которая вычисляет значение функции
Заданные действительные величины и логичны. Разработать программу, которая вычисляет значение функции.

График для идеального газа. Выразите через заданные на графике величины работу газа
На рисунке изображен циклический процесс для идеального газа. Выразите через заданные на графике величины работу газа за цикл.

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

Разработать и нормализовать БД
Если кто то может,то очень прошу скинуть SQL код базы данных: Табель работы сотрудников. В котором должны быть три таблицы:...

Как нормализовать БД
Добрый день, Обращаюсь к вам за помощью. Не могу понять как красиво и лаконично нормализовать БД. БД следующая: Имеется ряд...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru