0 / 0 / 1
Регистрация: 22.10.2014
Сообщений: 13
1

Дан массив. Определить, отсортирован ли он?

08.12.2014, 20:55. Показов 1108. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан массив из 10 элементов определить отсортирован ли он [PASCAL]
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2014, 20:55
Ответы с готовыми решениями:

Дан массив действительных чисел. Выяснить, отсортирован ли он по убыванию
Помогите с решение 1. Дан массив действительных чисел. Выяснить, отсортирован ли он по убыванию. ...

Дан одномерный массив из n чисел. Вывести на экран, отсортирован ли массив по возрастанию
1. Дан одномерный массив из n чисел. Вывести на экран, отсортирован ли массив по возрастанию. 2....

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

Вставить одномерный массив в двумерный массив так, чтобы второй столбец был отсортирован по убыванию
Помогите пожалуйста решить задачку: Вставить в качестве новой строки одномерный массив В в...

3
0 / 0 / 1
Регистрация: 22.10.2014
Сообщений: 13
10.12.2014, 22:26  [ТС] 3
спасибо

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

Добавлено через 2 минуты
то есть массив может быть отсортирован или по убыванию или по возрастанию, или же не отсортирован, и нужно, если он не отсортирован, вывести что он не отсортирован.
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
10.12.2014, 23:09 4
Shandor, так пойдёт?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const
    n = 10;
    res : Array[0..3] Of String = ('Unsorted', 'Sorted Up', 'Sorted Down', 'Sorted Up and Down');
type
    TLine = Array[1..n] Of Integer;
    ans = 0..4;
function IsSorted(const a : TLine) : ans;
var
    Result : ans;
    state : Boolean;
    i : Byte;
begin
    Result := 0;
    state := True;
    for i := 2 to n do
        if (a[i] < a[i - 1]) then
        begin
            state := False;
            Break;
        end;
    if state then
        Result := 1;
    state := True;
    for i := 2 to n do
    if (a[i] > a[i - 1]) then
    begin
        state := False;
        Break;
    end;
    if state then
        if (Result = 0) then
            Result := 2
        else
            Result := 3;
    IsSorted := Result;
end;
 
var
    mass : TLine;
    i : Byte;
begin
    for i := 1 to n do
        ReadLn(mass[i]);
    WriteLn(res[IsSorted(mass)]);
end.
Добавлено через 1 минуту
хотя это по неубыванию и невозрастанию.

Добавлено через 13 минут
вот со всеми вариантами развития событий. код, правда, немного запутанный получился и, подозреваю, вполне подлежит оптимизации, но желания большого нет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
const
    n = 10;
    res : Array[0..5] Of String = ('Несортирован1', 'Сортирован по возрастанию2', 'Сортирован по убыванию3', 'Сортирован по неубыванию4', 'Сортирован по невозрастанию5', 'Сортирован по невозрастанию и неубыванию6');
type
    TLine = Array[1..n] Of Integer;
    ans = 0..5;
function IsSorted(const a : TLine) : ans;
var
    Result : ans;
    state : Boolean;
    i : Byte;
begin
    Result := 0;
    state := True;
    for i := 2 to n do
        if (a[i] <= a[i - 1]) then
        begin
            state := False;
            Break;
        end;
    if state then
        Result := 1
    else
    begin
        state := True;
        for i := 2 to n do
            if (a[i] >= a[i - 1]) then
            begin
                state := False;
                Break;
            end;
        if state then
            Result := 2
        else
        begin
            state := True;
            for i := 2 to n do
                if (a[i] < a[i - 1]) then
                begin
                    state := False;
                    Break;
                end;
            if state then
                Result := 3;
            state := True;
            for i := 2 to n do
                if (a[i] > a[i - 1]) then
                begin
                    state := False;
                    Break;
                end;
            if state then
            begin
                if (Result = 3) then
                    Result := 5;
                if (Result = 0) then
                    Result := 4;
            end;
        end;
    end;
    IsSorted := Result;
end;
var
    mass : TLine;
    i : Byte;
begin
    for i := 1 to n do
        ReadLn(mass[i]);
    WriteLn(res[IsSorted(mass)]);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2014, 23:09
Помогаю со студенческими работами здесь

Массив: Вывести на экран, отсортирован ли массив по возрастанию...
1. Дан одномерный массив из n чисел. Вывести на экран, отсортирован ли массив по возрастанию. 2....

Отсортирован ли массив по возрастанию.
Дан одномерный массив из n чисел. Вывести на экран, отсортирован ли массив по возрастанию.

Массив: Проверить, отсортирован ли массив по возрастанию.
Дано одномерный массив. Проверить, отсортирован ли он по возрастанию.

Как узнать отсортирован ли массив.(Функции)
Даны 3 одномерных массива разной длины. Какие массивы после перестановки первого и последнего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru