Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
1

Посодействуйте в доработке

16.02.2011, 21:50. Показов 736. Ответов 11
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure TForm1.Button1Click(Sender: TObject);
var
   a:array[0..5,0..5] of integer;
   i,j,obr:integer;
    found:boolean;
begin
Что здесь писать?
   obr:=StrToInt(Edit1.text);
   found:=false;
   i:=1;
   j:=1;
repeat
if a[i,j]=obr then found:=true else inc(i); inc(j);
until (i<5) and (j<5) or (found=true);
If found=true then Label3.Caption:=IntToStr(a[i,j])
else
Label3.Caption:='Элемента в массиве нет!';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a:array[0..5,0..5] of integer;
 i,j:integer;
begin
 Randomize;
   For i:=0 to 5 do
    For j:=0 to 5 do
    Begin
    a[i,j]:=random(100)-50;
    stringgrid1.Cells[i,j]:=Inttostr(a[i,j]);
    end;
end;
 
end.
Проверить, есть ли в целочисленном двумерном массиве элемент с заданным значением.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2011, 21:50
Ответы с готовыми решениями:

Помощь в доработке калькулятора.
Люди, помогите пожалуйста. написал простенький калькулятор, который умеет выполнять несколько...

Помощь в доработке сортировки
Помогите отсортировать список в StringGride

Помощь в доработке сортировки
Сортировка по 1-ому столбцу массива ss := StringGrid1.Cells; // Раздел 1.1 ss1 :=...

Сумма прописью (посодействуйте, как добавить копейки)
Люди Добрые! - помогите кто чем может... Есть код, как в него &quot;запилить&quot; вывод копеек прописью?...

11
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
17.02.2011, 09:23 2
Delphi
1
2
3
repeat
if a[i,j]=obr then found:=true else inc(i); inc(j);
until (i<5) and (j<5) or (found=true);
вот здесь у тебя не правильно.
во-первых, ты одновременно увеличиваешь i и j, то есть пройдешь не по всем элементам, а только по главной диагонали.
во-вторых, выход из until осуществляется при истинном условии. то есть у тебя цикл выполнится только один раз.
1
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,315
17.02.2011, 10:50 3
stalker999, в твоей программе массивы a:array[0..5,0..5] of integer - это совершенно разные массивы, область видимости которых ограничена процедурами обработки нажатия кнопок... Исправляй!
0
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
18.02.2011, 21:52  [ТС] 4
так и не дошло как доделать...может поможете?
0
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
18.02.2011, 22:05 5
используи вместо repeat
Delphi
1
2
for to do
  for to do
0
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
18.02.2011, 23:14  [ТС] 6
Осталось немного..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
end;
procedure TForm1.Button3Click(Sender: TObject);
var
a:array[0..5,0..5] of integer;
 i,j,s,n:integer;
 
begin
 For i:=0 to 5 do
For j:=0 to 5 do
Begin
n:=Strtoint(Edit1.Text);
s:=StrToInt(StringGrid1.Cells[i,j]);
if s=n then label3.Caption:='Элемент найден!' else label3.Caption:='Элемента нет!' ;//
почему то после ввода заведомо имеющегося числа в массиве выдаёт, что его нет, а если убрать
else label3.Caption:='Элемента нет!', то всё нормально. В чём ошибка?
end;
end;
Добавлено через 12 минут
господа, нужно сейчас сделать, откликнитесь пожалуйста...
0
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
18.02.2011, 23:59 7
даже не буду спрашивать, ЗАЧЕМ ТЕБЕ ЕТО?
a:array[0..5,0..5] of integer;
не работать не может, 100%
Delphi
1
2
3
4
5
6
7
8
9
10
var
 i,j:integer;
 N: STRING; // если принципиально, можеш оставить Integer, но так удобнее
begin
  n := Edit1.Text;
  For i := 0 to 5 do
    For j := 0 to 5 do
      if N = StringGrid1.Cells[i,j] then label3.Caption:='Элемент найден!'
        else label3.Caption:='Элемента нет!' ;
end;
1
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
19.02.2011, 00:21  [ТС] 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[0..5,0..5] of integer;
 i,j:integer;
begin
 Randomize;
   For i:=0 to 5 do
    For j:=0 to 5 do
    Begin
    a[i,j]:=random(100)-50;
    stringgrid1.Cells[i,j]:=Inttostr(a[i,j]);
    end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
a:array[0..5,0..5] of integer;
 i,j,s:integer;
  n:string;
begin
  n := Edit1.Text;
  For i := 0 to 5 do
    For j := 0 to 5 do
      if N = StringGrid1.Cells[i,j] then label3.Caption:='Ýëåìåíò íàéäåí!'
else label3.Caption:='Ýëåìåíòà íåò!' ;;
 
end;
end.
вот весь код, опять также, не пашет, голова уже крУгом идёт...
0
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
19.02.2011, 00:30 9
а в какои строке ошибка и какая, настолько секретно, что ты не можеш сказать?

расскажи вообше что должно происходить?
0
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
19.02.2011, 00:33  [ТС] 10
Не ошибка, я же писал выше, после ввода заведомо имеющегося числа в массиве выдаёт, что его нет, а если убрать эту строку
else label3.Caption:='Элемента нет!', то всё нормально.
0
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
19.02.2011, 00:41 11
мда, чет я тоже стормазил(
естествено так и должно быть
цикл проверяет, каждыи раз изменяя лабел
когда доходит до твоего числа, говорит что есть
но потом же идет дальше, тоесть последнии елемент не равен
значит не наиден)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button1Click(Sender: TObject);
var
  a: array [0..5,0..5] of integer;
  i,j:integer;
begin
  Randomize;
  For i:=0 to 5 do
    For j:=0 to 5 do
    Begin
      a[i,j]:=random(100)-50;
      stringgrid1.Cells[i,j]:=Inttostr(a[i,j]);
    end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  i,j:integer;
  n:string;
  c: boolean;
begin
  n := Edit1.Text;
  c := False;
  For i := 0 to 5 do
    For j := 0 to 5 do
      if N = StringGrid1.Cells[i,j] then c := True;
  if c then label1.Caption:='Элемент найден!';
    else label1.Caption:='Элемента нет!' ;;
end;
1
-10 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 73
19.02.2011, 00:55  [ТС] 12
ArtGrek, вот теперь всё работает, спасибо большое)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2011, 00:55

Посодействуйте в доработке задачи ОПЕРАТОРЫ ЦИКЛОВ
ЗАДАНИЕ №2. ОПЕРАТОРЫ ЦИКЛОВ Задание: Вычислить сумму s значений функции в точках Xj, которые...

посодействуйте в доработке задачи по массивам и подпрограмм
Преподаватель пишет в рецензии: Не вижу процедур и функций. Заполнение массива проведено...

Посодействуйте в доработке программы с функциями-шаблонами
Для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.