|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
Самый простой компилятор09.12.2018, 22:31. Показов 3136. Ответов 20
Метки компилятор (Все метки)
В чём ошибка? Компилятор выдаёт ошибку.
0
|
||||||
| 09.12.2018, 22:31 | |
|
Ответы с готовыми решениями:
20
Самый простой односвязный список Самый простой вопрос на сегодня. |
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 09.12.2018, 22:35 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
| 09.12.2018, 23:06 [ТС] | ||||||
|
Здесь идут сами расчёты. Конвертирование.
Точнее это я так представляю, что ту происходит) Формулы перевода. Добавлено через 24 минуты Актуально. Немного переделал.
0
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||||||
| 09.12.2018, 23:14 | ||||||
1
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
| 09.12.2018, 23:18 | |
|
Переменные sm, E, tm должны быть целыми, т.к. определяют номер варианта. Сравнение вещественных чисел на равенство очень плохая идея. Константы нигде не используются, они тут вообще нужны в таком случае?
0
|
|
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
|
| 09.12.2018, 23:55 [ТС] | |
|
Спасибо большое, Antikl.
Код работает. Но вот у меня только введённые числа почему-то не конвертируются. Не знаете причину?
0
|
|
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||
| 09.12.2018, 23:59 | ||||||
|
Blacit, вы забыли его вывести в конце.
1
|
||||||
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
| 10.12.2018, 00:02 [ТС] | ||||||
|
Спасибо, вывел результат (честно не знал про это)
Сама конвертация не происходит... Извините за такое количество вопросов, стараюсь учиться. Вы выше про константы говорили, предлагаете просто убрать эти 4 строчки? const int M = 100; const int CM = 1; const float F = 30.48; const float Inch = 2.54; Сам код:
0
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
| 10.12.2018, 00:16 | |
|
Blacit, или убрать (правда они ни на что не влияют), либо использовать, не зря же вы их писали.
Для начала, научитесь верно выделять код тегами: найдите кнопку языка c++, поскольку у вас это не код для Qt. И сделайте переменные sm, E, tm целочисленными (unsigned int), полагаю дело именно в ошибке сравнения вещественных чисел на равенство. Расскажите о результатах.
0
|
|
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
| 10.12.2018, 00:36 [ТС] | ||||||
|
Извините. Я сразу не заметил C++. Теперь через него.
Вот то, что я сделал: 1. переменные sm, E, tm целочисленными (unsigned int) 2. Удалил константы Мои догадки: что-то не так с формулами. Именно в них уже подсчёты неправильные. Потому что конвертирование происходит, но неверное. Код, который получился:
0
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||
| 10.12.2018, 00:45 | |||||||
|
Кликните здесь для просмотра всего текста
Еще совет: везде, где вам нужны целые числа, используйте именно целые числа, т.к. вычисление вещественных чисел происходит приблизительно. Связано с тем, что вещественные числа могут быть бесконечными дробями, а для их представления в памяти компьютера выделяется конечное количество памяти. Записать бесконечное число конечным количеством знаков без потерь точности невозможно. Тип double имеет большую точность, нежели float, поэтому предпочтительнее использовать именно его. Тип float используется только в случаях, когда объем памяти критичен.
0
|
|||||||
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
| 10.12.2018, 01:03 [ТС] | ||||||
|
То, что сделал:
Удалил float вначале и приписку у всех чисел. Прислушался ко всем Вашим замечаниям. Вставил вначале double. Не могли бы Вы объяснить, нужно у чисел в с плавающей точкой ставить на конце что-то? Код, который работает:
0
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||
| 10.12.2018, 01:07 | |||||||
Сообщение было отмечено Blacit как решение
Решение
Если избавиться от магических чисел в коде и вернуться к использованию констант, то можно воспользоваться переводом любой из величин в сантиметры, умножая на соответствующую константу. Перевод сантиметров в другую величину будет выполняться с помощью обратного действия - деления. Таким образом, достаточно 3 константы и правильные формулы.
Попробуйте сами разобраться. Если что-то будет непонятно, задавайте вопросы. Готовый код можно подсмотреть под спойлером. Надеюсь, не запутался во множестве строк с формулами, проверьте внимательно. Кликните здесь для просмотра всего текста
Добавлено через 1 минуту
1
|
|||||||
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
|
| 10.12.2018, 01:11 [ТС] | |
|
Можно вопрос как раз по поводу Double, который выше, он актуален.
Хотел бы повысить точность и округление чисел до 10, ну или сотой. Как можно реализовать момент, чтобы пользователь , пытаясь вводить буквы, программа ему выдавала соответствующую ошибку и предлагала попробовать ввести цифры заново. Вот, например, когда используешь тип float, то в конце у чисел должна стоять "f", пример: 12.25f А у типа double такая же должна быть ситуация?
0
|
|
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||
| 10.12.2018, 01:40 | |||||||
|
Небольшой пример для наглядности
Windows XP, MinGW 5.1 Linux x64, gcc 6.3
0
|
|||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||||
| 10.12.2018, 02:16 | ||||||||
|
Пример проверки ввода с повторением
0
|
||||||||
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
|
| 10.12.2018, 09:58 [ТС] | |
|
Конечно, можно.
Например, 1 / 3 = 0.666666 А хотелось, чтобы он округлял до сотой. Спасибо большое за примеры кодов. Обязательно разберусь в них и воспользуюсь.
0
|
|
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||
| 10.12.2018, 13:27 | ||||||
|
Blacit, полагаю, нужно округление при выводе. Для этого можно задать точность (количество знаков после запятой). Часть настроек форматирования можно посмотреть/изменить через унаследованные методы от класса ios_base, остальные - библиотека <iomanip>. Посмотрите, какие она предоставляет возможности.
0
|
||||||
|
1 / 1 / 0
Регистрация: 18.07.2016
Сообщений: 51
|
||||||
| 10.12.2018, 20:11 [ТС] | ||||||
|
Большое спасибо. Пока что остановлюсь на округлении результата. Потому что с флагом ошибок пока что достаточно трудно)
Вот конечный результат. Формулу доделал, перепроверил. У меня вопрос в этом моменте: cout.precision(3); cout << "set precision(3) в скобках пишутся цифры для чего (понятно, что показывает число, до какого округляется), но , если , например, до 3 числа, то цифру "3" прописываем в двух строчках?
0
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||||
| 10.12.2018, 21:21 | ||||||||
0
|
||||||||
| 10.12.2018, 21:21 | |
|
Помогаю со студенческими работами здесь
20
Самый простой, примитивный морской бой Самый большой простой делитель числа
Нужно создать самый простой класс (С++) Написать простой компилятор языка C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|