Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 1
1

Массив: вывести на экран сначало положительные числа в порядке возрастания, а потом отрицательные в порядке возрастания.

16.09.2011, 09:12. Просмотров 2041. Ответов 3
Метки нет (Все метки)

Надо "Создать динамический массив,заполнить случайными числами,затем вывести на экран сначало положительные числа в порядке возрастания, а потом отрицательные в порядке возрастания."

помогите плиз очень надо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2011, 09:12
Ответы с готовыми решениями:

Вывести на экран сначала сам массив а потом числа, находящиеся в нем в порядке возрастания
задать одномерный массив от 1 до 10(real), так чтобы он выводил на экран сначала сам массив а потом...

Массив: вывести отрицательные числа в порядке возрастания
дан массив размера n вывести отрицательные элементы в порядке возрастания! в убывании могу, а вот...

Вывести элементы с нечетными индексами в порядке возрастания индексов, потом - с четными в порядке убывания
Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания...

Вывести на экран числа в порядке возрастания
даны числа а в с d вывести на экран в порядке возрастания

3
Модератор
60132 / 45288 / 31253
Регистрация: 18.05.2008
Сообщений: 108,766
16.09.2011, 09:37 2
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
uses crt;
Type
  TTmas=array[1..1] of integer;
  Tmas=^TTmas;
var
  a:Tmas;
  n,i,j,k,x:integer;
begin
clrscr;
randomize;
write ('Размер массива n=');
readln (n);
getmem(a,sizeof(TTmas)*n);
writeln('Исходный массив:');
for i:=1 to n do
 begin
  repeat
  a^[i]:=random(50)-25;
  until a^[i]<>0;{нули не берем про них нет в условии}
  write(a^[i]:4);
 end;
writeln;
{переставим положительные вперед}
k:=0;
for i:=1 to n do
if a^[i] >0 then
  begin
    k:=k+1;
    x:=a^[i];
    for j:=i downto k+1 do
    a^[j]:=a^[j-1];
    a^[k]:=x;
  end;
{сортируем положительные}
for i:=1 to k-1 do
for j:=i+1 to k do
if a^[i]>a^[j] then
 begin
  x:=a^[i];
  a^[i]:=a^[j];
  a^[j]:=x;
 end;
{сортируем отрцательные}
for i:=k+1 to n-1 do
for j:=i+1 to n do
if a^[i]>a^[j] then
 begin
  x:=a^[i];
  a^[i]:=a^[j];
  a^[j]:=x;
 end;
writeln('Результат:');
for i:=1 to n do
write(a^[i]:4);
FreeMem(a,SizeOf(TTmas)*n);
readln
end.
 Комментарий модератора 
Не дублируйте темы, буду наказывать. Если нужно поднять тему, напишите в ней содержательное сообщение.
1
12952 / 5804 / 1704
Регистрация: 19.09.2009
Сообщений: 8,807
16.09.2011, 09:43 3
И ещё один способ.
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
71
72
73
74
75
76
77
78
79
80
81
82
83
program Project1;
 
const
  ArrSize = 20;
type
  TArr = array[1..ArrSize] of Integer;
var
  PArr : ^TArr;
  i, j, Num : Integer;
  S : String;
begin
  repeat
    Writeln('Сформирован массив:');
    New(PArr);
    Randomize;
    for i := 1 to ArrSize do begin
      PArr^[i] := -10 + Random(21); //-10..10.
      if i > 1 then Write(', ');
      Write(PArr^[i]);
    end;
    Writeln;
 
    //Сортировка массива по возрастанию методом вставок.
    for i := 2 to ArrSize do begin
      j := i;
      Num := PArr^[i];
      while (j > 1) and (Num < PArr^[j - 1]) do begin
        PArr^[j] := PArr^[j - 1];
        Dec(j);
      end;
      PArr^[j] := Num;
    end;
 
    Writeln('0 (ноль) не является положительным или отрицательным числом.');
 
    //Ищем индекс первого положительного элемента.
    j := 0;
    for i := 1 to ArrSize do begin
      if PArr^[i] > 0 then begin
        j := i;
        Break;
      end;
    end;
 
    if j = 0 then begin
      Writeln('Нет ни одного положительного элемента.');
    end else begin
      Writeln('Положительные элементы:');
      for i := j to ArrSize do begin
        if i > j then Write(', ');
        Write(PArr^[i]);
      end;
      Writeln;
    end;
 
    //Ищем индекс последнего отрицательного элемента.
    i := j;
    j := 0;
    for i := i - 1 downto 1 do begin
      if PArr^[i] < 0 then begin
        j := i;
        Break;
      end;
    end;
 
    if j = 0 then begin
      Writeln('Нет ни одного отрицательного элемента.');
    end else begin
      Writeln('Отрицательные элементы:');
      for i := 1 to j do begin
        if i > 1 then Write(', ');
        Write(PArr^[i]);
      end;
      Writeln;
    end;
 
    //Удаляем массив из памяти.
    Dispose(PArr);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 1
16.09.2011, 16:02 4
Спасибо огромное выручили очень.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2011, 16:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести на экран числа из строки в порядке возрастания
Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести на экран числа этой строки...

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

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

Вывести на экран числа строки в порядке возрастания их значений
Дана строка символов, состоящая из произвольных десятичных цифр, разделенных пробелами. Вывести на...

Вывести на экран числа строки в порядке возрастания их значений
Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести на экран числа этой строки...

Вывести на экран числа строки в порядке возрастания их значений
Дана строка символов, состоящая из произвольных десятичных чисел, разделенных пробелами. Вывести на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.