![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить массив и подсчитать его элементы. (+ см.тему) [D7]
Kawun © (2008-11-16 15:38:00)Добрый день.
Мучаюсь над задачкой, вот ее условие:
Разработать программу с единтсвенным циклом и ветвлением в теле цикла.
При заданных X1, X2....Xn и Y1, Y2....Yn
получить массив T1, T2....T3
элементы которого получают значения по правилу Ti = max(Xi, Yi)
и подсчитать, сколько элементов Ti получило значение Xi.
А вот ее код:
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];
EditR.Text:=IntToStr(S); {Вывод результата в текстовое поле}
end;
end.
Что-то не хочет она считать, вылетает с ошибкой.
Подскажите, пожалуйста, в чем может быть проблема.
Спасибо.
Anatoly Podgoretsky (2008-11-16 19:15:00) [1]> AIK (16.11.2008 16:58:17) [17]
Зачем ты ищешь здесь смысл, это же учебное задание, которое провалено по всем пунктам.
Anatoly Podgoretsky (2008-11-16 19:13:00) [2]> Kawun (16.11.2008 16:45:14) [14]
Фигня, но не надо ничего исправлять, надо просто заниматься своим делом!
Anatoly Podgoretsky (2008-11-16 19:12:00) [3]> Сергей М. (16.11.2008 16:28:09) [9]
Ошибаешься, проблемы начинаются со строчки CONST
Вся программа очаровательный бред не замутненого сознания.
AIK (2008-11-16 16:58:00) [4]Только я вот непойму зачам тут t[i]
его результат ведь всеровно не выводится
AIK (2008-11-16 16:55:00) [5]Вроде нет
мне просто показалось что одинаковые переменные сверяются (if x[i]> x[i] then)
Palladin (2008-11-16 16:55:00) [6]ну а сам то как думаешь? логику программы тоже за тебя придумывать?
Kawun (2008-11-16 16:45:00) [7]2_ AIK
> > AIK © (16.11.08 16:38) [11]упс ошибочка
Так здесь:
> for I:=1 To N Do
> if x[i]>y[i] then
Фигня или нет?)
AIK (2008-11-16 16:39:00) [8]
> AIK © (16.11.08 16:38) [11]
упс ошибочка
Сергей М. (2008-11-16 16:39:00) [9]
> вот так верно?
>
По кр.мере значение i определено.
А верно или неверно остальное - нам отсюда не видно.
AIK (2008-11-16 16:38:00) [10]
> for I:=1 To N Do
> if x[i]>y[i] then
и здесь фигня
Kawun (2008-11-16 16:36:00) [11]
> ....> beginN := StrToInt(EditN.Text); //Задаем N (Кол-во
> элементов > массива)X[i] := StrToFloat(StringGrid1.Cells[I-
> 1, 0]);//Задаем > XY[i] := StrToFloat(StringGrid1.Cells[I-
> 1, 1]);// Задаем > Y.....а чему равен i ?может в цикле должно
> быть?
Вроде как исправил, вот так верно?
begin
N := StrToInt(EditN.Text); //Задаем N (Кол-во элементов массива)
for I:=1 To N Do
begin
X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем X
Y[i] := StrToFloat(StringGrid1.Cells[I-1, 1]);// Задаем Y
end;
Сергей М. (2008-11-16 16:28:00) [12]
> в чем может быть проблема
Проблемы начинаются со строчки
> X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем X
и далее не кончаются.
Palladin (2008-11-16 16:26:00) [13]изучи возможности клавиш F5, F7 и F8
Palladin (2008-11-16 16:25:00) [14]
> Kawun (16.11.08 16:24) [6]
а уже сказали где бред написан
Kawun (2008-11-16 16:24:00) [15]
> эта ошибка тебе ни о чем не сказала?
Особо не сказала, что-то про плав. запятую она кричит...
Как это исправить я не понял :-(
AIK (2008-11-16 16:24:00) [16]
> begin
> N := StrToInt(EditN.Text); //Задаем N (Кол-во элементов массива)
> X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем X
> Y[i] := StrToFloat(StringGrid1.Cells[I-1, 1]);// Задаем Y
Извиняюсь когда нажал на «Цитата» криво вставилось
Palladin (2008-11-16 16:20:00) [17]
> А текст ошибки таков: "" is hot a valid floating point value.
и эта ошибка тебе ни о чем не сказала?
AIK (2008-11-16 16:17:00) [18]
....
> beginN := StrToInt(EditN.Text); //Задаем N (Кол-во элементов
> массива)X[i] := StrToFloat(StringGrid1.Cells[I-1, 0]);//Задаем
> XY[i] := StrToFloat(StringGrid1.Cells[I-1, 1]);// Задаем
> Y
.....
а чему равен i ?
может в цикле должно быть?
Kawun (2008-11-16 16:15:00) [19]Тоесть Вы хотите сказать что сам код программы написан правильно?
А текст ошибки таков: "" is hot a valid floating point value.
Palladin (2008-11-16 16:11:00) [20]Проблема в ошибке.