Как преобразовать real в integer pascal
Перейти к содержимому

Как преобразовать real в integer pascal

  • автор:

Преобразование типа из real в integer

Попытка присвоить переменной типа integer выражение типа real
Здравствуйте форумчане. Написала программу для замены элементов массива после максимального.

Попытка присвоить переменной типа integer выражение типа real
Здравствуйте! Моя задача: Найти сумму всех n-значных чисел, кратных k (1 ≤ п ≤ 4). Я.

преобразование integer в real
Ребята есть элементарная задачка (надо для девушки моей решить, а я Паскаль уже не помню :((.

Метод Симпсона — попытка присвоить значение integer переменной типа real
Как исправить ошибку? В строке N2:= n/2; пишет попытка присвоить значение integer переменной типа.

Как преобразовать real в integer pascal

Пользователь

Регистрация: 09.03.2007

Сообщений: 34

как перевести из integer в real(и обратно), и из real в string(и обратно)

как перевести из integer в real(и обратно), и из real в string(и обратно)

добрый няша

Регистрация: 29.10.2006

Сообщений: 4,804

 var i:integer; r:real; s:string; r:=int(i); i:=round(r); s:=floattostr(r);

[Программирование на ассемблере на платформе x86-64]

Администратор

Регистрация: 28.10.2006

Сообщений: 17,663

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пребразовать string-строку в число и обратно. — Как? Avaj C++ Builder 16 03.02.2011 19:03
real to string terminadoor Помощь студентам 6 28.07.2008 09:27
как узнать string или Real Влажимир Общие вопросы Delphi 2 11.04.2008 17:06
перевести число, находящееся в string, в integer? andrey4623 Паскаль, Turbo Pascal, PascalABC.NET 4 23.06.2007 00:32
Конвертация real > integer Viteef Общие вопросы Delphi 2 03.05.2007 18:45

Нельзя преобразовать тип real к integer

Задача такая, что если число чётное, то его нужно разделить на два, а если нет, то умножить на 3, прибавить 1 и разделить на два. И делать так, пока в итоге не получится 1. В 5 строчке пишет: нельзя преобразовать тип real к integer. Я не пойму где тут real. Помогите пожалуйста.

Отслеживать
user176262
задан 9 янв 2020 в 15:11
3 1 1 серебряный знак 2 2 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

В результате операции n / 2 получается значение типа real, т.к. / — обычное не целочисленное деление, результат которого может быть нецелым числом. Вы же записываете результат этой операции в переменную n , которая имеет тип integer. Из-за несоответствия типов возникает ошибка.

Вам нужно использовать целочисленное деление, которое отбрасывает остаток и даёт в результате целое число:

n := n div 2 

Отслеживать
ответ дан 9 янв 2020 в 15:20
Кирилл Малышев Кирилл Малышев
10.8k 1 1 золотой знак 18 18 серебряных знаков 34 34 бронзовых знака
Я новичок и поэтому не знал в чём ошибка, но ваш совет помог! Спасибо большое)
9 янв 2020 в 16:54

Во-первых, форматируйте ваш код! Во-вторых, ваша проблема в использовании оператора / вместо DIV . Вот так:

PROGRAM main; VAR n, i: Integer; BEGIN Write('Введите число: '); Read(n); WHILE n <> 1 DO IF n MOD 2 = 0 THEN n := n DIV 2 ELSE n := (n * 3 + 1) DIV 2; END. 

Отслеживать
ответ дан 9 янв 2020 в 15:24
16k 3 3 золотых знака 25 25 серебряных знаков 41 41 бронзовый знак
Спасибо большое)
9 янв 2020 в 16:54

@Вадим Пожалуйста. Не забывайте, что наиболее подходящий ответ надо выделять как верный, нажав галочку рядом с голосами.

Как преобразовать real в integer?

Что я делаю не так? Еще пробовал для этих переменных задавать тип integer сразу, но не помогло.

5ba93d15ac23e167247230.jpeg

Program asdasdas; uses GraphABC; begin; var wWidth, wHeight: integer; writeln('Введите размер окна'); writeln('Ширину:'); readln(wWidth); writeln('Высоту:'); readln(wHeight); SetWindowSize(wWidth, wHeight); var figureWidth, figureHeight: integer; writeln('Введите размер фигуры'); writeln('Ширину:'); readln(figureWidth); writeln('Высоту:'); readln(figureHeight); //Options SetPenWidth(3); //Write center lines var centerLineWidth, centerLineStartPoint: real; centerLineWidth:= int(wWidth/100 * 57.14); centerLineStartPoint:= int(wWidth/100 * 21.43); Line(centerLineStartPoint, 0, centerLineStartPoint + centerLineWidth, 0); end.
  • Вопрос задан более трёх лет назад
  • 439 просмотров

Комментировать

Решения вопроса 1

longclaps

var i: integer; . i := round(floatVar);

Ответ написан более трёх лет назад

Комментировать

Нравится 2 Комментировать

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

pascal

  • Pascal

Как работает WriteLn в PascalAbc?

  • 1 подписчик
  • 14 сент.
  • 59 просмотров

pascal

  • Pascal

Как в Pascal Abc использовать функцию дополнения кода (чтобы команда дописывалась)?

  • 1 подписчик
  • 07 сент.
  • 36 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *