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

Упорядочит по возростанию чётные и не чётные элементы массива

21.01.2010, 19:26. Показов 807. Ответов 6
Метки нет (Все метки)

Добрый день! у меня возникла проблемка с алгоритмом. Вобщем задание звучит таким образом
Дан одномерный масив. В нём найти 1) произведение положительных элементов и 2) сумму всех элементов масиве не включая минимальный. Первые 2 задания я зделал но 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
Program Masiv;
  Uses CRT;
  Type mas =array [1..50] of integer;
Var      a: mas;
         S,i,n,pr,min: integer;
Begin
 CLRSCR;
 Write('n=');
 Readln(n);
 pr:=1;
 S:=0;
 min:=1;
 For i:= 1 to n do
   Begin
     Write('a[',i,']=');
     readln(a[i]);
   end;
   For i:= 1 to n do
     If a[i]>0 then
       pr:=pr*a[i];
     For I:=min+1 to n do
       if a[i]<a[min] then
         min:=i;
       for i:=1+min to n do
         S:=s+a[i];
  Writeln('S=',S);
  Writeln('pr=',pr);
  Readln;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2010, 19:26
Ответы с готовыми решениями:

Четные элементы массива напечатать в одну строку, а индексы массива, где находятся четные элементы - в другую
Решил задачу, не могу распечатать, нужно четные элементы массива напечатать в одну строку, а...

Ввести массив A(N). Упорядочить четные элементы массива по убыванию, а не четные по возрастанию.
Ввести массив A(N). Упорядочить четные элементы массива по убыванию, а не четные по возрастанию....

В Массиве А(10) расположить элементы следующим образом: четные в начало,а не четные в конец массива
2.)составьте программы, изпользуя одномерный массив. В Массиве А(10) расположить элементы следующим...

Элементы которые имеют четный индексы упорядочить по возростанию а элементы которые не четные по убыванию
3)Элементы которые имеют четный индексы упорядочить по возростанию а элементы которые не четные по...

6
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
21.01.2010, 19:37 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for i:=1 to n do
 for j:=i to n do
  if (a[i]<a[j]) then
   begin
   if (odd(a[i])) then
   begin
    x:=a[i];
    a[i]:=a[j];
    a[j]:=x;
   end;
  else
   begin
    x:=a[i];
    a[i]:=a[j];
    a[j]:=x;
   end;
  end;
end;
1
5 / 5 / 1
Регистрация: 21.12.2009
Сообщений: 26
21.01.2010, 20:03  [ТС] 3
спасибо большое

Добавлено через 17 минут
хм.....что то алгоритм работать коректно не хочет
0
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
21.01.2010, 20:08 4
ну выложите ваш код с сортировкой, я посмотрю
там точку с запятой уберите где проверка на четность, иначе
1
5 / 5 / 1
Регистрация: 21.12.2009
Сообщений: 26
21.01.2010, 20:12  [ТС] 5
Я просто не сильно ещё разбираюсь в сортирвках, то возможно где то и допустил ошибку

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
Program lab4_2;
  Uses CRT;
Var   a:array [1..50] of integer;
      b:array [1..50] of integer;
         x,j,S,i,n,pr,min: integer;
Begin
 CLRSCR;
 Write('n=');
 Readln(n);
 pr:=1;
 S:=0;
 min:=1;
 For i:= 1 to n do
   Begin
     Write('a[',i,']=');
     readln(a[i]);
   end;
   For i:= 1 to n do
     If a[i]>0 then
       pr:=pr*a[i];
     For I:=min+1 to n do
       if a[i]<a[min] then
         min:=i;
       for i:=1+min to n do
         S:=s+a[i];
  Writeln('S=',S);
  Writeln('pr=',pr);
  Readln;
for i:=1 to n do
 for j:=i to n do
  if (a[i]<a[j]) then
   begin
   if (odd(a[i])) then
   begin
    x:=a[i];
    a[i]:=a[j];
    a[j]:=x;
   end
  else
   begin
    x:=a[i];
    a[i]:=a[j];
    a[j]:=x;
   end;
  end;
  Writeln('b[',j,']=',b[j]);
  Readln;
end.
0
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
21.01.2010, 22:29 6
это я вам не правильно написал, сейчас исправлю

Добавлено через 2 часа 8 минут
вот я вам написал заново всю программу, сортировка по индексам, т.к по элементам невозможно проверить правильно сортируется или нет
для проверки смотрите сначала начиная с первого и через 1 элемент как сортируется, потом начиная со второго и через 1!
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
uses crt;
var a:array[1..100] of integer;
    i,j,p,min,imin,x,n,sum,k:integer;
begin
ClrScr;
Randomize;
Write('n=');
Readln(n);
for i:=1 to n do
 begin
  a[i]:=random(20)-10;
  Write(a[i],'  ');
 end;
Writeln;
min:=a[1];
imin:=1;
for i:=1 to n do
 if a[i]<min then
  begin
   min:=a[i];
   imin:=i;
  end;
Writeln('Min ',min,' [',imin,']');
p:=1;
for i:=1 to n do
 if a[i]>0 then
  p:=p*a[i];
Writeln('P=',p);
sum:=0;
for i:=1 to n do
 sum:=sum+a[i];
Writeln('Sum ',sum-a[imin]);
Writeln('Sort: ');
for i:=1 to n do
for j:=i to n do
 if (a[i]<a[j]) and (i mod 2=0) then
  begin
   x:=a[i];
   a[i]:=a[j];
   a[j]:=x;
  end;
for i:=1 to n do
for j:=i to n do
 if (a[i]<a[j]) and (i mod 2<>0) then
  begin
   k:=a[i];
   a[i]:=a[j];
   a[j]:=k;
  end;
for i:=1 to n do
 Write(a[i],'  ');
Readln;
end.
1
5 / 5 / 1
Регистрация: 21.12.2009
Сообщений: 26
21.01.2010, 22:33  [ТС] 7
спасибо большое!! а там дальше разберусь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2010, 22:33

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

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

Отсортировать четные элементы, а не четные оставить на своих сместах
Здравствуйте, долго мучаюсь и не могу понять. Нужно отсортировать четные элементы, а не четные...

Элементам массива, где n четные по значению — четные заменить на 0
Составить программу созданную на основе другой программы (см. ниже), работающую ЧЕРЕЗ ПРОЦЕДУРЫ. ...

Упорядочит строки по возростанию их наибольших элементов
Помогите пожалуйста с решениеи этой задачи. Дана матрица размером NxM. Упорядочить ее строки по...

Получить массив С, записав на четные места элементы массива А, а на нечетные элементы массива В
Получить массив С, записав на четные места элементы массива А, а на нечетные элементы массива В


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

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

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