![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 08.01.2010
Сообщений: 4
|
![]()
Здравствуйте, уважаемые программеры!!
Задали задачки, помогите пожалуйста сделать... 1. Дан массив чисел а1,...,аn. Выяснить, имеются ли в данном массиве 2 идущих подряд положительных элемента. Подсчитать количество таких пар. (Тут често говоря не совсем понял, а что могут быть и отрицательные?? И какой массив - не уточняют, одномерный или двумерный...) 2. Отобразить элементы массива относительно центра a1 ↔ an, a2↔ an-1, a3↔ an-2,…) Для меня немного туманно, я только начал изучать языки высокого уровня... Если не сложно, помогите) |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Ну например так: Код:
p.s. - не оптимально но надеюсь ниче не пропустил ![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 08.01.2010
Сообщений: 4
|
![]()
Спасибо, а почему массив до 1000? Если одномерный, то тогда до 10 кажется)
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 62
|
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 08.01.2010
Сообщений: 8
|
![]()
procedure TForm1.Button1Click(Sender: TObject);
var i,j,s,p,k:integer; z:string; a:array[1..16,1..16] of integer; begin for i:=1 to 16 do begin for j:=1 to 16 do begin a[i,j]:=StrToInt(StringGrid1.cells[i,j]); end; end; for j:=1 to 16 do begin for i:=1 to 16 do begin StringGRid2.Cells[i,j]:=StringGrid1.Cells[i,j]; end; end; for j:=1 to 16 do begin for i:=1 to 16 do begin k:=StrToInt(StringGrid2.cells[i,j]); if k>192 then begin z:=StringGrid2.Cells[i,j]; StringGrid2.Cells[i,j]:='193'; StringGrid2.Cells[i+1,j]:=z; end; end; end; end; end; for j:=1 to 16 do begin s:=193; for i:=1 to 16 do begin if a[i,j]=a[i+1,j] then begin s:=s+1; StringGrid2.cells[i,j]:=IntToStr(s); if a[i-1,j]=a[i,j] then begin StringGrid2.Cells[i-1,j]:=''; end; end; if a[i,j]<>a[i+1,j] then begin StringGrid2.Cells[i,j]:=IntToStr(a[i,j]); end; end; end; for p:=1 to s do begin for j:=1 to 16 do begin for i:=1 to 16 do begin If StringGrid2.Cells[i,j]='' then begin z:=StringGrid2.Cells[i,j]; StringGrid2.Cells[i,j]:=StringGrid2.Cells[i+1,j]; StringGrid2.Cells[i+1,j]:=z; end; end; end; end; Вот к примеру этот код для двумерного массива. Находит в каждой строке повторяющиеся цифры, и выводит во второй массив Счетчик и само число. Признаком счетчика является число больше 192. Т.е. строка 1 2 2 2 3 3 4 6 5 заменяется строкой 1 195 2 194 3 4 6 5. |
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 08.01.2010
Сообщений: 4
|
![]()
Здравствуйте, всем спасибо!)) Реализовал так:
(количество положительных пар записывается в memo Код:
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 08.01.2010
Сообщений: 4
|
![]()
Мне опять нужен ваш совет, уважаемые форумчане!
![]() Циклический сдвиг элементов двумерного массива влево на 1 элемент у меня пока пусто совсем(( как можно это реализовать? Циклический, насколько я понимаю, это сдвиг без потери... т.е. a1,a2,a3...an -> a2,a3,...an,a1 ? Массив вводится в StringGrid1 Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi - массивы | dForm | Помощь студентам | 2 | 30.11.2009 17:57 |
массивы в delphi | grozzy | Помощь студентам | 5 | 22.10.2009 02:22 |
Delphi массивы | Misty | Помощь студентам | 2 | 25.05.2009 07:51 |
Массивы. Delphi | gree | Помощь студентам | 10 | 11.05.2009 22:11 |