Вернуться   Компьютерный форум > Компьютеры > Программы > Программирование
 
 
Опции темы
Старый 11.02.2014, 19:26   #1 (ссылка)
Новичок
 
Регистрация: 06.02.2014
Сообщений: 9
Репутация: 0
Post Вопрос

1. В чём состоит особенность организации цикла при обработке массивов?
2. В чём состоит особенность использования приёмов программирования при обработке массивов?
Elizaveta_1994 вне форума  
Старый 11.02.2014, 20:50   #2 (ссылка)
Стажёр
 
Регистрация: 04.01.2013
Сообщений: 490
Репутация: 57
По умолчанию

1) Для организации массива обычно достаточно функционала цикла for, например
Цитата:
for i:=1 to 25 do begin - тут указываем, что переменная цикла i изменяется от 1 до 25
e[i]:=random(30)+1; - задаем значения элементов массива
if e[i]>c then begin
c:=e[i];
p:=i;
end;
write(e[i],' '); - выводим элементы массива на экран
все неподписанные строки - это операции над элементами массива
end;
Для полной обработки массива - размерность массива ≤ числа вложенных циклов for. У каждого цикла своя переменная.
Также есть 2 вариант цикла for
Код:
for i:=25 downto 1 do
Его отличие в том, что переменная i изменяется от 25 до 1
Весь смысл, что мы определяем набор операций, совершаемых над каждым элементом массива и задаем диапазон номеров элементов массива, над которым эти операции будут производиться.
Двухмерный массив не предел, можно создать и 3 и 5 мерный, но обычно в учебных заведениях такие задания не дают т.к. с ними сложнее работать и гораздо сложнее отобразить на экране в удобном виде.
Еще одна особенность цикла for - нельзя изменить переменную цикла внутри самого цикла. Например следующий код работать не будет:
Код:
for i:=1 to 25 do begin - тут указываем, что переменная цикла i изменяется от 1 до 25
e[i]:=random(30)+1;[B]
if e[i]=1 then i:=24;
write(e[i],' ');
end;
Если необходимость изменять переменную цикла в самом цикле необходимо использовать цикл другого типа (while, repeat)

2) Особенность - перебор элементов массива из заданного диапазона значений. Причем иногда некоторые элементы можно пропустить:
Цитата:
for i:=1 to n do begin
min:=e[i,1];
max:=e[i,1];
maxn:=1;
minn:=1;
for j:=2 to m do begin
В данной части программы второй цикл начинается не с 1 элемента, а со 2 т.к. перед началом цикла мы уже присвоили значение первого элемента строки переменным min и max, поскольку последующие значения данной строки мы будем сравнивать именно с этим первым значением.
Можно было бы написать и такой код:
Код:
for i:=1 to n do begin
min:=e[i,1];
max:=e[i,1];
maxn:=1;
minn:=1;
for j:=1 to m do begin
В данном случае на результат вычислений это бы не повлияло, но увеличилось бы число циклов и, соответственно, время на их выполнение.

Вообще про обработку массивов можно много написать http://pers.narod.ru/study/pascal/14.html
Serega_490101 вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по скорости работы сети + доп.вопрос по сетевому принтеру newbik0 Железо 3 04.12.2013 03:13
Вопрос slava66666 Программы 5 08.07.2012 14:42
2 или 1 вот в чем вопрос Черепах У Гвэй Выбор комплектующих 13 14.06.2011 16:32
Вопрос! Alex09333 Выбор комплектующих 2 11.03.2011 22:26


Текущее время: 23:15. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.