• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Массивы

йцуйцу

Banned
Регистрация
29 Май 2014
Сообщения
11
Реакции
0
Баллы
0
Массивы

Ребятки, кто то может переделать с процедурами/функциями?
Дан массив 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);
end;
WriteLn;

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

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

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

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

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:= Random(100)/10;
Write(A: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.

Ввод сделал случайными числами, но можно переделать на ручной.
 
а куда 0 девался и почему 5 не повторяется?
 
а куда 0 девался и почему 5 не повторяется?
Очевидно, подразумевается разбивка массива на пары и замена каждой пары бОльшим из компонентов.
1 3 5 -2 0 4 → (1 3) (5 -2) (0 4) → 3 5 4
 
ах пары. вот зачем N четное. спасибо, сразу не допер =).
 
Да, прога должна сравнивать 2 рядом стоящих числа по парно, и делать вывод о больше и вносить в новый массив
 
Напишите сразу все вопросы, отвечу, хотя наверно завтра сам буду доделывать)
 
Попарно так попарно:

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);
end;
Writeln;
for i:=1 to 2*n do
Write(A: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:5:1);
Readln;
end.
 
Назад
Сверху