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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2013, 17:15   #1
azhigalieva
 
Регистрация: 18.10.2013
Сообщений: 8
По умолчанию Delphi Произведение элементов массива

Программа должна считать произведение элементов массива. Она работает правильно. Помогите дописать код этой программы так, чтобы при вводе в массив букв (и англ. и русс.) через showmessage выводилось сообщение "Ошибка: некорректный ввод"
Вот основной код моей недоделанной программы:

Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
 a:array[1..5] of integer;
i,pr:integer;
begin
 for i:= 1 to 5 do
a[i]:=strtoint(stringgrid1.cells[i-1,0]);
Pr:=1;
for i:=1 to 5 do
if a[i]>a[1] then pr:=pr*a[i];
label2.Caption:='Произведение элементов=' +IntToStr(pr);
end;

Последний раз редактировалось azhigalieva; 12.11.2013 в 17:25.
azhigalieva вне форума Ответить с цитированием
Старый 12.11.2013, 17:38   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Воспользуйтесь методом TryStrToInt. Оно вернет False, если в строке будут какие-то левые символы, мешающие переводу оной в число
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 12.11.2013, 18:52   #3
azhigalieva
 
Регистрация: 18.10.2013
Сообщений: 8
По умолчанию

Нельзя так, нужно создать множество английских и русских букв, проверить, принадлежат ли элементы массива этому множеству и если принадлежат, то через showmessage выводить "Ошибка ввода"..... не знаю, как это сделать
azhigalieva вне форума Ответить с цитированием
Старый 12.11.2013, 20:04   #4
SecretSilent
Форумчанка
 
Аватар для SecretSilent
 
Регистрация: 28.04.2013
Сообщений: 9
По умолчанию

определите множество, где перечислите буквы:
type Letters = set of 'a'..'z';
то же для заглавных и русских букв.

проверка, входит ли текущий элемент в множество, можно с помощью операции in:
Код:
for i:= 1 to 5 do
if (a[i] not in Letters) then
a[i]:=strtoint(stringgrid1.cells[i-1,0]);
SecretSilent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
11. Найти произведение элементов нечетных строк массива. Вывести сам массив и произведение. p-6 Паскаль, Turbo Pascal, PascalABC.NET 1 29.11.2012 23:37
Найти произведение элементов массива, не равных 0 и стоящих на четных местах ( Delphi ) Nikta1111 Помощь студентам 1 06.12.2011 08:27
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) felodese Помощь студентам 1 11.11.2010 20:52
Произведение элементов массива gamer123 Помощь студентам 5 19.01.2008 22:02