Вывод переменных в графическом режиме в паскале

Рейтинг: 0Ответов: 1Опубликовано: 04.12.2014

Подскажите, пожалуйста, почему в графическом режиме в паскале не выводится переменная, когда пишу outtextxy(x,y,p[i]);, при этом p это интеджеровский массив.

Обновление

Что я не так делаю, подскажите, пожалуйста. При этом коде выводится только последний элемент, т.e. когда i=k:

uses crt,graph;
var k,i,m,dr,md:integer;
    pr,par:string;
p:array[1..100] of real;
BEGIN
  readln(k);
  for i:=1 to k do readln(p[i]);
  initgraph(dr,md,' ');
  for i:=1 to k do
    str(p[i],pr);
  for i:=1 to k do begin
    str(i,par);
    setcolor(i);
    outtextxy(100+80*(i-1),430,pr[i]);
    outtextxy(100+80*(i-1),440,par[i]);
    readln;
    end;
END.

Ответы

▲ 1

Возможно, выводите цветом фона и просто не можете увидеть вывод.
Возможно, элемент с индексом i отсутствует в массиве.
Возможно, вы не видите вывод, т.к. x или y выходят за границы экрана.
Возможно, не активирован графический режим или еще что-нибудь.

Обновление

По-моему, у тебя все выводится на одних и тех же местах на экране. Ты же координату у не меняешь. Поэтому ты и видишь только последнее выведенное значение. Кстати, зачем там readln? Я уже не помню паскаль, но, по-моему, readln используется для считывания введенных значений. Для смены строк в графическом режиме пользуйся изменением координаты y.

Обновление

Да, ты прав. А что происходит, когда ты выводишь pr[i]? В строке str(i,par) ты перевел счетчик i из integer в string и присвоил значение переменной par. Что ты хочешь получить из строки, состоящей из одного символа по индексу больше 1? Разве str() при передаче в нее вторым параметром непустой строки дописывает ее вместо банального присваивания нового значения?