Инструменты пользователя

Инструменты сайта


for_loop_lists

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

for_loop_lists [2013/10/29 07:05] (текущий)
Строка 1: Строка 1:
 +====== Циклический алгоритм обработки массива чисел ======
 +===== Решение задачи =====
 +{{:​gia:​10.png|}}
 +
 +Выделим в данном алгоритме три условные части: заполнение массива значениями и инициализация начальных значения переменных;​ цикличный перебор элементов массива согласно заданному алгоритму с целью...(продолжите предложение сами, когда поймете принцип действия алгоритма);​ вывод конечного результата.
 +
 +**Первый этап** - заполнение массива значениями
 +
 +Для схематичной записи условия задачи существует достаточно удобная форма представления массива (списка) данных в виде ряда нумерованных ячеек:
 +
 +{{:​gia:​list.png|}}
 +
 +**day = 1**\\
 +**m = Dat[0]**
 +
 +**Внимание!** Особенность языка Python (как и многих других современных языков программирования) заключается в том, что индекс (порядковый номер) элемента массива (списка) начинается не с **1**, а с **0**.
 +
 +**Второй этап** - перебор элементов массива в цикле с целью отбора значений соответствующих заданному условию
 +
 +==== Исследование ====
 +
 +Исследуйте принцип "​работы"​ циклического алгоритма,​ используя специальное приложение,​ позволяющее визуализировать скрытые изменения состояния переменных в процессе исполнения алгоритма. На языке питон для организации цикла удобно использовать оператор for и встроенную функцию range(), для нашего случая - range(1,7) , позволяющую задавать числовую последовательность,​ начиная извлекать данные из массива со второго дня. Внимание! Указанный конец интервала не включается в список числовой последовательности;​ вызов range(1,7) генерирует 6 значений -  1, 2,...5, 6.\\
 +Вариант указанной задачи на языке Python записан ниже.\\
 +Скопируйте приведенный ниже код (# Python 2.5), откройте приложение:​\\
 +[[http://​people.csail.mit.edu/​pgbovine/​python/​tutor.html#​mode=edit]]\\
 +Замените код, размещенный в окне с надписью "Write your Python code here:",​ тем кодом, который хотите исследовать,​ нажмите на кнопку с надписью "​Visualize execution",​ используйте клавиши со стрелками <- -> или кнопки с надписями "​Forward",​ "​Back"​ для пошагового воспроизведения инструкций программы. При смене инструкций меняются значения переменных,​ за которыми можно наблюдать на вкладке справа.
 +
 +<code python>
 +# Python 2.5
 +Dat = [7,​9,​10,​8,​7,​6,​7]
 +day = 1
 +m = Dat[0]
 +for k in range(1,7):
 +  if Dat[k] < m:
 +    m = Dat[k]
 +    day = k + 1 
 +print day
 +</​code>​
 +
 +<code python>
 +# Python 3
 +Dat = [7,​9,​10,​8,​7,​6,​7]
 +day = 1
 +m = Dat[0]
 +for k in range(1,7):
 +  if Dat[k] < m:
 +    m = Dat[k]
 +    day = k + 1 
 +print(day)
 +</​code>​
 +
 +http://​ideone.com/​8K8t8 (Python 3)
 +
 +<code javaScript>​
 +// javaScript
 +Dat = [7,​9,​10,​8,​7,​6,​7];​
 +day = 0; // индексация массива на языках javaScript и C++ начинается с 0
 +m = Dat[0];
 +for(k = 1; k < 7; k++){
 +  if (Dat[k] < m){
 +    m = Dat[k];
 +    day = k;   
 +  }
 +}
 +// так как мы привыкли вести отсчет дням недели от 1, а не от 0 то прибавим 1
 +print(day + 1); // в этот день была самая низкая температура за неделю
 +</​code>​
 +
 +http://​ideone.com/​iZKFUy (javaScript)
 +
 +
 +
 +==== Практическое задание ====
 +Лучший способ научиться писать программы,​- практиковаться в написании программ. Циклические алгоритмы - простой способ организации работы с массивами.\\
 +  * Составьте программу,​ определяющую самый теплый день в неделе\\
 +В данном массиве значение температуры самого теплого дня ​ - 10 градусов
 +  * Составьте программу,​ определяющую максимальную разницу температур за неделю\\
 +В данном массиве значений разница температур самого теплого дня и самого холодного - 4 градуса
 +  * Составьте программу,​ определяющую среднюю температур за неделю\\
 +
 +{{:​dev_c_pp.png|}}
 +
 +Пример:​ среднее значение
 +
 +http://​ideone.com/​CjcJ2y
 +
 +=== Дополнение для изучающих javaScript ===
 +
 +http://​javascript.ru/​Array/​pop
 +
 +http://​javascript.ru/​Array/​push
 +
 +http://​javascript.ru/​Array/​shift
 +
 +http://​javascript.ru/​Array/​unshift
 +
  
for_loop_lists.txt · Последние изменения: 2013/10/29 07:05 (внешнее изменение)