Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить массив и подсчитать его элементы. (+ см.тему) [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]

Проблема в ошибке.


Наверх

Титульная страница Поиск, карта сайта Написать письмо