В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История

Program5.pas(11) : нельзя преобразовать тип string к real
program rivnanna;

var

a,b,c,d: real;

begin

writeln('введіть перший коефіціент рівняння');

readln(a);

writeln('введіть другий коефіціент рівняння');

readln(b);

writeln('введіть вільний член рівняння');

readln(c);

d : = ('b*b-4*a*c');

readln('дискримінант',d);

x1 : = ('-b-sqrd/2*a');

readln(x1 =);

x2 : = ('-b+sqrd/2*a');

readln('другий корень рі=',x2);

end.

Показать ответ
Ответ:
rageworker
rageworker
03.10.2020 18:51

Объяснение:

Не совсем понятно, что хотите сделать в данной программе. Обо всем по порядку.

1. Ошибка: "Нельзя преобразовать тип string к real".

D := ('b*b-4*a*c');

Вы пытаетесь присвоить переменной D строку, хотя она является переменной типа Real . Это абсолютно два разных типа переменных.

Real - вещественный тип, т.е. поддерживает числа с запятой и принимает на ввод такие числа, как "2.534" или "3.0"; никаких букв быть не может;

String - строковый тип, т.е. поддерживает строки, где значение заключается в одинарные кавычки, например 'Мама мыла раму'; также можно ввести цифры, например '4,096', но учтите, что строки не могу принимать участие в арифметических операциях (есть конечно процедуры перевода из строки в число, но, насколько я поняла, вы только начинаете программировать и пока что нужно понять азы программирования).

Нельзя присвоить вещественному типу строку и наоборот, что вы и делаете в 11 строке.

А теперь перейдем к моментам, в которых не совсем понятно, что хотите сделать.

Возьмем 11 и 12 строки:

D := ('b*b-4*a*c');

readln('дискримінант',D);

Что вам нужно?:

а) Посчитать и вывести чему будет равен D:

Для этого нужно убрать одинарные кавычки в 11 строке и вместо "ReadLn" написать "WriteLn". Строки будут иметь следующий вид:

D:=b*b-4*a*c;

Writeln('дискримінант ',D);

б) Вывести строку как считается дискриминант и попросить пользователя ввести данное число:

В этом случае, в 11 строке пишем WriteLn, а в 12 строке убираем 'дискримінант'. Строки будут иметь следующий вид:

writeln('D:=(b*b-4*a*c). ', 'дискримінант');

readln(d);

Та же история и со строками 13-14, 15-16.

2. У вас не объявлены переменные "x1", "x2". Для того, чтобы программа работала, добавляем их в "var":

var

a, b, c, d, x1, x2: real;

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота