Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
 Аватар для Tiga
3 / 3 / 3
Регистрация: 24.05.2011
Сообщений: 39

File/text/real

21.11.2011, 13:13. Показов 3981. Ответов 1
Метки нет (Все метки)

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

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
program Treangls;
 
uses ABCObjects, GraphABC;
 
var
k, i, n, y0, x0, x1, j, rr,gg,bb: integer;
ary:array[1..100] of integer;
arr:array[1..100] of real;
MaxY:real;
strH, st:string;
TextF:TextABC;
initFile: file of real;
begin
 
     x0:=0;
     y0:=250;
     x1:=x0;
     k:=0;
 
     assign(initFile,'initFile.dat');
 
     reset(initFile);
     k:=0;
     while(not eof(initFile)) do
     begin
        k:=k+1;
        read(initFile,arr[k]);
     end;
     n:=k;
     close(initFile);
 
     for i:=1 to n do
     begin
         ary[i]:=round(arr[i]);
     end;
 
     MoveTo(x0,y0);
     for i:=1 to n do
     begin
         x1:=x0+30;
         LineTo(x1,ary[i]);
 
             if(ary[i]<y0)then
             begin
                  Str((Abs(y0-arr[i])):3:3,st);
                  strH:=st;
                  TextF:=TextABC.Create(x1-15,(ary[i]-25),8,clGreen,strH);
             end
             else if(ary[i]>y0)then
             begin
                  Str((Abs(y0-arr[i])):3:3,st);
                  strH:=st;
                  TextF:=TextABC.Create(x1-15,(ary[i]+15),8,clRed,strH);
             end;
 
         MoveTo(x1,ary[i]);
         x1:=x1+30;
         LineTo(x1,y0);
         LineTo(x0,y0);
 
         Randomize;
         rr:=Random(256);
         gg:=Random(256);
         bb:=Random(256);
 
         if(ary[i]<y0)then
              FloodFill((x0+10), y0-1, rgb(rr,gg,bb))
         else if(ary[i]>y0)then
              FloodFill((x0+10), y0+1, rgb(rr,gg,bb));
 
         x0:=x1;
         MoveTo(x0,y0);
     end;
 
     MaxY:=abs(arr[1]-y0);
     k:=1;
     for i:=1 to n do
     begin
         if((abs(ary[i]-y0))>MaxY)then
            begin
                 MaxY:=abs(arr[i]-y0);
                 k:=i;
            end;
     end;
 
     Str(k,strH);
     st:='Ìàêñèìàëüíîå çíà÷åíèå âûñîòû: ';
     Str(MaxY,strH);
     st:=st+strH;
     TextF:=TextABC.Create(50,windowheight-40,14,clBlack,st);
end.
это сама программа для построения диаграммы и считывания данных с файла,
а это:

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
Program TreanglFileRandom;
var
k,n:integer;
MaxY, divY:real;
initFile: file of real;
begin
cls;
//=================------------------//
    assign(initFile,'initFile.txt');
    n:=10;
//=================------------------//
     Randomize;
     rewrite(initFile);
     for k:=1 to n do
     begin
        divY:=Random(1000)/1000;
        MaxY:=(Random(380)+50)+divY;
        if (MaxY>=250)and(MaxY<=255)then
        MaxY:=MaxY+10;
        if (MaxY<250)and(MaxY>=245)then
        MaxY:=MaxY-10;
        write(initFile,MaxY);
     end;
//=================------------------//
close(initFile);
end.
Для создания файла со случайными значениями в определенном диапозоне.

Нужна же так же возможность создавать файл и записывать в него данные вручную.

Были подозрения, что возможно нужно делать не file of real, а file of text, но с приведением типов к text и из него возникли проблемы.

Подскажите кто может в чем проблема. Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2011, 13:13
Ответы с готовыми решениями:

Нельзя преобразовать тип function(x real) real к real
program Simpson; var x,a,b,h,s:real; n:integer; function Y(t:real):real; begin Y:=(exp(x*ln(exp)))/(x+5); end;

Program1.pas(7) : Нельзя преобразовать тип KeyValuePair<real,integer> к real
program pomogite; var x, y: real; begin readln(x); if x=&gt;-2 and 3&gt;=x then y:=sqrt(x*x+4) else if x&gt;3 then y:=6*x+8...

String -> Real
Есть ли стандартная функция перевода строки в тип риал, что-нибудь типа val, но для вещественных чисел?

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
21.11.2011, 15:33
Pascal
1
var f:text;
Создавай файл в Блокноте и пиши в него нужные числа через пробелы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2011, 15:33
Помогаю со студенческими работами здесь

Степень типа REAL в PascalABC
Здравствуйте, я новичок в программировании, возможно, что чего то недопонимаю. В общем, проблема такая, не могу написать нормально код, вот...

Преобразование типа из real в integer
можно ли в паскале перевести вещественную в целую переменную? (из real в integer)

Нельзя преобразовать тип real к integer
Пишет ошибку : Нельзя преобразовать тип real к integer procedure Repeat1; Const Alpha = 0.1; var I: real; Iter, n1 :...

Нельзя преобразовать тип real к integer
program l7; var F1,F2:text; R,K:real; i:byte; begin assign(F1,'E:\file1.txt'); rewrite(F1); ...

Нельзя преобразовать тип real к integer
Всем привет) В процессе написание программы у меня возникла следующая проблема: Строка 24: нельзя преобразовать тир real к integer....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru