Вводиться 10 чисел. Выяснить, что встречается раньше: отрицательное число или ноль. Если раньше 0, то выяснить разницу между макс. и мин. числом, иначе вывести среднеарифметическое всех положительных чисел.
Krjuger
3.06.2011 20:10
В чем именно проблемы?
vigun
3.06.2011 20:11
Я среднеарифметическое нашел, а максимум и минимум не могу. Вот моя прога, помоги исправить ошибки.
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
3.06.2011 21: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 можно упростить..
Кстати быстрельно измени название темы,оно должно быть информативным, и в твоем втором посте заключи код программы в теги.А то админ придет и накажет.
Легко Без тегов 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
3.06.2011 23:43
Ну да нехорошо,сделал сначала,чторбы при нуле работало, а потом посмотрел,если первый нуль, а не отрицательный(( пришлось переделывать,а протестить когда все элементы больше нуля забыл(( Благо лечиться несложно
while flag=0 and i<=n do
vigun
4.06.2011 3:49
Цитата(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
4.06.2011 5:05
Цитата(vigun @ 4.06.2011 0:49)
Cможешь отправить мне всю программу полностью со среднеарифметическим и с максимумом и минимумо, ато я что то запутался!
Что-то распутывайся, приятель. Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял . Говори, где запутался.
vigun
4.06.2011 5:06
Цитата(Lapp @ 4.06.2011 4:05)
Что-то распутывайся, приятель. Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял . Говори, где запутался.
Я не знаю как теперь сюда всунуть среднеарифметичекое!
Lapp
4.06.2011 5:26
Цитата(vigun @ 4.06.2011 2:06)
Я не знаю как теперь сюда всунуть среднеарифметичекое!
А пробовал?
vigun
4.06.2011 5:27
Цитата(Lapp @ 4.06.2011 4:26)
А пробовал?
да
Lapp
4.06.2011 6:23
Цитата(vigun @ 4.06.2011 2:27)
да
Покажи, как.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.