Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 0
Регистрация: 17.12.2014
Сообщений: 6
1

Все положительные числа заменить суммой отрицательных

20.01.2015, 00:29. Показов 2188. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан одномерный массив Р(N) (N<=60). Если в нём больше
отрицательных чисел, все положительные числа заменить суммой
отрицательных, полученный массив распечатать. Если больше
неотрицательных чисел, то вывести об этом сообщение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2015, 00:29
Ответы с готовыми решениями:

Если в массиве больше отрицательных чисел, все положительные числа заменить суммой отрицательных
Задан одномерный массив P(N) (N&lt;=60). Если в нем больше отрицательных чисел, все положительные...

Дана матрица в столбцах с минимальным количеством отрицательных элементов все положительные элементы заменить на 0
Дана матрица A в столбцах с минимальным количеством отрицательных элементов все положительные...

Даны 4 действительных числа a,b,c,d. Если сумма макс. и мин. равна сумме двух других, то все числа заменить этой суммой,
Даны 4 действительных числа a,b,c,d. Если сумма макс. и мин. равна сумме двух других, то все числа...

Заменить все положительные числа матрицы их квадратом
Ввести с клавиатуры вещественную матрицу размерности nxm (заданы константами). Заменить все...

3
Фрилансер
3418 / 2815 / 3000
Регистрация: 08.02.2012
Сообщений: 8,587
Записей в блоге: 1
20.01.2015, 07:11 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

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
Const nmax=60;
Var A:array[1..nmax] of integer;
    i,n,k1,k2,s:integer;
Begin
    Repeat
     write('N: ');
     readln(n);
    Until (n>0)and(n<=nmax);
    k1:=0;k2:=0;s:=0;
    For i:=1 to n do
    Begin
      A[i]:=random(31)-15;
      write(A[i]:5);
      if A[i]<0 then 
      Begin
        inc(k1);
        s:=s+A[i];
      End
      else inc(k2);
    End;
    writeln;
    writeln('Отрицательных = ',k1);
    writeln('Не отрицательных = ',k2);
    if k1>k2 then
     For i:=1 to n do
     Begin
       if A[i]>0 then A[i]:=s;
       write(A[i]:5);
     End
    else writeln('Не отрицательных больше');
End.
1
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
20.01.2015, 07:28 3
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Опоздал, но раз уж написал, скину свой вариант тоже:
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
var
    P : array [1..60] of integer;
    i, s, n, k : integer;
begin
    write('введите количество элементов массива (<=60): ');
    readln(n);
    randomize;
    s := 0;
    k := 0;
    writeln('исходный массив:');
    for i := 1 to n do
    begin
        P[i] := random(20) - 10;
        write(P[i]:4);
        {считаем сумму отрицательных, количество неотрицательных}
        if P[i] < 0 then s := s + P[i] else inc(k)  
    end;
    writeln;
    writeln('сумма отрицательных: ', s);
    writeln('массив после замены:');
    for i := 1 to n do
    begin
        if P[i] > 0 then P[i] := s;
        write(P[i]:4)
    end;
    writeln;
    if k > n / 2 then writeln('неотрицательных больше');
    readln
end.
1
2 / 2 / 0
Регистрация: 17.12.2014
Сообщений: 6
20.01.2015, 12:22  [ТС] 4
а с блок схемой можете помочь, кто нибудь? к вашему коду или у меня есть код на паскале, но вот только у меня выводит не один раз, а много раз "больше положительных"

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
const
  nmax = 60;
var
  a: array[1..nmax] of integer;
  n, S, pol, otr, i, im, k, sum1, x, x1, x2, max: integer;
begin
  repeat
    write('Введите размер массива n (n<=60): ');
    readln(n);
  until N in [1..60];
  writeln('Исходный массив:');
  for i := 1 to N do
  begin
    a[i] := random(199) - 99;
    write(a[i], ' ');
  end;  
  S := 0;
  pol := 0;
  otr := 0;
  for i := 1 to n do 
  begin
    if A[i] >= 0 then 
      pol := pol + 1
    else 
    begin
      S := S + A[i];
      otr := otr + 1;
    end;
  end;
  writeln;
  writeln('сумма отрицательных, S=', s);  
  x := 0;
  while x < 1 do
  begin
    if pol > otr then 
    begin
      writeln('Больше положительных:');
      x := 2;
    end    
    else     
    if A[i] >= 0 then 
    begin
      A[i] := S;
    end;     
  end;  
   writeln;
  writeln('Полученный массив:');
  for i := 1 to n do write(a[i], ' ');      
end.
0
20.01.2015, 12:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2015, 12:22
Помогаю со студенческими работами здесь

Двумерный массив. Заменить все положительные числа на 0.
Помогите найти ошибку в моей программе... почему-то не получается. Помогите пожалуйста :) ...

Заменить все отрицательные числа в массиве на положительные , а положительные на отрицательные
Существует двумерный массив произвольной размерности . Заменить все отрицательные числа в массиве...

В двумерных массивах все положительные элементы заменить на заданные числа
Даны два двумерных массива размерности соответственно n×m. В первом массива все положительные...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru