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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.04.2008, 17:19   #21
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию

Блинн, никак не соображу , как в Edit выводить Свободные, забронированныые и проданные места((да еще чтоб день менялся

avia.rar

Типа етого чтоль:

Код:
procedure TForm1.Edit1Change(Sender: TObject);
  Var n, a, a1, i: byte;
begin
  n:=StrToInt(Edit1.Text);
  i:=1;
  Label1.Caption:=IntToStr(sv);

end;
Т. е. так...быть может:

Код:
procedure TForm1.Edit1Change(Sender: TObject);
  Var n, a, sv, i: byte;
begin
  n:=StrToInt(Edit1.Text);
  i:=1;  a:=i+1;
    for i:=1 to n do begin
    sv:=a;
    Label1.Caption:=IntToStr(sv);
end;

end.

Последний раз редактировалось Stilet; 28.04.2009 в 08:40.
prog38 вне форума
Старый 21.04.2008, 17:47   #22
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Я предполагаю следующии алгоритм:
1. В обработчике Change едита мы сначало проверяем не выходит ли значение за пределы 1..30
2. Если оно выходит, то возвращаем текущее значение (тобишь x).
-------
Для хранение номера дня я пользую глобально переменую x. Меняю её и вызываю процедуру.
-------
3. Если не выходит за пределы то переменой х присваиваем число из едита и вызываем процедуру пересчёта.
4. Процедура пересчёта считывает переменую х. Заносит значения массива в таблицу и делает пересчёты значений пустых и бронированых мест.
Именно процедура меняет значения лабелов и делает нужные расчёты.

Сообственно на этом и основываются все действия:
Вложения
Тип файла: rar Passengers.rar (192.3 Кб, 11 просмотров)
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума
Старый 21.04.2008, 18:13   #23
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
Смущение

Спасибо огромное что не жалко времени на таких как я тратить ща кнопочку добавлю и оформляю, СЕНКС!!!
prog38 вне форума
Старый 27.04.2009, 19:12   #24
alish1986
Новичок
Джуниор
 
Регистрация: 27.04.2009
Сообщений: 1
По умолчанию

Цитата:
Сообщение от prog38 Посмотреть сообщение
Хелп, пожалуйста. Нужно составить программу, помогающую сообщать сведенияо местах на авиарейсы из Москвы в Иркутск на календарный месяц(30 дней). В файле прямого доступа хранится инфа о местах на рейс на заданное числов виде матрицы, в которой номер строки-ряд, номер столбца-номер места в ряду (всего 25 рядов, по 6 мест в ряду). Элемент матрицы может иметь след. значения: 0-место свободно, 1-продано, 2-забронировано. Считать, что в день имеется один рейс. Файлы имеют имена следующего типа: "daynn", где nn-число, на которое хранится инфа.
Например, "day15"-d этом файле хранятся сведения о местах на рейс, отправляющиеся 15ого числа. По требованию сообщать след.инфу:
- о кол-ве свободных мест на данный день
- о проданных местах на заданное число
- о проданных местах на весь месяц
- о брони на весь месяц
- о брони на заданное число

Заранее спасибо!
Ты сделал это задание, помоги мне у меня та же проблема, дай пожалуйста код программы, плизззз
alish1986 вне форума
Старый 28.04.2009, 03:56   #25
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию

сорри два раза запостила случайно

Последний раз редактировалось prog38; 28.04.2009 в 04:08.
prog38 вне форума
Старый 28.04.2009, 03:59   #26
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию

Цитата:
Сообщение от alish1986 Посмотреть сообщение
Ты сделал это задание, помоги мне у меня та же проблема, дай пожалуйста код программы, плизззз
Код:
Код:
unit Mosk_Irk;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, Buttons, ExtCtrls;

type
    TDay=array[1..6, 1..25] of Integer;
    TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    GroupBox2: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    StringGrid1: TStringGrid;
    Label7: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Panel1: TPanel;
    Label8: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure GetFree;
    procedure GetProd;
    procedure GetBron;
    procedure Button3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
Mas: array[1..30] of TDay;
f: file of TDay;
x, y, z, sum: Integer;
fn:string;

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
    x:=1;
    StringGrid1.Cells [0,0]:= 'Ряд/Место';
    StringGrid1.ColWidths[0]:= 60;
    // нумерация ячеек
      For y := 1 To 25 Do
      StringGrid1.Cells[y,0] := IntToStr(y);
      for z := 1 To 6 Do
      StringGrid1.Cells[0,z] := IntToStr(z);
      // обнуление массива
        for y:= 1 to 25 do
        StringGrid1.Cells[y,1] := IntToStr(0);
        for y:= 1 to 25 do
        StringGrid1.Cells[y,2] := IntToStr(0);
        for y:= 1 to 25 do
        StringGrid1.Cells[y,3] := IntToStr(0);
        for y:= 1 to 25 do
        StringGrid1.Cells[y,4] := IntToStr(0);
        for y:= 1 to 25 do
        StringGrid1.Cells[y,5] := IntToStr(0);
        for y:= 1 to 25 do
        StringGrid1.Cells[y,6] := IntToStr(0);
end;

procedure Tform1.GetFree;//подсчет свободных мест на заданное число
begin
  sum:= 0;
  for y:= 1 to 6 do
  for z:= 1 to 25 do
    if Mas[x,y,z]=0 then
      sum:= sum + 1;
  Label2.Caption:= 'Свободных мест:  ' + FloatToStr (sum);
end;

Procedure Tform1.Edit1Exit (Sender: TObject);
var  i,j:byte;
begin
  x:=strtointdef(Edit1.Text,1);
  If x<1 then
    x:= 1;
  If x>30 then
    x:= 30;
    if x<10 then fn:='day0'+inttostr(x)
    else fn:='day'+inttostr(x);
        AssignFile (f, fn);
{$I-}
reset(f,fn);
{$I+}
        if ioresult<>0 then begin
           for i:=1 to 6 do for j:=1 to 25 do Mas[x,i,j]:=0;
        end
        else begin
        read(f,Mas[x]);
        CloseFile(f);
        end;

        for i:=1 to 6 do for j:= 1 to 25 do
        stringgrid1.Cells[j,i]:=inttostr(mas[x,i,j]);

GetFree;
end;

procedure Tform1.GetProd;// подсчет проданных мест на заданный день
begin
  sum:= 0;
  for y:= 1 to 6 do
  for z:= 1 to 25 do
    if Mas[x,y,z]=1 then
      sum:= sum+1;
  Label3.Caption:= 'Проданных мест:  ' + FloatToStr (sum);
end;

procedure Tform1.GetBron; // подсчет забронированных мест на заданный день
begin
  sum:=0;
  for y:= 1 to 6 do
  for z:= 1 to 25 do
    if Mas[x,y,z]=2 then
      sum:=sum+1 ;
  Label4.Caption:= 'Забронированных мест:  ' + FloatToStr (sum);
end;

procedure Tform1.Button1Click(Sender: TObject);// проданные места за весь месяц
begin
  AssignFile (f, fn);
  sum:= 0;
  for x:=1 to 30 do
  for y:= 1 to 6 do
  for z:= 1 to 25 do
    if Mas[x,y,z]=1 then
      sum:= sum + 1;
      Label5.Caption:= 'Проданных мест:  ' + FloatToStr (sum);
end;

procedure Tform1.Button2Click(Sender: TObject);// забронированные места за весь месяц
begin
AssignFile (f, fn);
  sum:= 0;
  for x:=1 to 30 do
  for y:= 1 to 6 do
  for z:= 1 to 25 do
    if Mas[x,y,z]=2 then
      sum:= sum + 1;
      Label6.Caption:= 'Забронированных мест:  ' + FloatToStr (sum);
end;

procedure Tform1.StringGrid1SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
  AssignFile(f,fn);
  {$I+}
  Rewrite(f);
  Mas[x,ARow,ACol]:=strtointdef(Value,0);
  GetFree;
  GetProd;
  GetBron;
  Write(f,mas[x]);
  CloseFile(f);

end;

procedure Tform1.Button3Click(Sender: TObject);// сохранение
begin
  AssignFile (f, fn);
  Reset(f);
  for y:= 1 to 6 do
  for z:= 1 to 25 do // без клозФайл-сохраняет почему-то
end;
end.
prog38 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в Си прочитать ЕХЕ файл в HEX виде ?? Юрий_BASE Общие вопросы C/C++ 1 18.04.2008 22:54
прога и чюжая прога benjaminfran Общие вопросы Delphi 5 28.03.2008 15:07
Меню в виде дерева pu4koff JavaScript, Ajax 7 16.10.2007 11:24