Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2018, 15:05   #1
EvilArtorias
Пользователь
 
Регистрация: 18.01.2018
Сообщений: 11
По умолчанию преобразование типа real к integer

процедура сравнения типизированного файла(имя:f1.dat) и целочисленного массива.структура файла:х-целое
у-вещественное.
сравнение осуществляется поэлементно(1-ый элемент массива сравнивается со значением х 1-ой записи файла,....)если все значения совпали,то процедура возвращает строку true иначе false.
Код:
const
h=5;
g=true;
type
T=record
x:integer;
y:real;
end;
procedure new_file(g:boolean);
var
n:integer;
mass:array[1..h] of real;
f:file of t;
i:integer;
a:integer;
b:real;
begin
readln(mass[i]);
assignfile(f,'f1.dat');
rewrite(f);
write ('Количество символов: ');
readln (n);
for i:=1 to n do
begin 
 write ('Введите символ: ');
        readln (b);
        write (f, b);
    end;
while not eof(f) do begin
read(f,a);
if a<>mass[i] then g:=false;
end;
end;
var g:boolean; 
begin
new_file(g);
end.
(ПАСКАЛЬ)
паскаль ругается на преобразование типа реал к T,хотя т у меня record,как исправить?

Последний раз редактировалось EvilArtorias; 23.01.2018 в 15:10.
EvilArtorias вне форума Ответить с цитированием
Старый 23.01.2018, 15:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

это не код, это недоразумение сплошное.
mass[i] при не заданном i использовать просто бессмысленно.

но, формально, ответ на ваш вопрос:
Код:
var
  ....
  mass:array[1..h] of integer;
  f:file of t;
  one:t;
  b:real;
begin
....
g:=true;
i:=1;
while not eof(f) and g and (i<=h) do begin
   read(f,one);
  if one.x<>mass[i] then g:=false;
  inc(i); { нарастить  I)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2018, 15:29   #3
EvilArtorias
Пользователь
 
Регистрация: 18.01.2018
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
..
а почему бессмысленно?а как же мне массив ввести если не так?
EvilArtorias вне форума Ответить с цитированием
Старый 23.01.2018, 15:33   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от EvilArtorias Посмотреть сообщение
а почему бессмысленно?а как же мне массив ввести если не так?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.01.2018, 15:35   #5
EvilArtorias
Пользователь
 
Регистрация: 18.01.2018
Сообщений: 11
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
тоесть в цикле это сделать?for i:=1 to n do
readln(mass[i]);
EvilArtorias вне форума Ответить с цитированием
Старый 23.01.2018, 15:38   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от EvilArtorias Посмотреть сообщение
...
b:real;
begin
readln(mass[i]);
что это? Чему в этой строчке равно i и сколько значений Вы вводите?


Цитата:
Сообщение от EvilArtorias Посмотреть сообщение
как же мне массив ввести если не так?
целочисленный массив можно ввести так:
Код:
...
begin
repeat
   write ('Введите количество чисел в целочисленном массиве (не более ',h,') N = ');
   readln (n);
until (n>=1) and (n<=h);
for i:=1 to n do
begin 
        write ('Введите ',i,'-е значение массива: ');
        readln (mass[i]);
end;
...
всё остальное, запись/чтение из файла, сравнение и прочее несущественное я убрал.

есть вопросы?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2018, 15:41   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Какой дебил там вас учит массивы не с нуля нумеровать?
Плюнь ему в морду, вредителю!
И не надо сравнивать нецелые числа на равно/не равно. Может быть потом мучительно больно.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование каждого слова в строке типа string в каждый отдельный массив типа integer Greshnaya333 Паскаль, Turbo Pascal, PascalABC.NET 4 11.10.2017 16:12
как сделать из числа типа real число типа integer? gylayko Помощь студентам 6 15.09.2012 11:41
Real, Integer jawa250t Общие вопросы Delphi 4 28.01.2011 14:19
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13
Конвертация real > integer Viteef Общие вопросы Delphi 2 03.05.2007 18:45