Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2010, 20:54   #1
sokla
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 12
Радость Гистограмма по числам из массива

Нужно cделать процедуру для построения гистограммы в Паскале по числам из массива записей a[i].price Для данной программы
Заранее благодарю!

Код:
program sokol;
uses crt,graph;
type tbase=record
    code:string[20];
    name:string[20];
    price:real;
    number:integer;
    sum:real;
    end;
    tmas=array[1..40] of tbase;
var a:tmas;
    i,kol:integer;
    procedure stvor(n:integer; var b:tmas);
    var k:byte;
     begin
        for i:=1 to n do
        with b[i] do
        begin
              writeln('Vvedit naimenuvanna tovaru');
              if k<>1 then readln(name);
              readln(name);
              k:=1;
              writeln('Vvedit cod tovaru');
              readln(code);
              writeln('Vvedit tsinu tovaru');
              readln(price);
              writeln('Vvedit kilkist tovaru');
              readln(number);
              sum:=price*number;
        end;
    end;
    procedure vyvod( n:integer; b:tmas);
    begin
        textbackground(15);
        textcolor(4);
        writeln('Im9      Kod      Tsina    Kilkist  Suma      ');
        textcolor(0);
        window(1,2,10,n+2);
        for i:=1 to n do with b[i] do writeln(name);
        window(11,2,20,n+2);
        for i:=1 to n do with b[i] do writeln(code);
        window(21,2,30,n+2);
        for i:=1 to n do with b[i] do writeln(price:5:2, ' ua');
        window(31,2,40,n+2);
        for i:=1 to n do with b[i] do writeln(number);
        window(41,2,50,n+2);
        for i:=1 to n do with b[i] do writeln(sum:5:2, ' ua');
    end;

begin
    clrscr;
    writeln('Vvedit kilkist naimenuvan tovariv');
    read(kol);
    stvor(kol,a);
    clrscr;
    vyvod(kol,a);
    readkey;
end.


Зделал вот такую процедурку, но она не работает..

Код:
procedure diagr(b:tmas;n:integer);
    var conx,cony,maxx,maxy,r,d:integer;
	maxtov,h:real;
	begin
	d:=detect; initgraph(d,r,'');
	maxx:=getmaxx;
	maxy:=getmaxy;
	conx:=trunc(maxx/(n+2));
	cony:=trunc(maxy*3/5);
	maxtov:=b[1].price;
	for i:=1 to n do
	begin
		if b[i].price>maxtov then maxtov:=b[i].price;
	end;
	h:=3*cony/maxtov;
	randomize;
	setcolor(white);
	for i:=1 to n do bar(i*conx,4*cony,(i+1)*conx,trunc(4*cony-b[i].price*h));
	end;
хотел зделать так, чтобы при любом N количестве товаров, гистограмма имела нормальный вид..
если у когото есть конструктивные предложения пишите в аську.. 436915945 если что отблагодарю..

Последний раз редактировалось sokla; 05.01.2010 в 22:09.
sokla вне форума Ответить с цитированием
Старый 06.01.2010, 12:15   #2
sokla
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 12
По умолчанию

гг.. нашел ошибку можно сказать и без Вас.. можете удалять тему

Код:
procedure diagr(b:tmas;n:integer);
    var conx,cony,maxx,maxy,r,d:integer;
	maxtov,h:real;
	begin
	d:=detect; initgraph(d,r,'');
	maxx:=getmaxx;
	maxy:=getmaxy;
	conx:=trunc(maxx/(n+2));
	cony:=trunc(maxy/5);
	maxtov:=b[1].price;
	for i:=1 to n do
	begin
		if b[i].price>maxtov then maxtov:=b[i].price;
	end;
	h:=3*cony/maxtov;
	randomize;
	for i:=1 to n do
  begin
       setcolor(random(15));
      bar(i*conx,4*cony,(i+1)*conx,trunc(4*cony-b[i].price*h));
  end;
  closegraph;
	end;
sokla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Гистограмма xxxPascalxxx Помощь студентам 1 05.11.2009 15:05
Сортировка по числам... ZuBy Общие вопросы Delphi 8 08.09.2009 07:08
PHP: использование элемента массива как массива Sudia Помощь студентам 1 20.02.2009 20:48
Как разбить число по числам? maxim_ov Microsoft Office Excel 3 04.08.2008 16:23
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44