Массивы

Тема в разделе "Pascal and Delphi", создана пользователем wfall, 1 окт 2013.

  1. wfall

    wfall New Member

    Регистрация:
    16 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    как сделать чтобы на листбоксе при выводе размерности матрицы отображались как сама матрица
    напр так:
    1 2 3
    4 5 6
    7 8 9
    а выводится так:
    1
    2
    3

    4
    5
    6

    7
    8
    9 помогите) пжл)
    unit Unit1;

    {$mode objfpc}{$H+}

    interface

    uses
    Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

    type

    { TForm1 }

    TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    private
    { private declarations }
    public
    { public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.lfm}

    { TForm1 }

    procedure TForm1.FormCreate(Sender: TObject);
    Var a:array[1..10,1..10] of byte;
    summ:array[1..10] of byte;
    i,j,m,n,max:integer;
    SummChet, SummNechet:integer;
    begin
    writeln('vvedite razmernost matrici mxn: ');
    m:=StrToInt(InputBox('Ввод','m= ',''));
    n:=StrToInt(InputBox('Ввод','n= ',''));
    for i:=1 to m do
    for j:=1 to n do begin
    a[i,j]:=StrToInt(InputBox('Ввод','a['+IntToStr(i)+','+IntToStr(j)+']= ',''));
    end;
    for i:=1 to m do begin
    for j:=1 to n do begin
    ListBox1.AddItem(IntToStr(a[i,j]),nil);
    summ:=summ+a[i,j];
    end;
    ListBox1.AddItem('',nil);
    end;
    ListBox1.AddItem('summa elementov kajdoi stroki: ',nil);
    max:=summ[1];
    for i:=1 to m do
    begin
    ListBox1.AddItem(IntToStr(i)+' stoka: '+IntToStr(summ),nil);
    if summ>max then max:=summ;
    end;
    ListBox1.AddItem('max summa:'+IntToStr(max),nil);
    ListBox1.AddItem('pomenyali pervuyu stoku s poslednei: ',nil);
    for i := 1 to n do
    begin
    j := a[1, i];
    a[1, i] := a[m, i];
    a[m, i] := j;
    end;
    for i := 1 to m do
    begin
    for j := 1 to n do
    ListBox1.AddItem(IntToStr(a[i,j]),nil);
    ListBox1.AddItem('',nil);
    end;
    // Считаем сумму четных/нечетных элементов
    ListBox1.AddItem('summa elementov 4etnih i ne4etnih 4isel: ',nil);
    SummChet := 0;
    SummNechet := 0;
    for i := 1 to m do
    for j := 1 to n do
    begin
    if (a[i, j] mod 2 = 0) then
    inc(SummChet, a[i, j])
    else
    inc(SummNechet, a[i, j]);
    end;
    ListBox1.AddItem('summa chetnih: '+IntToStr(SummChet),nil);
    ListBox1.AddItem('summa nechetnih: '+IntToStr(SummNechet),nil);
    ListBox1.AddItem(IntToStr(i)+' stoka: '+IntToStr(summ),nil);
    end;

    end.
     

    Вложения:

  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    for i := 1 to m do
    begin
    for j := 1 to n do
    ListBox1.AddItem(IntToStr(a[i,j]),nil); // почему тут nil?
    ListBox1.AddItem('',nil);
    end;
    ведь nil - конец строки, вы ставите его в каждую строку, поэтому и появляются лишние переводы.
     
Загрузка...
Похожие Темы - Массивы
  1. Искушенный
    Ответов:
    0
    Просмотров:
    432
  2. Искушенный
    Ответов:
    1
    Просмотров:
    427
  3. Искушенный
    Ответов:
    1
    Просмотров:
    394
  4. Rpp
    Ответов:
    1
    Просмотров:
    812
  5. romanovbadboy2
    Ответов:
    0
    Просмотров:
    670

Поделиться этой страницей