IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Построение диаграммы
Джейн Смит
сообщение 17.05.2010 18:34
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Аня

Репутация: -  0  +


Нужно построить диаграмму отображающую количество выпущенной продукции по дням декады. Я попыталась решить, но что-то у меня совсем ничего не работает. При запуске программы вводятся переменные, но когда дело доходит до выведения самой диаграммы, то всё возвращается на исходную, а вернее на текст программы.

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.


Объясните пожалуйста в чём дело?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 17.05.2010 19:07
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


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.
В твоем варианте были одинаковые (или почти одинаковые) прямоугольники в самом верху экрана
Попробуй так
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Джейн Смит
сообщение 17.05.2010 19:24
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Аня

Репутация: -  0  +


Большое спасибо, но задача всё равно не работает. Причём не работает странно. Она вообще не выводит диаграмму, только ввод переменных, а потом переключается обратно на текст программы. С чем это может быть связанно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 17.05.2010 19:39
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


у меня на FPC вот что получается


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.05.2010 20:47
Сообщение #5


Гость






Цитата
только ввод переменных, а потом переключается обратно на текст программы. С чем это может быть связанно?

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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"