Вот ребят задачка посложнее, НО...решать ниче не надо, код уже есть. С какого фига она считает не по модулю, если я везде указал что нужно вычитать по модулю? PHP: {Дан массив R(N)<= 50, Найти наибоьшее и наименьшее значение модуля разности между соседними элементами. Определить номера элементов, при которых эти значения достигаются.} uses crt; type ar = array[1..50] of integer; var r:ar; maxmod,minmod:integer; n,el,el2,i:byte; procedure FindMaxRMod(r:ar; n:byte; var el,el2:byte); begin maxmod := -maxint; minmod := maxint; el := 0; el2 := 0; for i:=1 to n-1 do if abs(r[i]-r[i+1]) > maxmod then begin el := i; maxmod := abs(r[i]-r[i+1]) end else if abs(r[i]-r[i+1]) < minmod then begin el2 := i; minmod := abs(r[i]-r[i+1]) end; end; begin clrscr; write('Vvedite N: ') ; readln(n); randomize; for i:=1 to n do r[i]:= random(100) - 20; writeln('Massiv: ') ; for i:=1 to n do write(r[i], ' ') ; writeln; FindMaxRMod(r, n, el, el2); writeln('Max. modul raznosti = ', maxmod, ' - mezhdu elementami r[', el, '] and r[', el+1, ']') ; writeln('Min. modul raznosti = ', minmod, ' - mezhdu elementami r[', el2, '] and r[', el2 + 1, ']') ; readln; end. все кароче нашел ошибку )
Или я не понял что ты хотел или ты сделал не так. ты модуль берешь уже из разницы. опиши подробнее строку где стоит ABS
ошибку нашел ) а есть ли разница как записано? abs(abs(r)-abs(r[i+1])) так работает верно abs(r)-abs(r[i+1]) так нет или abs(r)-r[i+1]) так тоже не получается
Как удалить в тексте слова через одно, допустим было:" Как удалить в тексте слова", а стало:"Как в слова"?
ну как бэ разделяешь текст на массив, а потом просто удаляешь из массива все четные ключи, и записываешь массив в строку и се.
EndLeSSDre@M, как разложить слова в массив я понял, а как удалить четные ячейки? как записать эту строку, это типа: Delete(mas, 2k); ?
Ну самый простой вариант это инкременент по 2 пока не достигнешь конца. Еще вариант проверяй четный или нет индекс массива четность проверяеться так (a div 2 )* 2 = a если условие верное то число а четное
Оставить в стрoке S только пoследнее вхoждение каждого симвoла. взaимный порядoк поставленныx симвoлов сохранить. например: 12k4561k890k24 1561890k24 паскаль, нужно сделать через функцию или процедуру.
Если я тебя правильно понял, то должно быть так: Code: Str := Func('12k4561k890k24'); // Str := '561890k24'; Если да, тогда попробуй мой вариант: Code: function LastUniqueOccurrence(Str: String): String; var i, j: Integer; ls, lr: Integer; begin ls := Length(Str); Result := Str[ls]; for i := ls downto 1 do begin lr := Length(Result); for j := 1 to lr do if Str[i] <> Result[j] then begin if j = lr then Result := Str[i] + Result; end else Break; end; end; ... Str1 := LastUniqueOccurrence(Str2);
спасибо, все верно, но у меня есть пара вопросов, где переменная Result в var, почему без указания ее типа работает а с ней -нет? что делает строка Result := Str + Result; ?
лучшая статья по указателям, ссылкам, работе с памятью которую я когда либо читал: http://www.transl-gunsmoker.ru/2009/09/blog-post.html SVLCH ошибся темой
объясните мне о result в паскале, почему в проге выше(мой пост) result пашет без объявления его в var , а вот в такой банальной проге ошибку из-за него выдает: PHP: var i,k:integer; BEGIN i:=4; k:=4; writeln(123); result:= i*i; inc(result); k:=result; writeln(k); END. //объясните плиз доступным языком что это за такая функция result, что она делает где и как применяется? Я уже облазил весь гугл, вот там везде в var она прописана, в справке паскаля ABC нету ее вообще, сам попробовал писать ее в функции - пашет, без пфункции не пашет, это если и там и там не объявлять в var. Помогите плиз разобраться
Матрос, прочитай какую-то нормальную книгу по паскалю, раздел функции и процедуры. Когда ты пишешь Code: function foo:[COLOR=Red] string[/COLOR]; begin result := 'This is string'; // значит ресалт будет строка end; то это подразумевает, что функция будет возвращать данные типа string, то есть строку. Значит и result у нее будет типа string. Если обьявить Code: function foo: [COLOR=Red]integer[/COLOR]; begin result := 3; // значит ресалт будет число end; значит ф-ция возвращает число, соответственно ресалт будет иметь тип integer; Result есть только у функций, его не нужно обьявлять нигде. Эта переменная доступна только в теле своей функции. То есть ты не можешь просто посреди своей программы работать с ней. Ресалт - это те данные, которые вернет ф-ция после своей работы. Теперь подитожим все это простым примером для консоли в делфи: Code: function Cube(x: integer): integer; // обьявляем свою ф-цию //... //Some code goes here //... function Cube(x: integer): integer; // описываем ее begin result := x*x*x; end; // main block var myVar: integer; begin result := 10; // - Ошибка, так нельзя делать myVar := Cube(3); //присваиваем переменной myVar результат работы ф-ции Cube writeln( IntToStr(myVar) ); end. Строго не судите, пытался обьяснить как умел.
Result - переменная, которая используеться для возвращения результата функции. Например, в Паскале можно записывать так (код будет работать правильно): Code: function MyFunction: [B]string[/B]; begin // Код функции Result := 'text'; // [U]Вариант 1[/U]. У Result тип [B]string[/B] MyFunction := 'text'; // [U]Вариант 2[/U] // Код функции end;