Помогите, пожалуйста, написать программу на языке Паскаль
Помогите пожалуйста написать программу на языке Паскаль.
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1. Количество элементов массива, равных нулю. 2. Сумму элементов массива, расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей. |
Program A1;
const n=50; Var i,min,sum,nul:integer; a:array[1..n] of integer; Begin randomize; for i:=1 to n do begin a[i]:=random(30)-10; write(a[i]:4); end; nul:=0; if a[i]<0 then nul:=nul+1; Writeln('Koli4ectBo HyJlEi=',nul:2); for i:=1 to n do begin min:=-10; end; for i:=1 to n do begin if a[i]<min then min:=a[i]; sum:=min+a[i+1]; end; Writeln('CyMMa ElementoB /7OCJlE min=',sum:4); end. Как видишь чето у меня не получается,посмотрим что мастера скажут. |
Цитата:
Раджаб bro, то, что Вы представили это, извините, полный ужас и какое-то хаотическое нагромождение ошибок и неряшливостей. Вместо количества нулевых считается количество отрицательных членов, цикл поиска минимума вообще отсутствует, зато зачем-то n раз осуществляется операция min:=-10;, попытка сосчитать сумму членов после минимального - вообще какой-то бред, упорядочение массива отсутствует, и т.д. и т.п. Справедливости ради отмечу, что и в самом задании присутствует ляп, уж не знаю, по чьей вине. Дело в том, что если массив вещественный (real), то вероятность появления в нем строго нулевых членов настолько мала, что определять их количество абсолютно бессмысленное дело. Поэтому будем считать массив целочисленным (integer). С учетом этого: Код:
const |
Не успел, но выкладываю.
Интерено мнение о качестве. const n= 20; var A: array[1..n] of Real; i,null,e: byte; t,min,sum: Real; begin Randomize; for i:=1 to n do A[i]:= Random(100)/10; for i:=1 to n do Write(A[i]:5:1); Writeln; min:= A[1]; null:=0; e:=0; for i:=1 to n do begin if A[i]=0 then Inc(null); if A[i]< min then begin min:= A[i]; e:=i; end; end; Writeln('Null=',null); sum:=0; for i:= (e+1) to n do sum:= sum+A[i]; Writeln('Summa=',sum:0:1); for i:=1 to n-1 do for e:=1 to n-i do if A[e]>A[e+1] then begin t:=A[e]; A[e]:=A[e+1]; A[e+1]:=t; end; for i:=1 to n do Write(A[i]:5:1); Readln; end. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Что поделаешь надо учиться.Плохо прогу видать обдумал. |
if a[i]<0 then nul:=nul+1
нет ну это хоть как я допустил там же видно что если =0,а не меньше...ужас |
Часовой пояс GMT +4, время: 23:13. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.