Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 14:01   #1
pavel42
Пользователь
 
Регистрация: 06.04.2009
Сообщений: 95
Вопрос Почему не отбрасывает отрицательные ???

Прога работает но не отбрасывает отрицательные когда расставляет элементы массива в порядке возрастания.

Код:
program zadacha4;
uses crt;
const n=15;
type mass=array[1..30] of integer;
var x:mass; i,k,p,s:integer;

procedure input(n:integer; var x:mass);
        begin
        for i:=1 to n do
        begin
        x[i]:=random(10)-2;
        writeln(x[i]);
        end;
        end;

procedure p2(n:integer; x:mass; var k,p,s:integer);
        begin
        s:=0;
        for i:=1 to n do
        if x[i]>0 then

        begin
        k:=1;
        while k<>0 do
        begin
        k:=0;
        for i:=1 to n-1 do
        begin
        if x[i]>x[i+1] then
        begin
        k:=1;
        p:=x[i];
        x[i]:=x[i+1];
        x[i+1]:=p;
        end;
        end;
        end;
        for i:=1 to n do
        write(x[i]:4);
        readkey;
        end;
        begin
        s:=s+1;
        end;
        end;


begin
clrscr;
randomize;
input(n,x);
p2(n,x,k,p,s);
readln
end.
Условие задачи было такое
Найти положительные элементы массива и расставить их в порядке возрастания.
pavel42 вне форума Ответить с цитированием
Старый 29.04.2009, 14:24   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

я не вижу строчки которая находит отрицательные элементы,
добавьте
Код:
if x[i] < 0 then
.....
особо в код не вникал но по-моему это вывод результата
Код:
for i:=1 to n do
        write(x[i]:4);
так исправьте на
Код:
for i:=1 to n do 
     If x[i] >=0 then
         write(x[i]:4);
Отрицательные не будут выводиться

Последний раз редактировалось fbus; 29.04.2009 в 14:26.
fbus вне форума Ответить с цитированием
Старый 29.04.2009, 14:39   #3
pavel42
Пользователь
 
Регистрация: 06.04.2009
Сообщений: 95
По умолчанию

все теперь не выводит) большое спасибо )

скажите чем тут являеться p и k, а то я не знаю тчо написать в МПЗ )

Последний раз редактировалось Stilet; 29.04.2009 в 16:01.
pavel42 вне форума Ответить с цитированием
Старый 29.04.2009, 17:48   #4
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Цитата:
скажите чем тут являеться p и k,
р - промежуточная переменная, необходимая при перестановке местами двух элементов масива
k - признак необходимости проведения сортировки
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В двухмерном массиве все отрицательные элеметны заменить на их модули. А новый массив вывести на экран JulLy Паскаль, Turbo Pascal, PascalABC.NET 11 28.04.2009 08:13
Отсортировать отрицательные элементы Cdevelop Общие вопросы C/C++ 5 18.03.2009 22:31
Почему не работате в ИЕ? killer12rus JavaScript, Ajax 2 27.02.2009 16:35
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16
Почему? Sota О форуме и сайтах клуба 4 26.07.2007 16:26