Написать в программе Паскаль программу:Вывести сначала положительные числа из отрезка...

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

Написать в программе Паскаль программу:
Вывести сначала положительные числа из отрезка [a;b], а потом отрицательные числа из отрезка [a;b] и количество положительных и отрицательных чисел из отрезка [a;b]


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

Вопрос, какие отрезки ? Записать их в виде рандома чисел или сделать массив чисел?!

0

я думаю массив чисел, как нам объясняли, например, нужно написать n- количество чисел, пусть будет 7, а затем ввести этих 7 различных чисел по порядку и дальше по заданию, желательно решить через For или While или Repeat

0

Хорошо, что-то придумаем

Дано ответов: 2
0 голосов

Var a,b,c,k:integer;
begin
read(a,b);
if (a<0) and (b>0) then  begin
for k:=1 to b do write (k,'   '); for k:=1 to a do write (-k, '   '); write(-a,'   ',b);
end
else if (a>0) and (b>0) then begin 
for k:= a to b do write (k,'   ');  write (b-a);
end
else b:=-1*b; a:=-1*a; for k:= b to a do write (k,'   ');  write (b-a);
end.

(2.1k баллов)
0

проверяй

0

Проверяю. Во первых в условии ЕСЛИ do не ставиться, во-вторых почему переменная заканчивается "k;" ?! и end - else - if не могут быть в одном порядке

0

изменил

0

у меня те же вопросы, как и у BloodyDevil, основу я знаю, а вот For, While или Repeat, я немного не понимаю

0

Блуд, ты на правильность проверь, я без проги пишу

0

Veter0k, я заметила, что вы исправили программу, теперь всё работает, спасибо

0

Твоя программа работает неверно, т.к., во-первых, она не выводит все отрицательные числа, а только начало отрезка и то, если он отрицательный, то вывод такого же по модулю. Во-вторых, вывод в одной строке, что для восприятия не удобно. В-третьих, количество отрицательных чисел считается неверно. В-четвертых, твоя программа полностью валит элементарный тест с вводом отрезка от отрицательного до отрицательного, допустим [-4;-1]. Стоит еще подумать над решением.

0

И дело даже не в том, есть тебе на чем проверять или нет. Суть твоего кода в целом неверный. Даже подсказка была в комментарии: массив.

0 голосов

Uses crt;
const Q=10000;
var a:array [1..Q] of integer;
     x,k,p,m,n,o:integer;
begin
     write('a='); readln(m);
     write('b='); readln(n);
     a[1]:=m;
     for x:=2 to (n-m+1) do
         a[x]:=a[x-1]+1;
     write('Положительные: ');
     for x:=1 to (n-m+1) do
         if a[x]>0 then begin inc(p); write(a[x],' '); end;
     writeln;
     write('Отрицательные: ');
     for x:=1 to (n-m+1) do
         if a[x]<0 then begin inc(o); write(a[x],' '); end;<br>     writeln;
     writeln('Положительных чисел:', p);
     writeln('Отрицательных чисел:',o);
end.

(7.2k баллов)
0

Sky09, спаибо вам большое за помощь