Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Массивы (http://www.tehnari.ru/f41/t96650/)

йцуйцу 29.05.2014 18:38

Массивы
 
Ребятки, кто то может переделать с процедурами/функциями?
Дан массив A(N), N - четное. Сформировать массив B(N), элементами которого являются большие из двух рядом стоящих в массиве A чисел. Например, массив А состоит из элементов 1 3 5 -2 0 4, тогда массив В: 3 5 4.
CONST
N=5;
VAR
A:ARRAY[1..2*N] of REAL;
B:ARRAY[1..N] of REAL;
i:INTEGER;
BEGIN
For i:=1 to 2*N do
begin
Write('A[',i:2,']= ');
ReadLn(A[i]);
end;
WriteLn;

For i:=1 to N do
B[i]:=(A[2*i-1]+A[2*i])/2;

For i:=1 to 2*N do
Write(A[i]:6:2);
WriteLn;

Write(B[1]:9:2);
For i:=2 to N do
Write(B[i]:12:2);
WriteLn;

ReadLn;
END.

Евгений 29.05.2014 22:25

Может я не прав, но, по-моему, правильнее будет так:

const n=10;
type mass= array[1..n] of Real;
function Big(aA: mass;ai: byte): Real;
var m: Real;
begin
if aA[ai]>aA[ai-1] then m:= aA[ai]
else m:= aA[ai-1];
Big:= m;
end;
var A,B: mass;
j,i: byte;
t: Real;
begin
Randomize;
for i:=1 to n do
begin
A[i]:= Random(100)/10;
Write(A[i]:4:1);
end;
Writeln;
Writeln;
j:=1;
for i:=2 to n do
begin
t:= Big(A,i);
B[j]:= t;
Inc(j)
end;
for j:=1 to (n-1) do
Write(B[j]:4:1);
Readln;
end.

Ввод сделал случайными числами, но можно переделать на ручной.

poiu 29.05.2014 23:49

а куда 0 девался и почему 5 не повторяется?

Vladimir_S 30.05.2014 09:23

Цитата:

Сообщение от poiu (Сообщение 1036182)
а куда 0 девался и почему 5 не повторяется?

Очевидно, подразумевается разбивка массива на пары и замена каждой пары бОльшим из компонентов.
1 3 5 -2 0 4 → (1 3) (5 -2) (0 4) → 3 5 4

poiu 30.05.2014 09:55

ах пары. вот зачем N четное. спасибо, сразу не допер =).

йцуйцу 30.05.2014 19:10

Да, прога должна сравнивать 2 рядом стоящих числа по парно, и делать вывод о больше и вносить в новый массив

йцуйцу 30.05.2014 19:29

Напишите сразу все вопросы, отвечу, хотя наверно завтра сам буду доделывать)

Евгений 30.05.2014 22:45

Попарно так попарно:

const n=5;
type mass= array[1..2*n] of Real;
function Big(aA: mass;ai: byte): Real;
var m: Real;
begin
if aA[ai]>aA[ai-1] then m:= aA[ai]
else m:= aA[ai-1];
Big:= m;
end;
var A,B: mass;
j,i: byte;
t: Real;
begin
for i:=1 to 2*n do
begin
Write('A[',i,':1]=');
Readln(A[i]);
end;
Writeln;
for i:=1 to 2*n do
Write(A[i]:5:1);
Writeln;
Writeln;
i:=2;j:=1;
repeat
t:= Big(A,i);
B[j]:= t;
Inc(i,2);
Inc(j)
until i>2*n;
for i:=1 to (j-1) do
Write(B[i]:5:1);
Readln;
end.


Часовой пояс GMT +4, время: 20:09.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.