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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 20:46   #1
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию Как получить из двух заданных массивов третий? + см. тему. (Delphi)

И снова здравствуйте! :-)
И снова у меня вопросы с задачей.

Разработать программу с единтсвенным циклом и ветвлением в теле цикла.

При заданных X1, X2....Xn и Y1, Y2....Yn
получить массив T1, T2....T3
элементы которого получают значения по правилу Ti = max(Xi, Yi)
и подсчитать, сколько элементов Ti получило значение Xi.

Подскажите, пожалуйста, как делается следующее:
Цитата:
элементы которого получают значения по правилу Ti = max(Xi, Yi)
и подсчитать, сколько элементов Ti получило значение Xi.
Подскажите как их можно подсчитать?
Заранее спасибо.
Kawun вне форума Ответить с цитированием
Старый 14.11.2008, 21:05   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Подскажите как их можно подсчитать?
Очень просто. Объявляем переменную-счетчик, присваиваем ей 0.
При создании T[i] сравниваем его с x[i] и, если они равны, добавляем к счетчику единичку...
mihali4 вне форума Ответить с цитированием
Старый 14.11.2008, 22:09   #3
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию

Эх котелок у меня совсем не варит, вот что-то это не понял:
Цитата:
Сообщение от mihali4 Посмотреть сообщение
При создании T[i] сравниваем его с x[i] и, если они равны, добавляем к счетчику единичку...
А как это будет выглядеть в виде кода?)

PS: Вот пока моя программка :-)) :
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  NMAX = 20; {Максимальное кол-во элементов массива}
type
  TMas = Array [1..NMAX] of Real;
var
X: TMas; {Исходный массив}
Y: TMas; {Исходный массив}
T: Tmas; {Массив который нам надо получить}
Schetchik: Integer; {Счетчик}
N: Integer; {Кол-во элементoв массива}
begin
N := StrToInt(Edit1.Text);
Schetchik:=0
end;
end.
Kawun вне форума Ответить с цитированием
Старый 14.11.2008, 22:17   #4
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию

да и еще вот как это делать):
Цитата:
элементы которого получают значения по правилу Ti = max(Xi, Yi)
Kawun вне форума Ответить с цитированием
Старый 14.11.2008, 22:53   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
Schetchik:=0;
for i:=1 to n do
if x[i]>y[i] then 
   begin
     t[i]:=x[i];
     Schetchik:=Schetchik+1;
   end
 else t[i]:=y[i];

Последний раз редактировалось puporev; 14.11.2008 в 22:55.
puporev вне форума Ответить с цитированием
Старый 16.11.2008, 09:50   #6
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию

Спасибо.
Подправил свой код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  NMAX = 20; {Максимальное кол-во элементов массива}
type
  TMas = Array [1..NMAX] of Real;
var
X: TMas; {Исходный массив}
Y: TMas; {Исходный массив}
T: Tmas; {Массив который нам надо получить}
Schetchik: Integer; {Счетчик}
I: Integer; {Параметр цикла}
N: Integer; {Кол-во элементoв массива}
begin
N := StrToInt(EditN.Text); //Задаем N (Кол-во элементов массива)
X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем X
Y[i] := StrToFloat(StringGrid1.Cells[I-1, 1]);// Задаем Y
Schetchik:=0
for I:=1 To N Do
if x[i]>y[i] then
   begin
     t[i]:=x[i];
     Schetchik:=Schetchik+1;
   end
 else t[i]:=y[i];
 end;
 ShowMessage('Кол-во элементов Ti получившее значение Xi' + FloatToStrF(); {Вывод результата}
end;
end.
Но программа спотыкается на этом этапе:
Код:
for I:=1 To N Do
пишет, что то ли где-то ; нет, то ли недостает оператора.
Подправте пожалуйста код.
Да и можете помочь с выводом результата, вот что нужно подставить FloatToStrF(!сюда!) что бы он выводился?

Спасибо.
Kawun вне форума Ответить с цитированием
Старый 16.11.2008, 09:57   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Schetchik:=0
надо Schetchik:=0;
puporev вне форума Ответить с цитированием
Старый 16.11.2008, 13:47   #8
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию

И снова программа спотыкается
на это раз пишет следующее:
[Hint] Unit1.pas(46): Value assigned to 'S' never used
Выделяет красным это место -
Код:
EditR.Text:=FloatToStr(S)
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  NMAX = 20; {Максимальное кол-во элементов массива}
type
  TMas = Array [1..NMAX] of Real;
var
X: TMas; {Исходный массив}
Y: TMas; {Исходный массив}
T: Tmas; {Массив который нам надо получить}
S: Integer; {Счетчик}
I: Integer;
N: Integer; {Кол-во элементoв массива}
begin
N := StrToInt(EditN.Text); //Задаем N (Кол-во элементов массива)
X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем X
Y[i] := StrToFloat(StringGrid1.Cells[I-1, 1]);// Задаем Y
S:=0; //Присваиваем счетчику 0
for I:=1 To N Do
if x[i]>y[i] then
   begin
     t[i]:=x[i];
     S:=S+1;
   end
 else t[i]:=y[i];
 end;
EditR.Text:=FloatToStr(S); //Вывод результата в текстовое поле
end;
end.
Kawun вне форума Ответить с цитированием
Старый 16.11.2008, 14:40   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1.
Код:
const
  NMAX = 20; {Максимальное кол-во элементов массива}
type
  TMas = Array [1..NMAX] of Real;
Это уберите из процедуры вверх, перед var Form1:Tform;
2.S: Integer; {Счетчик}
значит надо EditR.Text:=IntToStr(S); //Вывод результата в текстовое поле
3.Перед этой сточкой лишний end;
puporev вне форума Ответить с цитированием
Старый 16.11.2008, 16:11   #10
Kawun
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 32
По умолчанию

puporev
Поясните пожалуйста по подробней вот это:
Цитата:
1.
Код:

const
NMAX = 20; {Максимальное кол-во элементов массива}
type
TMas = Array [1..NMAX] of Real;
Это уберите из процедуры вверх, перед var Form1:Tform;
Kawun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из двух заданных массивов В и С одинаковой длины построить новый массив Absent Помощь студентам 4 11.03.2008 21:38
Выбрать из двух массивов совпадение. *Иван* Microsoft Office Excel 7 22.11.2007 21:10
одномерный массив, элементы которого собраны в возрастающем порядке из двух начальных массивов Scudetto Общие вопросы C/C++ 7 21.10.2007 20:46
как из двух отсортированных по возрастанию одномерных массивов сформировать третий Тоха Рыжов Общие вопросы C/C++ 1 07.10.2007 01:43
Реализовать такую тему как в винде ( arp -a ), получить ARP таблицу APOSTOL Работа с сетью в Delphi 3 07.06.2007 12:15