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

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

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

> Помогите с задачей, Модуль Graph
SkyRideR
сообщение 7.02.2008 0:17
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

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


Всем привет. Нужно написать прогу, её задача в том чтобы считала кол-во символов в слове(текстовый), затем кол-во этих символов заносила в номер массива которому соответствует кол-во этих символов. После этого строила график отображая в каком номере массива, сколько символов. Большую часть сделал, а вот график
как-то не получается сделать

program dsv;
uses graph;
var
a : array[1..25] of integer;
GrDriver, GrMode : integer;
ffile : text;
buf : string;
i : integer;
begin
assign(ffile,'file1.txt');
reset(ffile);
while not eof(ffile) do begin
readln(ffile,buf);
while (pos(' ',buf) <> 0) do begin
i := pos(' ', buf);
inc(a[length(copy(buf, 1, i-1))]);
delete(buf, 1, i);
end;
inc(a[length(buf)]);
end;

begin
GrDriver := detect;
GrMode := 0;
initgraph(GrDriver, GrMode, '');

line(50,50,50,300);
line(50,300,500,300);
moveto(50*i, 300-(a[i]*4));
lineto(50*i, 300-(a[i]*4));

readln;
CloseGraph;
close(ffile);
end; end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 12.02.2008 1:02
Сообщение #2


Гость






Во-первых (и тебе мисс_граффити уже говорила об этом) пользуйся тегами, Без них программа просто не читаема.

Во-вторых, читай комментарии...

program dsv;
uses graph;
var
a: array[1..25] of integer;
GrDriver, GrMode: integer;

ffile: text;
buf, r, t, q, w : string;
i: integer;

begin
assign(ffile, 'c:\ctix.txt');
reset(ffile);
while not eof(ffile) do begin
readln(ffile, buf);
while (pos(' ', buf) <> 0) do begin
i := pos(' ', buf);
inc(a[length(copy(buf, 1, i-1))]);
delete(buf, 1, i);
end;
inc(a[length(buf)]);
end;
close(ffile);

GrDriver := detect;
GrMode := 0;
initgraph(GrDriver, GrMode, '');

{ Это вообще можно было не делать, можно подставить символы в outtextxy сразу}
r:='Y';
t:='X';

{ Выводить оси координат и их названия совсем не обязательно в цикле - выносим }
line(10,10,10,300);
line(10,300,600,300);

outtextxy(0, 10, r);
outtextxy(590, 310, t);

for i := 1 to 25 do begin
moveto(20*i, 300-(a[i]*4));
lineto(20*i, 300);

str(a[i], w);
{
не имей привычки делать что-то заранее. Вот перед тем,
как что-то выводить - конвертируй, а не где-то в самом начале...
}
moveto(20*i, 290-(a[i]*4));
outtextxy(20*i, 290-(a[i]*4), w);

str(i, q); { <--- Аналогично - конвертация перед выводом }
moveto(20*i, 290-(a[i]*4));
outtextxy(20*i, 310, q);
end;

{
В принципе, можно было объединить этот цикл с предыдущим, но
мне например не нравится переключать цвета туда-сюда. Поэтому
я вынес отрисовку ломаной в отдельный цикл...
}
setcolor(green);
moveto(10, 300);
for i := 1 to 25 do begin
lineto(20*i,290 - (a[i]*4));
end;

readln;
CloseGraph;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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