shef3009
?>

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

Информатика

Ответы

polina25258
// 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.

Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?
badalovao256
На этот раз вроде бы и не торопился, все просмотрел (но наверняка, как всегда что-нибудь просмотрел)))), и кажется мне, что "школьное" решение уважаемого Эникея не удовлетворяет поставленной задаче (боюсь, что опять придется извиняться, но все же рискну).
Из массива не удалены все отрицательные элементы. Их не видно, потому что распечатывается не весь массив. На первом скане видно, что при вводе массива (-1,-2,3,4,-5) элементы 4 и -5 остались на своих местах, просто они не выводятся на печать. Вот поэтому я считаю, что это решение некорректно, поставленная задача не выполнена.
Свой вариант решения привожу на втором скане.
Паскаль авс.net . дано одномерный массив длиной n. сжать его , изъяв все отрицательные элементы.
Паскаль авс.net . дано одномерный массив длиной n. сжать его , изъяв все отрицательные элементы.
Оксана759
Const
   N = 4;
Var
   A:array[1..N,1..N] of real;
   B,X,AX:array[1..N] of real;
   i,j:integer;
   S:real;
Begin
Randomize;
Write('B(',N,'):');
For i:= 1 to N do
    Begin
    B[i]:=random(721)-360;
    Write(' ',B[i]:4)
    End;
WriteLn;
Write('X(',N,'):');
For i:= 1 to N do
    Begin
    X[i]:=random(721)-360;
    Write(' ',X[i]:4)
    End;
WriteLn;
WriteLn('A(',N,',',N,'):');
For i:= 1 to N do
    Begin
    Write('     ');
    For j:= 1 to N do
        Begin
        A[i,j]:=random(721)-360;
        Write(' ',A[i,j]:4)
        End;
    WriteLn;
    End;
WriteLn;
Write('AX:');
For i:= 1 to N do
    Begin
    AX[i]:=0;
    For j:= 1 to N do
        Begin
        AX[i]:=AX[i]+A[i,j]*X[j];
        End;
    Write(' ',AX[i])
    End;
WriteLn;
Write('AX+B:');
For i:= 1 to N do
    Begin
    X[i]:=AX[i]+B[i];
    Write(' ',X[i])
    End;
WriteLn;
Write('|Ax+b| = ');
S:=0;
For i:= 1 to N do
    Begin
    S:=S+X[i]*X[i];
    End;
WriteLn(Sqrt(S))
End.

Пример:
B(4):  -51  179  276 -273
X(4): -272 -261  -57  304
A(4,4):
      -169  -94  245 -346
      -351 -176  280    1
      -193 -330  219  -54
       338  -57  -44 -328

AX: -48647 125752 109727 -174263
AX+B: -48698 125931 110003 -174536
|Ax+b| = 246563.556248688
Isaeva_Marin1010
Var Z:integer;
Begin
Write('Z = ');ReadLn(Z);
if Z>0 then WriteLn('Положительное')
else if Z=0 then WriteLn('Равное нулю')
     else WriteLn('Отрицательное')
End.

Пример:
Z = -5
Отрицательное

Z = 0
Равное нулю

Z = 256
Положительное

Z = 10455
Положительное

Var
   X,Y:real;
Begin
Write('X = ');ReadLn(X);
Write('Y = ');ReadLn(Y);
if (X = 0)and(Y = 0) then WriteLn('Начало координат')
else if (X=0) then Write('Ось абсцисс')
     else if (Y=0) then WriteLn('Ось ординат')
          else if (X>0) then
                  if (Y>0) then WriteLn('Первая четверть')
                  else WriteLn('Вторая четверть')
               else
                  if (Y<0) then WriteLn('Третья четверть')
                  else WriteLn('Четвёртая четверть')
End.

Пример:
X = 0
Y = 0
Начало координат

X = 0
Y = 1
Ось абсцисс

X = 1
Y = 0
Ось ординат

X = 1
Y = 1
Первая четверть

X = 1
Y = -1
Вторая четверть

X = -1
Y = -1
Третья четверть

X = -1
Y = 1
Четвёртая четверть

Var
   a,b,c,S:integer;
Begin
Write('Введите трёхзначное число: ');ReadLn(A);
b:=(a div 10) mod 10;
c:=a mod 10;
a:=a div 100;
S:=a+b+c;
if (9<S)and(S<100) then WriteLn('Сумма цифр(',S,') - двузначное число')
else WriteLn('Сумма цифр(',S,') не является двузначным числом');
if (a=4)or(b=4)or(c=4) then WriteLn('Цифра 4 есть') else WriteLn('Цифры 4 нет');
if (a=7)or(b=7)or(c=7) then WriteLn('Цифра 7 есть') else WriteLn('Цифры 7 нет')
End.

Пример:
Введите трёхзначное число: 74
Сумма цифр(11) - двузначное число
Цифра 4 есть
Цифра 7 есть

Введите трёхзначное число: 71
Сумма цифр(8) не является двузначным числом
Цифры 4 нет
Цифра 7 есть

Введите трёхзначное число: 13
Сумма цифр(4) не является двузначным числом
Цифры 4 нет
Цифры 7 нет

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Паскаль авс.net . дано одномерный массив длиной n. "сжать "его , изъяв все отрицательные элементы.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Vova220
alekseisamohvolov7
Voronov434
aluka
Zladthesecond577
slitex
btatarintsev
Тресков946
lenalevmax7937
vahmistrova
hrviko
targovich
evsyukov1997
marinavg63607
asemchenko