12.12.2012, 17:26 | #11 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
12.12.2012, 17:26 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
В темах которые наши участники создавали ранее можно найти полезные советы Задачка с функциями файловой системы ввода-вывода Написать программу в Pascal с процедурами и функциями Помогите пожалуйста! Пожалуйста помогите |
12.12.2012, 17:43 | #13 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
ну так то да))на эту специальность пошел под предолгом работы с железом а не кодить))приходится учить то что не знаю)самое непонятное в этом задание для меня "среднее арифметическое значение элементов вектора vectorn, находящихся между вторыми по значению максимальным и минимальным его элементами" в этом и вся суть этой программы))
|
12.12.2012, 20:11 | #14 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
const n=10; Type Tvect=array [1..n] of integer; var V_max,V_min,i:integer; vector:Tvect; b:boolean; arifmet:real; Procedure Arif(nn:integer; AA:Tvect;var arifm:real; var ar_b:boolean); var i,min1,min2,max1,n,max2:integer; Sum:real; begin max1:=AA[1]; for i:=2 to nn do if (AA[i]>max1) then max1:=AA[i]; Writeln('Max1 = ', max1); min1:=AA[1]; for i:=2 to nn do if (AA[i]<min1) then min1:=AA[i]; Writeln('Min1 = ', min1); max2:=min1; for i:=1 to nn do if (AA[i]>max2) and (AA[i]<max1) then max2:=AA[i]; Writeln('Max2 = ', max2); min2:=max1; for i:=1 to nn do if (AA[i]<min2) and (AA[i]>min1) then min2:=AA[i]; Writeln('Min2 = ', min2); Writeln; n:=0; Sum:=0; for i:=1 to nn do if (AA[i]>min2) and (AA[i]<max2) then begin Inc(n); Sum:=Sum+AA[i]; end; if n=0 then begin arifm:=0; ar_b:=false; end else begin arifm:=Sum/n; ar_b:=true; end; end; Begin Randomize; Writeln('Diapazon slych chisel:'); Write('V_min= '); readln(V_min); Write('V_max= '); readln(V_max); For i:=1 to n do begin vector[i]:=Random(V_max-V_min + 1) + V_min; write(vector[i],' '); end; Writeln; Writeln; Arif(n,vector,arifmet,b); If b then Writeln('Sred. arifm. = ',arifmet:0:3) else Writeln('Takih elementov net!'); Readln End. |
|
12.12.2012, 20:14 | #15 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
13.12.2012, 03:30 | #16 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Код:
Program vitjok; uses crt; const n=10; Type Tvect=array [1..n] of integer; var arifmet,Vmax,Vmin,i:integer; vec:Tvect; Function Arif(nn:integer; AA:Tvect):real; var i,i1,i2,min1,min2,max1,max2:integer; n:real; begin max1:=AA[1]; min1:=AA[1]; for i:=2 to nn do begin if (AA[i]<=max1) then max1:=AA[i]; if (AA[i]>=min1) then min1:=AA[i]; end; max2:=AA[1]; min2:=AA[1]; i1:=1; i2:=1; for i:=1 to nn do begin if (AA[i]<=max2) and (aa[i]<>max1) then begin max2:=AA[i]; i1:=i; end; if (AA[i]>=min2) and (aa[i]<>min1) then begin min2:=AA[i]; i2:=i; end; end; writeln(min2,' ',i2,' ',max2,' ',i1); if i1>i2 then begin i:=i1; i1:=i2; i2:=i; end; if (i2-i1)>1 then begin For i:=i1+1 to i2-1 do n:=n+AA[i]; n:=n/(i2-i1-1); writeln(n); end else writeln('net chisel'); end; begin Randomize; Writeln('Diapozon slych chisel'); Write('Vmin='); readln(Vmin); Write('Vmax='); readln(Vmax); For i:=1 To n Do vec[i]:=Random(vmax-vmin + 1) + vmin; Writeln; WriteLn; WriteLn('ishodn vectr:'); For i:=1 To n Do Write(vec[i]:4); WriteLn; arif(n,vec); end. Последний раз редактировалось vitjok; 13.12.2012 в 03:36 |
20.12.2012, 10:19 | #17 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
здравствуйте Владимир, написал програму ко 2-му заданию, в разный версиях паскаль работает по разному, точнее в строке 60 и 123 выдает ошибку выход за границы диапазона((
Код:
program hj; uses crt; const n=10; Type Tvect=array [1..n] of integer; var V_max,V_min,i, j, n_min1, n_min2, temp :integer; vector:Tvect; b:boolean; arifmet:real; min1, min2, arifm, shift :real; Procedure Arif(nn:integer; AA:Tvect; var arifm:real; var ar_b:boolean); var i,min1,min2,max1,n,max2:integer; Sum:real; begin n:=0; Sum:=0; for i:=1 to nn do begin Inc(n); Sum:=Sum+AA[i]; end; if n=0 then begin arifm:=0; b:=false; end else begin arifm:=Sum/n; b:=true; end; end; begin min1:=abs(vector[1] - arifmet); n_min1:=1; For i:=2 to n do begin shift:=abs(vector[i] - arifmet); if (shift < min1) then begin min2:=min1; n_min2:=n_min1; min1:=shift; n_min1:=i; end; end; For i:=1 to n do begin if ((vector[i] > min1) AND (vector[i] < min2)) then min2:=vector[i]; end; if (n_min1=(n_min2+1)) or (n_min1=(n_min2-1)) then writeln('there are no values between ', vector[n_min1] , ' AND', vector[n_min2] ,' to sort!' ) else begin begin if n_min1>n_min2 then begin for i:=(n_min1-1) downto (n_min2+2) do for j:=(n_min2+1) to (i-1) do if vector[j]>vector[j+1] then begin temp:=vector[j]; vector[j]:=vector[j+1]; vector[j+1]:=temp; end; end; if n_min1<n_min2 then for i:=(n_min2-1) downto (n_min1+2) do for j:=(n_min1+1) to (i-1) do if vector[j]>vector[j+1] then begin temp:=vector[j]; vector[j]:=vector[j+1]; vector[j+1]:=temp; end; end; end; Begin Randomize; Writeln('Diapazon slych chisel:'); Write('V_min= '); readln(V_min); Write('V_max= '); readln(V_max); writeln('______________________________'); writeln; For i:=1 to n do begin vector[i]:=Random(V_max-V_min + 1) + V_min; write(vector[i],' '); end; writeln; writeln('______________________________'); Writeln; Arif(n,vector,arifmet,b); writeln('Sred. arifm = ', arifmet); writeln('Sorting between: ', vector[n_min1], ' AND ', vector[n_min2]); writeln; writeln('______________________________'); writeln; For i:=1 to n do begin write(vector[i]:3); end; writeln; writeln('______________________________'); end; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|