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

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

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2009, 13:42   #1
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
Вопрос Проверьте программку...

Здрасте! Решаю контрольную работу на Делфи, раньше с ним не сталкивалась. Задачка вроде легкая, пытаюсь разобраться, но возникают вопросы... Помогите, пожалуйста, проверьте...

Нужно пределить максимальный элемент главной диагонали матрицы.
Моя программка не выдает результат, если он стоит на позиции (1,1). Подозреваю, что неправильно использую StringGrid... Подскажите правильный вариант...

unit Massiv;

interface

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

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
SpinEdit1: TSpinEdit;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
n,i,j,max:integer;
a:array[1..20,1..20] of integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=strtoint(SpinEdit1.Text);
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(20);
for i:=1 to n do
for j:=1 to n do
begin
StringGrid1.Cells[j-1,i-1]:=inttostr(a[i,j]);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=0 to 20 do
for j:=0 to 20 do
StringGrid1.Cells[j,i]:= '';
Edit1.Text:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
max:=a[1,1];
for i:=1 to n do

if a[i,i]>max then
begin
max:=a[i,i];
Edit1.Text:=inttostr(max);
end;
end;

end.
МяФ`ка вне форума Ответить с цитированием
Старый 21.08.2009, 13:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Нужно пределить
Это как? Что значит слово "перделить"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2009, 13:49   #3
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
По умолчанию

Это значит Определить..
МяФ`ка вне форума Ответить с цитированием
Старый 21.08.2009, 13:49   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это как? Что значит слово "перделить"
)))) Улыбнуло.
1. он написал не "перделить", "пределить"
2. имел в виду, скорее всего, "определить".
Hollander вне форума Ответить с цитированием
Старый 21.08.2009, 13:51   #5
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
По умолчанию

Я девушка!
МяФ`ка вне форума Ответить с цитированием
Старый 21.08.2009, 14:04   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В процедуре Button3Click строку Edit1.Text:=inttostr(max); вынесите из цикла в конец и всего делов. Изначально же максимум приравнивается первому элементу, потому условие в теле цикла не выполнится и ничего в Edit не выведется. Ну и цикл логичнее с двух начинать в данном случае.
pu4koff вне форума Ответить с цитированием
Старый 21.08.2009, 14:12   #7
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
По умолчанию

Спасибо за совет, щас попробую
МяФ`ка вне форума Ответить с цитированием
Старый 21.08.2009, 14:26   #8
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
По умолчанию

А можете подсказать как вычислить сумму x/i! (по i=1..n)? Нужно использовать все циклы... Я извиняюсь конечно за свое незнание, но "все" это сколько? For, while, repeat - я знаю, может и другие есть?
МяФ`ка вне форума Ответить с цитированием
Старый 21.08.2009, 15:15   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А можете подсказать как вычислить сумму x/i!
если не ошибаюсь:
Код:
var fact:longint;
for i:=1 to 10 do begin
 fact:=1;
 for j:=2 to i do fact:=fact*j;
 summ:=summ+x/fact;
end;
Цитата:
)))) Улыбнуло.
я случайно...
Цитата:
он написал
)))) Улыбнуло.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2009, 15:31   #10
МяФ`ка
Новичок
Джуниор
 
Регистрация: 21.08.2009
Сообщений: 6
По умолчанию

Спасибо за вариант
МяФ`ка вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите переделать программку ... hen Общие вопросы C/C++ 14 07.04.2009 21:12
проверьте программку пожалуйста! djem90 Помощь студентам 2 08.12.2008 01:35
Скомпилить программку в С++ Юль_кА Общие вопросы C/C++ 1 09.06.2008 22:40
Закиньте программку KlErik БД в Delphi 2 15.01.2007 14:49