Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.06.2014
Сообщений: 5

Найти количество положительных и количество отрицательных элементов

25.06.2014, 12:15. Показов 1948. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив Q=[ q [i, j], i=1,10; j=1,10 ]
(элементы выбираются случайным образом):
1. Найти количество положительных и количество отрицательных элементов.
2. Определить сумму элементов, стоящих в четных позициях 3 строки.
3. Найти min-элемент главной диагонали и сложить его с min-элемент побочной диагонали.
4. Упорядочить массив по не убыванию элементов 9 столбца.
5. Найти max-положительный элемент в 3 строке и поставить его на последнее место.


Необходимо в универ решить для курсовой срочно, а я уже не помню как что делается((
сижу часов 5 и ничего не получается((
помогите пожалуйста решить!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2014, 12:15
Ответы с готовыми решениями:

Найти в массиве количество отрицательных и положительных элементов
дан массив Х (V). найти в массиве количество отрицательных и положительных элементов.если больше отрицательных,то поменять порядок массива

Найти количество положительных k1 и k2 – отрицательных элементов матрицы
Ввести матрицу. Найти количество положительных k1 и k2 – отрицательных элементов. Если k1>k2, распечатать положительные элементы...

Найти сумму положительных и количество отрицательных значений элементов.
Вычислить 10 элементов которые получены в результате вычисления арифметического выражения Y=sin(a)/b где b=0.6 принадлежит с шагом 0.25...

12
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
26.06.2014, 18:24
Это один вопрос, или несколько?

Не по теме:

Цитата Сообщение от Kontinent Посмотреть сообщение
сижу часов 5 и ничего не получается((
Вот и хорошо. Нечего лентяям в университете делать. Что, и в самом деле влом прочитать с полсотни страниц любой книжки по любому паскалю?

0
5 / 0 / 1
Регистрация: 03.06.2014
Сообщений: 13
26.06.2014, 20:27
сам учусь только, но вот, вроде первая:
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
var
q: array[1..10,1..10] of integer;
i,j,k:integer;
begin
randomize;
for i:=1 to 10 do begin
for j:=1 to 10 do begin
Q[i,j]:=random(100)-50;
write(q[i,j]:4);
end;
writeln;
end;
k:=0;
for i:=1 to 10 do
for j:=1 to 10 do 
if Q[i,j]>0 then 
inc(k);
writeln('Kol-vo pol-ih el-ov: ', k);
k:=0;
for i:=1 to 10 do
for j:=1 to 10 do 
if Q[i,j]<0 then 
 
inc(k);
writeln('Kol-vo otr-ih el-ov: ', k);
 
end.
Добавлено через 36 минут
Для 2-го можно такой быдлокод замутить:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
q: array[1..10,1..10] of integer;
i,j,s:integer;
begin
randomize;
for i:=1 to 10 do begin
for j:=1 to 10 do begin
Q[i,j]:=random(100)-50;
write(q[i,j]:4);
end;
writeln;
end;
S:=0;
for i:=3 to 3 do
for j:=1 to 10 do
 
if j mod 2=0 then
 
S:=S+Q[i,j];
writeln('Kol-vo summi el-ov: ', s);
end.
0
Почетный модератор
 Аватар для ildwine
6201 / 2963 / 1300
Регистрация: 04.03.2013
Сообщений: 5,797
Записей в блоге: 1
26.06.2014, 23:25
Cyborg Drone, думаю оставшееся надо сделать в рамках одной программы!
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
26.06.2014, 23:35
сам учусь только,
Похвально!

вроде первая
Оптимизируете программу Считайте все при одном проходе по массиву.

По второй
for i:=3 to 3 do
Можно сразу обращаться в цикле S:=S+Q[3,j];
0
5 / 0 / 1
Регистрация: 03.06.2014
Сообщений: 13
26.06.2014, 23:37
Цитата Сообщение от Iriini Посмотреть сообщение
По второй
for i:=3 to 3 do
Можно сразу обращаться в цикле S:=S+Q[3,j];
Вообще с двумерными массивами всё слабо у меня, но так же тоже работает
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
26.06.2014, 23:42
так же тоже работает
Никто не спорит. Работает! Просто, чтобы Вы знали, что можно иначе.
1.
Pascal
1
2
3
4
5
6
7
k1:=0; k2:=0;
for i:=1 to 10 do
for j:=1 to 10 do 
if Q[i,j]>0 then 
inc(k1) else 
if Q[i,j]<0 then 
 inc(k2);
Это становится важно при обработке больших объемов информации и важно пытаться делать меньше итераций (повторений).
2.
Pascal
1
2
3
S:=0;
for j:=1 to 10 do
 if j mod 2=0 then  S:=S+Q[3,j];
1
26.06.2014, 23:46

Не по теме:

ildwine, всё пустое. Не будет реакции Kontinenta с недельку - поудаляю всё в пропасть, кроме полезного контента. Может, Kontinent уже исчез. И не пишет ничего, значит, ему и не нужно ничего. Вывод - оставить только полезное для форума. А насчёт всеобъемлющей программы... Может, завтра... Устал я сегодня, вроде спать неохота. а башка уже... как бы это сказать... Zurück verstehen... %-)

0
5 / 0 / 1
Регистрация: 03.06.2014
Сообщений: 13
26.06.2014, 23:55
Я хотел прогнать всё через одну переменную, но это не вышло, ну да, такой код получше выглядит.
0
27.06.2014, 00:10

Не по теме:

Cyborg Drone, ну 2 темы несвязанные с матрицами я вынес в отдельные, а там на всё воля случая (Лично я бы написал, но смотрю футбол)

0
0 / 0 / 0
Регистрация: 25.06.2014
Сообщений: 5
27.06.2014, 11:14  [ТС]
на самом деле это все разные задачи, просто с одной основой)

Добавлено через 1 минуту
тут скорее другое дело. Форма обучения заочная, после колледжа. А между колледжем и институтом еще армия. Так что просто все напрочь отшибло из головы, иначе никаких проблем бы не возникало.
0
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
27.06.2014, 15:45
Лучший ответ Сообщение было отмечено erl27 как решение

Решение

Не по теме:

Армия - это святое. У меня была абсолютно такая же ситуация. Техникум, армия, институт.


Вот программа. Разбирайтесь. Части кода выделены комментариями.

//- необязательный код, остановка программы для просмотра результатов;
//0 - общий код для всех пунктов задания;
//1 .. //5 - части кода, относящиеся к соответствующим пунктам задания.

Если подпрограмма - это сложно / не проходили / не требуется, поместите тело подпрограммы (то, что между begin...end; ) вместо вызовов подпрограммы prnt; а саму подпрограмму удалите целиком, вместе с локальными переменными. Вместо локальных i, j будут использоваться глобальные i, j.

Если требуется не одна программа, а несколько, для каждой программы оставьте то, что помечено //0 и соответствующим //1 ... //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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
const m = 10; //0 размер массива
var q: array [1..m, 1..m] of integer; //0 массив
    i, j: integer; //0 счётчики по строкам и столбцам
    kp, ko: integer; //1 количества положительных и отрицательных элементов
    sume3: integer; //2 сумма элементов, стоящих в четных позициях 3 строки
    ming, minp: integer; //3 номера строк min-элементов главной и побочной диагоналей
    tmp: integer; //4, 5 промежуточная переменная для обмена элементов
    maxp3: integer; //5 индекс max положительного элемента в 3 строке
 
//0 процедура печати массива
procedure prnt;
var i, j: integer; //локальные переменные-счётчики
begin
  for i := 1 to m do //цикл по строкам
    begin
      for j := 1 to m do write(q[i, j]:5); //печать элемента без перевода строки в 5 позиций
      writeln //строку массива напечатали, переход на следующую строку
    end
end;
//0
 
begin
  randomize; //0 инициализация генератора псевдослучайных чисел
 
  //0 заполнение массива
  for i := 1 to m do for j := 1 to m do q[i, j] := random(199) - 99; //генерация элемента, диапазон -99..99
  writeln('Исходный массив псевдослучайных чисел:'); //печать массива
  prnt;                                              //
  //0
 
  write('Для продолжения нажмите <Enter>'); readln; //-
 
  //1 поиск количеств положительных и отрицательных элементов
  kp := 0; //количества пока 0
  ko := 0;
  for i := 1 to m do for j := 1 to m do //пробегаемся по массиву
    begin
      if q[i, j] > 0 then inc(kp); //элемент положительный, kp+1
      if q[i, j] < 0 then inc(ko) //элемент отрицательный, ko+1
    end;
  writeln('Количество положительных элементов: ', kp); //печатаем количества
  writeln('Количество отрицательных элементов: ', ko); //
  //1
 
  write('Для продолжения нажмите <Enter>'); readln; //-
 
  //2 нахождение суммы элементов, стоящих в четных позициях 3 строки
  sume3 := 0; //сумма пока 0
  for j := 1 to m div 2 do sume3 := sume3 + q[3, j * 2];
  //суммируем чётные позиции 3 строки
  //m div 2 - количество чётных позиций, j * 2 - чётные позиции
  writeln('Cумма элементов, стоящих в четных позициях 3 строки: ', sume3);
  //2
 
  write('Для продолжения нажмите <Enter>'); readln; //-
 
  //3 поиск min-элементов главной и побочной диагоналей
  ming := 1; //пока считаем, что оба минимальных элемента в первой строке
  minp := 1; //
  for i := 2 to m do //цикл со второй строки, потому что первую уже учли выше
    begin
      if q[i, i] < q[ming, ming] then ming := i; //если текущий элемент главной диагонали меньше, то пусть он будет ming
      if q[i, m - i + 1] < q[minp, m - minp + 1] then minp := i //аналогично для побочной диагонали
    end;
  writeln('Массив:'); //печать исходного массива
  prnt;               //
  writeln('Минимум главной диагонали:  q[', ming, ', ', ming, '] = ', q[ming, ming]);
  writeln('Минимум побочной диагонали: q[', minp, ', ', m - minp + 1, '] = ', q[minp, m - minp + 1]);
  writeln('Сложение минимума главной диагонали с минимумом побочной диагонали. Результат:'); //печать изменённого массива
  prnt;                                                                                      //
  //3
 
  write('Для продолжения нажмите <Enter>'); readln; //-
 
  //4 упорядочение по неубыванию элементов 9 столбца.
  writeln('Массив:');  //печать неотсортированного массива
  prnt;                //
  for i := 1 to m - 1 do for j := i + 1 to m do if q[i, 9] > q[j, 9] //сортировка
    then begin //если i элемент больше j, меняем их местами
      tmp := q[i, 9];
      q[i, 9] := q[j, 9];
      q[j, 9] := tmp
    end;
  writeln('Упорядочение по неубыванию элементов 9 столбца. Результат:'); //печать отсортированного массива
  prnt;                                                                  //
  //4
 
  write('Для продолжения нажмите <Enter>'); readln; //-
 
  //5 поиск max-положительного элемента 3 строки и обмен его с последним элементом 3 строки
  maxp3 := 0; //умышленно индекс за границей массива, вдруг в 3 строке нет положительных
  writeln('Массив:');  //печать массива
  prnt;                //
  for j := 1 to m do
    if ((maxp3 = 0) and (q[3, j] > 0)) or ((maxp3 > 0) and (q[3, j] > q[3, maxp3]))
      then maxp3 := j;
  if maxp3 = 0
    then writeln('В 3 строке нет положительных элементов, максимум найти невозможно.')
    else begin
      writeln('Максимальный положительный элемент 3 строки: q[3, ', maxp3, '] = ', q[3, maxp3]);
      if maxp3 = m
        then writeln('Максимальный элемент в позиции ', m, ', обмен не требуется.')
        else begin
          tmp := q[3, maxp3];
          q[3, maxp3] := q[3, m];
          q[3, m] := tmp;
          writeln('Обмен максимального и последнего элемента 3 строки. Результат:');
          prnt
        end
    end;
  //5
  
  write('Для выхода из программы нажмите <Enter>'); readln //-
 
end.
1
0 / 0 / 0
Регистрация: 25.06.2014
Сообщений: 5
27.06.2014, 15:49  [ТС]
огромное спасибо) я дальше сам разберусь куда и что впихнуть)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.06.2014, 15:49
Помогаю со студенческими работами здесь

Найти количество положительных и отрицательных элементов одномерного массива
Найти количество положительных и отрицательных элементов одномерного массива. огромное спасибо тому кто сделает)

Найти в матрице сумму и количество положительных и отрицательных элементов
всем привет! совсем беда... :cry: никак не могу сделать задачку с двумерным массивом! :-| вот условие: для двумерного массива целых...

Найти сумму положительных и количество отрицательных элементов массива
Найти сумму положительных элементов массива.Найти количество отрицательных элементов массива.

Найти количество отрицательных, положительных и нулевых элементов массива
Доброго времени суток, народ! Дан массив действительных чисел, размерность которого &lt; 100. Подсчитать, сколько +,- и 0 элементов. ...

Определить количество положительных чётных и количество отрицательных нечётных элементов массива
Дан одномерный массив из N элементов (количество элементов вводится с клавиатуры во время выполнения программы). Элементы массива вводятся...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru