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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2017, 09:21   #1
No[o]ne
Новичок
Джуниор
 
Регистрация: 07.06.2017
Сообщений: 2
По умолчанию Одномерные массивы - В одном массиве записано количество мячей, забитых футбольной командой в каждой из n игр, в другом – количество пропущенных мячей в этой же игре [Delphi]

В одном массиве записано количество мячей, забитых футбольной командой в каждой из n игр, в другом – количество пропущенных мячей в этой же игре. Для каждой игры определить словесный результат игры (выигрыш, проигрыш или ничья).
Вот мой вариант решения, но он не правильный , помогите переделать , мб полностью если нужно
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
a:array of integer;
i,n:integer;
begin
for i:=1 to n do
begin
  a[i]:=random(5)+1;
Listbox1.Items.Add(intToStr(a[i]));
end;

end;

procedure TForm1.Button4Click(Sender: TObject);
var
b:array of integer;
i,n:integer;
begin
for i:=1 to n do
begin
  b[i]:=random(5)+1;
  Listbox2.Items.Add(intToStr(b[i]));
  for i := 1 to n do Begin
if a[i]=b[i] then ShowMessage ('ничья')
else if a[i] > b[i] then ShowMessage ('выигрыш')
else ShowMessage ('проигрыш');
End;
end;
end;
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 07.06.2017 в 09:30.
No[o]ne вне форума Ответить с цитированием
Старый 07.06.2017, 09:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от No[o]ne Посмотреть сообщение
procedure TForm1.Button3Click(Sender: TObject);
var
a:array of integer;
рекомендую почитать, что такое "локальные переменные", "области видимости"...

а если вкратце - Вы объявили массив a внутри процедуры, и видна эта переменная (и существует) только внутри этой процедуры. за пределами этой процедуры этой переменной НЕ СУЩЕСТВУЕТ.

если нужно в одной процедуре заполнять один массив, а в другой - иметь к нему доступ - объявляете массив(ы) глобальной переменной.

это раз.

второе.
определение:
Цитата:
Код:
var a:array of integer;
описывает ДИНАМИЧЕСКИЙ массив (тоже почитайте, что это такое).
его основная характеристика - изменяемый размер.
поэтому, прежде чем обращаться к его содержимому, нужно сперва задать размер массива (чтобы для него выделилась память) с помощью процедуры SetLength()

третье, вы делаете цикл до n - а в n ничего не записали, там мусор. Как Вы думаете, сколько раз выполнится цикл?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файлы c++: написать программу, которая читает свой текст и обрабатывает по заданному правилу: в конце каждой строки записать количество символов в этой строке. Крисеныш Фриланс 3 25.05.2017 08:20
[Паскаль, массивы]: вывести количество элементов каждой строки матрицы отдельной строкой в исходную матрицу _Ася_ Помощь студентам 1 16.12.2015 09:33
Дан массив A(n,m). Найти количество элементов в каждой строке, меньшего диагонального в этой строке. Proskurina Помощь студентам 5 03.03.2013 20:41
Программа бильярд(соударение мячей) C# Kehab Помощь студентам 0 21.01.2012 11:26
Задача от VBA. Одномерные массивы-подсчитать количество положительных и отрицательных чисел ДМИТРИЙ1234 Microsoft Office Excel 12 02.06.2011 23:22