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

Program tutor; var x: byte; const p = 12; a = 6; b = 10; c =11; begin x: = (p*(p-a)*(p-b)*(p-c))^(1/2); writeln(x); end. что в этой программе не так? я хочу извлечь корень из х, а программа пишет "ошибочный идентификатор". program tutor; var x, z: byte; const p = 12; a = 6; b = 10; c =11; begin x: = (p*(p-a)*(p-b)*(p-c))^(1/2); z: =sqrt(x); writeln(x,z); end. и через "sqrt"- оператор не хочет выдавать корень из х. что я не так делаю? подскажите.

Показать ответ
Ответ:
235www
235www
01.10.2020 09:12
Если не ошибаюсь, то X и Z являются типа byte. Требовать от переменных этого типа извлечение корня неправильно. Так как это по определению целые положительные числа, размером до 256. От переменной, из которой извлекают корень, требуется тип значения - действительное число. Так что лучше сразу объявить эти две переменные типа double (похоже так в Паскале).  

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