Конспект урока по информатике на тему "Массивы. Решение задач"
Оценка 4.8

Конспект урока по информатике на тему "Массивы. Решение задач"

Оценка 4.8
Разработки уроков
docx
информатика
10 кл
28.02.2018
Конспект урока по информатике на тему "Массивы. Решение задач"
урок посвящен решению задач на массивы. задача звучит следующим образом: Дан массив целых чисел. Проверить, есть ли в нем одинаковые элементы. Решить нужно двумя способами. первый способ: нужно заполнить массив вручную, второй способ: нужно заполнить массив случайным образом, чтоб компьютер сам генерировал значения.
массивы.docx
Тема «Массивы. Решение задач» Задача:  Дан массив целых чисел. Проверить, есть ли в нем одинаковые элементы. Алгоритм решения задачи:  Чтобы   проверить   каждый   элемент   массива   на   уникальность,   надо сравнить его с остальными элементами. Так первый элемент следует сравнить со вторым, третьим и т. д. до конца. После этого второй элемент ­ с третьим, четвертым и т. д. Второй элемент с первым сравнивать не надо, т.к. они уже сравнивались   при   оценке   уникальности   первого   элемента.   Когда   очередь дойдет до предпоследнего элемента, то он сравнивается только с последним. Последний же уже сравнивать не надо. Таким образом, количество итераций внешнего цикла на 1 меньше, чем элементов в массиве. Счетчик этого цикла ­ это   номер   элемента,  который   сравнивается   с   элементами   стоящими   после него. Внутренний цикл перебирает элементы от следующего за исследуемым до последнего.   На   данном   отрезке   элементы   массива   сравниваются   с исследуемым   элементом.   Если   какой­то   элемент   окажется   равен исследуемому, то значит, что в массиве есть одинаковые значения. Следует вывести соответствующее сообщение и завершить программу, т.к. дальше уже можно не проверять. Если программа в процессе выполнения циклов не завершилась, то значит, одинаковых элементов найдено не было. Следует вывести сообщение, что все элементы массива разные. const N = 10; var     arr: array[1..N] of byte;     i, k: byte; begin     randomize;     for i:=1 to N do begin         arr[i] := random(80);         write(arr[i]:3);     end;     writeln;       for i:=1 to N­1 do          for k:=i+1 to N do              if arr[i] = arr[k] then begin                 writeln('Есть одинаковые элементы');                 exit;             end;     writeln('Все элементы уникальны'); end Задача:  Заполнить   массив   случайными   числами,   вывести   его   на   экран.   Найти самую длинную последовательность чисел, упорядоченную по возрастанию. Вывести   ее   на   экран.   Если   таких   последовательностей   несколько   (самых длинных с одинаковой длиной), то вывести их все. Описание переменных:  i ­ индекс текущего элемента массива; l ­ длина текущей последовательности, упорядоченной по возрастанию; lmax ­ длина самой длинной последовательности, упорядоченной по  возрастанию; j ­ индекс текущего элемента выводимой на данный момент      последовательности. Алгоритм решения задачи:  Задачу можно разбить на три подзадачи: 1. Заполнение и вывод массива. 2. Определение длины самой длинной последовательности чисел,  упорядоченных по возрастанию. 3. Вывод всех упорядоченных по возрастанию последовательностей с  найденной в п. 2 длинной. Алгоритм определения длины: 1. Присвоить переменным lmax и l значение 1. 2. В цикле перебирать элементы массива, начиная со второго: 1. 2. если очередной элемент больше предыдущего, то увеличивать на 1 значение l; иначе: 1. 2. если l больше lmax, то присвоить lmax значение l, снова присвоить l единицу. Вывод всех самых длинных последовательностей, упорядоченных по возрастанию: 1. Снова просматриваем массив и находим длину текущей  последовательности, упорядоченной по возрастанию. 2. Если эта длина равна lmax, то выводим элементы массива, начиная с i­l      randomize;     for i:=1 to N do begin     arr: array[1..N] of byte;     i, j, l, lmax: byte; до i­1 (с начала последовательности до предыдущего элемента). 3. const N = 45; 4. var 5. 6. 7. begin 8. 9. 10.        arr[i] := random(100); 11.        write(arr[i]:3); 12.    end; 13.    writeln; 14.  15.    lmax := 1; 16.    l := 1; 17.    for i:=2 to N do  18.        if arr[i] > arr[i­1] then 19.            l := l + 1 20.        else begin 21.            if l > lmax then 22.                lmax := l; 23.            l := 1; 24.        end; 25.    writeln(lmax); 26.    if lmax = 1 then exit; 27.  28.    l := 1; 29.    for i:=2 to N do  30.        if arr[i] > arr[i­1] then 31.            l := l + 1 32.        else begin 33.            if l = lmax then begin 34.                for j:=i­l to i­1 do 35.                    write(arr[j]:3); 36.                writeln; 37.            end; 38.            l := 1; 39.        end; 40.end. Пример выполнения программы: 62 6 11  2 78 37 99  8 80  3 59 71 85 59 46 66  1 43 89 67 48 72 88 57 82 62 51 14 6 88 47 79 96 98 97 58 50 60 58 84 98 69  2 46 12 4    3 59 71 85  47 79 96 98

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"

Конспект урока по информатике на тему "Массивы. Решение задач"
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
28.02.2018