Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизМассивы и символьные строки Найти похожие ветки
← →
СветаНеМогуСделать © (2012-06-10 11:44) [0]Всем доброе утро!
Не могу сделать 2-е задачи по Delphi.
1-ая. Работа с массивами.
Размерность массива 80
Диапазон значений -40 -60
Определить среднюю длину непрерывных участков положительных чисел.
2-ая. Символьные строки и функции.
Функция переписывает все символы строки в обратном порядке.
Делаю программирование 1-ый раз. Читала мет.указания и смогла сделать первые три задания (они полегче). Эти не получаются. Примеры похожие находила - но о конца не разобралась. Если кому-то не сложно.... помогите пожалуйста.....
← →
brother © (2012-06-10 12:11) [1]function mirror(s: string): string;
var
i: integer;
begin
result:= "";
for i:= High(s) downto 0 do
result:= result + s[i];
end;
← →
sniknik © (2012-06-10 12:22) [2]> Размерность массива 80
> Диапазон значений -40 -60
> Определить среднюю длину непрерывных участков положительных чисел.
если перед значениями минус то средняя длинна 0 (нет участков) если тире то 80 (есть один на весь массив).
← →
СветаНеМогуСделать © (2012-06-10 12:22) [3]А в полном законченном виде как это можно записать?
← →
brother © (2012-06-10 12:23) [4]а подумать?
← →
sniknik © (2012-06-10 12:24) [5]а вообще СветаНеМогуСделать, найди то, что умеешь и сделай это тому, кто сделает тебе в обмен задание которое ты не умеешь, а он умеет...
← →
Ega23 © (2012-06-10 12:27) [6]
function mirror(s: string): string;
var
i, cnt: integer;
begin
cnt := Length(s);
SetLength(Result, cnt);
for i:= 1 to cnt do
Result[i] := s[cnt - i + 1];
end;
← →
СветаНеМогуСделать © (2012-06-10 12:27) [7]Задание для первой задачи: Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон в варианте.
Для всех вариантов иметь ввиду что 0 считается положительным числом.
← →
Dennis I. Komarov © (2012-06-10 12:49) [8]
> СветаНеМогуСделать © (10.06.12 12:27) [7]
Так что не получается? Лень обуяла?
З.Ы.
> Для всех вариантов иметь ввиду что 0 считается положительным
> числом.
Целый "0" он не положительный и не отрицательный. Он "0"...
← →
СветаНеМогуСделать © (2012-06-10 12:55) [9]Нет, не лень. А неумение.
Я прошу о помощи в очень крайних ситуациях.
2 дня делала 3 задания. Но они по сравнению с этим очень простые.
Если реально кто-то может мне помочь или объяснить что нибудь - буду благодарна.
И я уже сказала что делаю первый раз.
← →
СветаНеМогуСделать © (2012-06-10 12:56) [10]А про ноль - так написано в задании к работе.
Т.е. это не моя придумка а преподавателя.
← →
Inovet © (2012-06-10 12:56) [11]> [6] Ega23 © (10.06.12 12:27)
> for i:= 1 to cnt do
а разделить на 2
← →
Inovet © (2012-06-10 12:58) [12]> [11] Inovet © (10.06.12 12:56)
А, ты же не в неё саму, тогда не надо делить.
← →
Dennis I. Komarov © (2012-06-10 13:00) [13]
> Нет, не лень. А неумение.
Что не умеешь?
1. Объявить массив целых чисел
2. и заполнить его случайными значениями.
← →
Sha © (2012-06-10 13:03) [14]> brother © (10.06.12 12:11) [1]
как отлаживал?
← →
Anatoly Podgoretsky © (2012-06-10 13:06) [15]Образование: высшее
← →
СветаНеМогуСделать © (2012-06-10 13:11) [16]Я - менеджер. Проходила С++ 7 лет назад. Уже ничего не помню.
Сдать нужно в понедельник.
Если вы все такие умные, то помогите, а не комментируйте. Не тратьте время впустую.
Ega23 и brother спасибо за помощь!!
← →
Inovet © (2012-06-10 13:14) [17]> [13] Dennis I. Komarov © (10.06.12 13:00)
> Что не умеешь?
Если эти пункты не умеет, то вместо
> [9] СветаНеМогуСделать © (10.06.12 12:55)
> мне помочь или объяснить что нибудь
а "сделать за меня всё".
← →
brother © (2012-06-10 13:21) [18]> как отлаживал?
в окне браузера)
← →
Боллбастерша (2012-06-10 13:23) [19]
> [D7]
> Не могу сделать 2-е задачи по Delphi.
> 2-ая. Символьные строки и функции.
> Функция переписывает все символы строки в обратном порядке.
uses StrUtils;
s := ReverseString(s);
← →
Dennis I. Komarov © (2012-06-10 13:24) [20]
> Сдать нужно в понедельник.
> Если вы все такие умные, то помогите, а не комментируйте.
> Не тратьте время впустую.
Так и пытаюсь... сделать за <> помочь
А ты не желаешь даже пошевелить извилинами
З.Ы
> Я - менеджер.
МЕНЕДЖЕР (от англ. manage — управлять) — специалист по управлению производством и обращением товаров, наемный управляющий. Менеджеры организуют работу на фирме, руководят производственной деятельностью групп сотрудников фирмы. Менеджер является должностным лицом фирмы, компании, в которой он работает, и входит в средний и высший руководящий состав фирм.
← →
СветаНеМогуСделать © (2012-06-10 13:30) [21]Про массивы я не понимаю задание.
Что за странный диапазон?
И как обозначить среднюю длину непрерывных участков положительных чисел.
Не могу понять визуально...
← →
Sha © (2012-06-10 13:35) [22]>> как отлаживал?
>в окне браузера)
браузер не той системы
← →
СветаНеМогуСделать © (2012-06-10 13:37) [23]var
A :string;
I,II,L :Integer;
Buf :Char;
Tmp :string;
begin
Readln(A);
Tmp := A;
L := Length(Tmp);
II := L div 2;
for I := 1 to II do
begin
Buf := Tmp[I];
Tmp[I] := Tmp[L - I + 1];
Tmp[L - I + 1] := Buf;
end;
Writeln(Tmp);
Readln;
end.
Смотрите. Все работает!!!!!
← →
СветаНеМогуСделать © (2012-06-10 13:48) [24]С диапазоном я тоже приблизительно разобралась.
Но не разобралась про среднюю длину...
← →
Inovet © (2012-06-10 13:50) [25]> [21] СветаНеМогуСделать © (10.06.12 13:30)
> Не могу понять визуально...
Массив - это коробочки расположенные для наглядности на прямой, каждой присвоен порядковый номер без пропусков пусть от 0 до 79. В коробочках лежат бумажки, на которых записаны числа от -40 до 60 (если я правильно понял задание).
Идём от 0-й коробочки по каждой до 79. Смотрим число на бумажке и делаем пометки на листочке. если стоит отметка "мы в положительном участке" = истина и текущее число положительное - увеличиваем счётчик количества положительных чисел, если "мы в положительном участке" = истина и текущее число отрицательное - увеличиваем счётчик положительных участков, если текущее число отрицательное - ставим отметку "мы в положительном участке" в ложь.
По завершинии цикла подсчитываем среднюю длину = количество положительных чисел / количество положительных участков.
Вроде так.
← →
Dennis I. Komarov © (2012-06-10 13:57) [26]
> Определить среднюю длину непрерывных участков положительных
> чисел.
+
> А про ноль - так написано в задании к работе.
> Т.е. это не моя придумка а преподавателя.
=
Определить среднюю длину непрерывных участков не отрицательных чисел.
← →
Dennis I. Komarov © (2012-06-10 13:57) [27][13] уже сделала?
← →
Sha © (2012-06-10 14:02) [28]> СветаНеМогуСделать © (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;
← →
Dennis I. Komarov © (2012-06-10 14:05) [29]
> Разбирайся )
Теперь точно не сдаст...
← →
СветаНеМогуСделать © (2012-06-10 14:10) [30]Sha спасибо буду разбираться.
Dennis I. Komarov, очень мило что вы за меня переживаете :*
← →
Inovet © (2012-06-10 14:12) [31]> [30] СветаНеМогуСделать © (10.06.12 14:10)
> Sha спасибо буду разбираться.
Ты сначала классическим способом попробуй, а там уже можно и с извращениями поэксперементировать.:)
← →
СветаНеМогуСделать © (2012-06-10 14:15) [32]Inovet, вот правда. Я что то смотрю и до стадии "разобралась" как до луны.
Увы...
← →
Inovet © (2012-06-10 14:20) [33]> [32] СветаНеМогуСделать © (10.06.12 14:15)
> Inovet, вот правда. Я что то смотрю и до стадии "разобралась" как до луны.
В общем Sha немного пошутил, заменив обычные сравнения целых чисел шаманскими вычисляниеми с их машинным представлением. А так-то всё нормально.
← →
Sha © (2012-06-10 14:21) [34]> СветаНеМогуСделать
Я забыл защититься от деления на 0, последнюю строчку надо подправить:
if k>0 then Memo1.Lines.Add(Format("%d %d %f",[k, n, k/n]))
else Memo1.Lines.Add("там все числа отрицательные");
← →
СветаНеМогуСделать © (2012-06-10 14:24) [35]Ну ладно ребят, если уже начались шутки....значит серьезно не воспринимаете.
Всем спасибо за помощь.
И да...ваша взяла я понимаю что задание с массивами я самостоятельно не сделаю. За один день такое не учится.
← →
Inovet © (2012-06-10 14:24) [36]> [28] Sha © (10.06.12 14:02)
> TForm1.Button4Click
У тебя там ещё 3 горячих кусочка припрятано?:)
← →
Inovet © (2012-06-10 14:26) [37]> [35] СветаНеМогуСделать © (10.06.12 14:24)
> если уже начались шутки....значит серьезно не воспринимаете.
Я тебе вполне серьёзно расписал
> [25] Inovet © (10.06.12 13:50)
только там немного надо доделать.
← →
Inovet © (2012-06-10 14:31) [38]И, кстати, код Sha должен быть рабочий - можно взять и сдать.
← →
СветаНеМогуСделать © (2012-06-10 14:37) [39]Сдать можно но объяснить то мне нет))
← →
Sha © (2012-06-10 14:50) [40]> 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.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.068 c