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

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

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

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

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

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

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

38
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
26.09.2019, 19:45
Студворк — интернет-сервис помощи студентам
MicroProga, нет
0
0 / 0 / 0
Регистрация: 26.09.2019
Сообщений: 51
26.09.2019, 19:46  [ТС]
Joy, учусь на программиста, не втыкаю просто, про код что-то говороят, а самое базовое , что от чего отличается, нет)
0
Эксперт Pascal/Delphi
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
26.09.2019, 19:47
Цитата Сообщение от MicroProga Посмотреть сообщение
Joy, о великий спасибо, все работает, хоть я немного и напутал с разделами)))0
не все, я сумму элементов не считал.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
26.09.2019, 19:47
MicroProga, вы в колледже изучаете Паскаль??
0
Эксперт Pascal/Delphi
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
26.09.2019, 19:49
Цитата Сообщение от Пс Посмотреть сообщение
Joy, теперь правильно считает?
даже не компилируется
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
26.09.2019, 19:54
Joy, какая ошибка?
0
Alvin Seville
 Аватар для Соколиный глаз
344 / 274 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.09.2019, 19:54
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
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
26.09.2019, 19:59
Цитата Сообщение от Пс Посмотреть сообщение
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,254
26.09.2019, 19:59
Joy, извиняюсь.
На данный момент не возможности проверять код
0
Alvin Seville
 Аватар для Соколиный глаз
344 / 274 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.09.2019, 20:00
Пс, можете использовать online-IDE для проверки кода. Только, большинство из них (если не все) не поддерживают PascalABC.NET. Точнее, придётся отказаться от современных возможностей.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
26.09.2019, 20:01
Соколиный глаз, хорошо
0
Эксперт Pascal/Delphi
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
26.09.2019, 20:01
И замечание, на последок. С какого перепугу вы все пишите ReadArrayInteger? в условии нет ни слова про целочисленный массив.
0
Alvin Seville
 Аватар для Соколиный глаз
344 / 274 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.09.2019, 20:02
Joy, там также нет ни слова про вещественный массив. С точки зрения универсальности - ReadArrReal - лучше, но, полагаю, что автор кода сам волен решать что использовать, поскольку уточнения нет в задании (это уже претензии к ТС, либо к составителю задания).
0
Эксперт Pascal/Delphi
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
26.09.2019, 20:10
Лучший ответ Сообщение было отмечено 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
 Аватар для Соколиный глаз
344 / 274 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.09.2019, 20:16
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
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
26.09.2019, 21:21
Цитата Сообщение от Joy Посмотреть сообщение
наверное багу заводить надо-добавить условие на пустую последовательность...
Нет, это у вас программа неправильно считает. Так же как https://www.cyberforum.ru/cgi-bin/latex.cgi?{n}^{0} = 1, так же произведение 0 элементов = 1. Это правильное поведение.
0
Эксперт Pascal/Delphi
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
27.09.2019, 02:44
Sun Serega, тут случай n=0,т.е. Элементов нет. 00-это неопределенность.

Добавлено через 6 минут
Хотя в языках программирования принято произведение пустого множества=1, нейтральная величина для операции умножения
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
27.09.2019, 03:41
В принципе можно возвращать 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
2389 / 1301 / 1492
Регистрация: 29.08.2014
Сообщений: 4,669
27.09.2019, 04:28
В данной задаче если элементов нет, не должно быть результата 1, а то можно и "ребёнка потерять" при расчётах.

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

Добавлено через 44 минуты
Цитата Сообщение от Sun Serega Посмотреть сообщение
ваш 0^0 почему то выглядит красивее, вы его через надстрочные символы вместо редактора формул делали?
так и делал
Code
1
0[SUP]0[/SUP]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2019, 04:28

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru