Объяснение:
Не совсем понятно, что хотите сделать в данной программе. Обо всем по порядку.
1. Ошибка: «Нельзя преобразовать тип string к real».
D := (‘b*b-4*a*c’);
Вы пытаетесь присвоить переменной D строку, хотя она является переменной типа Real . Это абсолютно два разных типа переменных.
Real — вещественный тип, т.е. поддерживает числа с запятой и принимает на ввод такие числа, как «2.534» или «3.0»; никаких букв быть не может;
String — строковый тип, т.е. поддерживает строки, где значение заключается в одинарные кавычки, например ‘Мама мыла раму’; также можно ввести цифры, например ‘4,096’, но учтите, что строки не могу принимать участие в арифметических операциях (есть конечно процедуры перевода из строки в число, но, насколько я поняла, вы только начинаете программировать и пока что нужно понять азы программирования).
Нельзя присвоить вещественному типу строку и наоборот, что вы и делаете в 11 строке.
А теперь перейдем к моментам, в которых не совсем понятно, что хотите сделать.
Возьмем 11 и 12 строки:
<em>D := (‘b*b-4*a*c’);
</em>
<em>readln(‘дискримінант’,D);</em>
Что вам нужно?:
а) Посчитать и вывести чему будет равен D:
Для этого нужно убрать одинарные кавычки в 11 строке и вместо «ReadLn» написать «WriteLn». Строки будут иметь следующий вид:
<em>D:=b*b-4*a*c;</em>
<em>Writeln(‘дискримінант ‘,D);</em>
<em></em>
б) Вывести строку как считается дискриминант и попросить пользователя ввести данное число:
В этом случае, в 11 строке пишем WriteLn, а в 12 строке убираем <em>’дискримінант'</em>. Строки будут иметь следующий вид:
<em>writeln(‘D:=(b*b-4*a*c). ‘, ‘дискримінант’);
</em>
<em>readln(d);</em>
<em />
Та же история и со строками 13-14, 15-16.
2. У вас не объявлены переменные «x1», «x2». Для того, чтобы программа работала, добавляем их в «var»:
<em>var</em>
<em>a, b, c, d, x1, x2: real;</em>
0 / 0 / 0 Регистрация: 25.11.2016 Сообщений: 1 |
|
1 |
|
25.11.2016, 21:58. Показов 19667. Ответов 2
В общем: мне нужно перевести из величины string в величину real (НЕ INTEGER), мне нужна команда, вроде strtoint(a,b), только strtoreal(a,b), только она, скорее всего по-другому как-то пишется. Помогите)
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
25.11.2016, 21:58 |
Ответы с готовыми решениями: Нельзя преобразовать тип function(x: real): real к real Как определить, к какому типу данных (integer, real, string, char и т.д) относится число или слово Нельзя преобразовать тип array [1..100] of real к real Перевод из string в longint 2 |
1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
|
26.11.2016, 02:16 |
2 |
StrToFloat
0 |
Cyborg Drone Модератор 9593 / 4912 / 3245 Регистрация: 17.08.2012 Сообщений: 15,346 |
||||
27.11.2016, 14:50 |
3 |
|||
Сообщение было отмечено vova_dragun как решение Решение
strtoint(a,b) Перечитайте описание функции. У данной функции всего один аргумент, и правильно будет, например,
Кроме функции StrToFloat, которая есть не во всех диалектах паскаля, можно применить процедуру val.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.11.2016, 14:50 |
Помогаю со студенческими работами здесь Ошибка: Нельзя преобразовать тип function x real real к real var String в real Нельзя преобразовать тип function(x: real): real к real Нельзя преобразовать тип function(x: real): real к real Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 3 |
SofaRoz
+18
Решено
6 лет назад
Информатика
5 — 9 классы
pascal abc
var
a,c,d: real;
b:char;
begin
…..
if b=’+’ then
d:=a+b;
…..
выдает ошибку «нельзя преобразовать тип string к real»
что делать?
Смотреть ответ
1
Комментарии
AnonimusPro
конечно нельзя, a — число типа real; b — string; строку с числом напрямую сложить нельзя, надо либо число в строку перевести или строку в число
Ответ
0
(0 оценок)
0
marfa2001
6 лет назад
Светило науки — 2 ответа — 0 раз оказано помощи
что означают твои многоточия ?
(0 оценок)
https://vashotvet.com/task/11837971
quloucou628
Вопрос по информатике:
Pascal abc
var
a,c,d: real;
b:char;
begin
…..
if b=’+’ then
d:=a+b;
…..
выдает ошибку «нельзя преобразовать тип string к real»
что делать?
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!
Ответы и объяснения 1
jondeiorost789
Что означают твои многоточия ?
Знаете ответ? Поделитесь им!
Гость ?
Как написать хороший ответ?
Как написать хороший ответ?
Чтобы добавить хороший ответ необходимо:
- Отвечать достоверно на те вопросы, на которые знаете
правильный ответ; - Писать подробно, чтобы ответ был исчерпывающий и не
побуждал на дополнительные вопросы к нему; - Писать без грамматических, орфографических и
пунктуационных ошибок.
Этого делать не стоит:
- Копировать ответы со сторонних ресурсов. Хорошо ценятся
уникальные и личные объяснения; - Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
знаю» и так далее; - Использовать мат — это неуважительно по отношению к
пользователям; - Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи —
смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.
floatToStr(c);
StrToInt(c);
writeln(c);
Компилятор указывает на вторую строку и выдаёт : нельзя преобразовать тип real к string
Мне необходимо перевести real
в integer
, а с
на начале имеет тип real
задан 2 мар 2019 в 9:36
1
Для того, чтобы перевести real в Integer, можно использовать функцию Round
(также см. Floor, Ceil
)
Между прочим, floatToStr и StrToInt — функции, они возвращают результат, а не изменяют аргумент.
ответ дан 2 мар 2019 в 11:01
MBoMBo
48k1 золотой знак17 серебряных знаков40 бронзовых знаков