Скачать презентацию Анализ вычислительных алгоритмов в задачах части А и Скачать презентацию Анализ вычислительных алгоритмов в задачах части А и

bf0ec5def578a8651ba5b69d8e0252ef.ppt

  • Количество слайдов: 18

Анализ вычислительных алгоритмов в задачах части А и В Задачи повышенной сложности Рахманова М. Анализ вычислительных алгоритмов в задачах части А и В Задачи повышенной сложности Рахманова М. Н. учитель информатики МАОУ «Физико-технический лицей № 1» г. Саратов - 22. 04. 2014

А 12. Работа с массивами В программе описан одномерный целочисленный массив с индексами от А 12. Работа с массивами В программе описан одномерный целочисленный массив с индексами от 1 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив: n: =10; for i: =1 to n do begin s = A[n+1 -i]*i; A[n+1 -i]: = A[i]*i; A[i]: = s; end; Перед началом выполнения фрагмента все элементы массива равны 1. Укажите утверждение, которое будет верно после выполнения указанного фрагмента программы при изменении индекса от 1 до 10. 1) значения массива возрастают 2) значения массива убывают 3) значения массива постоянны 4) значения массива сначала возрастают, а потом убывают

Решение 1 2 3 4 5 6 7 8 9 10 1 1 1*3 Решение 1 2 3 4 5 6 7 8 9 10 1 1 1*3 При i = 3 : S 3 Если проделать цикл для i от 1 до 5, получится: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 5 4 3 2 1 Далее: 1 2 3 4 5 6 7 8 9 10 18 24 28 30 30 28 24 18 10 Ответ: 4) значения массива сначала возрастают, а потом убывают

А 12. Работа с массивами В программе описан одномерный целочисленный массив A, в представленном А 12. Работа с массивами В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 32. s: =0; n: =32; for i: = 2 to n do begin s: =s+3*(A[i]-A[i-1]); end; В начале выполнения этого в элементе массива с индексом i находилось число i (i = 1, …, 32), т. е. A[1] = 1, A[2] = 2 и т. д. Чему будет равно значение переменной s после выполнения данной программы? 1) 93 2) 90 3) 31 4) 30

Решение 1 2 3 … 30 31 32 1 1 1 … 1 1 Решение 1 2 3 … 30 31 32 1 1 1 … 1 1 1 Ответ: 1) 93

А 12. Работа с массивами Дан фрагмент программы, обрабатывающей двухмерный массив A[1. . 5, А 12. Работа с массивами Дан фрагмент программы, обрабатывающей двухмерный массив A[1. . 5, 1. . 4]: k: =4; for m: =1 to 4 do begin k: =k+1; for n: =1 to 5 do begin k: =m-k; A[n, m]: =n*n+m*m-2*k; end; Чему будет равно значение A[3, 1]? 1) 18 2) 19 3) 20 4) 21

Решение m от 1 до 4 – столбцы n от 1 до 5 – Решение m от 1 до 4 – столбцы n от 1 до 5 – строки i/j 1 2 3 1 заполнение по столбцам A[3, 1] - ? 2 Шаг 1 k=4 m = 1, k = 5 n = 1, k = 1 – 5 = - 4 a[1, 1] = 1*1 + 1*1 – 2*(- 4) = 10 4 Шаг 2 n = 2, k = 1 - (- 4) = 5 A[2, 1] = 2*2 + 1*1 – 2*(5) = -5 Шаг 3 n = 3, k = 1 – 5 = - 4 A[3, 1] = 3*3 + 1*1 – 2*(- 4) = 18 Ответ: 1) 18 3 ? 5 4

А 13. Выполнение алгоритмов для исполнителя Сколько клеток лабиринта соответствуют требованию, что, начав движение А 13. Выполнение алгоритмов для исполнителя Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F 1)? 1) 10 2) 13 3) 16 6 5 4 3 2 4) 20 ПОКА снизу свободно ИЛИ справа свободно ПОКА снизу свободно вниз КОНЕЦ ПОКА вправо КОНЕЦ ПОКА 1 A B C D E F

Решение Траектория движения: вниз, пока возможно, затем один раз вправо × × × A Решение Траектория движения: вниз, пока возможно, затем один раз вправо × × × A Ответ: 2) 13 × × × × C 5 4 3 2 1 × B 6 D E F

А 13. Выполнение алгоритмов для исполнителя Сколько клеток лабиринта соответствуют требованию, что, начав движение А 13. Выполнение алгоритмов для исполнителя Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка E 5)? 1) 3 2) 6 3) 13 6 5 4 3 2 4) 16 ПОКА сверху свободно ИЛИ справа свободно ЕСЛИ справа свободно ТО вправо ИНАЧЕ вверх КОНЕЦ ЕСЛИ КОНЕЦ ПОКА 1 A B C D E F

Решение Траектория движения: Идем, пока возможно, вправо, затем вверх × × × × A Решение Траектория движения: Идем, пока возможно, вправо, затем вверх × × × × A Ответ: 4) 16 × × B × × × C D E F 6 5 4 3 2 1

А 13. Выполнение алгоритмов для исполнителя Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив А 13. Выполнение алгоритмов для исполнителя Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он начал движение? 1) 1 2) 2 3) 3 4) 0 НАЧАЛО КОНЕЦ 6 5 4 3 2 1 ПОКА <снизу свободно> вниз ПОКА <слева свободно> влево ПОКА <сверху свободно> вверх ПОКА <справа свободно> вправо A B C D E F

Решение Траектория движения: 6 5 4 V 1 3 4 3 2 1 2 Решение Траектория движения: 6 5 4 V 1 3 4 3 2 1 2 A Ответ: 1) 1 B C D E F

В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Получив на вход число x, В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 25. var x, a, b: integer; begin readln(x); a : = 0; b : = 0; while x > 0 do begin a : = a + 1; if (x mod 2) <> 0 then b : = b+(x mod 10); x : = x div 10; end; writeln(a); write(b); End. Это алгоритм деления числа на цифры a - кол-во цифр b - сумма нечетных цифр Задача: найти наименьшее трехзначное число, сумма нечетных цифр которого равна 25. 25 = 9 +7 Ответ: 799

В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Укажите наибольшее из таких чисел, В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Укажите наибольшее из таких чисел, при вводе которых алгоритм печатает сначала 3, а потом 3. Допускается диапазон значений для величин целого типа: от − 231 до 231 — 1. var x, a, b, с: longint; begin readln(x); a : = 0; b : = 0; while x > 0 do begin с: = х mod 2; if c = 0 then a : = a + 1 else b : = b + 1; x : = x div 10; end; writeln(a); write(b); End. Это алгоритм деления числа на цифры a - кол-во четных цифр b – кол-во нечетных цифр Задача: найти наибольшее число, состоящее из 3 нечетных и 3 четных цифр. Ответ: 999888

В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Укажите наибольшее из таких Это В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Укажите наибольшее из таких Это алгоритм деления числа на чисел , при вводе которых алгоритм цифры … в 5 -ричной системе печатает сначала 3, а потом 9. счисления var x, a, b : integer; begin readln(x); a : = 0; b : = 1; while x > 0 do begin a : = a + 1; b : = b * (x mod 5); x : = x div 5; end; writeln(a); write(b); end. a - кол-во цифр при переводе в 5 -ю систему счисления b – произведение полученных 5 -ричных цифр Задача: найти наибольшее трехзначное число, произведение цифр которого равно 9. 9=3*3*1 3315 = 9110 Ответ: 799

В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Ниже записан алгоритм. После выполнения В 8. Анализ программы, содержащей подпрограммы, циклы и ветвления Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа - это числа 11 и 66. Какое наибольшее число может быть напечатано третьим? var x, у, z, r, a, b: integer; Это алгоритм поиска НОД begin readln(x, у); if у >x then begin х и y – исходные числи, z: = x; x: = y; y: = z; располагаются по убыванию end; a: = x; b: = у; a – в результате это НОД while b>0 do begin Задача: найти наибольшее r : = a mod b; число, меньшее 66, такое что a : = b; НОД этого числа и 66 – 11. b : = r; end; Writeln (a); writeln(x); write(y); Ответ: 55 end.

Алгоритмы поиска НОД 1) while (a>0) and (b > 0) do if a>b then Алгоритмы поиска НОД 1) while (a>0) and (b > 0) do if a>b then a: =a mod b else b: =b mod a; nod: =a+b; 2) while a<>b do if a>b then a : = a - b else b : = b - a; nod: =b;