Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 03.11.2015
Сообщений: 9

Запись и чтение вещественных чисел в типизированном файле

07.12.2015, 16:23. Показов 2496. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. В типизированный файл нужно записать действительные числа, а после прочесть его и найти максимальное число стоящее на нечетной позиции.

Не могу понять в чем проблема, вещественные числа записываются в файл, но при чтении из файла программа воспринимает число -8,5 как -8 и 5. Как это можно исправить?


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var f: file of string;
 flag:boolean;
 c:string;
 n,a,max:real;
 k,err:integer;
begin
assign(f,'text.txt');
rewrite(f);
max:= - maxreal;
flag:=true;
writeln('Введите числа, для выхода введите *');
   repeat
         readln(c);
         val(c,n,err);
         writeln('err =', err);
         if c <> '*' then
            if (err <> 1) then write(f,c)
            else writeln('Введите число')
         else flag:=false;
   until (flag<>true);
n:=filesize(f);
   if n = 0 then
      writeln('Числа не были введены')
   else
       begin
       k:=0;
       while k < n do
             begin
                  seek(f,k);
                  read(f,c);
                  val(c,a,err);
                  if (a > max) then
                     max:=a;
                  k:=k+2;
             end;
       writeln('Max = ',max);
       end;
close(f);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2015, 16:23
Ответы с готовыми решениями:

Чтение в типизированный файл и сортировка данных в типизированном файле
Здравствуйте! Дан текстовый файл со следующей характеристикой: &quot;&lt;имя&gt; &lt;число&gt;&quot; Нужно прочитать данные из текстового файла в...

Как сдвинуть запись в типизированном файле?
У меня есть типизированный файл с n количеством записей. Как удалить выбранную запись? Я понимаю, что записи нужно постепенно сдвигать,...

Вставить новую запись в файл в типизированном файле
Программа на паскаль. Составить программу не используя глобальные переменные внутри процедур, а использовать ввод и вывод переменных в и из...

3
 Аватар для chealbert
257 / 143 / 85
Регистрация: 13.10.2011
Сообщений: 454
07.12.2015, 17:11
Pascal
1
var f:file of real;
Зачем усложнять все переводом число-текст?

Добавлено через 22 минуты
Исправлено:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var f: file of real;
 flag:boolean;
 c:string;
 n,a,max:real;
 k,err:integer;
begin
   assign(f,'text.txt');
   rewrite(f);
   flag:=true;
   writeln('Vvedite chislo, dlya vihoda vvedite *');
   repeat
         readln(c);
         val(c,a,err);
         writeln('err =', err);
         if c <> '*' then
            if (err <> 1) then write(f,a)
            else writeln('Vvedite chislo')
         else flag:=false;
   until flag<>true;
   n:=filesize(f);
   if n = 0 then writeln('Chisla ne vvedeni')
   else
       begin
       seek(f,0);
       read(f,max);
       k:=2;
       while k < n do
             begin
                  seek(f,k);
                  read(f,a);
                  if (a > max) then max:=a;
                  k:=k+2;
             end;
       writeln('Max = ',max);
       end;
close(f);
end.
1
1 / 1 / 0
Регистрация: 03.11.2015
Сообщений: 9
07.12.2015, 19:55  [ТС]
Все равно считывает не правильно.
Я ввожу такие числа 4,4 5,5 6,8 -> max = 6, а не 6,8
А при вводе отрицательных чисел -5,8 , 4 , 2 -> max=5, a не 2
Хотя с целыми числами все работает нормально.
0
 Аватар для chealbert
257 / 143 / 85
Регистрация: 13.10.2011
Сообщений: 454
08.12.2015, 00:27
В паскале числа пишутся через ТОЧКУ - 3.56 4.45 1.567
Через запятую воспринимается как ошибка! - val преобразует что может - остальное в печку.
У Вас в программе при вводе показывает err=0 если число введено правильно

В 16 строке измените if err = 0 then write(f,a) - тогда будет пропускать только правильно введенные числа.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2015, 00:27
Помогаю со студенческими работами здесь

Данные структуры 'запись' хранить в типизированном файле
Задание 2 соответствует заданию 2 лабораторной работы № 4. Данные структуры запись хранить в типизированном файле. Вот сама...

Добавить или изменить запись в типизированном файле
Здравствуйте! Недавно столкнулся с непонятной проблемой,а именно не могу добавить или изменить запись в типизированном файле. Вот код...

StringGrid: в типизированном файле изменить конкретную запись
Подскажите пожалуйста, как в типизированном файле изменить конкретную запись? все действия в stringgrid конечно

Данные структуры запись хранить в типизированном файле
Вот программа. В ней надо чтобы данные из типа-записи хранились в файле. uses SysUtils, Windows; type kurs = record ...

Запись, удаление, поиск записей в типизированном файле
Ищу пример программы, которая включает в себя: 1)Меню 2)Запись, удаление, поиск записей в типизированном файле 3)Сохранение, создание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru