Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массивы и символьные строки [D7]


Страницы:   1 2 3

СветаНеМогуСделать ©   (2012-06-10 11:44:00) 

Всем доброе утро!
Не могу сделать 2-е задачи по Delphi.
1-ая. Работа с массивами.
Размерность массива 80
Диапазон значений -40 -60
Определить среднюю длину непрерывных участков положительных чисел.

2-ая. Символьные строки и функции.
Функция переписывает все символы строки в обратном порядке.

Делаю программирование 1-ый раз. Читала мет.указания и смогла сделать первые три задания (они полегче). Эти не получаются. Примеры похожие находила - но о конца не разобралась. Если кому-то не сложно.... помогите пожалуйста.....


Palladin   (2012-06-11 01:57:00) [1]

Лесом


Юрий Зотов   (2012-06-10 16:50:00) [2]

Непонятно - зачем менеджеру, который уже имеет высшее, делать студенческуюработу по програмированию?


Dennis I. Komarov   (2012-06-10 16:33:00) [3]


> Anatoly Podgoretsky ©   (10.06.12 15:58) [43]

За что Вы ее так, д.Толя?


Ega23   (2012-06-10 16:26:00) [4]


> Боллбастерша   (10.06.12 14:50) [41]
>
>
> > Но не разобралась про среднюю длину...
>
> Около 16


23 вообще-то.


Anatoly Podgoretsky   (2012-06-10 15:58:00) [5]


> Dennis I. Komarov, очень мило что вы за меня переживаете
> :*

Он тебя любит :-)


Dennis I. Komarov   (2012-06-10 15:04:00) [6]


> Ну ладно ребят, если уже начались шутки....значит серьезно
> не воспринимаете.
> Всем спасибо за помощь.
> И да...ваша взяла я понимаю что задание с массивами я самостоятельно
> не сделаю. За один день такое не учится.

Даже не пыталась... Задача на пару часов, не больше. Учиться не хочешь, значит и нечего сдавать


Боллбастерша   (2012-06-10 14:50:00) [7]


> Но не разобралась про среднюю длину...

Около 16


Sha   (2012-06-10 14:50:00) [8]

> Inovet ©   (10.06.12 14:24) [36]
>> [28] Sha ©   (10.06.12 14:02)
>> TForm1.Button4Click
> У тебя там ещё 3 горячих кусочка припрятано?:)


Да )
Заметил, что почти не видно развернутых циклов у дельфистов ни здесь, ни на sql.ru
Вот и писал вчера заметки http://guildalfa.ru/alsha/node/22

> Inovet ©   (10.06.12 14:31) [38]
> И, кстати, код Sha должен быть рабочий - можно взять и сдать.


Код действительно рабочий. Работает даже для одноэлементного массива.

> СветаНеМогуСделать ©   (10.06.12 14:37) [39]
> Сдать можно но объяснить то мне нет))

Там всего 2 переменных:
k - количество положительных чисел,
n - число перемен знака между группами.

В коде интенсивно используется то, что у отрицательных чисел старший (знаковый) бит имеет значение 1, и после сдвига вправо на 31 бит любое отрицательное число превращается в 1.


СветаНеМогуСделать   (2012-06-10 14:37:00) [9]

Сдать можно но объяснить то мне нет))


Inovet   (2012-06-10 14:31:00) [10]

И, кстати, код Sha должен быть рабочий - можно взять и сдать.


Inovet   (2012-06-10 14:26:00) [11]

> [35] СветаНеМогуСделать ©   (10.06.12 14:24)
> если уже начались шутки....значит серьезно не воспринимаете.

Я тебе вполне серьёзно расписал

> [25] Inovet ©   (10.06.12 13:50)

только там немного надо доделать.


Inovet   (2012-06-10 14:24:00) [12]

> [28] Sha ©   (10.06.12 14:02)
> TForm1.Button4Click

У тебя там ещё 3 горячих кусочка припрятано?:)


СветаНеМогуСделать   (2012-06-10 14:24:00) [13]

Ну ладно ребят, если уже начались шутки....значит серьезно не воспринимаете.
Всем спасибо за помощь.
И да...ваша взяла я понимаю что задание с массивами я самостоятельно не сделаю. За один день такое не учится.


Sha   (2012-06-10 14:21:00) [14]

> СветаНеМогуСделать

Я забыл защититься от деления на 0, последнюю строчку надо подправить:

 if k>0 then Memo1.Lines.Add(Format('%d %d %f',[k, n, k/n]))
 else Memo1.Lines.Add('там все числа отрицательные');


Inovet   (2012-06-10 14:20:00) [15]

> [32] СветаНеМогуСделать ©   (10.06.12 14:15)
> Inovet, вот правда. Я что то смотрю и до стадии "разобралась" как до луны.

В общем Sha немного пошутил, заменив обычные сравнения целых чисел шаманскими вычисляниеми с их машинным представлением. А так-то всё нормально.


СветаНеМогуСделать   (2012-06-10 14:15:00) [16]

Inovet, вот правда. Я что то смотрю и до стадии "разобралась" как до луны.
Увы...


Inovet   (2012-06-10 14:12:00) [17]

> [30] СветаНеМогуСделать ©   (10.06.12 14:10)
> Sha спасибо буду разбираться.

Ты сначала классическим способом попробуй, а там уже можно и с извращениями поэксперементировать.:)


СветаНеМогуСделать   (2012-06-10 14:10:00) [18]

Sha спасибо буду разбираться.

Dennis I. Komarov, очень мило что вы за меня переживаете :*


Dennis I. Komarov   (2012-06-10 14:05:00) [19]


> Разбирайся )

Теперь точно не сдаст...


Sha   (2012-06-10 14:02:00) [20]

> СветаНеМогуСделать ©   (10.06.12 13:48) [24]
> С диапазоном я тоже приблизительно разобралась.
> Но не разобралась про среднюю длину...


Разбирайся )

procedure TForm1.Button4Click(Sender: TObject);
const
 min = -40;
 max =  60;
 len =  80;
 hig =  len-1;
 rig =  SizeOf(integer)*8-1;
var
 a: array of integer;
 i, k, n: integer;
begin;
 SetLength(a, len);
 Randomize;
 for i:=0 to hig do a[i]:=Random(max-min+1)+min;
 k:=len; n:=0;
 for i:=0 to hig do begin;
   dec(k,a[i] shr rig);
   inc(n,(a[i] xor a[(i+1) mod len]) shr rig);
   end;
 n:=(n+2-(a[0] or a[hig]) shr rig) shr 1;
 Memo1.Clear;
 for i:=0 to hig do Memo1.Lines.Add(IntToStr(a[i]));
 Memo1.Lines.Add(Format('%d %d %f',[k, n, k/n]));
 end;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо