// 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
06.01.2020
На этот раз вроде бы и не торопился, все просмотрел (но наверняка, как всегда что-нибудь просмотрел)))), и кажется мне, что "школьное" решение уважаемого Эникея не удовлетворяет поставленной задаче (боюсь, что опять придется извиняться, но все же рискну). Из массива не удалены все отрицательные элементы. Их не видно, потому что распечатывается не весь массив. На первом скане видно, что при вводе массива (-1,-2,3,4,-5) элементы 4 и -5 остались на своих местах, просто они не выводятся на печать. Вот поэтому я считаю, что это решение некорректно, поставленная задача не выполнена. Свой вариант решения привожу на втором скане.
Оксана759
06.01.2020
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.
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. "сжать "его , изъяв все отрицательные элементы.
// Внимание! Если программа не работает, обновите версию!
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.
Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?