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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 00:34   #1
Forgotten
 
Регистрация: 23.10.2011
Сообщений: 8
Сообщение Паскаль,Масивы,Консультация

Задание на паскале:
Дан массив из 100 случайных елементов (положительных и отрицательных)
Подсчитать % положительных, отрицательных, нулей.

т.к. у нас 100 елементов то кол-во чисел=процентам.
Написал программу но почему-то при любом исходе дает 0 положительных 1 отр. и 99 нулей. Подскажите в чем ошибка.

program z100;
uses crt;
var a:array[1..100] of integer;
i,pol,otr,noli:integer;
begin
clrscr;
randomize;
for i:=1 to 100 do begin
a[i]:=random(50)-100;
pol:=0;
otr:=0;
noli:=0;
if a[i]>0 then pol:=pol+1 else
if a[i]<0 then otr:=otr+1;
noli:=100-otr-pol;
end;
writeln ('polo}I{uTeJIHue - ', pol);
writeln ('OTruCaTeJIHue - ', otr);
writeln ('HyJIi - ', noli);
readln
end.
Forgotten вне форума Ответить с цитированием
Старый 15.11.2011, 03:37   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

во первых... вынеси обнуление переменных из цикла...
во вторых... разберись с рандомом... то создаешь числа от 0 до 49 и отнимаешь от них 100, это не очень хорошо.... так как всегда отрицательные будут....
в третьих... оформляй сообщения с использованием тега кода...
вот примерное решение твоих проблем...

Код:
var a:array[1..100] of integer;
i,pol,otr,noli:integer;
begin
randomize;
pol:=0;
otr:=0;
noli:=0;
for i:=1 to 100 do begin
a[i]:=random(100)-50;

if a[i]>0 then pol:=pol+1 else
if a[i]<0 then otr:=otr+1;
noli:=100-otr-pol;
end;
writeln ('polo}I{uTeJIHue - ', pol);
writeln ('OTruCaTeJIHue - ', otr);
writeln ('HyJIi - ', noli);

readln
end.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 15.11.2011, 03:38   #3
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Потому что ты обнуляешь счетчики при каждом проходе цикла, очевидно. )
Son Of Pain вне форума Ответить с цитированием
Старый 15.11.2011, 11:30   #4
Forgotten
 
Регистрация: 23.10.2011
Сообщений: 8
По умолчанию

ааа ясно, спасибо
Forgotten вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масивы --Deemon-- Помощь студентам 2 21.02.2011 19:43
масивы misha25525 Помощь студентам 0 11.04.2010 11:46
Масивы ewans Общие вопросы C/C++ 2 04.01.2010 01:17
Масивы ewans Общие вопросы C/C++ 3 28.12.2009 15:29
Паскаль, матрицы и масивы Aller Помощь студентам 1 23.11.2008 18:53