Нельзя преобразовать тип real к integer как исправить
Program1.pas(12) : Нельзя преобразовать тип real к integer
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Нельзя преобразовать тип function(a: integer;b: integer):integer к real
unit matr1; interface type matr2=array of real; matr3=array of real; procedure sum.
Нельзя преобразовать тип real к integer
Всем привет) В процессе написание программы у меня возникла следующая проблема: Строка 24: нельзя.
Некроманта на костёр.
мне выдаёт произведение для каждого ряда файла отдельно, а мне надо чтобы на экран выдавалась только одна сума
к примеру я поставил
1
NRbil: 1; pret: 120; starea: 1;
2
NRbil: 20; pret: 100; starea: 1;
и мне выдаёт
120
2000
Перед циклом чтения из файла присвоить s значение 0.
В строчечке if (starea=1)then s:=nrbil*pret; написать s:=s+nrbil*pret;
Поставить строчечку writeln(‘suma:’,s); после end;, а не перед.
Всегда ваш, Капитан Очевидность.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Нельзя преобразовать тип real к integer
Выдаёт ошибку при завершении «Program1.pas(15,20): Нельзя преобразовать тип real к integer» в чём.
Нельзя преобразовать тип real к integer
uses graphabc; begin var x,y:real; var angl:integer; x:=0; y:=0; for angl:=0 to.
Нельзя преобразовать тип real к integer
Пишет ошибку : Нельзя преобразовать тип real к integer procedure Repeat1; Const Alpha = 0.1;.
Нельзя преобразовать тип real к integer
program l7; var F1,F2:text; R,K:real; i:byte; begin assign(F1,’E:\file1.txt’);.
Выдает ошибку » Нельзя преобразовать тип real к integer»
Столкнулся с такой проблемой, что когда начинаю выводить процедуры в конце там где Vvod_mas(m[i]) выдает ошибку
» Нельзя преобразовать тип real к integer».Как ее исправить? И если не затруднит проверьте остальной код.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Нельзя преобразовать тип real к integer
Выдает ошибку, нельзя преобразовать тип real к integer, только я не пойму где ошибка function.

По заданию, я должен написать калькулятор на паскале с использованием if. При выполнении выдается.
Теперь хорошо видно?
Сделал как вы сказали, ничего не изменилось
Решение
Спасибо всем, Все получилось.
Вот готовая программа.
подумайте над другой декомпозицией действий программы:
1) избавиться от глобального массива, передавать в процедуры/функции параметр-переменную/константу,
2) поиск максимального можно оформить функцией, возвращающей индекс искомого элемента,
3) вычисление суммы фрагмента массива можно оформить отдельной функцией.
То есть, использование оправдано, если без этого никак не обойтись. Иначе, это потенциальный источник проблем не только при сопровождении, но и при развитии проекта.
. делаются в учебных целях, то есть, прежде всего, призваны формировать правильные привычки и полезные установки.
Установка «используем глобальный массив» к таким не относится.
Pascal нельзя преобразовать тип real к integer
Неописанная переменная
Все используемые переменные должны быть предварительно описаны с помощью ключевого слова var (внутри блока begin/end или, что обычно хуже, в разделе описаний вначале программы).
Отсутствующая ;
Очень частая ошибка у начинающих. Курсор, как правило, позиционируется в начале следующей строки.
Несовместимость типов при присваивании
Безболезненно можно присваивать только данные одного типа. Если данные – разных типов, то в редких случаях можно преобразовать данные одного типа в данные другого. Например, целое можно преобразовать в вещественное, а символ – в строку. Обратные преобразования не допускаются.
Чтобы не ошибаться в подобных простых случаях в Паскале есть следующая краткая форма объявления и инициализации переменной:
Отсутствие закрывающего апострофа литеральной строки
Закрыть апостроф надо на той же строке, где расположен открывающий апостроф
Ошибки расстановки запятых и апострофов при выводе строк и выражений
Слишком много запятых и апострофов рядом, потому начинающие часто путаются 🙂 Надо уяснить правила:
Ошибка ввода
Это – ошибка во время выполнения. Программа пытается преобразовать введенную строку в число, не может это сделать и завершается с ошибкой.
Аналогичный фрагмент в более современном и предпочтительном синтаксисе:
Ошибка неинициализированной переменной
Перед использованием любую переменную надо ввести или присвоить ей начальное значение. Это действие называется инициализацией переменной.
Деление на 0
Если во время выполнения программа выполнит деление на 0, то она завершится с ошибкой.
Можете написать ещё про какие-либо ошибки, буду благодарен.
1 ответ 1
Для целочисельного деления в паскале используйте div :
Всё ещё ищете ответ? Посмотрите другие вопросы с метками pascal или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459
Ответ
В строке с условиями не хватает скобок. Вот рабочий вариант вашей программы:
program _1;
var
x, y, x1, y1, x2, y2, x3, y3: real;
begin
write(‘Введите координаты точки(х,у)’);read(x, y);
write(‘Введите координаты первой вершины треугольника(х1,у1)’);
read(x1, y1);
write(‘Введите координаты второй вершины треугольника(х2,у2)’);
read(x2, y2);
write(‘Введите координаты третьей вершины треугольника(х3,у3)’);
read(x3, y3);
if (((x – x2) / (x2 – x1) – (y – y2) / (y2 – y1)) = 0)
then writeln(‘Точка с введенными вами координатами принадлежит треугольнику’) else writeln(‘Точка с введенными вами координатами не принадлежит треугольнику’);
end.
Тестовое решение:
Введите координаты точки(х,у)5.2 4.7
Введите координаты первой вершины треугольника(х1,у1)1.1 2.1
Введите координаты второй вершины треугольника(х2,у2)8.3 9.1
Введите координаты третьей вершины треугольника(х3,у3)0.1 10.5
Точка с введенными вами координатами не принадлежит треугольнику
Почему пишет, что нельзя преобразовать тип real к int64(integer) PascalABC.net
В общем, такое дело, делим к примеру 44638 / 22 = 2029, но нет! Пишет, мол нет, не могу.
Это мой конвертор систем счисления, введите сначала 445, затем 22, потом 6.
Смысл, перевести число 445 из 22 системы счисления в 6. Такая тема, что моя программа переводит сперва в 10-ое число, на этом я и построил алгоритм. Даже если она и переведёт, получится, что последняя переменная 2029.
А она должна затем 2029 перевести 6-ую. С чем прекрасно должна справится, но нет! Выдаёт эту ошибку. Что делать?
Var
x:int64;
xstr:string;
xcode:int64;
s:string;
code:integer;
sum:int64;
n: array [1..10000] of int64;
q: array [1..10000] of int64;
F: array [1..10000] of int64;
m: array [1..10000] of string;
icopy:int64;
ccopy2:int64;
g:int64;
i:int64;
l:int64;
p:char;
c1,c2:integer;
writeln(‘ Добро пожаловать! ‘);
writeln(‘ Данная программа переводит целые числа из одной системы счисления в другую, вы можете выбрать конфигурацию. ‘);
write(‘ Введите число: ‘);
if (x 10) and (c2<>10) then
i:=0;
writeln(‘ Попытка деления: ‘, sum, ‘ на ‘, c1, ‘ получаю: ‘,sum/c1);
xcode:=sum/c1;
xcode:= xcode div c2;
if (c1<>10) and (c2<>10) then
begin
for i:=i downto 1 do
write(n[i]);
end
end;
write(‘.’);
writeln;
writeln(‘ Спасибо за участие, работа программы завершена. ‘);


