Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2012, 16:05   #1
dmitriy20104
Пользователь
 
Регистрация: 21.06.2012
Сообщений: 36
По умолчанию Даны вещественные массивы А,В и С, содержащие по 50 элементов. Вычислить

Ребят, помогите . У меня есть алгоритм решения задачи, а код в голову не лезет...
Вот задача:
Даны вещественные массивы А,В и С, содержащие по 50 элементов. Вычислить
ti=min(Bi)/max(Ai)+max(Ci)/min(Bi+Ci) при min(Ai) < max(Bi),
ti=max(Bi+Ci)+min(Ci) иначе
Вот алгоритм:
Составить процедуру создания массива и процедуру нахождения мин и мкс в массиве. Вызвать их по три раза с фактическими параметрами. Найденные значения мин и макс сравнить и подставь в формулы.
dmitriy20104 вне форума Ответить с цитированием
Старый 19.08.2012, 02:59   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а как массивы заполнять, с клавиатуры или рандомно?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 19.08.2012, 05:45   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Слушай, ну вот код, массивзаполняется с клавиатуры
Код:
program forum;
uses crt;
var
a,b,c:array [1..50] of real;
max1,max2,max3,min1,min2,min3,ti:real;
m,n,k,i,j,l:byte;
procedure BBOD;
begin
write('BBEDITE KOLLICHESTBO ELEMENTOB B MASSIB "A"...');
readln(m);
write('BBEDITE KOLLICESTBO ELEMENTOB B massiB "b"...');
readln(n);
write('BBEDITE KOLLICHESTBO ELEMENTIB B massiBE "c"...');
readln(k);
clrscr;
writeln('BBEDITE ELEMENTbI MASSIBA A') ;
for i:=1 to m do
begin
write('BBEDITE ',i,'-element');
readln(a[i]);
end;
clrscr;
writeln('BBEDITE ELEMENTbI MASSIBA b');
for j:=1 to n do
begin
write('BBEDITE ',j,'-element');
readln(b[j]);
end;
clrscr;
writeln('BBEDITE ELEMENTbI MASSIBA C');
for l:=1 to k do
begin
write('BBEDITE ',l,'-element');
readln(c[l]);
end;
clrscr;
end;
procedure max;
begin
max1:=a[i];
max2:=b[j];
max3:=c[l];
for I:=1 to m do
begin
if a[i]>=max1 then
begin
max1:=a[i]
end;
end;
for j:=1 to n do
begin
if b[j]>=max2 then
begin
max2:=b[j];
end;
end;
for l:=1 to k do
begin
if c[l]>=max3 then
begin
max3:=c[l];
end;
end;
end;
procedure min;
begin
min1:=a[i];
min2:=b[j];
min3:=c[l];
for I:=1 to m do
begin
if a[i]<min1 then
begin
min1:=a[i];
end;
end;
for j:=1 to n do
begin
if b[j]<min2 then
begin
min2:=b[j];
end;
end;
for l:=1 to k do
begin
if c[l]<min3 then
begin
min3:=c[l];
end;
end;
end;
begin
clrscr;
BBOD;
MAX;
min;
if min1<max2 then
begin
ti:=min2/max1+max3/min2+min3;
end
else
ti:=(max2+max3)+min3;
writeln('OTBET=',ti:2:3);
writeln('HA}|{MITE ENTER DLYA BbIXODA...');
readln;
end.
Вот с процедурами если надо, хотя без них было бы лучше, писать меньше
from dark to light)

Последний раз редактировалось Алексей_2012; 19.08.2012 в 05:58.
Алексей_2012 вне форума Ответить с цитированием
Старый 19.08.2012, 09:03   #4
dmitriy20104
Пользователь
 
Регистрация: 21.06.2012
Сообщений: 36
По умолчанию

Алексей, спасибо! Массивы надо было рандомно, но это я уже сам исправлю. И надо с процедурами (тема процедуры и функции). Спасибо!
dmitriy20104 вне форума Ответить с цитированием
Старый 19.08.2012, 13:23   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Внимательно читаем:
Цитата:
Даны вещественные массивы А,В и С, содержащие по 50 элементов. Вычислить
ti=min(Bi)/max(Ai)+max(Ci)/min(Bi+Ci) при min(Ai) < max(Bi),
ti=max(Bi+Ci)+min(Ci)
Обратите внимание, что
Цитата:
ti=max(Bi+Ci)+min(Ci)
не то-же, что:
Цитата:
ti:=(max2+max3)+min3
.

max(Bi+Ci), min(Bi+Ci) - это надо вначале сложить элементы массивов, а потом искать max(Bi+Ci) и min(Bi+Ci).

Как-то так получается ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 19.08.2012, 16:07   #6
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

ViktoR, по формуле 2 нужно к максимальному элементу в массиве "В" прибавить максимальный элемент массива "С" затем к полученной сумме прибавить минимальный элемент "С", по моей формуле так и получается, так что обе формулы эквивалентны
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 19.08.2012, 19:09   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Соглашусь с ViktorR. Эти формулы не эквивалентны.
Например:
B: 1 2 3
C: -1 -2 -3
max(Bi+Ci)=0
min(Bi+Ci)=0
maxBi=3
maxCi=-1
maxBi+maxCi=2
minBi=1
minCi=-3
minBi+minCi=-2
Мне непонятно наличие буквы i около T.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.08.2012, 20:36   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Мне непонятно наличие буквы i около T.
Может, T - это тоже массив?
Вадим Мошев вне форума Ответить с цитированием
Старый 19.08.2012, 21:52   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Может, T - это тоже массив?
Такая мысль меня посещала, но тогда теряется смысл поиска минимума/максимума среди ОДНОГО элемента массива.
В общем, ждем комментариев ТС, если его еще интересует данная тема.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.08.2012, 12:38   #10
Ev[G]eN
C / C++ / Java
Пользователь
 
Регистрация: 23.01.2011
Сообщений: 14
По умолчанию

Код:
const
  Size = 50;
type
  TArr = Array[1..Size] of Integer;
var
  FirstArr, SecondArr, ThirdArr: TArr;
  FirstMax, SecondMax, ThirdMax: Integer;
  FirstMin, SecondMin, ThirdMin: Integer;
  Res: Real;

procedure Create_Array(var Arr: TArr; Size: Integer);
var
  i: Byte;
begin
  Randomize;
  for i:=1 to Size do
  begin
    Arr[i]:=Random(Size)-15;
    write(Arr[i], ' ');
  end;
  writeln;
end;

procedure Maximal_Minimal_of_Array(Arr: TArr; var Maximal, Minimal: Integer);
var
  i, MaxArr, MinArr: Byte;
begin
  MaxArr:=1; MinArr:=1;
  for i:=1 to Size do
    if Arr[i] > Arr[MaxArr] then
      MaxArr:=i
    else if Arr[i] < Arr[MinArr] then
      MinArr:=i;
  Maximal:=Arr[MaxArr]; Minimal:=Arr[MinArr];
end;

begin
  writeln('Первый массив: ');
  Create_Array(FirstArr, Size);
  Maximal_Minimal_of_Array(FirstArr, FirstMax, FirstMin);
  writeln('Максимальный элемент: ', FirstMax, '; Минимальный элемент: ', FirstMin);
  writeln('Второй массив: ');
  Create_Array(SecondArr, Size);
  Maximal_Minimal_of_Array(SecondArr, SecondMax, SecondMin);
  writeln('Максимальный элемент: ', SecondMax, '; Минимальный элемент: ', SecondMin);
  writeln('Третий массив: ');
  Create_Array(ThirdArr, Size);
  Maximal_Minimal_of_Array(ThirdArr, ThirdMax, ThirdMin);
  writeln('Максимальный элемент: ', ThirdMax, '; Минимальный элемент: ', ThirdMin);
  if FirstMin < SecondMax then
    Res:=SecondMin / FirstMax + ThirdMax / (SecondMin + ThirdMin)
  else Res:=(SecondMax + ThirdMax) + ThirdMin;
  writeln('Результат: ', Res:0:2);
end.
Ev[G]eN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пусть даны вещественные числа a1,a2,...,an. MarinShka Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2010 01:58
Даны два одномерных массива, содержащие вещественные числа. Упорядочить по убыванию значен [Meeen] Общие вопросы C/C++ 1 08.06.2010 00:49
Даны 4 вещественные матрицы. Найти сумму Свечечка Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2010 12:43
Даны вещественные числа a1,a2,...,an Floro Flores Помощь студентам 4 19.05.2010 00:03
одномерные массивы(C++) - Найти максимальный положительный элемент и вычислить сумму элементов массива Scarletred Помощь студентам 2 03.04.2010 03:08