Подскажите с вводом данных в Паскаль и ошибкой.

интернет Компьютеры программирование программы pascal

program lab8;
var m:array[1..1000] of integer;
a:array[1..1000] of integer;
b:array[1..1000] of integer;
min:integer;
i:integer;
begin
writeln('Введите значения элементов массива:');
for i:=1 to 15 do read(m[i]);
min:=m[1];
for i:=1 to 15 do if m[i]<=min then min:=m[i];
for i:=1 to 15 do if not(odd(m[i])) then begin
a[i]:=56*m[i]; b[i]:=m[i]+min; end else
begin a[i]:=m[i]; b[i]:=m[i]; end;
writeln(' ');
for i:=1 to 15 do write(' ',m[i]);
writeln(' ');
for i:=1 to 15 do write(' ',a[i]);
writeln(' ');
for i:=1 to 15 do write(' ',b[i]);
end.
---
1)Хочу, чтобы при появлении надписи "Введите значения элементов массива:" вводимые знаечния не переходили на новую строку, а шли после двоеточия.
Ставил readln, но никак не подействовало.
2) Хотел, чтобы тип данных в массиве был real... Но он ругается
---
program lab8;
var m:array[1..1000] of real;
a:array[1..1000] of real;
b:array[1..1000] of real;
min:real;
i:integer;
begin
writeln('Введите значения элементов массива:');
for i:=1 to 15 do read(m[i]);
min:=m[1];
for i:=1 to 15 do if m[i]<=min then min:=m[i];
for i:=1 to 15 do if not(odd(m[i])) then begin
a[i]:=56*m[i]; b[i]:=m[i]+min; end else
begin a[i]:=m[i]; b[i]:=m[i]; end;
writeln(' ');
for i:=1 to 15 do write(' ',m[i]);
writeln(' ');
for i:=1 to 15 do write(' ',a[i]);
writeln(' ');
for i:=1 to 15 do write(' ',b[i]);
end.
----
Пишет об ошибке в строке "for i:=1 to 15 do if not(odd(m[i])) then begin".
Не понимаю, где ошибка. Целочисленным типом являются только индексы массивов, а min и массивы(значения элементов) - вещественными.
__________________________
Мне надо написать программу, где с клавиатуры вводятся данные(О типе данных умалчивается и значит мне придется выбрать вещественный тип для значений элементов массивов). И затем создать 2 массива: в одном - каждые четные значения элементов массива увеличить в 56 раз, а во втором - увеличить на минимальное значение элементов в массиве.
__________________________
С integer проблем нет, а с real выскакивает ошибка:
---
Recompiling because of C:\FPC\‹ Ўл\lab8.pas
lab8.pas(12,34) Error: Incompatible type for arg no. 1: Got "Real", expected "QWord"
lab8.pas(22) Fatal: There were 1 errors compiling module, stopping
lab8.pas(0) Fatal: Compilation aborted
____
перевод от гугла:
---
Перекомпиляция из-за C: \ FPC \ <Ўл \ lab8.pas
lab8.pas (12,34) Error: Несовместимые типа Arg нет. 1: Есть "Реал", ожидается "QWord"
lab8.pas (22) Fatal: 1 Были ошибки компиляции модуля, останавливая
lab8.pas (0) Fatal: Компиляция прервана

---


Примечание:
Предлагаете, что в задаче имеется ввиду о целочисленных значениях типов данных для элементов массива?

Примечание:
Получается, мне надо писать свой алгоритм для проверки на четность вещественных чисел?
Ответы:
А ничего, что real — вещественные числа, которые не обязаны быть целыми, а odd проверяет число на четность, которая имеет смысл только для целых чисел (и потому odd принмает аргументом только целочисленные типы)?
Вам в тексте ошибки подробнейшим образом сказали, что передаете вы аргумент типа real, когда нужен qword (самый большой целочисленный тип)
> Предлагаете, что в задаче имеется ввиду о целочисленных значениях типов данных для элементов массива?
Я вас не понимать.
Задача тут не причем. Ваша проблема в том, что функция odd принимает целочисленные аргументы (потому как при иных аргументах смысл этой функции вообщем-то не совсем понятен). Вы ей передаете вещественный.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.