Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Рисование графика, беря значения из файла 
V
    Опции темы
dilik
  Дата 9.9.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



Доброе время суток!
 Я не очень силен в программировании, и поэтому хочу спросить: как построить график по заданным числам. Эти данные хранятся в файле в виде цифры. Необходимо построить 2 графика - 
1) обычная ломанная (зависимость балла по Y и попытке {просто числа от 1 до ...} по Х).
2) столбчатая диаграмма (только последних 3 значения)

сама задача заключается в следующем - пользователь отвечает на вопросы теста. после прохождения теста в файл записывается количество правильных ответов. Пользователь может пройти тест еще раз. Это уже второе значение и т.д... Программа должна прочитать эти значения и вывести график результатов. К примеру, пользователь первый раз ответил правильно на 6 вопросов, второй - на 8, третий - на 3...


ПОЖАЛУЙСТА!!!

PM WWW ICQ   Вверх
Alexeis
Дата 9.9.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



На закладке [Additional] есть прекрасный компонент TChart, который может все перечисленое строить + оч. функциональный и имеет гибкую систему настроек позволяющую, менять многие параметры.
Просто надо дважды на нем кликнуть и откроется мощный эксперт!

Это сообщение отредактировал(а) alexeis1 - 9.9.2006, 19:38


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
dilik
Дата 10.9.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



а как считать данные из файла (последние 3 значения) в Chart? 
Помогите, а то я никак не разберусь в нем!
PM WWW ICQ   Вверх
Alexeis
Дата 10.9.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



Зависит от структуры файла и типа данных, а добавляются данные просто.
Содается линейная серия и добавляются данные мметодом addXY, addY
Код

Series1.addXY(x1, x2);



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Rodman
Дата 11.9.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



Тебе нужно считать последние две пары значений??? или как ты хочешь три значения в TChart включить???

PM MAIL WWW Skype GTalk YIM MSN   Вверх
dilik
Дата 14.9.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



Цитата(Rodman @ 11.9.2006,  15:37)
Цитата
Тебе нужно считать последние две пары значений??? или как ты хочешь три значения в TChart включить???

Вот как я реализовал вывод первых трех чисел: 

Код

unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RbDrawCore, RbButton, TeEngine, Series, ExtCtrls, TeeProcs,
  Chart, StdCtrls;

type
  TForm5 = class(TForm)
    RbButton1: TRbButton;
    Chart1: TChart;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Series1: TBarSeries;
    procedure RbButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;
     F_vop,F_ot:textfile;
 str:string;
implementation

{$R *.dfm}

procedure TForm5.RbButton1Click(Sender: TObject);
begin
Application.Terminate;
end;


Procedure TForm5.FormCreate(SEnder: TObject);
Var i,xxx,zzz,yyy:Integer;
Begin
Assignfile(F_vop,'ball');
{$I-}
Reset(F_vop);
{$I+}
if IOResult<>0 then
begin
ShowMessage('         Ошибка открытия файла с вопросами!          ');
Application.Terminate;
end;
readln(F_vop,str);
edit1.Text:=str;
readln(F_vop,str);
edit2.Text:=str;
readln(F_vop,str);
edit3.Text:=str;
xxx:=StrToInt(Edit1.Text);
yyy:=StrToInt(Edit2.Text);
zzz:=StrToInt(Edit3.Text);
Series1.AddXY(1,xxx,'');
Series1.AddXY(2,yyy,'');
Series1.AddXY(3,zzz,'');
End;


end.





А как брать последние три числа из файла???
PM WWW ICQ   Вверх
Alexeis
Дата 14.9.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



dilik, для текстовых файов так невозможно, нужно считать все записи до конца файла, можно в одни и те же переменные проверяя после каждого чтения нет ли конца файла. Когда будет достигнут конец файла в трех записях будут три последних значения. Такие заморочи происходят только при обращению к файлу как к текстовому. При работе с ним как с не типизированым усложняется чтение, но зато становится возможным свободное перемещение по файлу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
dilik
Дата 17.9.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 9.5.2006
Где: CCCP

Репутация: нет
Всего: нет



а нельзя ли дойти до конца файла, а потом считать данные снизу вверх?  smile 
PM WWW ICQ   Вверх
Alexeis
Дата 17.9.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



dilik, можно, но не для файлов открытых в текстовом режиме.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.