IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> надо найти ошибки, надо найти ошибки (массивы)
Assassin
сообщение 13.02.2013 18:03
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Разработать программу получения и обработки одномерного массива, состоящую из 4 частей.
Часть 1. Вычислить значения 32 элементов одномерного целочисленного массива T в интервале (-8,8) с использованием генератора случайных чисел.
Часть 2. Вычислить среднеарифметическое значение нечетных по номеру элементов последней трети массива.
Часть 3. Определить два наибольших элемента, среди отрицательных элементов первой четверти массива.
Часть 4. Упорядочить чётные по номеру элементы всего массива по возрастанию модулей обратных.

надо найти ошибки


Program Work_4; 
Type vector=array[1..100] of integer;
var c,buf,Vr, n, i, a, b: integer;
G: vector;
Sg,P: real;

Procedure Part_1(Vr,n,a,b:integer; var G:vector);
var i:integer;
Begin
If Vr<>1 then randomize;
for i:=1 to n do g[i]:=a+Round((b-a)*Random(100)/100);
end;


Procedure Part_2(n:integer; G:vector; var Sg:real);
var i,k:integer;
P:real;




Begin
P:=1;
k:=0;
For i:=1 to (n div 3)*2+1 do
if i mod 2=1 then
begin
inc(g[i]);
inc(k);
end;
writeln;
if k=0 then writeln('Нет четных элементов в последней трети массива')
else writeln('Ср.ар=',P/k:7:2);
end;


Procedure Part_3(n:integer; G:vector);
var i,k,max,max2:integer;
Begin

k:=0;
max:=g[1];
max2:= g[2];

If g[i]<0 then
while (i<n) do
begin


if max < max2 then
begin
max:=g[2];
max2:=g[1];
end;
For i:=1 to n div 4 do
if g[i]>max then
begin
max2:=max;
max:=g[i];
end
else
if g[i]>max2 then
max2:=g[i];
end;

begin
writeln('max1=',max,'max2',max2);
end;
k:=k+1;
end;



Procedure Part_4(n:integer; var Num,A,B:vector);
var i, temp, m, j: integer;
f: boolean;
Begin
for i:=1 to n do begin
A[i]:=random(20)+1;
write(A[i]:4);
end;
writeln;
m:=0;
for i:=2 to n div 2 do begin
if i mod 2 = 0 then begin
inc(m);
B[m]:=A[i];
num[m]:=i;
end;
end;

for i:=1 to m do begin
write(B[i]:4);
end;

writeln;

for i:= 1 to m - 1 do
for j:=1 to m - i do
if Abs(1/b[j]) < Abs(1/b[j+1]) then begin
temp:=b[j];
b[j]:=b[j+1];
b[j+1]:=temp;
end;

for i:=1 to n do begin
f:=false;
j:=0;
repeat
inc(j);
if num[j] = i then f:=true;
until f or ( j = m );
if f then write(B[j]:4) else write(A[i]:4);
end;
readln;
end;


begin
write('введите вариант расчета Vr => ');
readln(Vr);
if Vr=0 then
begin
n:=25; a:=-8; b:=7; c:=2;
g[1] := 1; g[2] := 0; g[3] :=-3; g[4] := 2; g[5] := 0;
g[6] :=-3; g[7] := 4; g[8] := 3; g[9] := 2; g[10]:= 0;
g[11]:= 0; g[12]:= 4; g[13]:= 0; g[14]:=-2; g[15]:=-1;
g[16]:=-1; g[17]:= 1; g[18]:=-5; g[19]:= 0; g[20]:= 6;
g[21]:= 2; g[22]:=-7; g[23]:=-5; g[24]:= 1; g[25]:= 3;
end
else
begin
Write('Vvedite n,a,b => '); readln(n,a,b);
Part_1(Vr,n,a,b,g);
end;
for i:=1 to n do write(g[i],' ' );



end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"