Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите написать программу.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vigun
Вводиться 10 чисел. Выяснить, что встречается раньше: отрицательное число или ноль. Если раньше 0, то выяснить разницу между макс. и мин. числом, иначе вывести среднеарифметическое всех положительных чисел.
Krjuger
В чем именно проблемы?
vigun
Я среднеарифметическое нашел, а максимум и минимум не могу.
Вот моя прога, помоги исправить ошибки.
var a,max,min,s,r,c,k,m,n,i: integer;
begin
readln(max);
readln(min);
s:=0;
k:=0;
for i:=3 to 10 do
begin
readln(a);
if a>0 then
begin
s:=s+a;
k:=k+1;
if a:=0 then
begin
n:=i;
end;
if a<0 then
begin
m:=i;
end;
end;
if a>max then
begin
max:=a;
end;
if a<min then
begin
min:=a
end;
end;
r:=max-min;
if max>0 then
begin
c:=(s+max)/k;
end
else
begin
c:=s/k;
end;
if n<m then
begin
writeln( r);
end
else
writeln( c);
end;
end.


М
Теги!!

Krjuger
Эм,все делается немного по другому.Для начала проще завести массив в котором будут храниться все эти 10 цифр,согласись было бы неплохо видеть все вводимые данные.

const
n=10;
var
mas : array [1..n]of real;
i,S : integer;
max,min : real;
razn:real;
flag : integer;
begin
S:=0;
flag:=0;
for i:=1 to n do
read(mas[i]);
i:=1;
while flag=0 do
begin
if mas[i]<0 then
flag:=1;
if mas[i]=0 then
flag:=2;
inc(i);
end;

if flag=2 then
begin
i:=1;
max:=mas[i];
min:=mas[i];
for i:=2 to n do
begin
if mas[i]>max then
max:=mas[i];
if mas[i]<min then
min:=mas[i];
end;
razn:=max-min;
writeln('Max:',max:0:2);
writeln('Min:',min:0:2);
writeln('Raznost*:',razn:0:2);
end;
end.


Вот так можно найти максимум и минимум и их разность,если раньше 0,дальше я думаю сам сможеш осилить?
Еще возник вопрос
Цитата
иначе вывести среднеарифметическое

тобиш среднее арифметическое надо выводить не только когда отрицательное число раньше,но и ,если в массиве нету ни отрицательных ни нуля????Если да,то часть с flag можно упростить..

Кстати быстрельно измени название темы,оно должно быть информативным, и в твоем втором посте заключи код программы в теги.А то админ придет и накажет.

Цитата

writeln®;
end
else
writeln©;

Как ты эти символы после Wrilteln получил?))
IUnknown
Цитата
Как ты эти символы после Wrilteln получил?))
Легко smile.gif Без тегов CODE движок форума сам преобразует C и R в скобочках к знакам копирайта/Registered соответственно.

Цитата
i:=1;
while flag=0 do
begin
if mas[i]<0 then
flag:=1;
if mas[i]=0 then
flag:=2;
inc(i);
end;
А введу я ВСЕ элементы больше 0 - что будет? Вылет за границу массива и кирдык программе? Нехорошо...

Кстати, к автору - тот же вопрос: что делать в случае, когда все элементы ненулевые и неотрицательные?
Krjuger
Ну да нехорошо,сделал сначала,чторбы при нуле работало, а потом посмотрел,если первый нуль, а не отрицательный(( пришлось переделывать,а протестить когда все элементы больше нуля забыл((
Благо лечиться несложно

while flag=0 and i<=n do

vigun
Цитата(Krjuger @ 3.06.2011 20:35) *

Эм,все делается немного по другому.Для начала проще завести массив в котором будут храниться все эти 10 цифр,согласись было бы неплохо видеть все вводимые данные.

const
n=10;
var
mas : array [1..n]of real;
i,S : integer;
max,min : real;
razn:real;
flag : integer;
begin
S:=0;
flag:=0;
for i:=1 to n do
read(mas[i]);
i:=1;
while flag=0 do
begin
if mas[i]<0 then
flag:=1;
if mas[i]=0 then
flag:=2;
inc(i);
end;

if flag=2 then
begin
i:=1;
max:=mas[i];
min:=mas[i];
for i:=2 to n do
begin
if mas[i]>max then
max:=mas[i];
if mas[i]<min then
min:=mas[i];
end;
razn:=max-min;
writeln('Max:',max:0:2);
writeln('Min:',min:0:2);
writeln('Raznost*:',razn:0:2);
end;
end.


Вот так можно найти максимум и минимум и их разность,если раньше 0,дальше я думаю сам сможеш осилить?
Еще возник вопрос

тобиш среднее арифметическое надо выводить не только когда отрицательное число раньше,но и ,если в массиве нету ни отрицательных ни нуля????Если да,то часть с flag можно упростить..

Кстати быстрельно измени название темы,оно должно быть информативным, и в твоем втором посте заключи код программы в теги.А то админ придет и накажет.
Как ты эти символы после Wrilteln получил?))

Cможешь отправить мне всю программу полностью со среднеарифметическим и с максимумом и минимумо, ато я что то запутался!
Lapp
Цитата(vigun @ 4.06.2011 0:49) *
Cможешь отправить мне всю программу полностью со среднеарифметическим и с максимумом и минимумо, ато я что то запутался!

Что-то распутывайся, приятель.
Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял yes2.gif.
Говори, где запутался.
vigun
Цитата(Lapp @ 4.06.2011 4:05) *

Что-то распутывайся, приятель.
Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял yes2.gif.
Говори, где запутался.

Я не знаю как теперь сюда всунуть среднеарифметичекое!
Lapp
Цитата(vigun @ 4.06.2011 2:06) *
Я не знаю как теперь сюда всунуть среднеарифметичекое!

А пробовал?
vigun
Цитата(Lapp @ 4.06.2011 4:26) *

А пробовал?
да
Lapp
Цитата(vigun @ 4.06.2011 2:27) *
да

Покажи, как.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.