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


Ответы на вопрос

Отвечает Путило Катя.
// 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.
Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?
// Внимание! Если программа не работает, обновите версию!
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.
Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?



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


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili