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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2012, 22:13   #1
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
Восклицание программа на делфи

Постановка задачи: разработать приложение для работы с векторами. При разработке приложения использовать следующие компоненты: MainMenu, OpenDialog, SaveDialog, UpDown. По нажатию соответствующих кнопок должны происходить запись и чтение из файла вектора и его размерности. Вывод полученных результатов должен осуществляться на отдельную форму. Должны быть обработаны все некорректные случаи ввода исходных данных.

Само задание:
1. Найти произведение элементов с четными индексами.
2. Найти наибольший положительный элемент вектора.
3. Сортировка методом парного обмена.


Внизу вложено программа и задание. ( Там более подробно описана тема и задание).
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  SIZE = 5;
var
  a: array[1..SIZE] of integer;
  k: integer; // текущий элемент массива
  i: integer; // индекс для ввода и вывода массива
  changed: boolean; // TRUE, если в текущем цикле были обмены
  buf: integer; // буфер для обмена элементами массива
begin
  // ввод массива
  for i := 1 to SIZE do
    a[i] := StrToInt(StringGrid1.Cells[i - 1, 0]);
  label2.caption := '';

  // сортировка массива
  repeat
    Changed := FALSE; // пусть в текущем цикле нет обменов
    for k := l to SIZE - 1 do
      if a[k] > a[k + l] then
      begin // обменяем k-й и k+1-й элементы
        buf := a[k]; a[k] := a[k + l]; a[k + l] := buf;
        changed := TRUE;
      end;

    // вывод массива
    for i := l to SIZE do
      Label2.caption := label2.caption + ' ' + IntTostr(a[i]);
    Label2.caption := label2.caption + #13;
  until
    not changed; // если не было обменов, значит

  // массив отсортирован
  Label2.caption := label2.caption + #13 + 'Maccив отсортирован.';
end;
  procedure TForm2.Button2Click(Sender: TObject);
  min:=A[1,1];
  posMin:=1;
  for i:=2 to n do
    if min>A[i,i] then
    begin
      min:=A[i,i];
      posMin:=i;
    end;
  Writeln(#13#10'Min = ', min:4:2);

  for i:=1 to n do
    B[i]:=A[i,posMin];

  for i:=1 to n do
    for j:=1 to m-1 do
      if B[j]>B[j+1] then
      begin
        t:=B[j];
        B[j]:=B[j+1];
        B[j+1]:=t;
      end;
  Writeln(#13#10'Sorted vector B = ');
  for i:=1 to n do
    writeln(B[i]:4:2, ' ');

  for i:=1 to n do
  begin
    t:=A[i,2];
    A[i,2]:=A[i,4];
    A[i,4]:=t;
  end;

  Writeln(#13#10'Result matrix - ');
  for i:=1 to n do
  begin
    for j:=1 to m do
      write(A[i,j]:4:2,'   ');
    Writeln;
  end;
  readln;
end;

procedure TForm3.Button3Click(Sender: TObject);
close;
end;
end.
Вложения
Тип файла: doc более точное задание для программы.doc (29.0 Кб, 13 просмотров)
Anton94.by вне форума Ответить с цитированием
Старый 17.10.2012, 22:17   #2
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
По умолчанию

Можете к этому заданию в делфи сделать рабочий лист. ( Добавить Edit, Label, Button).
И проверьте правильно ли написан код. ( Здесь будет наверное 3 кнопки: Расчитать значение, видимость/доступность, выход).

Последний раз редактировалось Anton94.by; 17.10.2012 в 22:20.
Anton94.by вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа в делфи Seferus Общие вопросы Delphi 2 29.06.2012 01:29
нужна программа на делфи 7 Анатолий.1991 Помощь студентам 7 03.03.2012 15:26
Программа на делфи misher Общие вопросы Delphi 6 20.07.2010 20:53
Программа на Делфи max214145 Фриланс 4 26.05.2010 20:09
программа на Делфи hohol90 Помощь студентам 5 11.03.2010 15:44