Помощь - Поиск - Пользователи - Календарь
Полная версия: Построение диаграммы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Джейн Смит
Нужно построить диаграмму отображающую количество выпущенной продукции по дням декады. Я попыталась решить, но что-то у меня совсем ничего не работает. При запуске программы вводятся переменные, но когда дело доходит до выведения самой диаграммы, то всё возвращается на исходную, а вернее на текст программы.

Program diagrama (input, output);
Uses crt,graph;
Type
t=array [1..10] of integer;
Var
x,y:t;
n,i,z,m,s,d,xn,xk,yn,yk:integer;
BEGIN
Clrscr;
write('Vvedite n=');
readln(n);
write('Vvedite x[1]=');
readln(x[1]);
m:=x[1];
For i:=1 to n do begin
readln (x[i]);
If x[i]>m then
m:=x[i];
end;
For i:=1 to n do
y[i]:=round(100*x[i]/m);
writeln('Vvedite koordinati');
readln (xn,yn,xk,yk);
d:=detect;
initgraph (d,s,'');
line (xn,yn,xk,yk);
For i:=1 to n do begin
z:=50+40*(i-1);
rectangle (z,yn-y[i],z+30,yn);
end;
readln;
closegraph;
readkey;
END.


Объясните пожалуйста в чём дело?
Client
Program diagrama (input, output);
Uses crt,graph;
Type
t=array [1..10] of integer;
Var
x,y:t;
n,i,z,m,s,d,xn,xk,yn,yk:integer;
BEGIN
Clrscr;
write('Vvedite n=');
readln(n);
write('Vvedite x[1]=');
readln(x[1]);
m:=x[1];
For i:=2 to n do begin
readln (x[i]);
If x[i]>m then
m:=x[i];
end;
For i:=1 to n do
y[i]:=round(100*x[i]/m);
writeln('Vvedite koordinati');
readln (xn,yn,xk,yk);
d:=detect;
initgraph (d,s,'');
line (xn,yn,xk,yk);
For i:=1 to n do begin
z:=50+40*(i);
rectangle (z,100 + yn-y[i],z+30,100 + yn);
end;
readln;
closegraph;
END.
В твоем варианте были одинаковые (или почти одинаковые) прямоугольники в самом верху экрана
Попробуй так
Джейн Смит
Большое спасибо, но задача всё равно не работает. Причём не работает странно. Она вообще не выводит диаграмму, только ввод переменных, а потом переключается обратно на текст программы. С чем это может быть связанно?
Client
у меня на FPC вот что получается
volvo
Цитата
только ввод переменных, а потом переключается обратно на текст программы. С чем это может быть связанно?

1) не инициализируется графический режим (проверяй через GraphResult, что возвращается, в хелпе есть пример использования)
2)
Цитата
y[ i ]:=round(100*x[ i ]/m);
При X[ i ] > 328 получишь вылет программы при включенной опции {$Q} (контроль переполнения)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.