Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Kinego
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 42
1

While в массиве

02.05.2017, 14:28. Просмотров 721. Ответов 4

Сейчас опишу свои действия, чтобы вы имели представление о них. Заполняю Stringgrid массивом 4*4, затем преобразовываю его в одномерный массив из 16 элементов (этот массив вывожу в edit3). В этом массиве ищу сумму положительных элементов(выводится в edit1). И вот сама загвоздка - хочу сделать проверку, есть ли 0 в моем массиве. (Вообще, в дальнейшем мне надо бы заменить числа после 0, но до этого еще дойти нужно). Пытался пользоваться циклом for - оно находило или не находило 0 лишь в последнем элементе массива. А с помощью While не работает вообще. Сам преподаватель сказал, что надо брать while.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TForm1.Button1Click(Sender: TObject);
const n=3;
const m=16;
var
mas:array[1..m]of integer;
i,j,k,nol: integer;
sum:integer;
begin
for i:=0 to n do
for j:=0 to n do
begin
StringGrid1.cells[j,i]:=inttostr(random(5));
end;
k:=0;
for i:=0 to n do
for j:=0 to n do
begin
inc(k);
mas[k]:=StrToInt(StringGrid1.cells[j,i]);
end;
edit3.clear;
For k:=1 to m do
begin
Edit3.text:=edit3.text+' '+inttostr(mas[k]);
end;
sum:=0;
for k:=1 to m do
begin
if mas[k]>0 then sum:=sum+mas[k];
end;
edit1.Text:=inttostr(sum);
While mas[k]=0 do begin
edit2.Text:='Nol est';
inc(k);
end;
end;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2017, 14:28
Ответы с готовыми решениями:

В массиве А оставить только элементы со значениями, которые имеются в массиве В
У меня есть динамический массив а: целочисленный 1 2 3 4 5 и массив b,...

Найти элементы в массиве С, которых нет в массиве D
Добрый день! Прошу помощи! Ломаю голову - не могу понять почему работает, но...

Какая из оплат в массиве B "закрывает" выставленный счёт в массиве
В массиве А в хронологическом порядке хранятся данные о выставленных счетах,...

Вывести элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В
Задание : вывести на экран элементы, которые есть в массиве А в нескольких...

Из массива А удалить те элементы, встречающиеся и в массиве А и в массиве В хотя бы два раза
Всем привет ! В силу своей ограниченности и качества современного образования,...

4
Puporev
Модератор
54990 / 42293 / 29206
Регистрация: 18.05.2008
Сообщений: 99,926
02.05.2017, 14:58 2
Лучший ответ Сообщение было отмечено Kinego как решение

Решение

Delphi
1
2
3
4
k:=1;
while(k<=m) and(mas[k]<>0) do inc(k);
if k<=n then ShowMessage('В массиве есть ноль')
else ShowMessage('В массиве нет ноля')
1
TFullControl
405 / 326 / 192
Регистрация: 20.10.2016
Сообщений: 1,035
02.05.2017, 15:18 3
Puporev, n константа и равно 3, если ноль встретился в 7 элементе массива?
0
Puporev
Модератор
54990 / 42293 / 29206
Регистрация: 18.05.2008
Сообщений: 99,926
02.05.2017, 15:21 4
Опечатался
if k<=m

Просто когда проверял свои переменные использовал.
Delphi
1
2
3
4
i:=1;
while(i<=k) and(mas[i]<>0) do inc(i);
if i<=k then ShowMessage('В массиве есть ноль')
else ShowMessage('В массиве нет ноля')
0
Kinego
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 42
02.05.2017, 16:36  [ТС] 5
Помогло, большое спасибо. Буду думать над следующими проблемами
0
02.05.2017, 16:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2017, 16:36

Из массива А удалить те элементы, которые встречаются и в массиве А и в массиве В по крайней по 2 раза
Из массива А удалить те элементы, которые встречаются и в массиве А и в массиве...

Оставить в первом массиве только те элементы, которых нет во втором массиве
Даны 2 массива вещественных чисел A, B. Оставить в первом массиве только те...

Помогите найти ошибку. Элементы, которые присутствуют в массиве А, но отсутствуют в массиве В
Доброго времени суток. Неверно выводится массив С - заносятся уникальные числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru