Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 26.09.2019
Сообщений: 51
1

Массив: Заменить все отрицательные элементы значениями по модулю...

26.09.2019, 18:44. Показов 3807. Ответов 38

Author24 — интернет-сервис помощи студентам
Нужно написать следующую программу: Дан одномерный массив с размерностью n, нужно найти сумму элементов, заменить все отрицательные элементы модуля, найти кол-во элементов отличных от 0, произведение элементов больших чем последний элемент в массиве.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2019, 18:44
Ответы с готовыми решениями:

Заменить на главной диагонали все отрицательные элементы их абсолютными значениями
Постановка задачи. Исходный массив считать из файла *.txt (файл создать самим). Результаты...

Ввести двумерный массив A и заменить все отрицательные элементы на ноль
3. написать программу вводит двумерный массив A(N,M) и заменяет все отрицательные элементы на ноль

Отрицательные элементы массива заменить их модулями, а положительные - их удвоенными значениями
Не могу решить задачу, прошу у вас помощи господа Дан одномерный массив, значения элементов...

Заменить в третьем столбце все отрицательные элементы нулями, все положительные элементы в 5-й строке их квадратами
Дан массив R (M, N). Заменить в третьем столбце все отрицательные элементы нулями, все...

38
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
26.09.2019, 19:45 21
Author24 — интернет-сервис помощи студентам
MicroProga, нет
0
0 / 0 / 0
Регистрация: 26.09.2019
Сообщений: 51
26.09.2019, 19:46  [ТС] 22
Joy, учусь на программиста, не втыкаю просто, про код что-то говороят, а самое базовое , что от чего отличается, нет)
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2019, 19:47 23
Цитата Сообщение от MicroProga Посмотреть сообщение
Joy, о великий спасибо, все работает, хоть я немного и напутал с разделами)))0
не все, я сумму элементов не считал.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
26.09.2019, 19:47 24
MicroProga, вы в колледже изучаете Паскаль??
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2019, 19:49 25
Цитата Сообщение от Пс Посмотреть сообщение
Joy, теперь правильно считает?
даже не компилируется
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
26.09.2019, 19:54 26
Joy, какая ошибка?
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
26.09.2019, 19:54 27
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
begin
  var a := ReadArrInteger('Array:', 2);
  
  'Sum:'.Print();
  a.Sum().Println();
  
  'Converted array:'.Print();
  a.Select(x -> Abs(x)).Println();
  
  'Non-zero elements count:'.Print();
  a.Count(x -> x <> 0).Println();
  
  'Multiplication:'.Print();
  var temporary := a.Where(x -> x > a.Last());
  if temporary.Any() then
    temporary.Product().Println()
  else
    'There are not any items those more than the last array item.'.Println();
end.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2019, 19:59 28
Цитата Сообщение от Пс Посмотреть сообщение
Joy, какая ошибка?
даже Begin нет... после var двоеточие... это чисто с экрана я заметил, дальше даже не смотрел. Вы хоть не много коды проверяйте, прежде чем выкладывать.

Добавлено через 2 минуты
ну довел,я ее до запуска. Неверно считает!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var p:integer;
begin
p:=1;//у меня как это реализовано?
  var m := ReadArrInteger(ReadInteger);
  $'Сумма:{m.Sum}'.Println;
  write('Преобразованный массив: ');
  m.Transform(i -> abs(i));
  m.Println;
  $'Кол-во отличных от нуля : {m.Count(i->i<>0)}'.Println;
for var i:=0 to m.length - 1 do 
begin
if m[i]>m.last
then p*=m[i];
$'Произведение: {p}'.Println;
end;
end.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
26.09.2019, 19:59 29
Joy, извиняюсь.
На данный момент не возможности проверять код
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
26.09.2019, 20:00 30
Пс, можете использовать online-IDE для проверки кода. Только, большинство из них (если не все) не поддерживают PascalABC.NET. Точнее, придётся отказаться от современных возможностей.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
26.09.2019, 20:01 31
Соколиный глаз, хорошо
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2019, 20:01 32
И замечание, на последок. С какого перепугу вы все пишите ReadArrayInteger? в условии нет ни слова про целочисленный массив.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
26.09.2019, 20:02 33
Joy, там также нет ни слова про вещественный массив. С точки зрения универсальности - ReadArrReal - лучше, но, полагаю, что автор кода сам волен решать что использовать, поскольку уточнения нет в задании (это уже претензии к ТС, либо к составителю задания).
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2019, 20:10 34
Лучший ответ Сообщение было отмечено MicroProga как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
'Converted array:'.Print();
* a.Select(x -> Abs(x)).Println();
так это же не замена отрицательных элементов в массиве. Сам массив же остался неизменным.
ну и соответственно, умножение не верно!

