Скачать презентацию Программирование на языке PASCAL ОПЕРАТОРЫ Алгоритм Скачать презентацию Программирование на языке PASCAL ОПЕРАТОРЫ Алгоритм

Программирование на языке PASCAL.pptx

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

Программирование на языке PASCAL ОПЕРАТОРЫ Программирование на языке PASCAL ОПЕРАТОРЫ

 Алгоритм – это строго последовательность действий поставленной цели. Свойства алгоритма: - Понятность, - Алгоритм – это строго последовательность действий поставленной цели. Свойства алгоритма: - Понятность, - Дискретность, - Определенность, - Результативность, - Массовость упорядоченная приводящая к

 Запись алгоритма: - Словесная - Табличная - Графическая (блок-схема) - Программная (язык программирования) Запись алгоритма: - Словесная - Табличная - Графическая (блок-схема) - Программная (язык программирования)

Графическая запись алгоритма (блок – схема): Блок начала или конца алгоритма Блок ввода – Графическая запись алгоритма (блок – схема): Блок начала или конца алгоритма Блок ввода – вывода Блок выполнения действий Блок развилка

Графическая запись алгоритма (блок – схема): Блок вызова подпрограммы Блок разрыва программы на разных Графическая запись алгоритма (блок – схема): Блок вызова подпрограммы Блок разрыва программы на разных страницах Блок разрыва на странице Блок цикла

Типы алгоритмов: Линейный Разветвляющийся полная форма неполная форма Типы алгоритмов: Линейный Разветвляющийся полная форма неполная форма

Типы алгоритмов: Циклический Типы алгоритмов: Циклический

Цикл с параметром Цикл с параметром

Линейные алгоритмы Пешеход шел по пересеченной местности. Его скорость движения по равнине v 1 Линейные алгоритмы Пешеход шел по пересеченной местности. Его скорость движения по равнине v 1 км/ч, в гору — v 2 км/ч и под гору — v 3 км/ч. Время движения соответственно t 1, t 2 и t 3 ч. Какой путь прошел пешеход?

 Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который возвращает значение ИСТИНА, если верно утверждение: "число n кратно каждой своей цифре", и ЛОЖЬ — в противном случае.

Развилка Вычислить значение функции Развилка Вычислить значение функции

 Дано натуральное число n. Если число нечётное и его удвоение не приведет к Дано натуральное число n. Если число нечётное и его удвоение не приведет к выходу за 32767 (двухбайтовое целое число со знаком), удвоить его, иначе — оставить без изменения.

Циклы Подсчитать количество нечетных цифр в записи натурального числа n. Идея решения. Из заданного Циклы Подсчитать количество нечетных цифр в записи натурального числа n. Идея решения. Из заданного числа выбирать из младшего разряда цифру за цифрой до тех пор, пока оно не исчерпается, т. е. станет равным нулю. Каждую нечётную цифру учитывать.

программирование на языке Pascal Переменные следующих простых типов: целые (Integer, ), вещественные (Real, Double, программирование на языке Pascal Переменные следующих простых типов: целые (Integer, ), вещественные (Real, Double, Single), логический (Boolean), символьный (Char (1 символ), String (строка 255 симв. ), Перечисляемый (описание), Диапазонный (описание). Пример: A, max, D 3……

Идентификатор Длина, байт Диапазон Целые типы integer 2 – 32768. . 32767 byte 1 Идентификатор Длина, байт Диапазон Целые типы integer 2 – 32768. . 32767 byte 1 0. . 255 Операции +, –, /, *, Div, Mod, >=, <=, =, <>, <, > Вещественные типы real 6 2, 9× 10– 39 — 1, 7× 1038 single 4 1, 5× 10– 45 — 3, 4× 1038 double 8 5× 10– 324 — 1, 7× 10308 +, –, /, *, >=, <=, =, <>, <, > Логический тип Boolean 1 true, false Not, And, Or, Xor, >=, <=, =, <>, <, > Символьный тип char 1 все символы кода ASCII +, >=, <=, =, <>, <, >

Иерархия типов в языке Pascal Иерархия типов в языке Pascal

Структура программы program имя; const n=100; label 1; type <описание типа>; var <описание переменных>; Структура программы program имя; const n=100; label 1; type <описание типа>; var <описание переменных>; Begin <Тело программы> end. Все операторы отделяются ;

Оператор ввода, вывода READ (X) READLN (X) WRITE (‘текст на экран’; X: 5: 1) Оператор ввода, вывода READ (X) READLN (X) WRITE (‘текст на экран’; X: 5: 1) WRITELN (X)

Описание переменной имя переменной (идентификатор) : тип; Пример описания: Var D, C, N : Описание переменной имя переменной (идентификатор) : тип; Пример описания: Var D, C, N : Integer; Log. Per : Boolean; A, B : Real; K 4 : Char;

 Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end; Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end; Цикл с пост условием Repeat действия; Until условие выхода из цикла;

Оператор условно перехода IF условие THEN оператор1 ELSE оператор 2 IF условие THEN оператор Оператор условно перехода IF условие THEN оператор1 ELSE оператор 2 IF условие THEN оператор Пример: IF X>2 THEN WRITE (2*X) ELSE WRITE (X/2) IF X+8>25 THEN WRITE (X)

Операторы цикла Цикл со счетчиком: For i: = нач. значение to конеч. значение do Операторы цикла Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end;

Цикл с пред условием: While условие входа в цикл do действие; While условие входа Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end;

Цикл с пост условием Repeat действия; Until условие выхода из цикла; Цикл с пост условием Repeat действия; Until условие выхода из цикла;

Функции mod, div, INT и генератор случайного числа randomize random(N) mod div int включение Функции mod, div, INT и генератор случайного числа randomize random(N) mod div int включение датчика случайного числа датчик случайного числа (N) берет остаток от деления 5 mod 2=1 берет целую часть при делении двух чисел 6 div 7=0 округление числа Задача: среди двух случайно взятых чисел найти их сумму, если они кратны 5 и разность если это не так.

Задачи: “ 3” - Даны два числа. Проверить будет ли сумма этих чисел кратна Задачи: “ 3” - Даны два числа. Проверить будет ли сумма этих чисел кратна 7? “ 4” – Найти сумму цифр случайного двухзначного числа. “ 5” - Проверить будет ли случайное шестизначное число, делится без остатка на сумму своих цифр.

начало А, В ДА Аи. В кратно 5? НЕТ S=A-B S=A+B S конец Напишите начало А, В ДА Аи. В кратно 5? НЕТ S=A-B S=A+B S конец Напишите программу

1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл 1. 1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл 1. 2. 3. 4. Нет Серия 1 Линейная Циклическая Разветвляющая Вспомогательная А 6 2. Фрагмент блок – схемы представляет алгоритм, который содержит две команды ветвления: Да Нет Усл 1 Да Серия 1 Нет Усл 2 Серия 3 1. Команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме 2. Две команды ветвления в полной форме, одна из котор вложена в другую 3. Две команды ветвления в сокращенной форме, одна из которых вложена в другую 4. Команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме А 6

3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 y: =75 № X>Y (Да) Y Да y: =y-x 75 2 55 20 35 35 20 15 20 5 15 5 10 5 5 5 7 5 5 X Y 20 15 X>Y (Нет) 20 6 X>Y 55 4 Нет 1 3 X<>Y x: =x-y Y X Нет Да X 55 15 Цикл завершен при значении x=5 B 2 5 Нетрудно заметить, что задача реализует алгоритм Евклида: 55=5*11 75=5*15 НОД(55, 75)=5 20 5

Cls LET X=55 Y=75 IF X<>Y THEN IF X>Y THEN X=X-Y ELSE Y=Y-X PRINT Cls LET X=55 Y=75 IF X<>Y THEN IF X>Y THEN X=X-Y ELSE Y=Y-X PRINT X

4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 3) 3 4) 4 А: =1 Решение: B: =2 № C<4 (Нет) C B 1 2 1 3 2 4 3 3 1 4 3 5 4 Нет C 2 C: =C+1 C<4 С 1 B: =A+B Да В С<4 (Да) B C: =1 А А 6 Выход

6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: 6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: согласно условию складываются только четные числа: 2 4 6 8. . 100, тогда Нет Да N>100 Нет Да N четно? S: =S+N N: =N+1 B 6 2 5 5 0

В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу на том языке, с которым учащийся наиболее хорошо знаком. Для Turbo Pascal особое внимание следует уделять следующим функциям: DIV, MOD, Succ, Pred, Frac, Int, Ord, Chr, AND, OR, NOT, IN, Round, Trunc. Соблюдать приоритет операций! 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=2468 b=( a MOD 1000)*10 a=a1000+b 1) 2) 3) 4) a=22 b=20 a=4682 b=4680 a=8246 b=246 a= 470 b=468 Паскаль a: =2468; b: =( a MOD 1000)*10; a: =a DIV 1000+b Решение: a=2468 b= (2468 mod 1000)*10= 468*10=4680 a=2468 div 1000 +4680=2+4680= 4682 a=4682 b=4680 А 7 Алгоритмический a: =2468 b: =MOD(a, 1000)*10 a: =DIV(b, 1000)+b

8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 b=14 a=ab b=a*b a=ba 1) 2) 3) 4) Паскаль a: =42; b: =14; a: =a div b; b: =a*b; a: =b div a; a=42 b=14 a=1 b=42 a=0 b=588 a= 14 b=42 Решение: a=42 b=14 a=42 div 14=3 b=3*14=42 a=42 div 3=14 a=14 b=42 А 7 Алгоритмический a: =42 b: =14 a: =div(a, b) b: =a*b a: =div(b, a)

Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: оператор 2; - - - - else оператор End; Обход: If <логическое условие> then<оператор>; Ветвление: If <логическое выражение> then <оператор> else <оператор>; If a>b then y: =a+b else y: =a-b; {обе ветви содержат по одному оператору присваивания}; If a>b then Begin {ветвь then содержит вложенный условный оператор } If c>d then y: =a+b else y: =a-b; End else y: =a;

Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x); if (x>=0) and (x<=2) then y: =sqr(sin(x)); if x>=2 then y: =sin(sqr(x)); Writeln(‘Y=‘, y); End. Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x) else if (x>=0) and (x<=2) then y: =sqr(sin(x)) else y: =sin(sqr(x)); Writeln(‘Y=‘, y); End.

3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 y: =75 № X>Y (Да) Y Да y: =y-x 75 2 55 20 35 35 20 15 20 5 15 5 10 5 5 5 7 5 5 X Y 20 15 X>Y (Нет) 20 6 X>Y 55 4 Нет 1 3 X<>Y x: =x-y Y X Нет Да X 55 15 Цикл завершен при значении x=5 B 2 5 Нетрудно заметить, что задача реализует алгоритм Евклида: 55=5*11 75=5*15 НОД(55, 75)=5 20 5

4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 3) 3 4) 4 А: =1 Решение: B: =2 № C<4 (Нет) C B 1 2 1 3 2 4 3 3 1 4 3 5 4 Нет C 2 C: =C+1 C<4 С 1 B: =A+B Да В С<4 (Да) B C: =1 А А 6 Выход

6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: 6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: согласно условию складываются только четные числа: 2 4 6 8. . 100, тогда Нет Да N>100 Нет Да N четно? S: =S+N N: =N+1 B 6 2 5 5 0

В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу на том языке, с которым учащийся наиболее хорошо знаком. Для Turbo Pascal особое внимание следует уделять следующим функциям: DIV, MOD, Succ, Pred, Frac, Int, Ord, Chr, AND, OR, NOT, IN, Round, Trunc. Соблюдать приоритет операций! 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=2468 b=( a MOD 1000)*10 a=a1000+b 1) 2) 3) 4) a=22 b=20 a=4682 b=4680 a=8246 b=246 a= 470 b=468 Паскаль a: =2468; b: =( a MOD 1000)*10; a: =a DIV 1000+b Решение: a=2468 b= (2468 mod 1000)*10= 468*10=4680 a=2468 div 1000 +4680=2+4680= 4682 a=4682 b=4680 А 7 Алгоритмический a: =2468 b: =MOD(a, 1000)*10 a: =DIV(b, 1000)+b

8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 b=14 a=ab b=a*b a=ba 1) 2) 3) 4) Паскаль a: =42; b: =14; a: =a div b; b: =a*b; a: =b div a; a=42 b=14 a=1 b=42 a=0 b=588 a= 14 b=42 Решение: a=42 b=14 a=42 div 14=3 b=3*14=42 a=42 div 3=14 a=14 b=42 А 7 Алгоритмический a: =42 b: =14 a: =div(a, b) b: =a*b a: =div(b, a)

Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: оператор 2; - - - - else оператор End; Обход: If <логическое условие> then<оператор>; Ветвление: If <логическое выражение> then <оператор> else <оператор>; If a>b then y: =a+b else y: =a-b; {обе ветви содержат по одному оператору присваивания}; If a>b then Begin {ветвь then содержит вложенный условный оператор } If c>d then y: =a+b else y: =a-b; End else y: =a;

Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x); if (x>=0) and (x<=2) then y: =sqr(sin(x)); if x>=2 then y: =sin(sqr(x)); Writeln(‘Y=‘, y); End. Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x) else if (x>=0) and (x<=2) then y: =sqr(sin(x)) else y: =sin(sqr(x)); Writeln(‘Y=‘, y); End.

В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу на том языке, с которым учащийся наиболее хорошо знаком. Для Turbo Pascal особое внимание следует уделять следующим функциям: DIV, MOD, Succ, Pred, Frac, Int, Ord, Chr, AND, OR, NOT, IN, Round, Trunc. Соблюдать приоритет операций! 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=2468 b=( a MOD 1000)*10 a=a1000+b 1) 2) 3) 4) a=22 b=20 a=4682 b=4680 a=8246 b=246 a= 470 b=468 Паскаль a: =2468; b: =( a MOD 1000)*10; a: =a DIV 1000+b Решение: a=2468 b= (2468 mod 1000)*10= 468*10=4680 a=2468 div 1000 +4680=2+4680= 4682 a=4682 b=4680 А 7 Алгоритмический a: =2468 b: =MOD(a, 1000)*10 a: =DIV(b, 1000)+b

8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 b=14 a=ab b=a*b a=ba 1) 2) 3) 4) Паскаль a: =42; b: =14; a: =a div b; b: =a*b; a: =b div a; a=42 b=14 a=1 b=42 a=0 b=588 a= 14 b=42 Решение: a=42 b=14 a=42 div 14=3 b=3*14=42 a=42 div 3=14 a=14 b=42 А 7 Алгоритмический a: =42 b: =14 a: =div(a, b) b: =a*b a: =div(b, a)

Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: оператор 2; - - - - else оператор End; Обход: If <логическое условие> then<оператор>; Ветвление: If <логическое выражение> then <оператор> else <оператор>; If a>b then y: =a+b else y: =a-b; {обе ветви содержат по одному оператору присваивания}; If a>b then Begin {ветвь then содержит вложенный условный оператор } If c>d then y: =a+b else y: =a-b; End else y: =a;

Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x); if (x>=0) and (x<=2) then y: =sqr(sin(x)); if x>=2 then y: =sin(sqr(x)); Writeln(‘Y=‘, y); End. Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x) else if (x>=0) and (x<=2) then y: =sqr(sin(x)) else y: =sin(sqr(x)); Writeln(‘Y=‘, y); End.

Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, y: real; Begin clrscr; Writeln(‘Введите значение х и y: ’); Readln(x, y); if (x>=0)and(y<=1)and(y>=sin(x)) and (x<=pi/2 ) then writeln(‘Точка принадлежит области. ’) else writeln(‘Точка не принадлежит области. ’); Readkey; End.

Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end; Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end; Цикл с пост условием Repeat действия; Until условие выхода из цикла; Вычислить произведение натурального ряда чисел от 1 до 25, т. е. значение факториала 25, математическая запись которого - 25!.

Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, a: real; i, f, n: integer, Begin Writeln(‘Введите значение переменной x и n’); Readln(x, n); f: =1; a: =x; s: =0; for i: =1 to n do begin s: =s+a/f; a: =a*x; f: =f*(i+1); end; Writeln(‘S=’, s); End.

1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл Нет 1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл Нет Серия 1 Серия 2 1. 2. 3. 4. Линейная Циклическая Разветвляющая Вспомогательная А 6 2. Фрагмент блок – схемы представляет алгоритм, который содержит две команды ветвления: Да Нет Усл 1 Да Серия 1 Нет Усл 2 Серия 2 1. Команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме 2. Две команды ветвления в полной форме, одна из которых вложена в другую 3. Две команды ветвления в сокращенной форме, одна из которых вложена в другую 4. Команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме Серия 3 А 6

3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 y: =75 № X>Y (Да) Y Да y: =y-x 75 2 55 20 35 35 20 15 20 5 15 5 10 5 5 5 7 5 5 X Y 20 15 X>Y (Нет) 20 6 X>Y 55 4 Нет 1 3 X<>Y x: =x-y Y X Нет Да X 55 15 Цикл завершен при значении x=5 B 2 5 Нетрудно заметить, что задача реализует алгоритм Евклида: 55=5*11 75=5*15 НОД(55, 75)=5 20 5

4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 3) 3 4) 4 А: =1 Решение: B: =2 № C<4 (Нет) C B 1 2 1 3 2 4 3 3 1 4 3 5 4 Нет C 2 C: =C+1 C<4 С 1 B: =A+B Да В С<4 (Да) B C: =1 А А 6 Выход

6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: 6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: согласно условию складываются только четные числа: 2 4 6 8. . 100, тогда Нет Да N>100 Нет Да N четно? S: =S+N N: =N+1 B 6 2 5 5 0

В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу на том языке, с которым учащийся наиболее хорошо знаком. Для Turbo Pascal особое внимание следует уделять следующим функциям: DIV, MOD, Succ, Pred, Frac, Int, Ord, Chr, AND, OR, NOT, IN, Round, Trunc. Соблюдать приоритет операций! 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=2468 b=( a MOD 1000)*10 a=a1000+b 1) 2) 3) 4) a=22 b=20 a=4682 b=4680 a=8246 b=246 a= 470 b=468 Паскаль a: =2468; b: =( a MOD 1000)*10; a: =a DIV 1000+b Решение: a=2468 b= (2468 mod 1000)*10= 468*10=4680 a=2468 div 1000 +4680=2+4680= 4682 a=4682 b=4680 А 7 Алгоритмический a: =2468 b: =MOD(a, 1000)*10 a: =DIV(b, 1000)+b

8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 b=14 a=ab b=a*b a=ba 1) 2) 3) 4) Паскаль a: =42; b: =14; a: =a div b; b: =a*b; a: =b div a; a=42 b=14 a=1 b=42 a=0 b=588 a= 14 b=42 Решение: a=42 b=14 a=42 div 14=3 b=3*14=42 a=42 div 3=14 a=14 b=42 А 7 Алгоритмический a: =42 b: =14 a: =div(a, b) b: =a*b a: =div(b, a)

Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: оператор 2; - - - - else оператор End; Обход: If <логическое условие> then<оператор>; Ветвление: If <логическое выражение> then <оператор> else <оператор>; If a>b then y: =a+b else y: =a-b; {обе ветви содержат по одному оператору присваивания}; If a>b then Begin {ветвь then содержит вложенный условный оператор } If c>d then y: =a+b else y: =a-b; End else y: =a;

Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x); if (x>=0) and (x<=2) then y: =sqr(sin(x)); if x>=2 then y: =sin(sqr(x)); Writeln(‘Y=‘, y); End. Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x) else if (x>=0) and (x<=2) then y: =sqr(sin(x)) else y: =sin(sqr(x)); Writeln(‘Y=‘, y); End.

1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е 1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е условие: ((x<=0)and(sqr(x)+sqr(y)<=36)) or ((x>=0)and(y<=0)and(sqr(x)+sqr(y)<=36))

Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, y: real; Begin clrscr; Writeln(‘Введите значение х и y: ’); Readln(x, y); if (x>=0)and(y<=1)and(y>=sin(x)) and (x<=pi/2 ) then writeln(‘Точка принадлежит области. ’) else writeln(‘Точка не принадлежит области. ’); Readkey; End.

Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end; Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end; Цикл с пост условием Repeat действия; Until условие выхода из цикла; Вычислить произведение натурального ряда чисел от 1 до 25, т. е. значение факториала 25, математическая запись которого - 25!.

Вычислить сумму Program Prim 2: Var s, x, a: real; i, f: integer, Begin Вычислить сумму Program Prim 2: Var s, x, a: real; i, f: integer, Begin f: =1; x: =-1; s: =0; i: =1; while x<=1 do begin if i mod 2 =0 then s: =s-x/f else s: =s+x/f; f: =f*(i+1); i: =i+1; x: =x+0. 1; end; Writeln(‘S=’, s); End на интервале [-1, 1] c шагом 0, 1

1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е 1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е условие: ((x<=0)and(sqr(x)+sqr(y)<=36)) or ((x>=0)and(y<=0)and(sqr(x)+sqr(y)<=36))

Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, y: real; Begin clrscr; Writeln(‘Введите значение х и y: ’); Readln(x, y); if (x>=0)and(y<=1)and(y>=sin(x)) and (x<=pi/2 ) then writeln(‘Точка принадлежит области. ’) else writeln(‘Точка не принадлежит области. ’); Readkey; End.

Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end; Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end; Цикл с пост условием Repeat действия; Until условие выхода из цикла; Вычислить произведение натурального ряда чисел от 1 до 25, т. е. значение факториала 25, математическая запись которого - 25!.

Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, a: real; i, f, n: integer, Begin Writeln(‘Введите значение переменной x и n’); Readln(x, n); f: =1; a: =x; s: =0; for i: =1 to n do begin s: =s+a/f; a: =a*x; f: =f*(i+1); end; Writeln(‘S=’, s); End.

1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл Нет 1. Алгоритмическая конструкция какого типа изображена на фрагменте блок - схемы Да Усл Нет Серия 1 Серия 2 1. 2. 3. 4. Линейная Циклическая Разветвляющая Вспомогательная А 6 2. Фрагмент блок – схемы представляет алгоритм, который содержит две команды ветвления: Да Нет Усл 1 Да Серия 1 Нет Усл 2 Серия 2 1. Команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме 2. Две команды ветвления в полной форме, одна из которых вложена в другую 3. Две команды ветвления в сокращенной форме, одна из которых вложена в другую 4. Команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме Серия 3 А 6

3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 3. Запишите значение целочисленной переменной Х после выполнения следующего фрагмента алгоритма: Решение: x: =55 y: =75 № X>Y (Да) Y Да y: =y-x 75 2 55 20 35 35 20 15 20 5 15 5 10 5 5 5 7 5 5 X Y 20 15 X>Y (Нет) 20 6 X>Y 55 4 Нет 1 3 X<>Y x: =x-y Y X Нет Да X 55 15 Цикл завершен при значении x=5 B 2 5 Нетрудно заметить, что задача реализует алгоритм Евклида: 55=5*11 75=5*15 НОД(55, 75)=5 20 5

4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 4. Определите значение переменной В после выполнения следующего фрагмента алгоритма: 1) 6 2) 5 3) 3 4) 4 А: =1 Решение: B: =2 № C<4 (Нет) C B 1 2 1 3 2 4 3 3 1 4 3 5 4 Нет C 2 C: =C+1 C<4 С 1 B: =A+B Да В С<4 (Да) B C: =1 А А 6 Выход

6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: 6. Определите значение переменной S после выполнения фрагмента алгоритма: n: =0; S: =0 Решение: согласно условию складываются только четные числа: 2 4 6 8. . 100, тогда Нет Да N>100 Нет Да N четно? S: =S+N N: =N+1 B 6 2 5 5 0

В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу В условиях задач приводятся эквивалентные тексты программ на трех алгоритмических языках. Следует выполнять программу на том языке, с которым учащийся наиболее хорошо знаком. Для Turbo Pascal особое внимание следует уделять следующим функциям: DIV, MOD, Succ, Pred, Frac, Int, Ord, Chr, AND, OR, NOT, IN, Round, Trunc. Соблюдать приоритет операций! 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=2468 b=( a MOD 1000)*10 a=a1000+b 1) 2) 3) 4) a=22 b=20 a=4682 b=4680 a=8246 b=246 a= 470 b=468 Паскаль a: =2468; b: =( a MOD 1000)*10; a: =a DIV 1000+b Решение: a=2468 b= (2468 mod 1000)*10= 468*10=4680 a=2468 div 1000 +4680=2+4680= 4682 a=4682 b=4680 А 7 Алгоритмический a: =2468 b: =MOD(a, 1000)*10 a: =DIV(b, 1000)+b

8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 8. Определите значение целочисленных переменных a и b после выполнения фрагмента программы: Бейсик a=42 b=14 a=ab b=a*b a=ba 1) 2) 3) 4) Паскаль a: =42; b: =14; a: =a div b; b: =a*b; a: =b div a; a=42 b=14 a=1 b=42 a=0 b=588 a= 14 b=42 Решение: a=42 b=14 a=42 div 14=3 b=3*14=42 a=42 div 3=14 a=14 b=42 А 7 Алгоритмический a: =42 b: =14 a: =div(a, b) b: =a*b a: =div(b, a)

Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: Базовые алгоритмические структуры: Множественный выбор Case <селектор> of список 1: оператор 1; список 2: оператор 2; - - - - else оператор End; Обход: If <логическое условие> then<оператор>; Ветвление: If <логическое выражение> then <оператор> else <оператор>; If a>b then y: =a+b else y: =a-b; {обе ветви содержат по одному оператору присваивания}; If a>b then Begin {ветвь then содержит вложенный условный оператор } If c>d then y: =a+b else y: =a-b; End else y: =a;

Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение Вычислить значение y, если: Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x); if (x>=0) and (x<=2) then y: =sqr(sin(x)); if x>=2 then y: =sin(sqr(x)); Writeln(‘Y=‘, y); End. Program Prim 1; Var x, y: real; Begin Writeln(‘Введите значение x: ’); Readln(x); if x<0 then y: =sin(x) else if (x>=0) and (x<=2) then y: =sqr(sin(x)) else y: =sin(sqr(x)); Writeln(‘Y=‘, y); End.

1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е 1 -е условие: (x>=0) and(sqr(x)+sqr(y)>=9)and(sqr(x)+sqr(y)<=25) 2 -е условие: ((x>=-2)and(x<=2)and(y>=0)and(y<=4)) or (( x>=-4)and(x<=-5)and(y<=0)and(y>=-3)) 3 -е условие: ((x<=0)and(sqr(x)+sqr(y)<=36)) or ((x>=0)and(y<=0)and(sqr(x)+sqr(y)<=36))

Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, Исправленный вариант программы на языке Turbo Pascal: Program C 1; Uses crt; Var x, y: real; Begin clrscr; Writeln(‘Введите значение х и y: ’); Readln(x, y); if (x>=0)and(y<=1)and(y>=sin(x)) and (x<=pi/2 ) then writeln(‘Точка принадлежит области. ’) else writeln(‘Точка не принадлежит области. ’); Readkey; End.

Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For Цикл со счетчиком: For i: = нач. значение to конеч. значение do действие; For i: = нач. значение to конеч. значение do begin действия; end; Цикл с пред условием: While условие входа в цикл do действие; While условие входа в цикл do begin действия; end; Цикл с пост условием Repeat действия; Until условие выхода из цикла; Вычислить произведение натурального ряда чисел от 1 до 25, т. е. значение факториала 25, математическая запись которого - 25!.

Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, Вычислить сумму , где n – натуральное число Program Prim 1: Var s, x, a: real; i, f, n: integer, Begin Writeln(‘Введите значение переменной x и n’); Readln(x, n); f: =1; a: =x; s: =0; for i: =1 to n do begin s: =s+a/f; a: =a*x; f: =f*(i+1); end; Writeln(‘S=’, s); End.

Вычислить сумму Program Prim 2: Var s, x, a: real; i, f: integer, Begin Вычислить сумму Program Prim 2: Var s, x, a: real; i, f: integer, Begin f: =1; x: =-1; s: =0; i: =1; while x<=1 do begin if i mod 2 =0 then s: =s-x/f else s: =s+x/f; f: =f*(i+1); i: =i+1; x: =x+0. 1; end; Writeln(‘S=’, s); End на интервале [-1, 1] c шагом 0, 1

Задана функция: на интервале [-3; 4, 5] c шагом 0, 1. Вычислить половину среднеарифметического Задана функция: на интервале [-3; 4, 5] c шагом 0, 1. Вычислить половину среднеарифметического ее значений. Program Prim 2: Var sr, x: real; k: integer, Begin k: =0; x: =-3; sr: =0; while x<=4. 5 do begin if (x>-1) and (x<=3. 5) then sr: =sr+abs(sin(sqr(x))) else sr: =sr+sqr(cos(abs(x))); x: =x+0. 1; k: =k+1; end; sr: =sr/k; Writeln(‘ 1/2 Sr=’, sr); End.

Массив – это упорядоченная совокупность однотипных объектов. Массив характеризуется: Ø типом элементов; Ø размером Массив – это упорядоченная совокупность однотипных объектов. Массив характеризуется: Ø типом элементов; Ø размером (количество составляющих его элементов); Ø размерностью (количество индексов в массиве). Определение массива: Var а: array [1. . 50] of тип; b: array [1. . 5, 1. . 5] of тип; Для двумерного массива являющегося квадратным верно: Ø элементы главной диагонали обладают свойством: i=j; Ø элементы выше главной диагонали: ij; Ø элементы побочной диагонали обладают свойством: i+j=n+1; Ø элементы выше побочной диагонали: i+jn+1;

Значение двумерного массива задаются с помощью вложенного Оператора цикла в представленном фрагменте программы: Бейсик Значение двумерного массива задаются с помощью вложенного Оператора цикла в представленном фрагменте программы: Бейсик FOR n=1 TO 5 FOR k=1 TO 5 B(n, k)=n+k NEXT n Чему равно значение B(2, 4)? 1) 9 2) 8 3) 7 4) 6 Паскаль for n: =1 to 5 do for k: =1 to 5 do B[n, k]: =n+k; Алгоритмический нц для n от 1 до 5 нц для k от 1 до 5 B[n, k]=n+k кц Кц А 8 Решение: 1. Можно составить матрицу значений и посмотреть значение требуемого элемента. 2. Однако, рациональней вдуматься в смысл заполнения: тогда мы уведем, что значение элемента складывается их суммы индекса строки и столбца и элемент B[2, 4]=2+4=6

Значение двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы: Бейсик Значение двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы: Бейсик FOR n=1 TO 500 FOR k=1 TO 500 B(n, k)=n*(n+1)*k/2 NEXT k NEXT n Паскаль Алгоритмический for n: =1 to 5 do for k: =1 to 5 do B[n, k]: =n*(n+1)*k/2; Чему равно значение B(19, 21)? B 2 3 9 9 нц для n от 1 до 5 нц для k от 1 до 5 B[n, k]: =n*(n+1)*k/2 кц кц 0 Решение: Значение элемента вычисляются исходя из значений индекса строки и столбца и элемент B[19, 21]=19*(19+1)*21/2 =3990

Значения элементов двух массивов А и B размером от 1. . 100 задаются с Значения элементов двух массивов А и B размером от 1. . 100 задаются с помощью следующего фрагмента программы. Бейсик FOR i=1 TO 100 A(i)=50 -i NEXT i FOR i=1 TO 100 B(i)=A(i)+49 NEXT i Паскаль For i: =1 to 100 do a[i]: =50 -I; For i: =1 to 100 do b[i]: =a[i]+49; Алгоритмический нц для i от 1 до 100 A(i)=50 -i кц нц для i от 1 до 100 B(i)=A(i)+49 кц Сколько элементов массива B будут иметь отрицательные значения? 1) 0 2) 1 3) 50 4) 100 А 8 Решение: Очевидно, что массив заполнится следующим образом: A[1]=49 a[2]=48 … a[100]= -50, тогда массив В заполнится следующим образом: В[1]=98 В[2]=97 … В[100]=-1

Составить программу для нахождения наибольшего элемента одномерного массива Х, содержащего 30 компонентов. Program maх_el; Составить программу для нахождения наибольшего элемента одномерного массива Х, содержащего 30 компонентов. Program maх_el; Var i: Integer; maх: Real; x: array [1. . 30] of Real; Begin For i: =1 to 30 do Begin Write. Ln('Ввод x [', i: 2, ']'); Read(x[i]) End; max: =x[1]; For i: =2 to 30 do If max

№ Операция Описание операции 1 * пересечение множеств; результат содержит элементы, общие для обоих № Операция Описание операции 1 * пересечение множеств; результат содержит элементы, общие для обоих множеств; 2 + объединение множеств; результат содержит элементы первого множества, 3 = проверка эквивалентности; возвращает True, если оба множества эквивалентны; 4 <> проверка неэквивалентности; возвращает True, если оба множества неэквивалентны; 5 <= проверка вхождения; возвращает True, если первое множество включено во второе; 6 >= проверка вхождения; возвращает True, если второе множество включено в первое; 7 IN проверка принадлежности множеству; 8 INCLUDE включает новый элемент во множество, Include(S, I) 9 XCLUDE исключает элемент из множества, Exclude(S, I)

Дана строка, содержащая произвольный текст. Выяснить, чего больше: русских букв или цифр. Program С; Дана строка, содержащая произвольный текст. Выяснить, чего больше: русских букв или цифр. Program С; Var s: string; a: set of 0. . 9; b: set of ‘a’. . ‘я’ ; k, k 1: integer; Begin a: =[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; b: =[‘a’, ’б’, ’в’, …, ‘я’]; {заполнение в примере сокращено} Writeln(‘Введите S’); Readln(S); k: =0; k 1: =0; For i: =1 to Length(s) do if s[i] in a then k: =k+1 else if s[i] in b then k 1: =k 1+1; if k>k 1 then Writeln(‘Цифр больше. ’) else if k 1>k Writeln(‘Русских букв больше. ’) else Writeln(‘Цифр и букв одинаковое количество. ’); End.

Записи представляют собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Пример Записи представляют собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Пример описания записи: Объявление типа записи. type Имя = record TPerson = record Поле_1: Тип_1; fio: string[40]; Поле_2: Тип_2; day: integer; Поле_К: Тип_К: month: integer; end; year: integer; address: string[50]; Обращение к элементам записи: end; 1) имя. поле После объявления типа записи можно объявить переменную-запись, например 2) Инструкция WITH. var with Имя do student: TPerson; begin group: array[1. . 20] of TPerson; { инструкции программы } end;

По условию задачи известны результаты сессии группы студентов из 20 человек. Распечатать список студентов, По условию задачи известны результаты сессии группы студентов из 20 человек. Распечатать список студентов, имеющих неудовлетворительную оценку, хотя бы по одному из пяти предметов: Program С; Uses CRT; Type Student=record fam: string[20]; name: string[20]; mark: array[1. . 5 ] of integer; end; Var group: array[1. . 20] of student; k, i, j : integer; Begin clrscr; Writeln(‘Заполните сведения о студентах: ’); for i: =1 to 20 do begin Writeln(‘Информация о ’, i, ‘ студенте: ’) with group[i] do Begin Readln(fam); Readln(name) for j: =1 to 5 do Readln(mark[j]); end;

продолжение программы: Writeln(‘Список студентов сдавших сессию хотя бы с одной двойкой: ’); for i: продолжение программы: Writeln(‘Список студентов сдавших сессию хотя бы с одной двойкой: ’); for i: =1 to 20 do begin k: =0; with group[i] do Begin for j: =1 to 5 do if mark[j]=2 then k: =k+1; if k<>0 then Wrteln(fam: 5, name); end; Readkey End.

В приведенном ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные a, b, c имеют В приведенном ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные a, b, c имеют тип «строка» , а переменные i, k – тип «целое» . Используются следующие функции: Длина (a) – возвращает количество символов в строке a. (Тип «целое» ) Извлечь (a, i) – возвращает i-тый (слева) символ в строке a. (Тип «строка» ) Склеить (a, b) – возвращает строку, в которой записаны сначала все символы строки a, а затем все символы строки b. (Тип «строка» ) Значения строк записываются в одинарных кавычках (Например, a : = ‘дом’). Фрагмент алгоритма: Какое значение будет у переменной b после выполнения i : = Длина (a) вышеприведенного фрагмента алгоритма, если значение k : = 2 переменной a было ‘ПОЕЗД’? b : = ‘А’ пока i > 0 нц c : = Извлечь (a, i) b : = Склеить (b, c) i : = i – k кц b : = Склеить (b, ‘Т’) 1) АДЕПТ 2) АДЗЕОП 3) АДТЕТПТ 4) АДЗОТ

Решение: A=ПОЕЗД № дейст. I В С 0 5 А ‘’ 1 3 АД Решение: A=ПОЕЗД № дейст. I В С 0 5 А ‘’ 1 3 АД Д 2 1 АДЕ Е 3 -1 АДЕП П 4 Цикл завершен 5 АДЕПТ В= АДЕПТ А 20 i : = Длина (a) k : = 2 b : = ‘А’ пока i > 0 нц c : = Извлечь (a, i) b : = Склеить (b, c) i : = i – k кц b : = Склеить (b, ‘Т’)

Задание С 3: Два игрока играют в следующую игру. Перед ними лежат две кучи Задание С 3: Два игрока играют в следующую игру. Перед ними лежат две кучи камней, содержащих соответственно 3 и 4 камня. У каждого игрока неограниченно е количество камней. Ходят игроки по очереди. Делая очередной ход, игрок или увеличивает в какой – то кучке число камней в 2 раза, или добавляет в какую – то кучку 3 камня. Выигрывает тот игрок, после хода которого общее число камней в обеих кучах становиться не менее 24. Кто выиграет при безошибочной игре обоих игроков – игрок, делающий ход первым, или игрок, делающий второй ход?

1 – й ход Исходное состояние 2 - й ход 2 -й игрок 6, 1 – й ход Исходное состояние 2 - й ход 2 -й игрок 6, 4 6, 7 3, 7 6, 7 3, 8 3, 4 1 - й игрок 6, 8 3 - й ход 1 - й игрок 4 – й ход 2 - й игрок 12, 7 9, 7 6, 14 6, 10 24, 7 или 12, 14 18, 7 12, 14 или 6, 28 6, 20 Второй игрок выигрывает, удвоив число камней в соответствующей куче. 12, 8 9, 8 6, 16 6, 11 24, 8 18, 8 или 9, 16 12, 16 или 6, 32 6, 22 Второй игрок выигрывает, удвоив число камней в соответствующей куче. Из таблицы очевидно, что выиграет 2 –й игрок при любом ходе первого игрока.

Задание В 6 Цепочки символов (строки) создаются по следующему правилу. Первая строка состоит из Задание В 6 Цепочки символов (строки) создаются по следующему правилу. Первая строка состоит из одного символа, это цифра « 1» . Каждая из следующих цепочек создается следующим действием: сначала записывается порядковый номер данной строки, далее дважды записывается вся цепочка цифр из предыдущей строки. Первые четыре строки, созданные по этому правилу выглядят следующим образом: 1 211 3211211 43211211 Сколько раз в 10 – й строке встречаются четные цифры 2, 4, 6, 8?

Решение: Пронумеруем наши строки и проанализирует количество четных цифр в каждой из них: № Решение: Пронумеруем наши строки и проанализирует количество четных цифр в каждой из них: № строки Строка Количество четных цифр 1 1 0 2 211 1 3 3211211 2 4 43211211 5 В каждой нечетной строке количество четных цифр по сравнению с предыдущей удваивается, а в каждой четной строке по сравнению с предыдущей количество четных цифр будет равно удвоенному количеству цифр предыдущей строки +1. Составим таблицу распределения четных цифр по строкам: № строки Количество четных цифр 5 10 6 21 7 42 8 85 9 170 10 341 В 6 3 4 1

Задание В 6 Записано 6 строк, каждая имеет свой номер – от 0 до Задание В 6 Записано 6 строк, каждая имеет свой номер – от 0 до 5. В нулевой строке записана цифра 0 (ноль). Каждая последующая строка состоит из двух повторений предыдущей и Добавленного в конец своего номера. Ниже показаны первые четыре строки, Сформированные по описанному правилу (0) – 0 (1) - 001 (2) - 0010012 (3) - 00100123 Какая цифра стоит в последней строке на 62 – м месте?

Решение: Пронумеруем наши строки и проанализирует количество цифр в каждой строке: № строки Строка Решение: Пронумеруем наши строки и проанализирует количество цифр в каждой строке: № строки Строка Количество цифр 0 0 1 1 001 3 2 0010012 7 3 00100123 15 № строки 31 5 Составим таблицу распределения количества цифр по строкам: Количество цифр 4 Получаем зависимость количества цифр последующей строки от предыдущей. Количество цифр в последующей строке Равно удвоенному количеству цифр в предыдущей +1. 63 Строка из 31 символа на 31 – м месте – цифра 4 В 6 Строка из 31 символа на 31 – м месте – цифра 4 Строка № 6 из 63 символов на 63 -м месте стоит цифра 5 4

Творческих вам успехов ! Творческих вам успехов !