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

Найти номер последней пары соседних элементов массива с разными знаками

10.06.2015, 19:05. Показов 5382. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти:
− сумму отрицательных элементов;
− число тех элементов массива, значения которых положительны и не превосходят заданного числа А.
− найти номер последней пары соседних элементов с разными знаками.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2015, 19:05
Ответы с готовыми решениями:

Найти номер последней пары соседних элементов массива с разными знаками
1 Исходный массив должен быть выведен на экран. 2 Все отдельные операции оформлять через...

Найти номер последней пары соседних элементов с разными знаками
помогите решить задачу пожалуста:help:: найти номер последней пары соседних элементов с разными...

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

Найти номер последней пары соседних элементов с разными знаками
Пожалуйста помогите сделать задачу: Дан массив целых чисел, состоящий из 10 элементов. Заполнить...

12
54 / 45 / 97
Регистрация: 17.08.2014
Сообщений: 157
10.06.2015, 21:31 2
3ье не понял(
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program ex;
type vector=array[1..10]of integer;
var b:vector;
    i,s,a,k:integer;
begin
write('введите число А: ');readln(a);
s:=0;
for i:=1 to 10 do
begin
write('очередной элемент: ');
readln(b[i]);
if(b[i]<0) then s:=s+b[i];
if(b[i]>=0)and(b[i]<a) then k:=k+1;
end;
write('массив: ');
for i:=1 to 10 do
write(b[i],' ');
writeln();
writeln('сумма отрицательных элементов: ',s);
writeln('количество элементов которые не превосходят А и положительны: ',k);
end.
0
Модератор
9655 / 4975 / 3265
Регистрация: 17.08.2012
Сообщений: 15,474
15.06.2015, 04:15 3
Цитата Сообщение от kot96 Посмотреть сообщение
Pascal
13
if(b[i]>=0)and(b[i]<a) then k:=k+1;
Цитата Сообщение от Oxygenos Посмотреть сообщение
значения которых положительны и не превосходят заданного числа А
Ноль не является ни положительным, ни отрицательным числом. А "не превосходит" означает "меньше или равно". Правильно будет
Pascal
13
if(b[i]>0)and(b[i]<=a) then k:=k+1;
Цитата Сообщение от Oxygenos Посмотреть сообщение
найти номер последней пары соседних элементов с разными знаками
Pascal
21
22
23
24
25
26
27
28
29
30
31
k := 0;
for i := 9 downto 1 do
if (a[i]<0)and(a[i+1]>0)or(a[i]>0)and(a[i+1]<0) then
begin
k := i;
break
end;
if k>0 
then writeln('Номер последней пары соседних элементов с разными знаками: ', k)
else writeln('Массив не содержит элементов с разными знаками')
end.
Добавлено через 7 минут

Не по теме:

kot96, вот попробовал написать неформатированный код, чтобы фрагмент кода был в Вашем стиле... Пойду руки, что ли, помою, а то такое ощущение, что какую-то бяку написал... Не разбери поймёшь, что где, того гляди, перепутаешь что-нибудь.

0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
15.06.2015, 08:19 4
Вместо этого
Pascal
1
if (a[i]<0)and(a[i+1]>0)or(a[i]>0)and(a[i+1]<0)
достаточно
Pascal
1
if a[i]*a[i+1]<0
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 11
15.06.2015, 18:58  [ТС] 5
Что за ошибка?
Нет индексного свойства по умолчанию для типа integer
Миниатюры
Найти номер последней пары соседних элементов массива с разными знаками  
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
15.06.2015, 19:12 6
Pascal
1
2
3
4
5
6
7
8
k := 0;
for i := 1 to 29 do
if a[i]*a[i+1]<0 then
 begin
  k := 1;
  break
 end;
if k=1 then...
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 11
15.06.2015, 19:24  [ТС] 7
А что после?
Цитата Сообщение от Puporev Посмотреть сообщение
if k=1 then...
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
15.06.2015, 19:26 8
Ну так написано же
Pascal
1
2
3
4
5
6
7
8
9
10
k := 0;
for i := 1 to 29 do
if a[i]*a[i+1]<0 then
 begin
  k := i;
  break
 end;
if k>0
then writeln('Номер последней пары соседних элементов с разными знаками: ', k)
else writeln('Массив не содержит элементов с разными знаками')
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 11
15.06.2015, 19:28  [ТС] 9
Ну тогда, та же ошибка
Цитата Сообщение от Oxygenos Посмотреть сообщение
Нет индексного свойства по умолчанию для типа integer
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
15.06.2015, 19:29 10
Oxygenos, Ты код своей программы выложи текстом, а картину засунь в одно место...
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 11
15.06.2015, 19:31  [ТС] 11
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
program ex;
var b:array[1..30]of integer;
    i,s,a,k:integer;
begin
write('введите число А: ');readln(a);
s:=0;
for i:=1 to 30 do
begin
write('очередной элемент: ');
readln(b[i]);
if(b[i]<0) then s:=s+b[i];
if(b[i]>0)and(b[i]<=a) then k:=k+1;
end;
write('массив: ');
for i:=1 to 30 do
write(b[i],' ');
writeln();
writeln('сумма отрицательных элементов: ',s);
writeln('количество элементов которые не превосходят А и положительны: ',k);
k := 0;
for i := 1 to 29 do
if a[i]*a[i+1]<0 then
 begin
  k := 1;
  break
 end;
if k>0
then writeln('Номер последней пары соседних элементов с разными знаками: ', k)
else writeln('Массив не содержит элементов с разными знаками')
end.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
15.06.2015, 19:40 12
Лучший ответ Сообщение было отмечено Oxygenos как решение

Решение

Программа неверная, нужно
Цитата Сообщение от Oxygenos Посмотреть сообщение
номер последней пары
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 ex;
const n=30;
var b:array[1..n]of integer;
    i,s,a,k:integer;
begin
write('введите число А: ');
readln(a);
s:=0;
k:=0;
for i:=1 to n do
 begin
  write('очередной элемент: ');
  readln(b[i]);
  if(b[i]<0) then s:=s+b[i];
  if(b[i]>0)and(b[i]<=a)then k:=k+1;
 end;
writeln('массив: ');
for i:=1 to n do
write(b[i],' ');
writeln;
writeln('сумма отрицательных элементов: ',s);
writeln('количество элементов которые не превосходят А и положительны: ',k);
k := 0;
for i := 1 to n-1 do
if b[i]*b[i+1]<0 then k := i;
if k>0
then writeln('Номер последней пары соседних элементов с разными знаками: ', k)
else writeln('Массив не содержит элементов с разными знаками')
end.
1
Модератор
9655 / 4975 / 3265
Регистрация: 17.08.2012
Сообщений: 15,474
15.06.2015, 23:07 13
Цитата Сообщение от Puporev Посмотреть сообщение
Вместо этого
if (a[i]<0)and(a[i+1]>0)or(a[i]>0)and(a[i+1]<0)
достаточно
if a[i]*a[i+1]<0
Цитата Сообщение от Oxygenos Посмотреть сообщение
Заполнить его с клавиатуры
Цитата Сообщение от Puporev Посмотреть сообщение
var b:array[1..n]of integer;
Ну и... Если я введу два соседних числа, допустим, -50 и 2147483647, фокуса с умножением будет недостаточно. В большинстве диалектов паскаля целочисленное переполнение ошибку не генерирует, и результат умножения будет вот такой:

(-50 * 2147483647) and $FFFFFFFF = 50

При сравнении такого казуса не возникнет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2015, 23:07
Помогаю со студенческими работами здесь

Найти номер последней пары соседних элементов с разными знаками
procedure TForm1.Button2Click(Sender: TObject); var i,j,s,max,k,p:integer; flag:boolean; begin...

Определить номер последней пары соседних элементов массива с разными знаками
Дан массив, содержащий N целых чисел. Определить номер последней пары соседних элементов с разными...

Определите номер последней пары соседних элементов массива с разными знаками
Определите номер последней пары соседних элементов с разными знаками.

Массивы. Определить номер последней пары соседних элементов с разными знаками
Дан массив 20 целых чисел. Элементы массива вводить с клавиатуры. Определить номер последней пары...


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

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

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