0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
||||||
1 | ||||||
Не понимаю, почему получаются в ответе только нули и единицы27.10.2019, 20:51. Показов 2724. Ответов 14
Метки нет (Все метки)
Суть задания:
Разработать алгоритм и написать программу вычисления заданного целочисленного выражения для данных в формате 16 бит со знаком, используя оператор IF. Промежуточные вычисления могут проводиться с использованием любых типов данных (с обоснованием выбора типа данных), а тип результата Х - тоже должно быть 16 бит со знаком.
0
|
27.10.2019, 20:51 | |
Ответы с готовыми решениями:
14
Скопировать в новый текстовый файл все символы исходного, заменив все нули на единицы, а единицы на нули Дано целое число N и набор из N целых чисел, содержащий только нули и единицы. Замена нулей на единицы и единицы на нули в матрицах с использованием функций В ответе нули |
Модератор
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
|
|
27.10.2019, 21:00 | 2 |
для каких a и b Вы считаете, что получается неправильный результат?
p.s. надеюсь Вы учитываете, что b/a дает целый результат, а, так как, эта дробь выполняется при условии a>b, то при положительных a,b результат нуль. Попробуйте вводить числа с разными знаками и увидите не только 0 и 1 ответы
1
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:00 [ТС] | 3 |
Да-да, я забыл {}
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:07 [ТС] | 5 |
Подскажите, а как сделать, чтобы программа проверяла условие и высчитывала значение переменной res
Мне нужно, чтобы при a > b выполнялось вычисление выражения 1-b/a То есть: b = 2 a = 6 1-(2/4)=0,5 res=0,5 Добавлено через 2 минуты В общем проблема в типе данных, сменил тип на double - работает Но по условие задания "в формате 16 бит со знаком" должен быть short или какой тип данных?
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|||||||||||
27.10.2019, 21:13 | 6 | ||||||||||
Сообщение было отмечено Edelweiss02 как решение
Решение
Edelweiss02, a и b пусть остаются short. res - double.
Более общо - приводится к более "емкому" типу.
1
|
Модератор
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
|
|
27.10.2019, 21:26 | 7 |
Байт, на мой взгляд для данного случая бессмысленно приводить к double, т.к. потом все равно надо получить short.
Зависит, конечно, от того, какой смысл заложен в формулах. Если никакой, то и приводить не стоит.
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:26 [ТС] | 8 |
А все же, почему выдавало 0 и 1 при типе данных short? Что с ним не так? Как он работает?
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.10.2019, 21:29 | 9 |
Это уже вопрос к дурной постановке задачи. Или к неправильному ее пониманию.
Добавлено через 1 минуту Покажите несколько вводов. А мы попробуем вам показать - почему. И внимательнее читайте ответы. В частности, пост 4.
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:31 [ТС] | 10 |
Так а как мне все же получить short (если вообще этот тип нужен)?
Условие задания вот: Разработать алгоритм и написать программу вычисления заданного целочисленного выражения для данных в формате 16 бит со знаком, используя оператор IF. Промежуточные вычисления могут проводиться с использованием любых типов данных (с обоснованием выбора типа данных), а тип результата Х - тоже должно быть 16 бит со знаком. Может быть, я что-то не так понял? Добавлено через 1 минуту https://prnt.sc/pou4k8 Вот пример ввода и вывода
0
|
Модератор
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
|
|
27.10.2019, 21:31 | 11 |
Я же объяснил: для положительных a и b числитель был меньше знаменателя (т.е. целая часть от деления равна нулю).
Возьмите числа разных знаков - получите другие значения. Так что, можете считать, что все вычисляется правильно. Единственное - не предусмотрена проверка ошибки при делении на нуль (т.е. при a==0 в первом условии и при b==0 - во втором).
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:38 [ТС] | 13 |
ОДЗ я еще не проводил, это отработаю (насчет деления на нуль).
Почему выдавало 1 и 0 понял, спасибо. Очень люблю эти лабы, в которых половина задания не ясна. Надеюсь, что правильно выполнил задание. Спасибо за оперативную помощь, но все же остался вопрос - почему, когда значение дроби меньше единицы в ответе выдает 0 и 1? Какая логика этого типа short? Он округляет значение?
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 8
|
|
27.10.2019, 21:54 [ТС] | 15 |
Вот за это пояснение огромное спасибо! Теперь все более-менее понятно!
0
|
27.10.2019, 21:54 | |
27.10.2019, 21:54 | |
Помогаю со студенческими работами здесь
15
почему в ответе выводит нули? Как вокруг матрицы построить только одни нули или единицы ? Дан массив из 13 байт. Посчитать количество байт содержащих только нули или единицы Требуется вывести квадратную матрицу, где первый квадрат-единицы, квадрат внутри него-нули, потом снова единицы и т.д. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |