Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 29.05.2014, 18:38   #1 (permalink)
йцуйцу
Banned
 
Регистрация: 29.05.2014
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Массивы

Ребятки, кто то может переделать с процедурами/функциями?
Дан массив 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, 18:38
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую вам ознакомиться с ответами в этих топиках

Массивы
Массивы
Массивы
С++ Массивы
Массивы в Си
Массивы

Старый 29.05.2014, 22:25   #2 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,211
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10360
По умолчанию

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

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.

Ввод сделал случайными числами, но можно переделать на ручной.
Евгений вне форума   Ответить с цитированием
Старый 29.05.2014, 23:49   #3 (permalink)
poiu
Member
 
Регистрация: 05.03.2014
Сообщений: 201
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
По умолчанию

а куда 0 девался и почему 5 не повторяется?
poiu вне форума   Ответить с цитированием
Старый 30.05.2014, 09:23   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,838
Сказал(а) спасибо: 316
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от poiu Посмотреть сообщение
а куда 0 девался и почему 5 не повторяется?
Очевидно, подразумевается разбивка массива на пары и замена каждой пары бОльшим из компонентов.
1 3 5 -2 0 4 → (1 3) (5 -2) (0 4) → 3 5 4
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 30.05.2014, 09:55   #5 (permalink)
poiu
Member
 
Регистрация: 05.03.2014
Сообщений: 201
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
По умолчанию

ах пары. вот зачем N четное. спасибо, сразу не допер =).
poiu вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 30.05.2014, 19:10   #6 (permalink)
йцуйцу
Banned
 
Регистрация: 29.05.2014
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, прога должна сравнивать 2 рядом стоящих числа по парно, и делать вывод о больше и вносить в новый массив
йцуйцу вне форума   Ответить с цитированием
Старый 30.05.2014, 19:29   #7 (permalink)
йцуйцу
Banned
 
Регистрация: 29.05.2014
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Напишите сразу все вопросы, отвечу, хотя наверно завтра сам буду доделывать)
йцуйцу вне форума   Ответить с цитированием
Старый 30.05.2014, 22:45   #8 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,211
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10360
По умолчанию

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

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.
Евгений вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.