Паскаль АВС.net .Дано одномерный массив длиной n. "сжать "его , изъяв все отрицательные...

0 голосов
125 просмотров

Паскаль АВС.net .
Дано одномерный массив длиной n. "сжать "его , изъяв все отрицательные элементы.


Информатика (125 баллов) | 125 просмотров
0

Массив как заполнять? Самому случайными числами или будет вводится с клавиатуры?

0

с клавиатуры

0

Хорошо, пошел писать

0

ты программист ?

0

Нет, любитель)

0

Ну что же делать, если не дорос (да и вряд ли дорасту), я трезво свои возможности оцениваю.

Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger('Вводите',ReadInteger('n='));
  a:=a.Where(x->x>=0).ToArray; a.Println
end.

Пример
n= 5
Вводите 3 -2 0 -1 5 8
3 0 5

То же, в терминах Pascal ABC ("по-школьному")

const
  k=50;
var
  n,i,m:integer;
  a,t:array[1..k] of integer;
begin
  Write('n='); Read(n);
  Write('Вводите: ');
  for i:=1 to n do Read(a[i]);
  m:=0;
  for i:=1 to n do
    if a[i]>=0 then begin
      m:=m+1;
      t[m]:=a[i]
      end;
  n:=m;
  for i:=1 to n do begin
    a[i]:=t[i];
    Write(a[i],' ')
    end;
  Writeln
end.

Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?
(150k баллов)
0

Да, по поводу "кривости" моих программ. Не могли бы вы указать на недостатки, может на ус намотаю))

0

Ну большинство таких как я! Всех гнать из программирования?)))

0

Хорошо.

0

Здесь помощь в решении для школьников. А если они будут приносить в школу "идеальные" решения, то сразу будет видно, что это не они решали. Так что мои решения как раз соответствуют решению слабого ученика))

0 голосов

На этот раз вроде бы и не торопился, все просмотрел (но наверняка, как всегда что-нибудь просмотрел)))), и кажется мне, что "школьное" решение уважаемого Эникея не удовлетворяет поставленной задаче (боюсь, что опять придется извиняться, но все же рискну).
Из массива не удалены все отрицательные элементы. Их не видно, потому что распечатывается не весь массив. На первом скане видно, что при вводе массива (-1,-2,3,4,-5) элементы 4 и -5 остались на своих местах, просто они не выводятся на печать. Вот поэтому я считаю, что это решение некорректно, поставленная задача не выполнена.
Свой вариант решения привожу на втором скане.


image
image
(6.2k баллов)
0

Большое спасибо!

0

Да, вот такой вариант самый правильный! Совсем забыл, что переопределить массив можно, "нули" все заслонили))) Еще раз спасибо!

0

Убирайте теперь мое решение, что б "мусором" тут не валялось.

0

Хвост же не отрублен, а обнулен. Значит, решение не верное. Баллы мне не нужны, титулы тоже. Багаж знаний пополнил. это главное.

0

Я как раз и выкладываю для того, что бы ошибки свои понять и пробелы ликвидировать. Спасибо за помощь!