Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Информатика / Конспекты / Алгоритмизация и программирование
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 26 апреля.

Подать заявку на курс
  • Информатика

Алгоритмизация и программирование

библиотека
материалов

54



Алгоритмизация и программирование

1.Алгоритм и его свойства. Основные типы данных и формы их пред­ставления для обработки на компьютере


Мы постоянно встречается в реальной жизни с множеством задач от самых простых и хорошо известных до очень сложных. Для некоторых из них существуют определенные инструкции или предписания, объясняющие, как решать данную задачу. Эти правила можно изучать заранее или сформулировать самим в процессе решения задачи. Такие правила принято называть алгоритмами.

Под алгоритмом понимают понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.

Слово алгоритм происходит от латинской формы написания имени великого математика IX в. аль-Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий над многозначными числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению поставленной задачи.

Рассмотрим пример алгоритма построения биссектрисы угла при помощи циркуля и линейки.

Алгоритм построения биссектрисы угла САВ:

  • Поставить ножку циркуля в вершину угла точку А;

  • Проведем окружность произвольного радиуса;

  • Отметим точки пересечения окружности со сторонами угла и обозначим их С и В;

  • Поставить ножку циркуля в точку В;

  • Провести окружность радиуса ВС;

  • Поставить ножку циркуля в точку С;

  • Провести окружность радиуса ВС;

  • Через точку пересечения окружностей и вершину угла А провести прямую;

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

Запись алгоритма обычно распадается на отдельные указания исполнителю выполнить некоторое законченное действие, которое называется командой.

Рассмотрим основные свойства алгоритма, вытекающие из его определения:

  1. Дискретность алгоритма. Разделение выполнения решения задачи на отдельные операции (выполняемые исполнителем по определенным командам). Поочередное выполнение команд алгоритма за конечное число шагов приводит к решению задачи, к достижению цели.

  2. Определенность алгоритма. Каждый алгоритм рассчитан на конкретного исполнителя. Для того чтобы исполнитель мог решить задачу по заданному алгоритму, необходимо, чтобы он был в состоянии понять и выполнить каждое действие, предписываемое командами алгоритма.

  3. Результативность алгоритма. Исполнение алгоритма должно закончиться за конечное число шагов.

  4. Массовость алгоритма. Каждый алгоритм, разработанный для решения некоторой задачи, должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных.

Выполняя алгоритм, исполнитель может не вникать в смысл того, что он делает, и вместе с тем получать нужный результат. В таком случае говорят, что исполнитель действует формально, т. е. отвлекается от содержания поставленной задачи и только строго выполняет команды алгоритма. Это важная особенность алгоритмов. Наличие алгоритма формализовало процесс, исключило рассуждения.

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

Алгоритмы можно описать различными способами:

  1. Словесно-формульное описание алгоритма, т.е. описание алгоритма с помощью математических формул и слов. Примером может служить любой кулинарный рецепт.

  2. Графическое описание алгоритма. Описание алгоритма с помощью специальных схем, которые принято называть блок-схемами. Алгоритм изображается в виде системы связанных геометрических фигур, порядок выполнения этапов обозначается стрелками. Операции разного вида изображают с помощью разных геометрических фигур. Например, операция присваивания:




  1. Оhello_html_m4663377b.jpg
    писание алгоритма на алгоритмическом языке. Запись алгоритма на алгоязыке близка к его словесно-формульному описанию, разница заключается в том, что алгоритмические языки пользуются ограниченным набором терминов, с целью обеспечения однозначности понимания алгоритма.

Базисным понятием для обсуждения организации данных, т. е. информации, подлежащей обработке, является переменная. Обычно этот термин ассоциируется с понятием переменной величины в математике. С развитием технологии программирования первоначальное значение этого термина было расширено. Сейчас под переменной понимают идентификатор (имя), который указывает на какой-либо элемент данных, а в объектно-ориентированных языках — на объект, в котором содержатся как данные, так и процедуры.

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


2. Основные алгоритмические конструкции. Основы про­граммирования.

Суть процесса исполнения алгоритма заключается в скрупулезном и педантичном выполнения операций алгоритма в заданном порядке. В некоторых алгоритмах порядок исполнения команд зависит от выполнения или невыполнения какого либо условия, в других несколько команд алгоритма нужно выполнить несколько раз, а есть алгоритмы, в которых все команды выполняются последовательно. Иными словами все алгоритмы можно разделить на три основные алгоритмические конструкции:

  1. Лhello_html_m22738fcf.jpg
    инейные алгоритмы – алгоритм, в котором все этапы решения задач выполняются строго последовательно. Блок-схему такого алгоритма можно задать следующим образом:


  1. Разветвляющиеся алгоритмы. Алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса, называется разветвляющимся.

Бhello_html_460b9c34.jpg
лок-схема такого алгоритма выглядит следующим образом:

  1. Циклические алгоритмы – это алгоритмы, в которых одна или несколько команд выполняются многократно. Блок-схема циклического алгоритма выглядит так:

hello_html_4bc28810.jpg

Алгоритм любой сложности можно составить используя комбинацию из этих трех основных конструкций. Составив блок-схему алгоритма её можно закодировать на языке программирования.

Рассмотрим один из самых простых алгоритмических языков - Бейсик.

Алфавит языка:

  • заглавные латинские буквы от A до Z;

  • арабские цифры 0,1…9;

  • знаки арифметических операций +, -, /, *, /\ (сложение, вычитание, деление, умножение, возведение в степень);

  • знаки операций отношений =, <, >, < > ;

  • разделители (запятая, точка, точка с запятой, двоеточие);

  • прочие символы: !–признак вещественной величины, #-вещественная величина двойной точности, %-целая величина, &-длинная целая величина, $- символьная величина.

  • скобки, кавычки, апостроф.

Данные: константы и переменные. Константы могут быть вещественными, целыми и текстовыми. Переменные (простые и массивы) - это величины, значения которых могут изменяться в процессе выполнения программы и обозначаются некоторым именем (идентификатором).

В Бейсике есть возможность выполнения математических операций с помощью встроенных функций, таких как вычисление тригонометрических функций, нахождение квадратного корня, логарифма и т.п.

Выражения на языке Бейсик показывают порядок выполнения операций над некоторыми данными и записываются с помощью символов и математических функций.

Алгоритм, записанный на языке Бейсик, называется программой. Программа состоит из отдельных команд, каждый оператор записывается строго определенным образом. Каждая строка имеет свой порядковый номер, хотя некоторые версии уже не требуют нумерации всех строк, а только тех, к которым обращается оператор перехода.

Основные операторы:

  1. присваивание

LET X=5

  1. Оператор ввода данных с клавиатуры

INPUT X, Y

Вводит две величины. Может включать строку подсказки, которая берется в кавычки и выводится на экран.

  1. Оператор для хранения и ввода данных внутри программы DATA, READ.

Например:

10 DATA 3,5,7

20 READ X, Y, А

значение переменной X=3, Y=5, А=7.

  1. Оператор без аргумента RESTORE служит для повторного чтения данных с помощью оператора READ.

  2. Вывод на печать переменной А производится с помощью команды

PRINT А

Если после оператора вставить в кавычках подсказку, то она будет выведена на печать.

6. Включение в текст пояснений выполняется с помощью команды

REM

  1. Оператор безусловного перехода GOTO n передает управление строке с номером n.

  2. Оператор условного перехода

IF < условие> THEN <номер строки или оператор выполненного условия > ELSE < номер строки или оператор невыполненного условия>.

Этот оператор используется как в полном, так и в сокращенном виде:

IF < условие> THEN <номер строки или оператор выполненного условия >

  1. Оператор цикла

FOR <задание начальных параметров цикла > TO <конечные параметры цикла > STEP <величина изменения параметра цикла >

- тело цикла -

NEXT

  1. Прерывание выполнения программы STOP

  2. Прекращение выполнения программы END

12. Вызов подпрограммы GOSUB n

13. Возврат из подпрограммы RETURN.






3. Решение задач на составление линейных алгоритмов

Задача №1.

В массиве А (1:3, 1:3) элементы главной диагонали поставить на место соответствующих элементов третьей строки и определить сумму угловых элементов ( а11, а13, а3133).

Решение.

  1. Выявим исходные данные и результаты, назначим им имена.

Исходными данными этой задачи будет массив А (1:3, 1:3), состоящий из девяти элементов. Результатом будет также массив из девяти элементов, в котором будут изменены элементы третьей строки и сумма угловых элементов. Обозначим массив-результат также как и исходный массив А (1:3, 1:3), а сумму латинской буквой S.

  1. Выберем порядок (метод) решения задачи.

Рассмотрим двумерный массив А (1:3, 1:3):

hello_html_4fa5e20b.gifhello_html_2f622d88.gifhello_html_m73532f7a.gifа11 а12 а13

а12 а22 а23

а31 а32 а33


Главная диагональ двумерного массива включает в себя три элемента, номера строк и столбцов которых совпадают: а11, а22, а33

Наша задача состоит в том, чтобы на место элементов третьей строки поставить элементы главной диагонали:

hello_html_4fa5e20b.gifhello_html_2f622d88.gifhello_html_m2df47aa7.gifhello_html_m2df47aa7.gifа11 а12 а13

hello_html_57aed7ff.gifа12 а22 а23

а31 а32 а33

то есть, заменить элемент а31 элементом а11 , и элемент а32 элементом а22.

Последний элемент третьей строки одновременно является и элементом главной диагонали, поэтому его заменять не будем.

Значение суммы S найдем, просуммировав указанные в условии элементы:

а11133133.

  1. Разобьем метод решения на этапы:

  1. Введем исходные данные - массив А (1:3, 1:3).

  2. Заменим элементы третьей строки.

  3. Найдем сумму угловых элементов

  4. Выведем результаты: массив А (1:3, 1:3) и.

  5. Составим блок-схему алгоритма решения задачи:






hello_html_m39fb71b3.jpg


Задача №2.

В массиве D (1:3,1:3) определить сумму R элементов строки с номером k и каждый элемент столбца с номером l умножить на R.

Решение.

1. Исходные данные: массив D (1:3,1:4), номер строки k и номер столбца l.

Результат: массив D (1:3,1:4), R

2. Метод решения задачи указан в условии.

3. Решим задачу следующим образом

  1. введем исходные данные D (1:3,1:4),

  2. затем просуммируем все элементы строки с номером k (необходимо помнить, что номер строки – первый индекс элемента массива),

  3. каждому элементу столбца l присвоим новое значение, которое вычислим как произведение значения элемента на число R,

  4. выведем результаты D (1:3,1:4), R.

4hello_html_m694f4e4f.jpg
. Составим блок-схему алгоритма решения задачи:

Задача №3

Используя данные таблицы

Номер

школы

Число

выпускников

Число

медалистов

5

45

4

14

27

3

26

41

3

32

44

2

определить общее число медалистов в районе и процентное отношение числа медалистов к общему числу выпускников в районе.

Решение.

1. Исходные данные: нам известно количество школ – 4, число выпускников и медалистов в каждой школе, поэтому, исходные данные можно задать в виде двумерного массива размерностью 4строки на 3 столбца, или.

Результаты: число медалистов S и процентное соотношение P.

2. Для того, чтобы найти общее количество медалистов, сложим все элементы третьего столбца. Для определения процентного соотношения, нужно найти общее количество выпускников – то есть сложить все элементы второго столбца, а затем разделить первую сумму на второй и умножить на 100%.

3. Разобьем решение на этапы:

  1. нужно ввести исходные данные А(1:4,1:3),

  2. найдем сумму всех элементов третьего столбца S,

  3. сумму всех элементов второго столбца R,

  4. определить процентное соотношение по формуле: =S/ R *100% ,

  5. вывести полученные результаты S и P.

4. Составим блок-схему алгоритма:

hello_html_m51afef18.gif


hello_html_57aed7ff.gif

hello_html_m3bcfc34.gif


hello_html_4641c3ba.gif


S: = a(13)+a(23)+a(33)+a(34)



R: = a(12)+a(22)+a(32)+a(43)

hello_html_m2fd3af.gif


hello_html_m2fd3af.gif

P:=S/ R*100%



hello_html_m2fd3af.gifhello_html_m7f4a8e29.gif


hello_html_m2fd3af.gif

hello_html_m6cf04c44.gif



Задача №4.

Используя данные таблицы


Блюдо

Цена

Борщ

35

Котлета

40

Каша

20

Чай

3


определить общую стоимость обеда в столовой. Определить, во сколько раз возрастет стоимость обеда, если цена котлеты увеличиться вдвое.

Решение.

1. Исходные данные: массив С (1:4). Так как по определению, массив- это множество однородных величин, а название блюда и цена его величины не однородные, то вводить будем только стоимость блюд.

Результаты: стоимость обеда S и P- число которое показывает, во сколько увеличиться стоимость обеда.

2. Метод решения задачи: нужно просуммировать все элементы массива, затем к полученному числу прибавить стоимость котлеты (элемент с(2) ) и найдем отношение полученных чисел.

3. Разобьем решение на этапы:

  1. нужно ввести исходные данные С (1:4)

  2. затем найдем величину S

  3. к полученному значению прибавим с(2), обозначим величину SP

  4. разделим полученное число на S, т.е. найдем P

  5. выведем результаты S и P на печать.

4hello_html_4c4d9087.jpg
. Составим блок-схему алгоритма:



4. Решение задач на составление разветвляющихся алгоритмов и программ


Задача №1.

Составить программу ввода значения температуры воздуха t и выдачи текста ’’Хорошая погода!’’, если t >10 Со , и текста ’’Плохая погода!’’, если t < = 10 Со.

Решение.

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif



hello_html_57aed7ff.gif

hello_html_m22ff11df.gif


hello_html_57aed7ff.gif

hello_html_m501db814.gifhello_html_477d6c01.gifhello_html_m389f2cc5.gif

А$=”Хорошая погода!”

hello_html_m2e07c716.gif

hello_html_m7a7b4f77.gifДа

hello_html_4641c3ba.gif

Нет

А$=”Плохая погода!”

hello_html_5925ea7f.gif

hello_html_1f8d9d0f.gif

hello_html_m12f81b83.gif

hello_html_m40293f92.gif


hello_html_35aaf20c.gif




2. Составим программу на языке Бейсик, записывая соответствующий каждому блоку схемы алгоритма оператор или группу операторов алгоритмического языка:

10 REM

20 PRINT «Введите значение температуры t Со»

30 INPUT T

40 IF T >10 THEN 70

50 A$= «Хорошая погода»

60 GO TO 80

70 A$= «Плохая погода»

80 PRINT A$

90 END

Эту же программу можно написать и используя полную форму оператора IFTHENELSE:

10 REM Погода

20 PRINT «Введите значение температуры t»

30 INPUT T

40 IF T >10 THEN A$= «Хорошая погода» ELSE A$= «Плохая погода»

50 PRINT A$

60 END


Задача №2.

Составим программу ввода оценки Р, полученной учащимся, и выдачи текста:

Молодец!”, если Р=5;

Хорошо!”, если Р=4;

Лентяй!”, если Р<=3.

Решение.

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif


hello_html_m372e2c5d.gif


hello_html_3e21f2b6.gifhello_html_m372e2c5d.gif


hello_html_dc22f0c.gif

А$=”Молодец!”

Да

hello_html_7d5675cf.gifhello_html_7024fa14.gifhello_html_m7b315023.gif

hello_html_m6a712d64.gif

Нет hello_html_20e0a189.gif

hello_html_m5ef22bad.gif

А$=”Хорошо!”

hello_html_m6da58930.gifhello_html_mb60b119.gifhello_html_438e1b6b.gifДа

hello_html_4bbab9ab.gifhello_html_m3933bda6.gif

Нет

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif






hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_d3f22a2.gifhello_html_m311f0002.gif

hello_html_m3765acee.gif

А$=”Лентяй!”


Да

hello_html_m6da58930.gifhello_html_m311f0002.gifhello_html_m262ea49d.gif


hello_html_4bbab9ab.gifНет

hello_html_m2d3f8ea0.gif

hello_html_4d0d5f66.gif



hello_html_m372e2c5d.gif

hello_html_35aaf20c.gif




2. Составим программу на языке Бейсик:


10 REM Оценка

20 PRINT «Введите вашу оценку: »

30 INPUT P

40 IF Р=5 THEN A$= «Молодец

  1. IF Р=4 THEN A$= « Хорошо

60 IF Р<=3 THEN A$= « Лентяй

80 PRINT A$

90 END


Задача №3.

Заданы длины сторон треугольника - А, В, С. Определить, является ли треугольник равнобедренным.

Решение.

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif


hello_html_m55ae173d.gif

hello_html_m4015083d.gif


hello_html_57aed7ff.gif


hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif




hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif


hello_html_m372e2c5d.gifhello_html_m311f0002.gif

К$=”не равнобедренный”.



hello_html_m372e2c5d.gif


hello_html_5ce61b4c.gif

К$=”равнобедренный”.

Да

hello_html_m6da58930.gifhello_html_m682ac218.gifhello_html_5c40d274.gifДа

hello_html_m5ee0d1.gif

hello_html_m75c77609.gif

Нет hello_html_4bbab9ab.gif

Да

hello_html_m77b98395.gif

К$=”равнобедренный”.


hello_html_29585f8d.gifhello_html_m70fc4668.gifhello_html_m7b315023.gif

hello_html_m1972547b.gif

hello_html_4bbab9ab.gifНет


hello_html_m39acd596.gifhello_html_m70fc4668.gifhello_html_m7b315023.gif

hello_html_m7bd03143.gif

К$=”равнобедренный”.

Да

hello_html_m6da58930.gif

hello_html_m262ea49d.gif

hello_html_m3b1c5067.gifНет

hello_html_m5b32c74a.gifhello_html_m39acd596.gif


hello_html_m372e2c5d.gif

hello_html_35aaf20c.gif




2. Составим программу на языке Бейсик:

10 REM Проверка треугольника

20 PRINT «Введите длины сторон треугольника»

  1. INPUT А, В ,С

40 К$=”Не равнобедренный”

50 IF А=В THEN К$=”равнобедренный”

60 IF А=С THEN К$=”равнобедренный”

70 IF С=В THEN К$=”равнобедренный”

80 PRINT К$

90 END



Задача №4.

Определить сумму элементов массива С (1:3), значение которых больше нуля.

Решение:

1 вариант.

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif


hello_html_m53fdc289.gif

hello_html_6ba22f8f.gif



hello_html_m372e2c5d.gif

S=0



hello_html_m372e2c5d.gif

S=S+ C (1)

Да hello_html_1bcb09e6.gif

hello_html_4d1b9ad8.gif

hello_html_m5ee0d1.gif

hello_html_m6a712d64.gifНет

hello_html_1f8d9d0f.gif

hello_html_m79850342.gif

S=S+ C (2)

Да

hello_html_4d1b9ad8.gif

hello_html_m485b6c62.gifhello_html_m5ee0d1.gif

Нет hello_html_1f8d9d0f.gif

hello_html_m63c24b34.gif

Да

S=S+ C (3)

hello_html_4d1b9ad8.gif

hello_html_m485b6c62.gifhello_html_m5ee0d1.gif

hello_html_1f8d9d0f.gifНет

hello_html_1f81e022.gif



hello_html_4b42fabe.gif

hello_html_35aaf20c.gif





2. Составим программу на языке Бейсик:


10 REM Сумма массива 1 вар.

20 PRINT «Введите элементы массива С(1:3)»

30 INPUT C (1), C(2), C (3)

40 S=0

50 IF C (1)>0 THEN S=S+ C (1)

60 IF C (2)>0 THEN S=S+ C (2)

70 IF C (3)>0 THEN S=S+ C (3)
80 PRINT «S=»;S
90 END


2 вариант.

1. Блок схема алгоритма:

hello_html_532e2955.gif


hello_html_m55ae173d.gif

i=1


hello_html_m55ae173d.gif

S=0


hello_html_m55ae173d.gif

hello_html_6efeebcc.gifhello_html_m451c7f25.gifhello_html_30646791.gif


hello_html_m2fd3af.gif

S=S+ C (i)

hello_html_m324bf8f7.gifДа

hello_html_m8de550a.gif

hello_html_2d2985a9.gifhello_html_57aed7ff.gif

hello_html_7fdbe55c.gif

i=i+1

hello_html_f39a3bd.gif Нет

hello_html_6b11c135.gifhello_html_mb60b119.gif Нет

hello_html_m55ae173d.gifДа

hello_html_m2d0e6450.gif


hello_html_m55ae173d.gifhello_html_35aaf20c.gif



2. Составим программу на языке Бейсик:


  1. REM Сумма массива 2 вар.

20 i=1

30 S=0

40 PRINT «Введите элемент массива номер»; i

50 INPUT C (i)

60 IF C (i)>0 THEN S=S+ C (i)

70 IF i =3 THEN 100

80 i=i+1

90 GO TO 40

100 PRINT «S=»;S
110 END


Задача №5.

Элементы каждой строки матрицы А (1:2,1:2) переставить в порядке возрастания их значений.

Решение:

1 вариант.

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif



hello_html_57aed7ff.gif

hello_html_m2bde3ad1.gif





hello_html_57aed7ff.gif

hello_html_m607b14d0.gif

В= А (1,1)

Нет

hello_html_m408e67fc.gif

hello_html_57aed7ff.gif

А (1,1)= А (1,2)

hello_html_6a3fe976.gif

Да hello_html_57aed7ff.gif

А (1,2) = В




hello_html_2d2985a9.gif

hello_html_m53a82c71.gif

hello_html_m5d052eb.gif

Нет

В= А (2,1)

hello_html_m408e67fc.gif

hello_html_57aed7ff.gif

А (2,1)= А (2,2)

hello_html_m2ee8e0d8.gif

Да

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gifhello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gifhello_html_6e89b24d.gif




hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_m311f0002.gifhello_html_467fbb96.gifhello_html_m311f0002.gifhello_html_57aed7ff.gif

А (2,2) = В


hello_html_57aed7ff.gif

hello_html_m708183cd.gif

hello_html_m70820076.gif



hello_html_57aed7ff.gif

hello_html_35aaf20c.gif







2. Составим программу на языке Бейсик:


  1. REM Перестановка 1 вар.

20 PRINT «Введите элементы массива»

30 INPUT А (1,1), A (1,2), А (2,1), A (2,2)

40 IF A (1,2)>А (1,1) THEN 100

  1. IF A (2,2) >А (2,1) THEN 140

60 PRINT «Новый массив:»

70 PRINT А (1,1), A (1,2),

  1. PRINT А (2,1), A (2,2)

90 GO TO

100 В= А (1,1)

110 А (1,1)= А (1,2)

120 А (1,2) = В

  1. GO TO 50

140 В= А (2,1)

150 А (2,1)= А (2,2)

160 А (2,2) = В

170 GO TO 60

180 END


2 вариант.

  1. Составим блок-схему алгоритма решения задачи:










hello_html_532e2955.gif



hello_html_57aed7ff.gif

hello_html_m2bde3ad1.gif





hello_html_57aed7ff.gif

i=1



hello_html_m55ae173d.gif

hello_html_m372e2c5d.gifhello_html_4e139cf0.gifhello_html_66ed7247.gifhello_html_394de20f.gif

В=А (i,1)

Да

hello_html_m6583ac47.gif

hello_html_m55ae173d.gif

hello_html_51167908.gif

А (i,1) = A (i,2)



Нет

hello_html_m55ae173d.gif

hello_html_m32eeb702.gif

A (i,2)=В




hello_html_2d2985a9.gif

hello_html_c31e7dc.gifhello_html_m6b1faf.gif

hello_html_m2823cef2.gif

i=i+1



Нет hello_html_m6da58930.gif


hello_html_m372e2c5d.gif

Да

hello_html_m70820076.gif



hello_html_57aed7ff.gif

hello_html_35aaf20c.gif





2. Составим программу на языке Бейсик:

  1. REM Перестановка 2 вар.

20 PRINT «Введите элементы массива»

  1. INPUT А (1,1), A (1,2), А (2,1), A (2,2)

40 I=1

50 IF A (I, 1)>А (I, 2) THEN 90

  1. IF I= 2 THEN 130

  1. I= I +1

80 GO TO 50

90 В= А (I,1)

100 А (I,1)= А (I,2)

  1. А (I,2) = В

120 GO TO 60

130 PRINT «Новый массив

140 PRINT А (1,1), A (1,2),

150 PRINT А (2,1), A (2,2)

160 END



Задача №6.

Элементы массива С (1:3) вывести в порядке возрастания их значений.

Решение:

1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif



hello_html_57aed7ff.gif

i=1





hello_html_m372e2c5d.gif

hello_html_4b449663.gif

hello_html_30646791.gif


hello_html_m372e2c5d.gifhello_html_3fe98640.gif


Нет

i=i+1



hello_html_m12eccbcb.gif

hello_html_m6da58930.gif

hello_html_m4d16687e.gif

Да

i=1




hello_html_1717271d.gif

hello_html_m80b1b71.gifhello_html_66ed7247.gif

hello_html_1430f46d.gif

Да

hello_html_m6da58930.gif

к=C (i)



hello_html_m8f54b32.gif

hello_html_m45271ea3.gif

C (i)= C (i+1)




Нет hello_html_m3793fe82.gif

C (i+1)=к





hello_html_7fdbe55c.gifhello_html_m7eaa7d36.gif

Нет hello_html_m28d15327.gif

i=i+1



hello_html_m6468525a.gifhello_html_m2823cef2.gif


hello_html_6e89b24d.gifhello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif



hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

Да hello_html_d3f22a2.gifhello_html_m311f0002.gif

i=1




hello_html_m4d16687e.gif

hello_html_m638627e4.gifhello_html_m39acd596.gif

hello_html_m3801c3a6.gif


hello_html_7ed69171.gif

hello_html_m7b5a48b6.gif

hello_html_m67010777.gifНет

i=i+1



hello_html_m778f42ce.gif

Да hello_html_4d93fac8.gif


hello_html_35aaf20c.gif



2. Составим программу на языке Бейсик:


  1. REM Сортировка массива.

20 I=1

30 PRINT «Введите элемент массива с номером»; I

40 INPUT С (I)

  1. IF I= 3 THEN 80

60 I= I +1

70 GO TO 30

80 I=1

90 IF С (I)>С (I+1) THEN 130

100 IF I= 2 THEN 170

110 I= I +1

120 GO TO 90

130 К= С (I)

140 С (I)= С (I+1)

  1. С (I+1) = К

160 GO TO 100

170 PRINT «Новый массив

180 I=1

190 PRINT С (I)

200 IF I= 3 THEN 230

210 I= I +1

220 GO TO 190

230 END


5. Решение задач на составление алгоритмов вычисления функций нескольких переменных и обработки матриц


Задача №1.

Вычислить значение функции y=(5х²+b)+r, где х=2,3,4,6,7;

b=7,8,10,12,25,30. Результаты представить в виде массива.

Решение.

Исходные данные: r, массивы X(1:5) и B(1:6).

Результат: массив Y(1:30)

Определим метод решения задачи: присвоим переменной Х значение Х1, и вычислим все шесть значений Y, которые получатся при изменении переменной B от В1 до В6.

Очевидно, что сочетание значений Х и В появляется только одлин раз. Всего количество значение функций Y будет равно 5*6=30.

Выбранный метод решения задачи требует пятикратного выполнения одной операции – нахождения значения функции Y при одном значении Х и шести значений B.

hello_html_73cda67c.gif

hello_html_4641c3ba.gif


hello_html_6089ad1b.gif

hello_html_476db034.gif



hello_html_57aed7ff.gif

I=1


hello_html_4641c3ba.gifhello_html_22a72a6c.gifhello_html_m708183cd.gif

K=1



hello_html_57aed7ff.gif

Y=(5*(xI ) *(xI ) +bК)+r

hello_html_mb689f5b.gifhello_html_3d4d7165.gif

hello_html_m2a7690f7.gifhello_html_m2a7690f7.gif

hello_html_57aed7ff.gif

hello_html_7c13819c.gif



hello_html_57aed7ff.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gifhello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_m311f0002.gifhello_html_m311f0002.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_m15efa60c.gifhello_html_be45e8f.gif






hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_4108a035.gifhello_html_5124d0bb.gifhello_html_5124d0bb.gifhello_html_4108a035.gif

hello_html_m7769a661.gifhello_html_m311f0002.gifhello_html_m71111c22.gifhello_html_m311f0002.gifhello_html_4d7d9d3d.gifhello_html_m311f0002.gif

hello_html_m1c79f8d8.gif

К=К+1

нет

hello_html_6b11c135.gif


hello_html_4641c3ba.gif

hello_html_mb2b5e51.gifда

нет

I= I +1

hello_html_6b11c135.gifhello_html_1cbd7991.gif


hello_html_m2df47aa7.gif

да

hello_html_m6748db5d.gif




Задача №2. Вычислить значение функции р; р=(6ln²х+d)+3a², где х=2,4,6,8,10,12,14; а=1,2,3,7,9,10; d-принимает значения из отрезка [3,7] с шагом 0.5. Результаты представить в виде массива.

Решение.

Исходные данные: Х{2,4,6,7,10,12,14}; A{1,2,3,7,9,10}; d{3,3.5,4,4.5 … 7}. Исходные массивы Х и d можно не вводить, а задать их начальные и конечные значения и шаг изменения.

Результат: линейный массив Р, количество элементов которого определим как произведение 7х6х9 - количество элементов исходных массивов.

hello_html_m1bfbb1d6.gif

hello_html_57aed7ff.gif

I=1,К=1




hello_html_57aed7ff.gifhello_html_40862967.gifhello_html_m4f805ee2.gif

hello_html_63f8db2a.gif


hello_html_4641c3ba.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_m311f0002.gif

hello_html_m15efa60c.gifhello_html_be45e8f.gif







hello_html_4108a035.gifhello_html_5124d0bb.gif

hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gifhello_html_m311f0002.gif

hello_html_m4d9aa67f.gifhello_html_m311f0002.gifhello_html_m294b5e27.gif


D=3



hello_html_m2df47aa7.gif


hello_html_m122dff48.gif

X=2

hello_html_737ef3c8.gif



hello_html_7488a81e.gifhello_html_m4edf1676.gifhello_html_m61f75856.gif

P(К)=(6ln²x+d)+3А(I



hello_html_4641c3ba.gif


hello_html_m5ac588c9.gif

hello_html_m4edf1676.gif


К=К+1


hello_html_m2a7690f7.gifhello_html_m2a7690f7.gif

hello_html_4641c3ba.gif


hello_html_m48af30b.gif

Х=Х+2

Нет


hello_html_415c6a3f.gif

hello_html_57aed7ff.gifДа

D=D+0.5

hello_html_m442c4ef4.gif

hello_html_m53a5d0eb.gifНет


hello_html_4641c3ba.gif

Да

hello_html_m4560a5ad.gif

I=I+1


Нет

hello_html_5351c983.gifhello_html_5951fc3b.gif

hello_html_m2df47aa7.gif


hello_html_404e6ce7.gif







Задача №3. Записать элементы массива D(1:20) в виде матрицы С(1:4,1:5) и вычислить сумму угловых элементов матрицы.

Решение.

Шаг 1. Рассматриваем решение всей задачи в целом.

1. Исходные данные: массив D(1:20).

Результаты: матрица C(1:4,1:5), S.

2.Метод решения задачи заключается в однократном решении двух подзадач:

  1. образование матрицы C(1:4,1:5);

  2. вычисление суммы S.

3.Рисуем укрупненную схему алгоритма задачи:

hello_html_m2328854c.gif

hello_html_4641c3ba.gif

hello_html_5c924ab0.gifhello_html_28852287.gif Блок1


hello_html_4641c3ba.gif


hello_html_127a18dc.gifhello_html_28852287.gif Блок 2


hello_html_4641c3ba.gif


hello_html_m42c09949.gifhello_html_28852287.gif Блок 3


hello_html_4641c3ba.gif


hello_html_ma579caa.gif




Шаг 2. Рассматриваем задачу укрупненного блока 2.

1.Исходные данные: массив D(1:20).

Результат: матрица C(1:4,1:5).

2.Метод решения задачи. Первые пять элементов массива D записываем в первую строку матрицы С, следующие пять элементов- во вторую строку, следующие пять элементов - в третью и т.д.

3.Описываем этапы решения задачи:

Этап 1. Из элементов с d (1) по d(5) образуем первую строку матрицы С.

Этап 2. Из элементов с d(6) по d(10) образуем вторую строку матрицы С.

Этап i. Из элементов с d(5*i-4) по d(5*i)образуем i-ю строку матрицы C.

hello_html_438e1b6b.gif1

4.Записываем параметры переменной i: i:= i +1.

4

5.Рисуем подробную схему алгоритма блока 2.



hello_html_3cb6244e.gif



hello_html_m294b5e27.gif




hello_html_6878a77c.gif



hello_html_57aed7ff.gif

hello_html_acccfe0.gifhello_html_1a2ea5e2.gifhello_html_m42c21500.gif



hello_html_57aed7ff.gif

hello_html_m4ab6b80a.gif



hello_html_57aed7ff.gif

hello_html_e93562b.gif


hello_html_57aed7ff.gif


hello_html_m197f65e5.gif


hello_html_57aed7ff.gif


hello_html_m67979601.gif


hello_html_57aed7ff.gif


hello_html_m388d55cf.gifhello_html_m31953201.gifНет

hello_html_m408e67fc.gif


hello_html_4641c3ba.gif

Да

hello_html_5125124.gif





В полученной блок-схеме легко увидеть, что можно ввести дополнительный цикл по столбцам матрицы, и тогда наша блок-схема примет вид:







hello_html_m733602c.gif




hello_html_m2df47aa7.gif



hello_html_6878a77c.gif


hello_html_m46e513f4.gif

hello_html_m1ac1e794.gifhello_html_m3ceb5ed5.gif

hello_html_61864aa9.gif



hello_html_4742a535.gif


hello_html_7e32a132.gifhello_html_16cda9cf.gifhello_html_m42c21500.gif



hello_html_57aed7ff.gif


hello_html_cb72c92.gifhello_html_m25725973.gifНет


hello_html_m408e67fc.gif

hello_html_4641c3ba.gif

Да

hello_html_5d5b370a.gif

hello_html_m4a9fa7e3.gifНет

hello_html_m408e67fc.gifhello_html_mb60b119.gif

hello_html_4641c3ba.gif


hello_html_434a04b9.gifДа






Шаг 3. Рассматриваем задачу укрупненного блока 3.

Исходные данные: матрица C(1:4,1:5).

Результат: S.

Метод решения задачи тривиален: S= С(1,1) + С( 1,5) + С(5,1) + С(5,5).

Блок - схема:









hello_html_maa7da0a.gif



hello_html_57aed7ff.gif

hello_html_3762472d.gif

hello_html_m2df47aa7.gif





hello_html_m15412237.gif







Шаг 4. Рассмотрим задачу ввода массива D(1:20).

hello_html_1df46e22.gif



hello_html_m2df47aa7.gif



hello_html_6878a77c.gif


hello_html_m294b5e27.gif

hello_html_m6e0e7654.gifhello_html_m3ceb5ed5.gif



hello_html_17e3bf63.gif



hello_html_4641c3ba.gif


hello_html_5d5b370a.gif

hello_html_m408e67fc.gifhello_html_m4a9fa7e3.gifhello_html_m2bddf96.gifНет


hello_html_4641c3ba.gif

hello_html_m78cef3b5.gifДа








Соединив блок-схемы задач укрупненных блоков 1,2 и 3 мы получим блок-схему алгоритма решения всей задачи.


6. Решение задач с использованием подпрограмм; программирование сложных алгоритмов.



Задача №1.

Дана матрица в (1:3; 1:3). Вычислить произведение сумм элементов 1-й и 3-й строк матрицы.

Пояснение. Составить подпрограмму вычисления суммы элементов k-й строки матрицы А и использовать её дважды: при k=1 и при k=3.

Решение:

  1. Составим блок-схему алгоритма решения задачи:




hello_html_532e2955.gif


hello_html_m592b53b0.gif

n=1





hello_html_m294b5e27.gif

hello_html_7565f73e.gifhello_html_1821a9a.gifhello_html_m23ba87f8.gif

i=1




hello_html_m372e2c5d.gif

hello_html_4b449663.gifhello_html_3fe98640.gif

hello_html_m6b72ae85.gif


hello_html_m372e2c5d.gif


i=i+1



hello_html_55d9afff.gifНет

hello_html_m6da58930.gif

hello_html_m4d16687e.gif

Да

n = n +1



hello_html_m311f0002.gifНет hello_html_33c15506.gif

hello_html_m6da58930.gif

hello_html_57aed7ff.gif

k=1





hello_html_m55ae173d.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif




hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_m7769a661.gifhello_html_m311f0002.gif

подпрограмма



hello_html_7295079.gif

hello_html_m4649df1f.gif

A=S




hello_html_m2df47aa7.gif


k=3





hello_html_m67a2e127.gif

подпрограмма




hello_html_7d227518.gif


hello_html_m4649df1f.gif

PR=A*S





hello_html_m94ae220.gif

hello_html_7186e4d9.gif

hello_html_57aed7ff.gif

hello_html_16464808.gif




Составим блок-схему подпрограммы:

hello_html_58bf684.gif


hello_html_m55ae173d.gif

i=1




hello_html_6e89b24d.gif

S=0




hello_html_m55ae173d.gif

hello_html_645808b7.gifhello_html_m6e0cec4f.gif

S= S+ Р (k , i)





hello_html_m55ae173d.gif

Нет hello_html_55d9afff.gif

i=i+1



hello_html_m4e0f6ac0.gif

hello_html_m32636c2c.gifДа

hello_html_m63aa7992.gif


2. Составим программу на языке Бейсик:


  1. REM Произведение.

20 N =1

30 I =1

40 PRINT «Введите элемент массива »; N, I,

50 INPUT Р (N, I )

60 IF I= 3 THEN 90

  1. I= I +1

80 GO TO 40

90 IF N = 3 THEN 80

100 N = N +1

110 GO TO 30

120 К= 1

130 GOSUB 200

140 A=S

150 К= 3

160 GOSUB 200

170 PR=A*S

180 PRINT «Произведение равно:»; PR

190 END

200 REM Подпрограмма сумма элементов строки

210 I=1

220 S=0

230 S= S+ Р (К, I)

240 IF I= 3 THEN 90

250 I= I +1

260 GO TO 230

270 RETURN

Задача №2.

Переставить элементы массива Р (1:6) – 1-й с 6-м, 2-й с 3-м, 4-й с 5-м, составив и используя подпрограмму перестановки двух элементов массива Р с номерами i и q.

Решение:

  1. Составим блок-схему алгоритма решения задачи:

hello_html_532e2955.gif



hello_html_7565f73e.gifhello_html_m53493d10.gif

i=1





hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif



hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_mf163cf1.gifhello_html_m311f0002.gif

hello_html_4b449663.gifhello_html_3fe98640.gif

hello_html_76490090.gif


hello_html_m372e2c5d.gif


i=i+1



hello_html_49e1f3b5.gifНет

hello_html_m6da58930.gif

hello_html_m4d16687e.gif

Да

i=6




hello_html_m372e2c5d.gif


q=1




hello_html_mc0e0692.gif


подпрограмма



hello_html_7d227518.gif


hello_html_m1178ddb0.gif

i=2




hello_html_36ee1830.gif

q=3




hello_html_m4649df1f.gif

подпрограмма


hello_html_7d227518.gif


hello_html_m4649df1f.gif

i=4




hello_html_1717271d.gif


q=5





hello_html_m4649df1f.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif

hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_m55ae173d.gifhello_html_m311f0002.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m4649df1f.gif

i=1




hello_html_m372e2c5d.gif

hello_html_mac1c3d1.gifhello_html_44ef6128.gifhello_html_3fe98640.gif



hello_html_m372e2c5d.gif

i=i+1



Нет hello_html_49e1f3b5.gif

hello_html_m6da58930.gif

hello_html_m4d16687e.gif

Да

hello_html_35aaf20c.gif




Блок-схема подпрограммы:



hello_html_3d3751cc.gif

hello_html_1717271d.gif


С=А (i)





hello_html_57aed7ff.gif

А (i)= А (q)




hello_html_57aed7ff.gif

А (q) =С





hello_html_57aed7ff.gif

hello_html_6907ecdd.gif




2. Составим программу на языке Бейсик:


  1. REM Перестановка.

20 I=1

30 PRINT «Введите элемент массива с номером»; I

40 INPUT Р (I)

  1. IF I= 6 THEN 80

60 I= I +1

70 GO TO 30

80 i= 6

90 q = 1

100 GOSUB 240

110 i= 2

120 q = 3

130 GOSUB 240

140 i= 4

150 q = 5

160 GOSUB 240

170 PRINT «Новый массив

180 I=1

190 PRINT С (I)

200 IF I= 3 THEN 230

210 I= I +1

220 GO TO 190

230 END

240 REM Подпрограмма перестановки 2 элементов

250 С=А (i)

260 А (i)= А (q)

270 А (q) =С

280 RETURN


Задача № 3.

Найти площадь кругового кольца с заданными внешним R и внутренним r радиусами, используя подпрограмму вычисления площади круга.

Рhello_html_1282710d.gifешение:

  1. Составим блок-схему алгоритма решения задачи:

hello_html_m7afb82c8.gif


hello_html_57aed7ff.gif


hello_html_5164bdef.gif


hello_html_57aed7ff.gif

R=RB




hello_html_57aed7ff.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif

hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_m55ae173d.gifhello_html_m311f0002.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m4649df1f.gif

SB= S




hello_html_mccebb9c.gif

R=RM




hello_html_m76d7ffef.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m4649df1f.gif

SM= S




hello_html_m67a2e127.gif

SK=SB-SM




hello_html_m67a2e127.gif

hello_html_m54fdbfb3.gif


hello_html_m67a2e127.gif

hello_html_m3bdea50e.gif



Блок-схема подпрограммы:

hello_html_399a2271.gif


hello_html_3e98c66a.gif

S=PI* R^2




hello_html_m55ae173d.gif

hello_html_3205346a.gif




2. Составим программу на языке Бейсик:

10 REM Площадь кольца.

20 INPUT«Введите радиус внешней окружности кольца»; RB

30 INPUT«Введите радиус внутренней окружности кольца»; RМ

40 R=RB

50 GOSUB 110

60 SB= S

70 R=RМ

80 GOSUB 110

90 SM= S

100 SK=SB-SM

110 PRINT «Площадь кольца:»; SK

120 END
130 REM Подпрограмма нахождения площади круга

140 S=PI* R^2

150 RETURN

Задача №4

Задан массив D (1:6).Определить сумму каждой из следующих троек элементов массива:d1 - d3, d3 - d5, d2 - d4.

Пояснение: Составить подпрограмму вычисления суммы трех последовательно расположенных элементов массива D с номерами от k m. Решение задачи потребует трехкратного обращения к подпрограмме.

Решение:

  1. Составим блок-схему алгоритма решения задачи:

hello_html_m7afb82c8.gif



hello_html_m4649df1f.gif

i=1




hello_html_m372e2c5d.gif

hello_html_68b7c6d9.gifhello_html_44ef6128.gifhello_html_3fe98640.gif



hello_html_m372e2c5d.gif

i=i+1



Нет hello_html_49e1f3b5.gif

hello_html_m6da58930.gif

hello_html_m4d16687e.gif

Да

k =1




hello_html_27d1ec1a.gifhello_html_6e89b24d.gifhello_html_m3b1c5067.gifhello_html_4cdc5598.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m4649df1f.gif

hello_html_m311f0002.gifhello_html_4108a035.gifhello_html_5124d0bb.gif

hello_html_be45e8f.gifhello_html_m15efa60c.gifhello_html_2d2985a9.gifhello_html_2d2985a9.gif

hello_html_6e89b24d.gifhello_html_m311f0002.gif

S (1)= S





hello_html_57aed7ff.gif

k =3



hello_html_27d1ec1a.gif

hello_html_3ebf11f1.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m55ae173d.gif

hello_html_27d1ec1a.gif

S (2)= S



hello_html_m55ae173d.gif

k = 2




hello_html_m55ae173d.gif

подпрограмма



hello_html_7d227518.gif


hello_html_m55ae173d.gif

S (3)= S




hello_html_m3b1c5067.gif

hello_html_64543b9b.gif



hello_html_m67a2e127.gif

hello_html_m3bdea50e.gif


hello_html_m72b2bd4a.gif

Блок-схема подпрограммы:

hello_html_m55ae173d.gif

S=D(k) + D(k+1) + D(k+2)




hello_html_m55ae173d.gif

hello_html_m7fa96c2d.gif





2. Составим программу на языке Бейсик:

10 REM Нахождение трех сумм.

20 I=1

30 PRINT «Введите элемент массива с номером»; I

40 INPUT D (I)

50 IF I= 6 THEN 80

60 I= I +1

70 GO TO 30

80 К=1

90 GOSUB 190

100 S(1)= S

110 К=3

120 GOSUB 190

130 S(2)= S

140 K=2

150 GOSUB 190

160 S(3)= S

170 PRINT «Искомые суммы равны:»; S(1), S(2), S(3)

180 END
190 REM Подпрограмма нахождения суммы трех элементов

200 S= D(k) + D(k+1) + D(k+2)

210 RETURN




7. Основные идеи структурного подхода к программирова­нию и методика построения алгоритмов.

Выше мы рассмотрели основные структуры видов алгоритмов -линейных, разветвляющихся и циклических. Теперь рассмотрим методику составления более сложных алгоритмов. Особенностью этих алгоритмов, кроме наличия большого числа блоков, является тот факт, что каждый из них можно разбить на фрагменты, части и эти части могут быть любого из 3-х рассмотренных выше видов. При составлении сложных алгоритмов обычно используется структурный подход.

Основные составляющие структурного подхода к программированию:

- нисходящее пошаговое проектирование;

- структурное программирование;

- модульное программирование;

- структурный контроль,

Суть принципа нисходящего пошагового проектирования - исполь­зование укрупненных схем алгоритмов (составление плана решения задачи). Это поможет разбить большую задачу на более мелкие и привлечь к процессу решению несколько человек, каждый из которых будет решать какую-либо одну или две задачи. Это значительно ускоряет процесс решения задачи и позволяет его контролировать.

Структурное программирование предполагает составление алгоритма задачи из конструкций строго определенного вида.

Основное положение структурного программирования следующее: любой алгоритм может быть представлен комбинацией базовых ал­горитмических структур трех видов: линейной, разветвляющейся и циклической.

Это положение означает, что на каждом шаге процесса нисходящего проектирования алгоритма следует составлять алгоритм одного из трех указанных видов.

После составления алгоритма задачи его необходимо перевести на язык ЭВМ. При таком переводе каждый блок схемы алгоритма будет описываться некоторым фрагментом программы, более или менее слож­ным. Сложность его зависит от вида используемого языка.

Данная методика применяется и к решению таких задач, как:

-вычисления значений функций нескольких переменных (вычисления по заданным формулам);

-обработка массивов (таблиц).

Это наиболее простые и в то же время наиболее распространенные классы задач - большинство инженерных и экономических расчетов сво­дятся к решению именно таких задач. Да и в жизни, если нам и приходится сталкиваться с какими -либо вычислениями, то это, как правило, вычисления по готовым формулам, либо работа с таблицами.

К тому же наиболее доступные и распространенные языки програм­мирования (Бейсик, Паскаль и пр.) предназначены, в первую очередь для решения именно таких задач.

Рассмотрим задачу, в которой функция несколь­ких переменных задана аналитически, т.е. формулой, содержащей имена нескольких переменных, аргументов -X, Y, W...; задано множество возможных значений каждого аргумента.

Требуется вычислить значения функции У при изменении значений различного числа ее аргументов в заданных диапазонах.

Результатом решения задачи должна быть таблица, содержащая для каждого значения функции соответствующие ему значения аргументов.

Суть нашей задачи - перебор значений аргументов.

Метод ее решения должен обеспечить такой порядок их пере­бора, чтобы каждый возможный набор значений X и Z(или X, Z, и W)

появлялся один и только один раз.

Рассмотрим, как подобный перебор можно осуществить. Для начала возьмем такую жизненную ситуацию:

В салоне модной одежды некоторая дама желает подобрать для себя наилуч­ший ансамбль (сочетание) "пальто-шляпка". Допустим, что в магазине 5 моделей пальто и 6 моделей шляпок ее размера. Ей потре­буется, очевидно, перебрать все возможные сочетания пальто и шляпок. Как она поступит? Сначала она одевает 1-е пальто и примеривает его с 1-й, 2-й и т.д., с 6-й шляпкой, оценивая качество сочетания каждой пары. Затем одевает второе пальто и опять примеривает его поочередно с каждой шляпкой - 1-й,2-й,..6-й. Аналогично поступает она и с остальными пальто. Очевидно, что ей придется выполнить 5x6=30 примерок. В том случае, если бы даме потребовалось подобрать ансамбль "пальто-­шляпка-шарф", при числе подходящих видов шарфов, например 4,то коли­чество примерок было бы равно 5х6х4=120, т к. в этом случае пришлось бы оценивать сочетание каждого шарфа с каждой парой-"пальто-шля­пка"(которых 5х6)

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

Отметим особенности алгоритмов, вычисляющих функции нескольких переменных, и процесса их состав­ления:

1. Число вложенных циклов алгоритма равно числу аргументов функции.

2. При вычислении значений любой функции с двумя (тремя) аргументами можно использовать один и тот же метод перебора вариантов.

3. В подобных задачах обычно совмещается процесс вычисления результатов с выводом их, а именно - после вычисления каждого очередного значения функции выводится (печатается) одна строка таблицы значений этой функции.

4. В указанных задачах число значений функции очень быстро растет с ростом числа аргументов и числа значений аргументов функции.

При составлении алгоритмов решения задач обработки массивов (матриц) следует помнить, что наибольшую трудность вызывают следующие действия:

- выделение в задаче наиболее крупных подзадач, разбиение ее на подзадачи на каждом шаге проектирования программы (алгоритма);

- необходимость запомнить процедуру вывода укрупненного алгоритма, особенно в случае циклической структуры его, и, в частности, понять - что является исходными данными и результатами на каждом этапе и правильно указывать их (или их границы).

Задача. Матрица A(1:n,1:m) (m - кратно четырем) разделена по вертикали на две половины. Определить сумму элементов каж­дого столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы A.

Решение. Шаг 1.Рассматриваем решение всей задачи в целом.

Она заключается в однократном решении двух подзадач:

  1. определить сумму элементов каж­дого столбца левой половины матрицы A;

  2. определить сумму элементов каждого четного столбца правой половины матрицы A.

Шаг 2. Рассматриваем задачу 2 как самостоятельную

Исходные данные: матрица A(1:n,1:m).

Результат массив: S(1:m/4).

Описывая теперь порядок решения этой задачи, указываем (пока) только последовательность обработки столбцов, умалчивая и даже вообще не вникая в то, каким образом будем суммировать элементы в пределах столбца, т.е. описываем порядок решения задачи в самом общем виде:

Этап 1. Суммировать элементы (m/2+2)-го столбца и образовать эле­мент s .

Этап 2. Суммировать элементы (m/2+4)-го столбца и образовать эле­мент s .

Этап i. Суммировать элементы (m/2+2i)-го столбца и образовать элемент s .

Шаг 3. Рассматриваем задачу каждого этапа как самостоятельную. Формулировка этой задачи - суммировать элементы (m/2+2i)-го столбца и образовать элемент s ..

Исходные данные: элементы k-го столбца матрицы А, где k=m/2+2i,

Результат: s

Теперь описываем порядок суммирования элементов одного, k-го столбца, общий для всех столбцов:

S= А(1, k)+ А(2, k)+…+ А(2, k)



ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ ПО ТЕМЕ:


1.Дана матрица А(1:n,1:m).Умножить ее 1-ю и n-ю строки на 20, остальные элементы - на 40.

2.Найти сумму матриц А(1:n,1:m) и В(1:n,1:m) и произведение элементов главной диагонали каждой матрицы.

3.Найти сумму элементов каждой четной строки и произведение элементов каждой нечетной матрицы А(1:n,1:m) .

4.Определить наибольший элемент в каждом четном столбце матрицы B(1:n,1:m) и минимальный элемент главной диагонали.

5.Записать элементы матрицы A(1:n,1:m) в виде массива В(1:n*m)(построчно) и вычислить сумму элементов 1-го столбца.

6.В матрице В(1:l,1:k) сместить каждую строку, начиная со второй, на одну вверх. Первую строку поставить на место последней.

7.Переставить строки матрицы C(1:l,1:k): первую с последней, вторую с предпоследней и т.д.

8.Элементы матрицы B(1:n,1:m),отвечающие условию b(і,j) >10,запи­сать в массив С(1:nm).

9.Образовать матрицу B(1:l,1:l),все элементы главной диагонали которой равны единице. Все остальные элементы принять равными нулю.

10.Элементы массива B(1:k) расположить в порядке возрастания их значений, используя дополнительный массив. Определить число элементов, равных максимальному.

11.Определить, имеются ли равные строки в матрице D(1:n,1:m).

12.Определить число строк матрицы А(1:n,1:k),совпадающих с мас­сивом D(1:k).

13. Опишите алгоритм поиска трех последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов. Решение запишите в словесной форме или на алгоритмических языках Бейсик или Паскаль.

14. Опишите на русском языке или одном из языков программирования алгоритм подсчета числа элементов равных максимальному в числовом массиве из 30 элементов.

15. Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине за максимальным) элемента в числовом массиве из 30 различных элементов.





8. Тренировочные тестовые задания по теме «Алгоритмизация и программирование»

Раздел «Алгоритмизация и программирование» курса Информатики был представлен 9 заданиями базового, повышенного и высокого уровня сложности во всех трех разделах работы. Проверялись знания и умения учащихся связанные с использованием основных алгоритмических структур, исполнение и анализ блок-схем отдельных алгоритмов, алгоритмов на алгоритмическом языке или на языках программирования, составление алгоритмов для конкретного исполнителя а также умение программировать сложные задания с развернутым ответом в части С экзаменационной работы.

1. Понятное и точное предписание исполнителю при заданных начальных данных выполнить конечную последовательность команд, приводящую к искомому результату, называется


1)

технологией

2)

системой

3)

алгоритмом

4)

моделью


2. Алгоритм, в котором в зависимости от выполнения или невыполнения какого-либо условия, выполняется та или иная последовательность действий называется........

1)

Разветвляющимся


2)

Циклическим


3)

Линейным


4)

Древовидным

3hello_html_m7924cce1.gif. Алгоритмическая конструкция какого типа изображена на фрагменте блок-схемы?

1)

линейная

2)

циклическая

3)

разветвляющаяся

4)

структурная



4. Дан фрагмент блок-схемы:

hello_html_m14f9cf70.gif







Он представляет алгоритм, который содержит две команды ветвления, -


1)

команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме

2)

обе команды ветвления в полной форме, одна из которой вложена в другую

3)

обе команды ветвления в сокращенной форме, одна из которой вложена в другую

4)

команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме


5. Чему равно значение Z после выполнения данной программы?

10 Х = 27

20 Z = Х + 3

30 Z = Z + 5

40 Z = Z/5

1)

7

2)

5

3)

3

4)

30


6. Чему равно значение Y после выполнения данной программы?

10 Х = 5

20 Y = Х

30 Z = X + Y

40 Y = Y + 1

1)

5

2)

6

3)

10

4)

12


7. Что появится на экране?

10 С = 8

20 Н = С/4

30 Н = Н * Н

40 PRINT "С ="; С

50 PRINT "Н ="; Н

1)

С = 6 Н = 4

2)

С = 4 Н = 4

3)

С = 8 Н = 4

4)

С = 8 Н = 6


8. Напишите результат выполнения данной программы:

10 A=5

20 B=7

30 IF A>B THEN MAX=A ELSE MAX=B

40 PRINT MAX

1)

5

2)

12

3)

2

4)

7


9. Какая строка программы соответствует условию: Если А больше В или В равно С, то В=1 ?

1) IF A>B=C THEN B=1

2) IF A>C THEN B=1

3) IF A>B OR B=C THEN B=1

4) IF A>B AND B=C THEN B=1

1)

1

2)

3

3)

2

4)

4

10. Указать номера строк, в которых содержатся операторы, составляющие тело цикла:

5 S = 0

10 FOR I = 1 то 20

20 S = S + I * 2

30 K = S + 2

40 NEXT I

50 ? S, K

1)

5,10

2)

10,20

3)

20,30

4)

30,40


11. Какие строки программы надо поменять местами?

10 FOR I = 1 то 2

20 FOR J = 2 то 0 STEP - 2

30 ? I; J

40 NEXT I

50 NEXT J

1)

10,20

2)

20,30

3)

30,40

4)

40,50


12. Определите значение переменной a после выполнения фрагмента алгоритма:

hello_html_m3e425c41.gif


1)

8

2)

16

3)

30

4)

14


13. Определите значение целочисленной переменной х после выполнения следующего фрагмента программы:

hello_html_m48d10501.gif

















1)

2

2)

5

3)

15

4)

12


14. Определите значение переменной с после выполнения фрагмента алгоритма:

hello_html_5f3e1eea.gif


1)

1

2)

45

3)

55

4)

66



15. Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

Бейсик

Паскаль

Алгоритмический


x=5
y=7
t=x
' MOD -  стандартная операция, вычисляющая
остаток от деления нацело первого аргумента на второй `
x= y MOD x
y=t

x:=5;

y:=7;
t:=x;
x:= y mod x; {mod -  стандартная операция, вычисляющая остаток от деления нацело первого аргумента на
второй}
y:=t;

x:=5;

y:=7;
t:=x;
x:=mod (y,x); | mod - стандартная функция, вычисляющая      остаток от деления нацело первого аргумента на второй|
y:=t;


1)

x=2, y=5, t=5

2)

x=7, y=5, t=5

3)

x=2, y=2, t=2

4)

x=5, y=5, t=5



16. Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, записанная на разных языках программирования):


Бейсик

Паскаль

Алгоритмический

a=42
b=14
a=a\b
b=a*b
a=b\a

\ — стандартная операция, вычисляющая
результат деления нацело первого аргумента на второй

a:=42;

b:=14;
a:=a div b;
b:=a*b;
a:=b div a; {div — 

стандартная операция, вычисляющая результат деления нацело первого аргумента на второй}

a:=42

b:=14
a:= div(a, b)
b:= a*b
a:= div(b, a) | div —

стандартная функция, вычисляющая результат деления нацело первого аргумента на второй|


1)

a = 42, b = 14

2)

a = 1, b = 42

3)

a = 0, b = 588

4)

a = 14, b = 42





17. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

Бейсик

Паскаль

Алгоритмический

a=2468
b=(a MOD 1000)*10

a=a\1000+b

'\ и MOD — операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно

a:=2468;

b:=(a mod 1000)*10;

a:=a div 1000+b;

{div и mod — операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно}

a:=2468

b:=mod(a, 1000)*10

a:=div(a, 1000)+b
|div и mod — функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно|


1)

a = 22, b = 20

2)

a = 4682, b = 4680

3)

a = 8246, b = 246

4)

a = 470, b = 468


18. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:


Бейсик

Паскаль

Алгоритмический

a = 1819
b = (a \ 100) * 10 + 9
a = (10*ba) MOD 100
'\ и MOD – операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно

a:= 1819;
b:= (a div 100)*10+9;
a:= (10*ba) mod 100;
{div и mod – операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно}

a:= 1819
b:= div(a,100)*10+9
a:= mod(10*ba,100)
|div и mod – функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно|


1)

a = 81, b = 199

2)

a = 81, b = 189

3)

a = 71, b = 199

4)

a = 71, b = 189


19. Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 4

FOR k=n TO 4

A(n,k)=A(n,k)+1

A(k,n)=A(k,n)+1

NEXT k

NEXT n

for n:=1 to 4 do

for k:=n to 4 do

begin

A[n, k]:=A[n, k]+1;

A[k, n]:=A[k, n]+1;

end

нц для n от 1 до 4

нц для k от n до 4

A[n, k]:=A[n, k]+1

A[k, n]:=A[k, n]+1

кц

кц

Сколько элементов массива в результате будут равны 1?

1)

0

2)

16

3)

12

4)

4


20. Значения двумерного массива размера 77 задаются с помощью вложенного оператора цикла в представленном фрагменте программы

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 7

FOR k=1 TO 7

B(n, k)=k–n

NEXT k

NEXT n

for n:=1 to 7 do

for k:=1 to 7 do

B[n, k]:=k–n;

нц для n от 1 до 7

нц для k от 1 до 7

B[n, k]=k–n

кц

кц

Сколько элементов массива будут иметь положительные значения?

1)

49

2)

28

3)

21

4)

7


21. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 100
A(n)=n-10
NEXT n
FOR n=1 TO 100
B(n)=A(n)*n
NEXT n

for n:=1 to 100 do
A[n]:=n-10;
for n:=1 to 100 do
B[n]:=A[n]*n

нц для n от 1 до 100
A[n]=n-10
кц
нц для n от 1 до 100
B[n]=A[n]*n
кц

Сколько элементов массива B будут иметь положительные значения?

1)

10

2)

50

3)

90

4)

100


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

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 5

FOR k=1 TO 5

B(n, k)=n+k

NEXT k

NEXT n

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

кц

кц

Чему будет равно значение B(2,4)?

1)

9

2)

8

3)

7

4)

6



23. В приведенном ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные a, b, c имеют тип «строка», а переменные i, k – тип «целое». Используются следующие функции:

Длина (a) – возвращает количество символов в строке a. (Тип «целое»)

Извлечь (a, i) – возвращает i-тый (слева) символ в строке a. (Тип «строка»)

Склеить (a, b) – возвращает строку, в которой записаны сначала все символы строки a, а затем все символы строки b. (Тип «строка»)

Значения строк записываются в одинарных кавычках
(Например, a := ‘дом’).

Фрагмент алгоритма:

i := Длина (a)

k := 2

b := ‘А

пока i > 0

нц

c := Извлечь (a, i)

b := Склеить (b, c)

i := i – k

кц

b := Склеить (b, Т’)

Какое значение будет у переменной b после выполнения вышеприведенного фрагмента алгоритма, если значение переменной a было ‘ПОЕЗД’?

1)

АДЕПТ’

2)

АДЗЕОП’

3)

АДТЕТПТ’

4)

АДЗОТ’


24. Следующий фрагмент программы записывает в переменную Max максимальный элемент в двумерном массиве Dist размера NxN, заполненном целыми неотрицательными числами:

Max:=0;

for i:=1 to N do

for j:=1 to N do

if Dist [i,j]>Max then Max:=Dist [i,j];

На очень медленном компьютере эта программа при N=1000 работала 5 секунд. Оцените время работы этой программы на том же компьютере при N=2000:


1)

10 сек.

2)

20 сек.

3)

30 сек.

4)

40 сек.


25. Имеется исполнитель Кузнечик, который живет на числовой оси. Система команд Кузнечика: “Вперед N” (Кузнечик прыгает вперед на N единиц); “Назад M” (Кузнечик прыгает назад на M единиц). Переменные N и M могут принимать любые целые положительные значения. Известно, что Кузнечик выполнил программу из 50 команд, в которой команд “Назад 2” на 12 больше, чем команд “Вперед 3”. Других команд в программе не было. На какую одну команду можно заменить эту программу, чтобы Кузнечик оказался в той же точке, что и после выполнения программы?

1)

Вперед10

2)

Вперед2

3)

Назад3.

4)

Назад5


26. Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существуют две команды:

Вперед n, где n   целое число, вызывающая передвижение черепашки на n шагов в направлении движения.

Направо m, где m   целое число, вызывающая изменение направления движения на m градусов по часовой стрелке.

Запись Повтори 5 [Команда1 Команда2 ]означает, что последовательность команд в скобках повторится 5 раз.

Черепашке был дан для исполнения следующий алгоритм:

Повтори 5 [Вперед 10 Направо 72]

Какая фигура появится на экране?

1)

Незамкнутая ломаная линия

2)

Правильный треугольник

3)

Квадрат

4)

Правильный пятиугольник


27. Исполнитель Робот действует на клетчатой доске, между соседними клетками которой могут стоять стены. Робот передвигается по клеткам доски и может выполнять команды 1 (вверх), 2 (вниз), 3 (вправо), 4 (влево), переходя на соседнюю клетку в направлении, указанном в скобках. Если в этом направлении между клетками стоит стена, то Робот разрушается. Робот успешно выполнил программу

3233241.

Какую последовательность из трех команд должен выполнить Робот, чтобы вернуться в ту клетку, где он был перед началом выполнения программы, и не разрушиться вне зависимости от того, какие стены стоят на поле?

1)

123

2)

414

3)

312

4)

423


28. У исполнителя Калькулятор две команды, которым присвоены номера:

1. прибавь 2

2. умножь на 3

Выполняя первую из них, Калькулятор прибавляет к числу на экране 2, а выполняя вторую, утраивает его. Запишите порядок команд в программе получения из 0 числа 28, содержащей не более 6 команд, указывая лишь номера команд которая преобразует число 1 в 19.

1)

121211

2)

112212

3)

121212

4)

112212


29. У исполнителя Утроитель две команды, которым присвоены номера:

1. вычти 1

2. умножь на 3

Первая из них уменьшает число на экране на 1, вторая – увеличивает его в три раза.

Запишите порядок команд в программе получения из числа 3 числа 16, содержащей не более 5 команд, указывая лишь номера команд которая преобразует число 1 в 4.

1)

121211

2)

112212

3)

12211

4)

112212


30. Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существуют две команды:

Вперед n, вызывающая передвижение Черепашки на n шагов в направлении движения.

Направо m, вызывающая изменение направления движения на m градусов по часовой стрелке.

(Вместо n и m должны стоять целые числа).

Запись:
Повтори 5 [Команда1 Команда2]
означает, что последовательность команд в квадратных скобках повторится 5 раз.

Какое число необходимо записать вместо n в следующем алгоритме:

Повтори 7 [Вперед 40 Направо n],

чтобы на экране появился правильный шестиугольник?

1)

30

2)

45

3)

50

4)

60


31. Записано 7 строк, каждая имеет свой номер – от «0»- до «6»-й.

В начальный момент в строке записана цифра 0 (ноль). На каждом из последующих 6 шагов выполняется следующая операция: в очередную строку записывается удвоенная предыдушая строка, а в конец строки приписывается очередная цифра (на i-м шаге приписывается цифра i).

Для удобства в скобках пишется номер строки (начиная с 0).
Ниже показаны первые строки, сформированные по описанному правилу:

(0) 0

(1) 001

(2) 0010012

(3) 001001200100123

Какая цифра стоит в последней строке на 123-м месте (считая слева направо)?

1)

1

2)

2

3)

0

4)

3


32. Цепочки символов (строки) создаются по следующему правилу.

Первая строка состоит из одного символа – цифры «1».

Каждая из последующих цепочек создается такими действиями: в очередную строку дважды записывается цепочка цифр из предыдущей строки (одна за другой, подряд), а в конец приписывается еще одно число – номер строки по порядку (на i-м шаге дописывается число «i»).

Вот первые 4 строки, созданные по этому правилу:

(1) 1

(2) 112

(3) 1121123

(4) 112112311211234

Какая цифра стоит в седьмой строке на 120-м месте (считая слева направо)?

1)

1

2)

2

3)

3

4)

0


33. Цепочки символов (строки) создаются по следующему правилу.

Первая строка состоит из одного символа – цифры «1».
Каждая из последующих цепочек создается следующим действием:
в очередную строку дважды записывается предыдущая цепочка цифр (одна за другой, подряд), а в конец приписывается еще одно число – номер строки по порядку (на i-м шаге дописывается число «i»).

Вот первые 4 строки, созданные по этому правилу:

(1) 1

(2) 112

(3) 1121123

(4) 112112311211234

Сколько раз в общей сложности встречаются в восьмой строке четные цифры (2, 4, 6, 8)?

1)

62

2)

87

3)

85

4)

65


34. Как выглядит массив А, состоящий из 3 строк и 4 столбцов, если A(i,j)=max(i,j)?

1. 1 2 3 4

2 2 3 4

4 2 3 4

2. 1 2 3 4

2 2 3 4

3 3 3 4

3. 1 3 3 4

2 4 3 4

3 3 3 4

4. 1 2 3 4

1 2 3 4

1 2 3 4


1)

2

2)

1

3)

3

4)

4

35. Как выглядит массив А, состоящий из 3 строк и 4 столбцов, если A(i,j)=1?

1. 1 1 1 1

1 1 1 1

1 1 1 1

2. 1 2 3 4

1 2 3 4

1 2 3 4

3. 1 1 1 1

2 2 2 2

3 3 3 3

4. 3 3 3 3

2 2 2 2

1 1 1 1

1)

2

2)

4

3)

1

4)

4



Ответы к тесту по теме: ««Алгоритмизация и программирование»



задания

Ответ

задания

Ответ

1

3

19

3

2

1

20

3

3

3

21

3

4

2

22

4

5

1

23

1

6

2

24

2

7

3

25

4

8

4

26

4

9

2

27

2

10

3

28

1

11

3

29

3

12

2

30

4

13

2

31

2

14

3

32

1

15

1

33

3

16

4

34

1

17

2

35

3

18

4





Краткое описание документа:

     Мы постоянно встречается в реальной жизни с множеством задач от самых простых и хорошо известных до очень сложных. Для некоторых из них существуют определенные инструкции или предписания, объясняющие, как решать данную задачу. Эти правила можно изучать заранее или сформулировать самим в процессе решения задачи. Такие правила принято называть алгоритмами.      Под алгоритмом понимают понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.    Слово алгоритм происходит от латинской формы написания имени великого математика IX в. аль-Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий над многозначными числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению поставленной задачи.
Автор
Дата добавления 01.04.2014
Раздел Информатика
Подраздел Конспекты
Просмотров852
Номер материала 53077040132
Получить свидетельство о публикации

"Инфоурок" приглашает всех педагогов и детей к участию в самой массовой интернет-олимпиаде «Весна 2017» с рекордно низкой оплатой за одного ученика - всего 45 рублей

В олимпиадах "Инфоурок" лучшие условия для учителей и учеников:

1. невероятно низкий размер орг.взноса — всего 58 рублей, из которых 13 рублей остаётся учителю на компенсацию расходов;
2. подходящие по сложности для большинства учеников задания;
3. призовой фонд 1.000.000 рублей для самых активных учителей;
4. официальные наградные документы для учителей бесплатно(от организатора - ООО "Инфоурок" - имеющего образовательную лицензию и свидетельство СМИ) - при участии от 10 учеников
5. бесплатный доступ ко всем видеоурокам проекта "Инфоурок";
6. легко подать заявку, не нужно отправлять ответы в бумажном виде;
7. родителям всех учеников - благодарственные письма от «Инфоурок».
и многое другое...

Подайте заявку сейчас - https://infourok.ru/konkurs


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ


Идёт приём заявок на международный конкурс по математике "Весенний марафон" для учеников 1-11 классов и дошкольников

Уникальность конкурса в преимуществах для учителей и учеников:

1. Задания подходят для учеников с любым уровнем знаний;
2. Бесплатные наградные документы для учителей;
3. Невероятно низкий орг.взнос - всего 38 рублей;
4. Публикация рейтинга классов по итогам конкурса;
и многое другое...

Подайте заявку сейчас - https://urokimatematiki.ru

Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх