Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Студентам с лабораторными сюда (https://forum.antichat.xyz/showthread.php?t=122076)

Fata1ex 15.06.2008 11:58

Цитата:

кто-нибудь в курсе, что такое число серий в массиве?
Дык перейди по ссылке, там несколько примеров с использованием серий.

П.С.
Сам когда искал, больше всего было вариантов таких -
Цитата:

Серия – это один или несколько одинаковых элементов, стоящих подряд в массиве
Боюсь что так оно и есть ;)
Длинна же серии - это количество данных элементов, идущих подряд.

hoty 15.06.2008 14:02

to Fatalex : спасибо за определение :-)
p.s: переходил по ссылке. смотрел инфу по числу серий в массиве, но там было только их использование, а определения не было.

to all: Сортровка методом "прямого включения" (базовый для метода Шелла):
программа запускается, НО после ввода массива
begin через readln, показывает ошибку в строке (см.код).

Цитата:

uses crt;
const n=5;
var i,j, t, buffer: integer;
a: array [1..n] of integer;
begin
clrscr;
for i:=1 to n do readln(a[i]); {enter mas}
clrscr;
write('Your Mas : '); for i:=1 to n do write(' ',a[i]:3); writeln; writeln; {print mas}

for i:=1 to n do
begin
t:=a[i]; j:=i-1;
while ( ((j>0) and (t<a[j]) ) do программа запускается, НО после ввода массива
через readln, показывает ошибку в этой строке.
begin
a[j+1]:=a[j]; j:=j-1;
end;
a[j+1]:=t;
end;
writeln;

writeln('New Mas'); for i:=1 to n do write(a[i]:3); {print mas}

readkey;
end.
help me, please. Как закончу с этими сортировками, выложу сюда ссылку на скачку алгоритмов всех основных сортировок (около 6) массивов.

+ to Fata1ex : опечатка (( там 0. + это не метод Шелла, а метод прямого включения (базовый для метода Шелла).

Fata1ex 15.06.2008 14:28

Код:

for i:=2 to n do
begin
t:=a[i]; a[0]:=a[i]; j:=i;
while t<a[j-1] do
begin
a[j]:=a[j-1]; Dec(j);
end;
a[j]:=t;
end;
writeln;


hoty 15.06.2008 17:27

с этой строчкой не работает
Цитата:

while ( ((j>0) and (t<a[j]) ) do
- ошибку выдает.

А вот так работает: :-)
Цитата:

while ( ((j>0) xor (t<a[j]) ) do
только вот массив сортируется в убывающем порядке, попробую код подправить, чтобы в возрастающем было.

0verbreaK 15.06.2008 23:51

ну так одну скобку пропустили

Код:

while ( ((j>0) and (t<a[j]) )) do

hoty 16.06.2008 05:26

to : 0verbreaK

Thank you). Странно, если бы была скобка лишняя Паскаль должен ведь был выдать ошибку, а он запускался и только после этого выдавал ошибку.

С xor сортирует массив в убывающем порядке.
С and в возрастающем.

to ALL:

Кто в курсе, расскажите, "простым языком", что такое "ключ сортировки" ?

_empty 16.06.2008 12:08

Цитата:

Сообщение от hoty
to : 0verbreaK

Thank you). Странно, если бы была скобка лишняя Паскаль должен ведь был выдать ошибку, а он запускался и только после этого выдавал ошибку.

С xor сортирует массив в убывающем порядке.
С and в возрастающем.

to ALL:

Кто в курсе, расскажите, "простым языком", что такое "ключ сортировки" ?

Это обычно функция, которая задает порядок сортировки, т.е. по убыванию, возрастанию, или по знаку и т.д. и т.п.

Benzin 17.06.2008 18:28

Люди добры помогите плиз решить 2 задачи по asm, я в нем мало что понимаю, спасите плиз.
Если можно, то код как можно проще, не нужны всякие хитрые приемы, чтоб хоть смог разобраться, ПОЖАЛУЙСТА

1) Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами

2) Даны целые числа A1,....., An. Если в данной последовательности ни одно четное число не расположено после нечетного, то получить все отрицательные члены последовательности, иначе - все положительные. Порядок следования чисел в обоих случаях заменяется на обратный.

avton0m 18.06.2008 23:48

Помогите плз с решением (ака решите за меня :)
Код:

Задан массив M натуральных чисел, начинающийся с единицы.
Как найти минимальное натуральное число, не представимое суммой никаких элементов массива M.

C/C++

Delimiter 20.06.2008 09:54

сортируешь элементы в порядке возрастания
затем берешь функцию
Код:

int check(int curindex,int maxindex,int sum,int rezult)
{
  int i,cursum;
  for(i=curindex;i<maxindex;i++)
  {
      cursum=A[i]+sum;
      if(cursum==rezult)
          return 1;
      else
          if(cursum>rezult)
            return 0;
          else
              if(check(i+1,maxindex,cursum,rezult)==1)
                return 1;
    }
  return 0;
}

// использование функции
for(j=0;j<M;j++)
  if(check(0,j,0,A[j])==0)
    { printf("Minimal is:%d",A[j]); break; }

не проверял бил прямо тут!


Время: 06:11