Array: -6 5
Sum: -1
Converted array: 6 5
Non-zero elements count: 2
Multiplication: There are not any items those more than the last array item.

Добавлено через 4 минуты
MicroProga, вот с суммой:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  a:array [1..100] of real;
  n,i,c:integer;
  p,z:real;
begin
  write('N=');readln(n);
  write('введите ',n,' элементов массива:');
  for i:=1 to n do read(a[i]);
  writeln('Новый массив:');
  for i:=1 to n do begin
    z:=z+a[i];
    if a[i]<0 then a[i]:=abs(a[i]);
    write(a[i],' ');
    if a[i]<>0 then c:=c+1;    
    if a[i]>a[n] then if p=0 then p:=a[i] else p:=p*a[i];
  end;
  writeln;
  writeln('Сумма элементов:',z:0:4);
  writeln('кол-во элементов отличных от 0:',c);
  writeln('произведение элементов больших чем последний элемент в массиве:',p:0:4);
  readln;
end.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
26.09.2019, 20:16 35
Joy, значит, я неверно интерпретировал задание. Исправление ниже:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
begin
  var a := ReadArrInteger('Array:', 2); // NETSquirrel: ArraysUtils.GenerateIntArray
  
  'Sum:'.Print(); // NETSquirrel: Print
  a.Sum().Println(); // NETSquirrel: PrintLine
  
  'Converted array:'.Print();// NETSquirrel: Print
  a := a.Select(x -> Abs(x)).Println().ToArray();// NETSquirrel: PrintLine
  
  'Non-zero elements count:'.Print(); // NETSquirrel: Print
  a.Count(x -> x <> 0).Println(); // NETSquirrel: PrintLine
  
  'Multiplication result:'.Print();// NETSquirrel: Print
  var temporary := a.Where(x -> x > a.Last());
  if temporary.Any() then
    temporary.Aggregate((x, y) -> x * y).Println() // NETSquirrel: PrintLine
  else
    'There are not any items those more than the array last item.'.Println(); // NETSquirrel: PrintLine
end.
Некоторые расширения не использованы для более простого портирования кода на C# с использованием NETSquirrel.
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
26.09.2019, 21:21 36
Цитата Сообщение от Joy Посмотреть сообщение
наверное багу заводить надо-добавить условие на пустую последовательность...
Нет, это у вас программа неправильно считает. Так же как https://www.cyberforum.ru/cgi-bin/latex.cgi?{n}^{0} = 1, так же произведение 0 элементов = 1. Это правильное поведение.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
27.09.2019, 02:44 37
Sun Serega, тут случай n=0,т.е. Элементов нет. 00-это неопределенность.

Добавлено через 6 минут
Хотя в языках программирования принято произведение пустого множества=1, нейтральная величина для операции умножения
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
27.09.2019, 03:41 38
В принципе можно возвращать NaN, но точно не 0.
Но в условии задачи об этом не было сказано, так что лучше возвращать то, что проще реализовать, то есть 1.
И кстати, https://www.cyberforum.ru/cgi-bin/latex.cgi?{0}^{0} тоже возвращает 1:
Pascal
1
2
3
begin
  writeln(0.0**0.0);
end.

Не по теме:

P.S. ваш 0^0 почему то выглядит красивее, вы его через надстрочные символы вместо редактора формул делали?

0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
27.09.2019, 04:28 39
В данной задаче если элементов нет, не должно быть результата 1, а то можно и "ребёнка потерять" при расчётах.

Добавлено через 35 секунд
Согласен, что 0 тоже не должно быть

Добавлено через 44 минуты
Цитата Сообщение от Sun Serega Посмотреть сообщение
ваш 0^0 почему то выглядит красивее, вы его через надстрочные символы вместо редактора формул делали?
так и делал
Код
0[SUP]0[/SUP]
0
27.09.2019, 04:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2019, 04:28
Помогаю со студенческими работами здесь

Заменить в третьем столбце все отрицательные элементы нулями, все положительные элементы в 5-й строке их квадратами
переведите на паскаль Дан массив R (M, N). Заменить в третьем столбце все отрицательные элементы...

В массиве все положительные элементы умножить на 10, а все отрицательные заменить на 0
1. В одномерном массиве размерностью N все положительные элементы умножить на 10, а все...

все элементы, стоящие на главной диагонали заменить на противоположной по модулю
В двумерном массиве 10*10 элементов все элементы, стоящие на главной диагонали заменить на...

Заменить все отрицательные элементы целочисленного массива
7. Заменить все отрицательные элементы целочисленного массива размера 10 на минимальное значение...


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

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