ОСНОВЫ ПРОГРАММИРОВАНИЯ

Цыбикова Тамара Раднажаповна

ОСНОВЫ ПРОГРАММИРОВАНИЯ
  Одним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране дисплея. Создатель Паскаля  Никлаус Вирт  предложил первую версию строгого по форме и простого для написания программ языка в 1968 году, когда не существовало персональных компьютеров.

1)Данные презентации составлены мною по темам из раздела 3  учеб.для общеобразовательных учебных заведений авт. А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.: 

ТЕМА 1. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ, (+)

ТЕМА 2. СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ.(+)

ТЕМА 3. РАБОТА В СИСТЕМЕ ТУРБО-ПАСКАЛЬ. РАБОТА В СИСТЕМЕ ABC ПАСКАЛЬ.(+)

ТЕМА 4. УСЛОВНЫЙ ОПЕРАТОР.(+)

ТЕМА 5. ОРГАНИЗАЦИЯ ЦИКЛОВ.(+)

ТЕМА 6. МАССИВЫ.(+)

ТЕМА 7. АЛГОРИТМЫ ОБРАБОТКИ ТАБЛИЦ.(+)

ТЕМА 8. ОПЕРАТОР ВАРИАНТА.(+)

ТЕМА 9. ПОДПРОГРАММЫ.(+)

ТЕМА 10. РЕКУРСИЯ.(+)

ТЕМА 11. ОБРАБОТКА СТРОК В ПАСКАЛЕ.(+)

ТЕМА 12. КОМПЬЮТЕРНАЯ ГРАФИКА.

ТЕМА 13. ЗАПИСИ.

ТЕМА 14. ФАЙЛЫ В ПАСКАЛЕ.

В каждой презентации  теоретический материал,  примеры, базовые задачи, программы, вопросы и задания к теме. Презентации могут быть использованы на уроках информатики.
 
ЛИТЕРАТУРА: А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.: –Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ
 

2) Далее будут размещаться презентации с интересными практическими заданиями по темам, выполненные учащимися:

ТЕМА 1. ВВЕДЕНИЕ,

ТЕМА 2. иСПОЛНИТЕЛЬ чЕРТЕЖНИК.

ТЕМА 3. лИНЕЙНЫЕ АЛГОРИТМЫ.

ТЕМА 4. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА PASCAL ABC

ТЕМА 5. ВЕВВЛЕНИЯ И ЦИКЛЫ.

ТЕМА 6. МАССИВЫ.

ТЕМА 7. СИМВОЛЫ И СТРОКИ.

ТЕМА 8. РЕШЕНИЯ ПРАКТИЧЕСКИХ ЗАДАЧ. 

Реализация имитации движения графических объектов.(+)
Анимация вращения.
Построение диаграмм.
Построение графиков элементарных функций.
Моделирование полета тела, брошенного под углом к горизонту.

ЛИТЕРАТУРА: Терещук В.А. ИНФОРМАТИКА В ШКОЛЕ; PascalABC в теории и практике

 

 

Скачать:

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Язык программирования Паскаль Тема 1 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

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

Слайд 4

Алфавит Как каждый язык, Паскаль имеет свой алфавит. В него входят: латинские буквы (26), цифры от 0 до 9, специальные знаки (+,-, круглые, квадратные и фигурные скобки, точка, запятая, точка с запятой, <, >, <=, >=, $ и др.), а также служебные слова (из английского языка: begin, end, for, while и др.). 03.11.2013 Цыбикова Т.Р. 4

Слайд 5

Имя переменной При написании программы для переменных величин вводятся обозначения, точно так же, как это делается для обозначения переменных в курсе алгебры. Такое обозначение в ЯП называют именем величины. Имя величины в Паскале – это слово из букв, цифр и знаков подчеркивания, начинающегося с буквы. В качестве имени нельзя использовать служебные слова Каждое имя соответствует некоторой ячейке памяти, куда записывается значение переменной величины. Поскольку в ячейку можно записать одно за другим сколько угодно данных, имя также называют переменной или именем переменной . 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Ячейка Ячейка- понятие условное, это последовательность разного количества байтов для разных данных. Для целых чисел в Паскале требуется два байта , для действительных – шесть . Любой символ клавиатуры занимает один байт . Поэтому для каждой переменной надо указать её тип, чтобы транслятор ( программа, переводящая с ЯП на язык машинных команд ) знал, сколько места в памяти она будет занимать. 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Числа в Паскале Числа в Паскале различаются как целые и действительные (вещественные). Целое число по внешнему виду такое же, как обычно: знак «+» можно не указывать. Вещественные числа, несмотря на одинаковое представление в памяти компьютера, могут иметь вид с фиксированной и с плавающей точкой. 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

Числа с фиксированной точкой Числа с фиксированной точкой похожи на десятичные, только целая часть от дробной отделяется не запятой, а точкой: -7.23, 897.5, -0.11. При выполнении действий с фиксированной точкой может получиться результат, целая часть которого содержит больше разрядов, чем объем ячейки памяти. Происходит, как принято говорить, переполнение ячейки памяти . 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Числа с плавающей точкой Чтобы избежать переполнения ячейки памяти , используют представление вещественных чисел с плавающей точкой. В этом случае число представляется в виде мантиссы и порядка. Мантисса – это последовательность цифр, изображающих число, а порядок определяет положение точки в этой последовательности. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Пример числа с плавающей точкой Например, десятичное число 243,7 может быть представлено в виде: 243,7=2,437·10 2 , или 243700·10 -3 , или 0,002437·10 5 и т.д. В этом примере 2437 - мантисса числа, а цифры 2 , -3 или 5 – порядок (нетрудно увидеть, что это степень числа 10 , которая меняется в зависимости от различных видов записи числа 243,7 ). В машинной записи число будет выглядеть как 2.4370000000 E +02 . 03.11.2013 Цыбикова Т.Р. 10

Слайд 11

Направление сдвига указано после буквы Е Числа с плавающей точкой имеют громоздкий вид, они выводятся как результаты работы программы. Однако их можно заменить на числа с фиксированной точкой. Если программа выдала вещественное число - 4.9876543234Е-02 , то это тоже самое, что - 0,049876543234 , т.е. десятичную точку надо сдвинуть влево на две позиции. Направление сдвига указано после буквы Е в записи числа: вправо, если после Е плюс, и влево, если минус. 03.11.2013 Цыбикова Т.Р. 11

Слайд 12

Операции Для работы с числами используют шесть операций: « + » - сложение, « - » - вычитание, « / » - деление, « * » - умножение, m od – нахождение остатка от деления, div – деление нацело. 03.11.2013 Цыбикова Т.Р. 12

Слайд 13

Что такое арифметическое выражение, из чего оно может состоять Из имен, чисел, знаков арифметических действий и математических функций конструируются арифметические выражения. Для указания порядка действий используются только круглые скобки , их может быть несколько, главное , чтобы количество открывающих скобок равнялось количеству закрывающих. 03.11.2013 Цыбикова Т.Р. 13

Слайд 14

Математические функции Паскаля во многом совпадают с общепринятыми: sin(x) , cos (x) , ln (x) . Для возведения аргумента в квадрат используется обозначение sqr (x) , для извлечения квадратного корня sqrt (x) , а модуль обозначается abs(x) . В качестве аргумента каждой функции может быть арифметическое выражение. 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Пример арифметического выражения x/(1+sqr(x)/(5+x* sqr (x)) запись на Паскале 03.11.2013 Цыбикова Т.Р. 15

Слайд 16

Оператор присваивания Алгоритм преобразования данных на Паскале состоит из операторов – укрупненных команд. Каждый оператор преобразуется транслятором в последовательность машинных команд. Основное преобразование данных, выполняемых компьютером, - присваивание переменной нового значения . 03.11.2013 Цыбикова Т.Р. 16

Слайд 17

Общий вид оператора присваивания Имя переменной := арифметическое выражение; 03.11.2013 Цыбикова Т.Р. 17 В дальнейшем будет показано, что справа может стоять и выражение другого типа. Знак « := » читается « присвоить ». Точка с запятой в конце записи оператора является обязательной .

Слайд 18

Как работает оператор присваивания При выполнении оператора присваивания рассматривается арифметическое выражение, из ячеек оперативной памяти, соответствующих стоящим там именам, вносятся в процессор значения и выполняются указанные действия над данными. Полученный результат записывается в ячейку памяти, имя которой указано слева от знака присваивания. 03.11.2013 Цыбикова Т.Р. 18

Слайд 19

Примеры оператора присваивания x:=3.14; { переменной x присвоить значение 3,14 } a := b+c ; { из ячеек b и c считываются заранее помещенные туда данные, вычисляется сумма, результат записывается в ячейку a } i :=i+1 { значение переменной увеличивается на 1 } 03.11.2013 Цыбикова Т.Р. 19

Слайд 20

Для типов переменной слева и арифметического выражения справа от знака присваивания существуют ограничения: Если переменная слева вещественного типа, то арифметическое выражение может быть как целого, так и вещественного типа, т.е. содержать либо целые переменные и допустимые для них операции, либо вещественные, либо и те, и другие (тогда выражение преобразуются к вещественному типу). Если переменная слева целого типа, то арифметическое выражение справа только целочисленное. Это означает, что можно, например , вещественной переменной присвоить целое значение. В памяти компьютера оно будет преобразовано к вещественному типу. В фигурных скобках рядом с оператором помещается комментарий его действий. 03.11.2013 Цыбикова Т.Р. 20

Слайд 21

Вопросы и задания Что входит в состав алфавита Паскаля? Почему Паскаль различает целые и вещественные числа? Что такое арифметическое выражение, из чего оно может состоять? Как работает оператор присваивания? Какие ограничения накладывает Паскаль на типы данных при присваивании? Что такое транслятор? Запишите в виде арифметического выражения квадратный трехчлен. Запишите на Паскале tg x, x 4 . 03.11.2013 Цыбикова Т.Р. 21

Слайд 22

Вопросы и задания Что входит в состав алфавита Паскаля? Почему Паскаль различает целые и вещественные числа? Что такое арифметическое выражение, из чего оно может состоять? латинские буквы (26), цифры от 0 до 9, специальные знаки (+,-, круглые, квадратные и фигурные скобки, точка, запятая, точка с запятой, <, >, <=, >=, $ и др.), а также служебные слова (из английского языка: begin, end, for, while и др.). Ячейка- это последовательность разного количества байтов для разных данных. Для целых чисел в Паскале требуется два байта, для действительных – шесть. Любой символ клавиатуры занимает один байт. Поэтому для каждой переменной надо указать её тип, чтобы транслятор ( программа, переводящая с ЯП на язык машинных команд ) знал, сколько места в памяти она будет занимать. Из имен, чисел, знаков арифметических действий и математических функций конструируются арифметические выражения. Для указания порядка действий используются только круглые скобки , их может быть несколько, главное , чтобы количество открывающих скобок равнялось количеству закрывающих. 03.11.2013 Цыбикова Т.Р. 22 Ответы

Слайд 23

Вопросы и задания Как работает оператор присваивания? Какие ограничения накладывает Паскаль на типы данных при присваивании? Общий вид оператора присваивания Имя переменной := арифметическое выражение; . При выполнении оператора присваивания рассматривается арифметическое выражение; из ячеек оперативной памяти, соответствующих стоящим там именам, вносятся в процессор значения и выполняются указанные действия над данными. Полученный результат записывается в ячейку памяти, имя которой указано слева от знака присваивания. Для типов переменной слева и арифметического выражения справа от знака присваивания существуют ограничения: Если переменная слева вещественного типа, то арифметическое выражение может быть как целого, так и вещественного типа, т.е. содержать либо целые переменные и допустимые для них операции, либо вещественные, либо и те, и другие (тогда выражение преобразуются к вещественному типу). Если переменная слева целого типа, то арифметическое выражение справа только целочисленное. 03.11.2013 Цыбикова Т.Р. 23 Ответы

Слайд 24

Вопросы и задания Что такое транслятор? Запишите в виде арифметического выражения квадратный трехчлен. Запишите на Паскале tg x, x 4 . Транслятор - программа, переводящая с ЯП на язык машинных команд. a* sqr (x)+b* x+c tan(x), x*x*x*x или sqr (x)* sqr (x) 03.11.2013 Цыбикова Т.Р. 24 Ответы

Слайд 25

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.83-87 03.11.2013 Цыбикова Т.Р. 25


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Структура программы в Паскале. Ввод и вывод данных. Тема 2. 03.11.2013 2 Цыбикова Т.Р.

Слайд 3

Программа на Паскале Программа на Паскале состоит из двух частей : описания используемых данных , операторов по их преобразованию. Вторая часть также называется программным блоком. 03.11.2013 3 Цыбикова Т.Р.

Слайд 4

Общий вид программы program ( имя программы ); label ( список меток ); const ( список постоянных значений ); type ( описания сложных типов данных ) ; var ( описания данных программы ); b egin ( начало программного блока ) ( алгоритм ) end . ( конец программы ) 03.11.2013 4 Цыбикова Т.Р.

Слайд 5

Имя программы Имя программы состоит не более, чем из 8 знаков, начинается с буквы и содержит буквы, цифры и знаки подчеркивания. Программа начинается со слова program и заканчивается словом end с точкой. Операторы , разделы и описания разделов заканчиваются точкой с запятой. 03.11.2013 5 Цыбикова Т.Р.

Слайд 6

Описательная часть программы Описательная часть программы состоит из четырех разделов. Использование таких разделов как раздел меток label , раздел констант const , раздел типов type будет рассмотрено по мере необходимости. Основным является раздел var . В нем указываются имена переменных, используемых в программе и их тип. Для числовых данных применяются основные описатели типов integer и real . 03.11.2013 6 Цыбикова Т.Р.

Слайд 7

Раздел переменных Например, в программе используются две целочисленные переменные и одна вещественная. Раздел переменных может иметь вид: var i,j: integer ; x: real ; Имена переменных одного типа перечисляются через запятую , затем после двоеточия указывается их тип. Описание каждого типа заканчивается точкой с запятой. Когда при переводе на машинный язык транслятор встречает описание переменной, он отводит для этой переменной ячейку памяти и ставит в соответствие номер первого байта ячейки. 03.11.2013 7 Цыбикова Т.Р.

Слайд 8

Программный блок Программный блок содержит операторы , описывающие алгоритм решения задачи. Для сообщения данных компьютеру служат операторы ввода и вывода . Оператор ввода помещает вводимое значение переменной в отведенную для нее ячейку. Оператор ввода : read ( список имен) ; 03.11.2013 8 Цыбикова Т.Р.

Слайд 9

Оператор ввода Оператор read (читать) останавливает работу программы и ждет, пока пользователь наберёт на клавиатуре число и нажмет . Введенное число помещается в оперативную память, в отведенную ячейку. Если список имен содержит несколько имен, то для каждого надо внести свое значение. Числа вводятся или через пробел , или через запятую , или нажатием клавиши < Enter > . read ( список имен) ; 03.11.2013 9 Цыбикова Т.Р.

Слайд 10

Например, read ( i,j); требует ввода двух целых чисел. После работы этого оператора курсор располагается за последним числом, но не переводится на новую строку. Для перевода курсора на новую строку экрана дисплея после ввода данных надо использовать оператор readln ( список имен ); 03.11.2013 10 Цыбикова Т.Р.

Слайд 11

Оператор вывода Для вывода результатов работы программы на экран дисплея служит оператор write ( список вывода ); Оператор write (писать) выводит данные на экран дисплея. С писок вывода – перечисленные через запятую имена результатов или арифметические выражения, являющиеся результатом работы программы. Также в список вывода, для пояснения, входят заключенные в апострофы тексты. write ( список вывода ); 03.11.2013 11 Цыбикова Т.Р.

Слайд 12

Например, write (' x= ' , x ); Этот оператор напечатает на экране, начиная с той позиции, где находится курсор, текст, заключенный между апострофами , и значение переменной x из оперативной памяти . Значение будет выведено в форме вещественного числа с плавающей точкой. 03.11.2013 12 Цыбикова Т.Р.

Слайд 13

Чтобы число было выведено в форме с фиксированной точкой Чтобы число было выведено в форме с фиксированной точкой, надо после имени соответствующей переменной указать два целых числа, отделив каждое двоеточием . Первое из этих чисел показывает, сколько позиций занимает число (включая десятичную точку и знак числа). Второе равно количеству цифр дробной части числа. 03.11.2013 13 Цыбикова Т.Р.

Слайд 14

Например, для печати числа -23.57 как значения переменной x , оператор печати примет вид: write (' x= ' , x :6:2 ); На экран будет выдано x= -23.57 03.11.2013 14 Цыбикова Т.Р.

Слайд 15

Оператор пустого вывода Перевод курсора на новую строку можно осуществить оператором пустого вывода writeln ; Если надо перевести курсор после печати, то применяется writeln ( список вывода ); 03.11.2013 15 Цыбикова Т.Р.

Слайд 16

Оператор пустого ввода После вывода результатов работы программы на экран в Турбо Паскаль система так быстро возвращается в редактор текстов программы, что пользователь не успевает увидеть результаты. Чтобы задержать изображение, в конце программы следует ставить оператор пустого ввода readln ; 03.11.2013 16 Цыбикова Т.Р.

Слайд 17

Рассмотрим пример программы Пусть требуется найти сумму, произведение и разность двух данных чисел. Для каждой из чисел надо придумать имя переменной и указать ее тип. Затем ввести эти числа в отведенные ячейки. Напечатать результаты, используя возможность оператора вывода содержать арифметическое выражение. 03.11.2013 17 Цыбикова Т.Р.

Слайд 18

Пример программы program E1; var a,b: real ; begin writeln (' введите два числа через пробел, затем нажмите < Enter> '); readln ( a,b ); writeln (' a+b = ', a+b , ' a*b= ',a*b, ' a-b= ',a-b); end. 03.11.2013 18 Цыбикова Т.Р.

Слайд 19

Служебные слова Паскаля Служебные слова Паскаля, выделенные жирным шрифтом, при наборе текста программы на клавиатуре никак не выделяются, их различает транслятор (синоним-компилятор). Поэтому служебные слова нельзя использовать в качестве имен. Первый оператор программного блока выводит на экран подсказку для пользователя − что он должен сделать. Для ввода данных рекомендуется создавать подобные подсказки. 03.11.2013 19 Цыбикова Т.Р.

Слайд 20

Пример программы program E1; var a,b: real; begin writeln (' введите два числа через пробел и затем нажмите < Enter> '); readln ( a,b ); writeln(' a+b = ', a+b , ' a*b= ',a*b, ' a-b= ',a-b); end. Первый оператор программного блока выводит на экран подсказку для пользователя - что он должен сделать. Подсказка для пользователя пишется между апострофами. 03.11.2013 20 Цыбикова Т.Р.

Слайд 21

При решении задач имена присваиваются При решении задач имена присваиваются не только исходным данным , но и результатам , а также получаемым промежуточным значениям. Поскольку в рассматриваемом примере надо получить три результата, введем для них переменные x, y, z. В программе этим переменным будут присвоены значения суммы, произведения и разности двух вводимых чисел. 03.11.2013 21 Цыбикова Т.Р.

Слайд 22

Например, program E 2 ; var a, b , x, y, z: real ; begin writeln (' введите два числа через пробел, затем нажмите < Enter> '); readln ( a,b ); x:= a+b ; y:=a*b; z:=a-b; writeln(' a+b = ',x, ‘ a*b= ',y, ' a-b= ',z); end. 03.11.2013 22 Цыбикова Т.Р.

Слайд 23

Вопросы и задания Для чего необходимо описывать данные в программе? Как описать переменные одного типа, например, вещественного? Какой оператор используется для ввода данных? Куда попадают введенные с клавиатуры числа при работе оператора ввода? Как перевести курсор на новую строку после ввода данных? 03.11.2013 23 Цыбикова Т.Р.

Слайд 24

Вопросы и задания Как вывести результаты работы программы на экран дисплея? Как сделать, чтобы данные выводились с новой строки? Как увидеть результаты ввода на экране дисплея, если уже сработал write ? Можно ли получить результат вычислений без использования оператора присваивания? 03.11.2013 24 Цыбикова Т.Р.

Слайд 25

Вопросы и задания Напишите программу вычисления среднего арифметического двух чисел. Напишите программу вычисления расстояния между двумя точками плоскости. Напишите программу вычисления площади треугольника по формуле Герона. Напишите программу вычисления площади боковой поверхности куба. Напишите программу вычисления площади и гипотенузы прямоугольного треугольника, если известны его катеты. 03.11.2013 25 Цыбикова Т.Р.

Слайд 26

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

Слайд 27

Вопросы и задания Напишите программу определения времени встречи двух автомобилей, если известно расстояние между двумя пунктами, откуда они вышли навстречу друг другу одновременно, а также их скорости. Напишите программу вычисления суммы арифметической прогрессии, если известен её начальный член и разность, а также количество её членов. УКАЗАНИЕ : при работе на компьютере укажите разные форматы вывода чисел с фиксированной точкой, выполните программу для разных данных несколько раз. 03.11.2013 27 Цыбикова Т.Р.

Слайд 28

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.87-91 03.11.2013 Цыбикова Т.Р. 28


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Работа в системе турбо-паскаль Тема 3.1 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

03.11.2013 Цыбикова Т.Р. 3

Слайд 4

03.11.2013 Цыбикова Т.Р. 4

Слайд 5

03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.91-92 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Работа в системе ABC паскаль Тема 3.2 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

Система Pascal ABC Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов младших курсов. По мнению авторов первоначальное обучение программированию должно проходить в достаточно простых и дружественных средах, в то же время эти среды должны быть близки к стандартным по возможностям языка программирования и иметь достаточно богатые и современные библиотеки стандартных подпрограмм. 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Язык Паскаль как один из лучших языков программирования для начального обучения Язык Паскаль признан многими российскими преподавателями как один из лучших именно для начального обучения. Однако, среда Borland Pascal, ориентированная на MS DOS, устарела, а среда Borland Delphi с ее богатыми возможностями сложна для начинающего программиста. Так, попытка начинать обучение с написания событийной программы в Borland Delphi вызывает у обучаемого массу сложностей и приводит к ряду неправильно сформированных навыков. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Система Pascal ABC основана на языке Delphi Pascal Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Некоторые языковые конструкции в Pascal ABC допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения. Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации. В этом случае модули устроены практически так же, как и основная программа, что позволяет приступить к их изучению параллельно с темой "Процедуры и функции". Тела методов можно определять непосредственно внутри классов (в стиле Java и C#), что позволяет создавать классы практически сразу после изучения записей, процедур и функций. 03.11.2013 Цыбикова Т.Р. 10

Слайд 11

Ряд модулей Pascal ABC специально создавался для учебных целей Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi . Он доступен в несобытийных программах и позволяет легко создавать анимацию без мерцания. Модуль Events позволяет создавать простейшие событийные программы без использования объектов (события представляют собой обычные процедурные переменные). Модули Timers и Sounds позволяют создавать таймеры и звуки, которые также реализованы в процедурном стиле. Эти модули можно использовать даже в консольных программах. 03.11.2013 Цыбикова Т.Р. 11

Слайд 12

Ряд модулей Pascal ABC специально создавался для учебных целей Модуль контейнерных классов Containers позволяет работать с основными структурами данных (динамические массивы, стеки, очереди, множества), реализованными в виде классов. Модуль векторной графики ABCObjects предназначен для быстрого изучения основ объектно-ориентированного программирования, а также позволяет создавать достаточно сложные игровые и обучающие программы. Модуль визуальных компонентов VCL позволяет создавать событийные приложения с главной формой в стиле Delphi. Классы VCL немного упрощены по сравнению с аналогичными классами Delphi. Имеется редактор форм и инспектор объектов. Технология восстановления формы по коду программы позволяет обойтись для приложения с главной формой одним файлом (!). 03.11.2013 Цыбикова Т.Р. 12

Слайд 13

Типы приложений в Pascal ABC В Pascal ABC можно создавать следующие типы приложений: Консольные приложения (вывод текста осуществляется в окно вывода , а ввод - из окна ввода ); Графические приложения (при подключении модуля GraphABC открывается специальное графическое окно , предназначенное для вывода графики); Графические приложения, управляемые событиями (при одновременном подключении модулей GraphABC и Events в графическом окне можно использовать несколько простейших событий ); Приложения Pascal ABC Forms (после подключения модуля vcl можно создавать формы, размещать на них компоненты и определять обработчики событий для каждого компонента; можно также воспользоваться дизайнером формы); Приложения для электронного задачника Programming Taskbook (при подключении модуля PT4); Приложения для Исполнителя Робот (при подключении модуля Robot ); Приложения для Исполнителя Чертежник (при подключении модуля Drawman). Последние три типа приложений реализуют идею проверяемых заданий . Приложения для электронного задачника Programming Taskbool используются для эффективного обучения программированию и основам алгоритмизации школьников старших классов и студентов младших курсов. Исполнители Робот и Чертежник используются для быстрого первоначального обучения программированию школьников младших и средних классов. 03.11.2013 Цыбикова Т.Р. 13

Слайд 14

03.11.2013 Цыбикова Т.Р. 14

Слайд 15

03.11.2013 Цыбикова Т.Р. 15

Слайд 16

Об авторах Автор системы Pascal ABC - доцент механико-математического факультета Ростовского государственного университета Станислав Станиславович Михалкович (e-mail miks@math.rsu.ru ). Автор электронного задачника Programming Taskbook - доцент механико-математического факультета Ростовского государственного университета Михаил Эдуардович Абрамян (e-mail mabr@math.rsu.ru ). 03.11.2013 Цыбикова Т.Р. 16

Слайд 17

Изучайте программирование вместе с PascalABC.NET ! НОВАЯ ВЕРСИЯ ПО АДРЕСУ http ://pascalabc.net/ 03.11.2013 Цыбикова Т.Р. 17


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Условный оператор Тема 4. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Условный оператор В рассмотренных до сих пор алгоритмах и программах все команды (операторы) выполнялись последовательно одна за другой в том порядке, в каком они были записаны. Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи. В практике хорошо известны задачи, дальнейший ход решения которых зависит от выполнения какого-либо условия . 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рассмотрим простой пример из курса алгебры. Требуется построить алгоритм вычисления значения функции y=|x| . Она задаётся соотношением: 03.11.2013 Цыбикова Т.Р. 4

Слайд 5

При решении этой задачи требуется выполнить следующие условия: проверить больше или равен нулю x ; если x больше или равен 0, то присвоить y значение x ( y:=x ) , если x меньше 0, то присвоить y значение - x ( y:= - x ) Коротко алгоритм решения этой задачи может быть записан так: ЕСЛИ x≥0, ТО y:=x, ИНАЧЕ y:=x 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Команды ветвления Команды, с помощью которых записываются алгоритмы подобного типа (разветвляющиеся алгоритмы), называются командами ветвления . Команде ветвления в Паскале соответствует условный оператор . Условный оператор может иметь две формы (структуры), представленные на рисунках 1 и 2. 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Рисунок 1 ? оператор IF THEN + - Неполная форма условного оператора На рис.1 показана неполная форма условного оператора: действие выполняется тогда и только тогда, когда выполняется записанное в ромбе условие. В случае невыполнения условия происходит переход к следующему оператору (выход из структуры). 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

Рисунок 2 На рисунке 2 изображена полная форма условного оператора: в случае выполнения условия (выход « + » из ромба) выполняется одно действие, в случае невыполнения (выход « - ») – другое действие. ? оператор _1 IF THEN + - ELSE оператор _2 Полная форма условного оператора 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

? оператор IF THEN + - Неполная форма условного оператора ? оператор _1 IF THEN + - ELSE оператор _2 Полная форма условного оператора Структуры условного оператора 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Структуры условного оператора Каждая структура имеет один вход и один выход. Программу рекомендуется строить из последовательных, логически завершенных блоков, не допуская передачи управления из одного блока в другой. Такая программа содержит меньше ошибок при разработке, легче проверятся на правильность выполнения. Неполный условный оператор имеет вид: IF условие THEN оператор ; Полный условный оператор имеет вид: IF условие THEN оператор_1 ELSE оператор_2 ; 03.11.2013 Цыбикова Т.Р. 10

Слайд 11

Условный оператор Если после слов THEN и ELSE надо выполнить не один оператор, а несколько, то эти операторы заключают в так называемые операторные скобки , открывающая скобка которых – слово BEGIN , а закрывающая - END : begin ( операторы ) end; Перед словом else точка с запятой не ставится. В операторных скобках BEGIN - END рекомендуется каждую пару записывать в одном столбце: так легче проверить соответствие каждой открывающей скобке закрывающую. 03.11.2013 Цыбикова Т.Р. 11

Слайд 12

Примеры условного оператора if a

Слайд 13

В качестве выполняемого в условном операторе действия может быть другой условный оператор. Например, If sqr (x) + sqr (y) >1 then if x>y then z:=0 else z:=1; При такой форме записи, использующей сдвиг вправо для каждого внутреннего действия, легко понять, к какому из двух слов IF относится слово ELSE . Если этот оператор записать в одну строку, то ответ будет неоднозначным. Транслятор поступает следующим образом. Встретив сложную конструкцию из вложенных условных операторов, он анализирует её с конца, приписывая последнее найденное ELSE первому встреченному при просмотре справа налево IF . 03.11.2013 Цыбикова Т.Р. 13

Слайд 14

Пример программы Пусть для двух целых чисел надо определить, являются они четными или нет. Для проверки четности используем условие: остаток от деления на 2 четного числа равен 0. program E3; var a,b: integer; begin writeln ( ' введите два целых числа‘ ) ; readln (a,b); if a mod 2 = 0 then writeln ( 'a- четное' ) else writeln ( 'b- нечетное '); if b mod 2 = 0 then writeln ( 'b- четно е') else writeln ( 'a- нечетное ') end . 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Логические выражения Алгоритм решения квадратного уравнения содержит проверку условия d<0 . Два значения, d и 0, связаны отношением < - меньше. Если условие выполняется, то говорят, что соответствующее выражение истинно , если не выполняется – выражение ложно . Речь идет о логическом выражении. Для построения сложных условий в Паскале имеются логические операции and ( и ), or (или) и not (не) . Обозначим истинное значение через 1 или ложное через 0, построим таблицы истинности для этих операций. 03.11.2013 Цыбикова Т.Р. 15

Слайд 16

Таблицы истинности для логических операций 03.11.2013 Цыбикова Т.Р. 16 X Y X and Y 1 1 1 1 0 0 0 1 0 0 0 0 X Y X or Y 1 1 1 1 0 1 0 1 1 0 0 0 X not X 1 0 0 1

Слайд 17

Примеры построения сложных логических выражений. Пример 1. Пусть требуется определить, принадлежит ли точка с координатой x отрезку [ a;b ] . Если записать это условие двойным неравенством, то читать его надо так: x меньше либо равен b и больше либо равен a ( a  x  b ). Отношение «меньше либо равно» в Паскале записывается двумя знаками. Аналогично записывается и «больше либо равно». Однако в Паскале нельзя записывать двойное неравенство. Используя логическую операцию and (и), запишем: ( x>=a ) and ( x <=b ). Отношения, между которыми стоит логическая операция, заключается в круглые скобки. 03.11.2013 Цыбикова Т.Р. 17

Слайд 18

Примеры построения сложных логических выражений. Пример 2. Имеется прямоугольное отверстие со сторонами a и b и кирпич с ребрами x, y, z . Требуется составить условие прохождения кирпича в отверстие. (рис.3) Кирпич пройдет в прямоугольное отверстие, если выполняется сложное условие: ( a>=x ) and ( b >=y ) or ( a>=y ) and ( b >=x ) or ( a>=x ) and ( b >=z ) or ( a>=z ) and ( b >=x ) or ( a>=y ) and ( b >=z ) or ( a>=z ) and ( b >=y ) Рис.3 Для трех граней шесть условий получается потому, что можно каждую грань повернуть на 90° и проверить для каждой грани два случая. 03.11.2013 Цыбикова Т.Р. 18 x y z a b

Слайд 19

Примеры построения сложных логических выражений. Пример 3. Определить принадлежность точки фигуре. Пусть фигура задана ограничивающими ее прямыми (рис.4). Для каждой прямой определим полуплоскость, в которой находится фигура – треугольник ABC . Полуплоскость задается неравенством. Рис.4 Полуплоскость, находящаяся выше оси x определяется неравенством y>0 . Полуплоскость, находящаяся справа от прямой, соединяющей точки A ( - 1;0) и B (0;2) задается неравенством y -2 x-2<0 . Полуплоскость, находящаяся слева от прямой, соединяющей точки C (1;0) и B (0;2) задается неравенством y+ 2 x-2<0 . 03.11.2013 Цыбикова Т.Р. 19 1 -1 2 y x A B C Условие принадлежности точки ( x;y ) фигуре: (y>0)and(y -2 *x-2<0)and(y+ 2 *x-2<0)

Слайд 20

1 -1 2 y x A B C Условие принадлежности точки ( x;y ) фигуре: (y>0)and(y -2 *x-2<0)and(y+ 2 *x-2<0) 03.11.2013 Цыбикова Т.Р. 20

Слайд 21

Примеры построения сложных логических выражений. Пример 4. Приведем пример программы определения существования треугольника со сторонами a , b и c . Условие существования треугольника известно из геометрии: сумма двух сторон должна быть больше третьей. Следовательно, для всех сторон «сумма двух больше третьей» должно выполняться. program E4; var a,b,c : real; begin writeln (' введите длины трех сторон треугольника '); readln ( a,b,c ); write (‘ треугольник со сторонами ', a,' , ',b,' , ',c); if ( a+b >c) and ( b+c >a) and ( a+c >b) then write (' существует ') else write (' не существует '); readln end . 03.11.2013 Цыбикова Т.Р. 21 В Турбо Паскале

Слайд 22

03.11.2013 Цыбикова Т.Р. 22

Слайд 23

Вопросы и задания Как транслятор анализирует вложенные условные операторы? Как работает неполный условный оператор? Как проверить, является ли целое число нечетным? Как выполняется логические операции и , или , не ? 03.11.2013 Цыбикова Т.Р. 23

Слайд 24

Напишите программы на Паскале для решения следующих задач. Даны три числа a, b и c. Выясните, верно ли a

Слайд 25

Напишите программы на Паскале для решения следующих задач. Даны три действительных числа. Выберите те из них, которые принадлежат отрезку [1;3]. Присвойте величине a значение наибольшего из трех заданных чисел. Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так. Проверьте, есть ли среди трех заданных чисел равные. Даны два действительных числа. Меньшее из них замените полусуммой этих чисел, а большее – их произведением. 03.11.2013 Цыбикова Т.Р. 25

Слайд 26

Напишите программы на Паскале для решения следующих задач. Вычислите наименьшее из трех заданных чисел. Найдите решение уравнения ax+b =0 , если оно существует. Если данное число x меньше 0, то z присвойте значение большего из двух чисел x и y , иначе z присвойте значение полусуммы этих чисел. Даны три действительных числа. Найдите наибольшее значение из их суммы и произведения. Даны действительные числа a , b и c . Удвойте эти числа, если они являются упорядоченными по возрастанию. 03.11.2013 Цыбикова Т.Р. 26

Слайд 27

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.93-99 03.11.2013 Цыбикова Т.Р. 27


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Организация циклов Тема 5. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Циклы В своей практической деятельности человек постоянно сталкивается с задачами, при решении которых требуется многократно повторять одни и те же действия. Для составления алгоритмов решения таких задач используются команды повторения (циклы). 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рассмотрим следующий пример. Пусть требуется определить остаток от деления числа M на число N ( M и N - произвольные натуральные числа). Самый простой способ решения этой задачи заключается в следующем: проверяем, не меньше ли M , чем N ( если M

Слайд 5

Повторяющиеся действия Как видно, в этом примере несколько раз повторяется одна и та же последовательность действий. Компьютер может заданное число раз выполнить одни и те же действия с разными данными. Повторяющиеся действия в программировании называются циклом . Если изобразить в виде блок-схемы, то получатся две разные структуры (рис.1 и 2). Цикл не может выполняться вечно, в этом случае нарушается свойство алгоритма решить задачу за конечное число шагов. Цикл заканчивается по какому-либо условию. Проверка этого условия может производиться в начале каждого повторяющегося шага, в этом случае цикл называется пока . При проверке условия в конце каждого шага цикл называется до . Разновидностью цикла до является цикл пересчет . 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Цикл пока + ? оператор - да нет - ? оператор + нет да Цикл до Циклические структуры Рис.1 Рис.2 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Циклические структуры Цикл пока В цикле пока проверяется условие, и если оно выполняется, т.е. логическое выражение истинно, то выполняется оператор и снова проверяется условие. Записанное в цикле пока условие является условием продолжения цикла. Как только оно перестанет выполняться, цикл завершится. На рис.1 выход из ромба «+» (или да ) означает выполнение условия цикла, «-» (или нет ) – невыполнение. Цикл пока не выполнится ни разу, если условие при входе с структуру окажется ложным. Рис.1 Цикл пока + ? оператор - да нет 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

Циклические структуры Цикл до Как правило, цикл пока содержит условие повторения , о цикл до условие окончания работы цикла . Обе структуры имеют один вход и один выход. Однако цикл до всегда выполняется хотя бы один раз, потому что условие проверяется после выполнения действия. Это затрудняет проверку правильности программы, поэтому лучше использовать цикл пока . Оператор в цикле может быть простым или составным, заключенным о операторные скобки. В этом случае в цикле могут повторяться несколько операторов, а не один. Повторяющиеся в цикле операторы называются телом цикла. Рис.2 - ? оператор + нет да Цикл до 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Оператор безусловного перехода Циклы можно организовывать, используя различные средства языка Паскаль. Этот оператор позволяет перейти без проверки условия либо на один из предыдущих операторов, либо на один из последующих, т.е.изменить порядок выполнения команд. Общий вид оператора: goto n; где n - целое число, не более чем из 4 цифр, называемое меткой. Метка появляется в программе 3 раза: в описательной части в разделе Label ; в операторе goto n; перед оператором, на который осуществляется безусловный переход, в этом случае метка от оператора отделяется двоеточием. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Организация циклов с помощью операторов условного и безусловного переходов Пусть требуется вычислить НОД двух натуральных чисел A и B . Воспользуемся алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равны. 03.11.2013 Цыбикова Т.Р. 10 Исходные данные Первый шаг Второй шаг Третий шаг НОД( A , B) =5 A=25 A=10 A=10 A=5 B=15 B=15 B=5 B=5

Слайд 11

03.11.2013 Цыбикова Т.Р. 11

Слайд 12

03.11.2013 Цыбикова Т.Р. 12

Слайд 13

Оператор цикла пока Как видно из предыдущего примера, циклический процесс можно организовать без использования специальных операторов. Однако при составлении достаточно серьезных программ использовать оператор безусловного перехода не рекомендуется, так как можно быстро запутаться при проверке программы. Оператор цикла пока имеет вид: 03.11.2013 Цыбикова Т.Р. 13 while условие do оператор ; И выполняется следующим образом : оператор( тело цикла) повторяется до тех пор, пока выполняется условие (истинно логическое выражение). Оператор может быть простым или составным, заключенным в операторные скобки begin … end .

Слайд 14

Для алгоритма Евклида программа примет вид: 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Оператор цикла до Проверка условия в цикле до осуществляется после выполнения оператора. Если условие в цикле пока является условием продолжения повторений, то условие до – условием выхода из цикла, его завершением. Поэтому для одной и той же задачи эти условия противоположны. Общий вид оператора цикла до : 03.11.2013 Цыбикова Т.Р. 15 repeat оператор until условие ; Между словами repeat (повторить) и until (до тех пор пока) можно записать любое количество операторов без использования операторных скобок. Перед словом until не ставится точка с запятой.

Слайд 16

Программа нахождения НОД чисел примет вид: 03.11.2013 Цыбикова Т.Р. 16

Слайд 17

Оператор циклов пересчет При выполнении программ нахождения НОД число повторений различно для разных чисел. Когда известно число повторений, удобно использовать цикл пересчет. В Паскале имеется два оператора для организации циклов пересчет : прямой и обратный. Прямой пересчет идет от известного меньшего числа до известного большего, на каждом шаге прибавляется единица (например, от 120 до 140: 121, 122, 123, …, 139, 140). 03.11.2013 Цыбикова Т.Р. 17

Слайд 18

Оператор прямого пересчета : читается как «для i начиная n1 с до n2 выполнить оператор». Переменная i называется переменной цикла, она при прямом пересчете всегда меняется от меньшего значения до большего. При i :=n1 цикл выполняется первый раз. Затем к значению i добавляется единица и осуществляется проверка, не превысило ли полученное значение величину n2 . Если i+1 n2 , то оператор выполняется, если нет, то происходит выход из цикла и выполнение следующего по порядку оператора программы. 03.11.2013 Цыбикова Т.Р. 18 for i := n1 to n2 do оператор ;

Слайд 19

Оператор прямого пересчета : Поскольку оператор цикла for сам изменяет значение переменной цикла, ее нельзя менять другими способами, например присваиванием ей какого-либо значения в теле цикла (она не должна появиться слева от знака «:=»). Оператор в цикле может быть простым или составным, заключенным в операторные скобки. Оператор пересчет работает как цикл до , поэтому надо быть внимательным, оператор в теле цикла выполнится всегда хотя бы один раз. Рассмотрим примеры использования операторов цикла. 03.11.2013 Цыбикова Т.Р. 19

Слайд 20

Операторы циклов пересчет Пример 1. Известно, что для получения целой степени n числа a его надо умножить само на себя n раз. Это произведение при выполнении программы будет храниться в ячейке с именем p . Каждый раз, при очередном выполнении цикла, из этой ячейки будет считываться предыдущий результат, домножаться на основание степени a и снова записываться в ячейку p . Основной оператор в теле цикла повторяется n раз и имеет вид: p:=p*a; Пусть надо вычислить a n . При первом выполнении цикла в ячейке p должно находиться число, не влияющее на умножение, т.е. до цикла туда надо записать единицу. 03.11.2013 Цыбикова Т.Р. 20 Выполнение программы a=2 n=5 i p 1 1 2 3 4 5 2 4 8 16 32

Слайд 21

Программа имеет вид: program E8; var a,p : real; i , n: integer; begin write(‘ введите a – основание степени , a = '); readln (a); write (‘ введите целое n – показатель степени , n= '); readln (n); p:=1; for i :=1 to n do p:=p*a; write (' p= ',p); readln end . 03.11.2013 Цыбикова Т.Р. 21

Слайд 22

Отладка программы Перед текстом программы представлен протокол её выполнения при возведении числа 2 в пятую степень. Таблица заполнена вручную, процесс её заполнения называется отладкой программы. Отладка - это проверка всех этапов работы программы. Для сложных задач сначала составляется контрольный пример ( тест ) и программа выполняется человеком, который выполняет каждый оператор так, как его выполняет компьютер. Затем программу выполняет компьютер и сверяет все промежуточные, полученные при счете данные и конечные результаты. Только после полного совпадения программа выполняется с реальными данными. Для понимания работы программы, выполнения отдельных операторов полезно заполнять подобные протоколы для всех учебных задач. 03.11.2013 Цыбикова Т.Р. 22

Слайд 23

03.11.2013 Цыбикова Т.Р. 23

Слайд 24

Оператор циклов пересчет Пример 2. По определению n! =1*2*3*…* n . Используя предыдущую программу, вычислим p как произведение чисел от 1 до n , т.е. p каждый раз умножается не на одно и то же число, а на значение переменной цикла. Вычисление p=n! (n факториал) program E9; var p, i , n: integer; begin write(‘ введите целое n='); readln (n); p:=1; for i :=1 to n do p:=p* i ; write (n, ' != ',p); end . 03.11.2013 Цыбикова Т.Р. 24

Слайд 25

03.11.2013 Цыбикова Т.Р. 25

Слайд 26

Оператор циклов пересчет Пример 3. Пусть требуется составить таблицу значений функции на отрезке [0;3,14] с шагом 0,1. Чтобы не определять количество повторений вычислений, можно воспользоваться циклом пока . Используя вывод вещественных чисел с фиксированной точкой, определим, что количество цифр после запятой в значении функции будет равно 5. Тогда все число, учитывая область значений синуса, займет 7 позиций (числа положительные, значит, добавится позиция для десятичной точки и целой части числа). Составление таблицы значений функции y=sin x . program E10; var x,y: real; begin x:=0; write('x':100, 'sin x':100); while x<=3.14 do begin y:=sin(x); writeln (x:100,' ',y:7:5); x:=x+0.1 end ; readln end . 03.11.2013 Цыбикова Т.Р. 26

Слайд 27

03.11.2013 Цыбикова Т.Р. 27

Слайд 28

Оператор циклов пересчет Пример 4. При суммировании, как и при умножении нескольких чисел, необходимо накапливать результат в некоторой ячейке памяти, каждый раз считывая из этой ячейки предыдущее значение суммы и увеличивая его на очередное слагаемое. Пусть известно, что будет складываться n слагаемое. Путь известно, что будет складываться n чисел. Суммирование чисел. В этом случае надо n раз выполнить действие s:=s+a; здесь a – очередное число, вводимое с клавиатуры. Для первого выполнения этого оператора присваивания надо из ячейки с именем s взять такое число, которое не повлияло бы на результат сложения. Следовательно, прежде чем начать выполнять цикл, надо поместить в эту ячейку (или, что то же самое, присвоить переменной s ) число нуль. 03.11.2013 Цыбикова Т.Р. 28

Слайд 29

Программа имеет вид: program E11; var a,s: real; i,n: integer; begin write(‘ введите количество слагаемых n='); readln (n); s:=0; for i :=1 to n do begin write ( i ,'- ое число ='); readln (a); s:=s+a end ; write (‘ сумма s=',s); readln end . 03.11.2013 Цыбикова Т.Р. 29

Слайд 30

03.11.2013 Цыбикова Т.Р. 30

Слайд 31

Если количество чисел неизвестно , то можно задать число-ограничитель, например 0. В таком случае используется цикл while или repeat . s:=0; readln (a); while a<>0 do begin s:=s+a; readln (a) end; s:=0; repeat readln (a); s:=s+a; until a=0; 03.11.2013 Цыбикова Т.Р. 31

Слайд 32

Оператор цикла обратный пересчет Оператор цикла обратный пересчет работает аналогично оператору цикла прямого пересчета, только переменная цикла не возрастает с каждым шагом на единицу, а на единицу убывает. Оператор имеет вид: 03.11.2013 Цыбикова Т.Р. 32 f or i :=n2 downto n1 do оператор ; Для этого оператора должно также выполняться n2 n1.

Слайд 33

Правила При использовании в программе операторов цикла необходимо соблюдать следующие правила: внутри цикла может находиться другой цикл, но необходимо, чтобы циклы имели разные переменные и внутренний цикл полностью находился в теле внешнего цикла; нельзя передавать управление в тело цикла, минуя заголовок (это значит, что метка и оператор goto с этой меткой должны находиться в теле цикла); если требуется обойти группу операторов в теле цикла и продолжить цикл, т.е.выполнить его следующий шаг, то надо передать управление на замыкающий цикл end ; Можно досрочно выйти из цикла, или используя оператор goto , или изменив параметр условия в операторах while и repeat так, чтобы цикл больше не выполнялся. 03.11.2013 Цыбикова Т.Р. 33

Слайд 34

Вопросы и задания Пусть тело цикла в программе E7 такое же, как в программе E6 . Как будет работать программа E7 , если ввести два одинаковых числа a и b ? Сколько раз выполнится оператор цикла repeat , если условие после слова until истинно при входе в цикл? Объясните, какая разница между условиями, записанными после слов while и repeat для одной и той же задачи. 03.11.2013 Цыбикова Т.Р. 34

Слайд 35

Вопросы и задания Напишите программы вычисления сумм: Сорока слагаемых вида n- i , где i = 1, 2, 3,…, 40, а n – данное число; n слагаемых вида x + i , где x – данное число, а i меняется от 1 до n ; Ста слагаемых, имеющих вид дроби ( i+1) /( i+2) ; N слагаемых вида ( i+1) 2 , где i = 1, 2, …, n ; N слагаемых sin x + sin x 2 + sin x 3 +…+ sin x n ; N слагаемых sin x + sin 2 x + sin 3 x +…+ sin n x ; Кубов n первых натуральных чисел. 03.11.2013 Цыбикова Т.Р. 35

Слайд 36

Вопросы и задания Для различных вводимых с клавиатуры целых чисел найдите сумму положительных нечетных. Напишите программы вычисления произведений: a*(a+1)*(a+2)*…*(a+n-1); a*(a-n)*(a-2n)*…*(a-n 2 ) ; (x-1)(x-2)(x-3)…(x-n); 2*4*6*…*(2n); (1+sin 0.1)(1+sin 0.2)…(1+sin 10); Всех чисел от 1 до 100 кратных 3, но не кратных 6; n сомножителей вида ( x+i ) 2 . 03.11.2013 Цыбикова Т.Р. 36

Слайд 37

Вопросы и задания Дано положительное число A . Найдите среди чисел 1, 1+1/2, 1+1/2+1/3,… первое, большее A. Вводя числа с клавиатуры без ограничения их количество (конец ввода – число нуль), найдите сумму положительных и произведение отрицательных. 03.11.2013 Цыбикова Т.Р. 37

Слайд 38

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.99-107 03.11.2013 Цыбикова Т.Р. 38


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

массивы Тема 6. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Массивы В рассмотренных ранее примерах программ производилась обработка одиночных данных – значений простых переменных. При решении практических задач данные объединяются в различные структуры, наиболее простыми из которых являются массивы. Массив – именованный набор с фиксированным количеством однотипных данных. В массивы объединены результаты экспериментов, списки фамилий сотрудников, различные сложные структуры данных. Так, список из классного журнала 10 «А» является массивом. В массиве могут быть одинаковые данные, поэтому элементы массивы различаются по своим порядковым номерам. 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Массивы Если каждый элемент имеет один порядковый номер, то такой массив называется одномерным , если два – то это таблица из строк и столбцов. Для таблиц первый номер элемента показывает строку , а второй – столбец , на пересечении которых находится элемент. Все строки таблицы имеют одинаковую длину. Одномерный массив может быть числовой последовательностью с известным количеством членов. Так же, как и в последовательности, в массиве можно указать элемент с конкретным номером, например a 5 , или записать общий вид элемента, используя в качестве индекса переменную и указывая диапазон ее изменения: a i , i = 1,2,…, n . 03.11.2013 Цыбикова Т.Р. 4

Слайд 5

Задачи на обработку массивов могут иметь различную формулировку. Например , начинаться со слов: «Дано n чисел… » , а далее говорится, что требуется сделать с этими числами. Чтобы решить такую задачу на компьютере с использованием языка программирования Паскаль, необходимо выполнить следующее: определить , какие числа даны : целые или вещественные (если об этом конкретно не сказано, то лучше считать их вещественными); назвать весь массив одним именем , которое будет использоваться для каждого элемента, только к нему добавится номер этого элемента ( индекс ); описать массив в разделе переменные var , тем самым отведя место в памяти для массива; Ввести данные в память . 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

В описании массива В описании массива имеется специальное слово array (массив), после которого в квадратных скобках через две точки указывается диапазон изменения номеров элементов, затем слово of (из) и пишется тип данных массива. Встретив описание массива, транслятор отводит для него столько последовательных ячеек, сколько указано в квадратных скобках, и такого формата, каков тип данных массива. Эту память в программе можно использовать целиком или частично, вычисляя значения элементов массива или вводя их с клавиатуры (либо с диска). Чаще всего номера элементов меняются от 1 до заданного числа n . Поместив значение n в разделе констант ( const ), в описании можно указать в качестве переменной n последнее значение (верхнюю границу) номера элемента массива. 03.11.2013 Цыбикова Т.Р. 6 const n=10; var a: array [1..n] of real;

Слайд 7

Пример описания: Это описание означает, что для массива a будет отведено десять ячеек оперативной памяти по шесть байтов каждая. Имена ячеек a 1 , a 2 ,…, a 1 0 . В паскале эти имена будут записаны следующим образом: a [1] ,…, a [10]. В описании после имени массива a ставится двоеточие, за которым указывается тип данного – массив. Если в программе несколько массивов одного размера и типа, то, как и для простых переменных, их имена можно перечислить через запятую, а потом, после двоеточия, указать описание массива. 03.11.2013 Цыбикова Т.Р. 7 const n=10; var a: array [1..n] of real;

Слайд 8

Для ввода данных в память необходимо организовать цикл. Поскольку число повторений ввода данных известно, удобно использовать цикл пересчет . Ввод описанного массива a может иметь вид: for i :=1 to n do read (a[ i ]); Вводимые значения набираются на клавиатуре через пробел и нажимается < Enter > . Можно ввод прокомментировать и вводить каждое данное на отдельной строке экрана ( см. программу E12 modif ) : for i :=1 to n do begin write(‘a[‘,I, ‘]=’); readln (a[ i ]); end; 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Обработка массивов При обработке массивов решение многих задач основывается на следующих, более простых , задачах: вычисление суммы (произведения) элементов массива; нахождение наибольшего (наименьшего) элемента; упорядочение элементов по возрастанию или убыванию. Рассмотрим эти базовые задачи. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Базовые задачи Задача 1. Вычисление суммы элементов массива ничем не отличается, в принципе, от суммирования значений простых переменных (программа E11 ). Решение задачи состоит из трех основных этапов: ввод данных; вычисление суммы; печать результатов. Вычисление суммы элементов массива. program E1 2 ; const n=7; var a: array [1..n] of real; s:real; i : integer; begin write(' вводите элементы массива - ‘ , n , ‘ вещественных чисел через пробел ’); for i :=1 to n do read (a[ i ]); S:=0; for i :=1 to n do s:= s+a [ i ]; writeln; write (‘ сумма элементов массива S= ‘ , S ); end . 03.11.2013 Цыбикова Т.Р. 10

Слайд 11

Базовые задачи Выполнение программы вычисления суммы элементов массива предоставлено в таблице: 03.11.2013 Цыбикова Т.Р. 11 Исходные данные: 3, -2, 9, 7, -1, 6, 1 i 1 2 3 4 5 6 7 a[ i ] 3 -2 9 7 -1 6 1 S 0 1 10 17 16 22 23 Задача 1. Вычисление суммы элементов массива.

Слайд 12

03.11.2013 Цыбикова Т.Р. 12

Слайд 13

03.11.2013 Цыбикова Т.Р. 13

Слайд 14

Базовые задачи Задача 2. В предыдущем примере производились вычисления, переменная S меняла свои значения в процессе решения задачи. Однако большинство задач, решаемых с помощью компьютера, являются невычислительными . К ним относится задача поиска наибольшего элемента в массиве. Трудность при разработке алгоритма решения заключается в том, что надо описать в виде команд компьютеру привычные для человека действия: выделение большего из последовательности чисел. 2 . Нахождение наибольшего элемента. 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Базовые задачи Чтобы лучше представить себе, как последовательно просматривать и сравнивать между собой числа, записанные в памяти, вообразим, что каждое число написано на отдельной карточке и карточки сложены стопкой. В таком случае мы первое число запомним сразу как наибольшее и перевернем карточку. Теперь в нашем распоряжении два числа: одно видим, другое – помним. Сравнивая их между собой, запомним большее, т.е. если первое было больше, то запоминать новое не придется и надо смотреть следующую карточку. Если второе больше первого, то первое в дальнейшем помнить нет смысла и мы запомним второе. Таким образом, на каждом этапе сравнения мы будем помнить большее из просмотренных чисел и в конце решим задачу. Записав приведенные рассуждения в виде операторов, получим программу нахождения наибольшего значения. Промежуточные значения и ответ содержит переменная max . 03.11.2013 Цыбикова Т.Р. 15 Задача 2. 2 . Нахождение наибольшего элемента.

Слайд 16

03.11.2013 Цыбикова Т.Р. 16

Слайд 17

Базовые задачи Задача 3. Упорядочения массивов по какому-либо признаку называется также сортировками . Существуют различные методы сортировок, различающиеся, в основном, по скорости получения результата . Рассмотрим один из них – «метод пузырька». Пусть имеется последовательность чисел a1, a2,…, an , которую необходимо упорядочить по возрастанию. Зафиксируем первый элемент и будем последовательно сравнивать его со стоящими справа. Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 17

Слайд 18

Базовые задачи Задача 3. Если какой-то из элементов справа окажется меньше первого, то мы поменяем местами этот элемент с первым и продолжим сравнение уже нового элемента, стоящего на первом месте, с оставшимися справа числами. Если снова выявится элемент, меньшей зафиксированного, то повторим перестановку. В результате первого просмотра последовательности на первом месте окажется наименьший из всех элементов, т.е. он, как более «легкий», как бы всплывает наверх (отсюда и название метода – «метод пузырька»). Теперь зафиксируем второй элемент и повторим просмотр, выполняя при необходимости перестановки элементов, и т.д. Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 18

Слайд 19

Базовые задачи Задача 3. Уяснив идею решения, остановимся на двух вопросах: каким образом фиксировать элементы и как осуществить перестановку двух элементов? Чтобы при переборе элементов, стоящих справа от проверяемого, не менялся индекс последнего, индексы фиксируемого и стоящих правее него элементов должны быть различными: i и j . Индекс i изменяется от 1 до n –1 , индекс j всегда больше i и пробегает все значения от i +1 до n . Для каждого значения i индекс j должен последовательно принять все допустимые значения, следовательно , конструкция программы, отражающая полный перебор всех элементов и их упорядочение по возрастанию, представляет двойной цикл . При перестановке двух элементов местами используется третья переменная. Перестановка местами (обмен значениями в памяти) двух переменных a и b выглядит следующим образом: 1) c : = a ; 2) a: = b ; 3) b : = c . Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 19

Слайд 20

Программа сортировки методом пузырька имеет вид: 03.11.2013 Цыбикова Т.Р. 20

Слайд 21

Базовые задачи Задача 4. Одна из важных невычислительных задач – поиск данного значения среди элементов массива. Такой поиск называется также поиском по ключу. На практике поиск осуществляется в упорядоченном массиве, причем имеются различные алгоритмы поиска. В данном примере осуществим поиск путем сплошного перебора. Если элемент найден, то напечатаем его номер, если нет, то выдадим соответствующее сообщение. Существенным является то, какой из одинаковых элементов массива, равных данному нас интересует: первый встретившийся при поиске или последний. Поиск элемента в массиве. 03.11.2013 Цыбикова Т.Р. 21

Слайд 22

Базовые задачи Задача 4. В этом примере будем искать первый . Поиск осуществляется в цикле , и как только элемент найден, надо выйти из цикла. Для досрочного выхода из цикла for используем оператор goto . Если досрочный выход не произойдет, то значит, элемент, равный данному, в массиве отсутствует. В таком случае выдача сообщения об отсутствии элемента происходит сразу после цикла поиска. Следовательно, чтобы обойти печать номера элемента, надо использовать еще один оператор goto и еще одну метку в программе. Поиск элемента в массиве. 03.11.2013 Цыбикова Т.Р. 22

Слайд 23

Программа поиска данного элемента в массиве: 03.11.2013 Цыбикова Т.Р. 23

Слайд 24

Если искать не первый по порядку равный ключу элемент, а последний, то надо использовать цикл обратного пересчета: for i : = n downto 1 do . 03.11.2013 Цыбикова Т.Р. 24

Слайд 25

Вопросы и задания Чем отличается массив от файла? Для чего необходимо описание массива? Что надо сделать, чтобы начать решать на компьютере задачу, формулировка которой начинается со слов: «Дано n чисел…»? Может ли массив содержать разнородные данные? Можно ли в примере программы E12 ограничиться одним оператором цикла? Что надо изменить в программе E13 , чтобы осуществлялся поиск не наибольшего, а наименьшего элемента массива? Какие изменения в программу E13 надо внести, чтобы одновременно со значением наибольшего числа определялся его порядковый номер? Объясните работу двойного цикла в программе E14 . Измените программу E15 так, чтобы вместо цикла пересчет при поиске элемента использовался цикл пока . Примените переменную-флажок, которая до цикла имела бы нулевое значение, а в случае нахождения необходимого элемента изменила бы значение на 1. Как при этом обойтись без операторов goto ? 03.11.2013 Цыбикова Т.Р. 25

Слайд 26

Вопросы и задания В заданной последовательности целых чисел определите количество и сумму элементов, кратных 10. Дано n чисел. Найдите сумму чисел, больших заданного числа a . В заданном массиве замените нулем наибольший элемент. Найдите полупроизведение всех положительных элементов массива. Найдите сумму квадратов неотрицательных элементов и количество положительных чисел в заданном целочисленном одномерном массиве. В заданной вещественной последовательности поменяйте местами первый и наименьший элементы. Дано n чисел. Замените все отрицательные числа их модулями. Вычислите среднее арифметическое наибольшего и наименьшего из n чисел. 03.11.2013 Цыбикова Т.Р. 26

Слайд 27

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.108-114 03.11.2013 Цыбикова Т.Р. 27


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Алгоритмы обработки таблиц Тема 7. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Двумерный массив (или прямоугольная таблица) B из n строк и m столбцов Двумерный массив (или прямоугольная таблица) B из n строк и m столбцов в общем виде выглядит следующим образом: b 11 b 12 … b 1m b 21 b 22 … b 2m … … … … b n1 b n2 … b nm На Паскале имена элементов массива записываются так же, с двумя номерами (индексами): b (1,1), b (1,2),…, b (1, m ), b (2.1), b (2,2),…, b (2, m ),…, b ( n , m ). В памяти компьютера элементы двумерного массива расположены один за другим: после элементов первой строки следуют элементы второй строки и т.д. Если число строк таблицы равно числу столбцов, то такая таблица называется квадратной . Главная диагональ таблицы проходит из левого верхнего угла в правый нижний ( выделена красным цветом). 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рассмотрим задачи обработки таблиц и алгоритмы их решения. Задача 1. Для решения задачи надо выполнить следующие шаги: ввести таблицу в память; найти сумму элементов главной диагонали; напечатать результат. Описание таблицы, как и описание одномерного массива, используется для резервирования памяти. В описании указываются диапазоны для двух номеров : строк и столбцов. const n=3; var b: array [1..n, 1..n] of real; I,j: integer; Вычисление суммы элементов главной диагонали квадратной таблицы. При обработке массивов в разделе переменных программы появляются имена индексов элементов: для одномерного массива – одной, для двумерного –двух целочисленных переменных. При вычислении суммы элементов диагонали следует обратить внимание на имена суммируемых элементов: оба индекса имеют одинаковые значения, т.е. в общем виде имя элемента диагонали – b [ i , i ]. Это означает, что можно рассматривать диагональ, как одномерный массив, и использовать один цикл для вычислений. 03.11.2013 Цыбикова Т.Р. 4

Слайд 5

Программа имеет вид: 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Рассмотрим задачи обработки таблиц и алгоритмы их решения. Задача 2. Каждую строку таблицы можно рассматривать, как одномерный массив , и использовать идею нахождения наибольшего значения в программе E 13. Найденные значения будем помещать в одномерный массив. В программе E 17для каждой строки таблицы переменная a [ i ] играет такую же роль, как переменная max в программе E 13. Для каждой переменной строки (ее задает переменная i ) элемент a [ i ] получает значение первого элемента строки. Нахождение наибольших элементов каждой строки таблицы. Затем внутренний цикл переменной j позволяет просмотреть все элементы данной строки и, если среди них встретится элемент, значение которого больше, чем запомненное в a [ i ] , то оно присваивается a [ i ]. Для распечатки результатов работы программы – массива a – используется цикл . Имеющийся в программе комментарий, заключенный в фигурные скобки, позволяет при прочтении программы выделить основную ее часть. 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Пример выполнения программы E 17 – нахождения наибольших элементов строк: Задача 2. Нахождение наибольших элементов каждой строки таблицы. 03.11.2013 Цыбикова Т.Р. 7 Массив результатов Данная таблица a[1] 6 5 6 1 a[2] 15 4 12 15 a[3] 2 2 -3 0

Слайд 8

03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Рассмотрим задачи обработки таблиц и алгоритмы их решения. Задача 3. При обработке таблиц можно осуществлять операции как над строками, так и над столбцами. Для нахождения сумм элементов столбцов можно использовать алгоритм примера E 12. Нахождение сумм элементов столбцов таблицы. Чтобы лучше понимать работку программы, введем переменную S для вычисления суммы, а затем для каждого столбца запишем полученный результат в массив a , т.е. присвоим его переменной a [ j ] , где j – текущий номер столбцов таблицы . 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Пример выполнения программы E 18 – суммирование по столбцам: 03.11.2013 Цыбикова Т.Р. 10 Данная таблица 5 6 1 4 12 15 2 -3 0 Массив результатов a [1] a [2] a [3] 11 15 16

Слайд 11

03.11.2013 Цыбикова Т.Р. 11

Слайд 12

Рассмотрим задачи обработки таблиц и алгоритмы их решения. Задача 4. В прямоугольной таблице B из n строк и m столбцов требуется поменять местами две строки. При решении этой задачи можно воспользоваться алгоритмом обмена двух переменных из программы сортировки (пример E 14). Перестановка строк таблицы. Для этого достаточно организовать цикл переменной столбца и, используя промежуточную переменную, менять местами каждую пару элементов, стоящих в одном столбце. При заданных номерах строк K и L решение выглядит так: 03.11.2013 Цыбикова Т.Р. 12

Слайд 13

03.11.2013 Цыбикова Т.Р. 13

Слайд 14

Задания В квадратной таблице, не содержащей отрицательных элементов, найдите корень квадратный из произведения диагональных элементов. Найдите наибольший элемент квадратной таблицы. Найдите наименьший элемент квадратной таблицы и замените его нулем. В прямоугольной таблице замените все элементы их квадратами. В целочисленной прямоугольной таблице увеличьте на 0,5 все отрицательные элементы. В квадратной таблице найдите наибольший элемент диагонали. Поменяйте местами первую и последнюю строки прямоугольной таблицы. Найдите произведения элементов строк прямоугольной таблицы. 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.114-119 03.11.2013 Цыбикова Т.Р. 15


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Оператор варианта Тема 8. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Удобно использовать оператор варианта Условный оператор позволяет осуществить ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия, а другое – невыполнению этого же условия. Если для переменной необходимо осуществить ряд действий, зависящих от других условий , то надо записывать либо вложенные условные операторы, либо несколько таких операторов подряд. Для такой ситуации удобно использовать оператор варианта. Он соответствует структуре, изображенной на рисунке 35. 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рис.35. Структура оператора варианта 03.11.2013 Цыбикова Т.Р. 4 метка 1: оператор 1 метка 2: оператор 2 else оператор n + 1 метка n : оператор n CASE индекс варианта OF… END; . . .

Слайд 5

Данная структура называется также переключателем Данная структура называется также переключателем и выполняется следующим образом. Вход в структуру содержит вычисление или ранее полученное значение переменной (индекса варианта). Это значение может совпасть с меткой, стоящей перед оператором на одной из ветвей переключателя. В таком случае выполняется оператор, помеченный этой меткой, и происходит выход из структуры. 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Оператор варианта бывает простым или составным Оператор бывает простым или составным, ограниченным операторными скобками begin … end ; . Если значение индекса варианта не совпало ни с одной из меток, то выполняется оператор с номером n +1 из строки else . Если оператор варианта содержит строку else , то это – полная форма оператора, если такой строки нет, то используется сокращенная форма оператора варианта. 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Метки оператора варианта Метки оператора варианта могут быть константами любого типа. Их тип должен совпадать с переменной индекса варианта. Возможно, чтобы индекс варианта был как именем переменной, так и выражением соответствующего типа. 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

На языке Паскаль оператор варианта имеет вид: case индекс варианта of метка1: оператор 1; метка 2: оператор 2; … метка n : оператор n ; else оператор n +1 end ; 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Приведем пример программы Приведем пример программы, содержащей оператор варианта. Одной из распространенных задач раздела физики «Молекулярно-кинетическая теория» является задача, связанная с расчетом числа молекул в единице объема в теле заданной массы и в теле известного объема. Для такой задачи можно построить программу-решатель. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Задача 1 Задача 1. Дано : молярная масса вещества M , плотность данного вещества P , масса R или объем данного тела V . Требуется найти число молекул K : в единице массы вещества; в теле с заданной массой; в единице объема вещества; в теле с заданным объемом. Для решения задачи воспользуемся формулой: K = ( N A / M ) R , где N A = 6,022*10 23 г/моль – число Авогадро. На основании этой формулы получаем расчетные формулы для программы: K = N A /M; K = N A R /M; K = N A PV/M; K = N A P/M . 03.11.2013 Цыбикова Т.Р. 10

Слайд 11

Программа имеет вид: program E20; const NA=6.022E20; var N: integer; M, R, P, V, K: real; BEGIN writeln (’зная постоянную Авогадро, плотность P данного вещества’); writeln (’и его молярную массу M , можно найти число молекул в’); writeln (’1. в единице массы вещества’); writeln (’2. в теле массой R ’); writeln (’3. в единице объема’); writeln (’4. в теле объемом V ’); write (’введите номер решаемой задачи’); readln ( N ); write (’введите исходные данные: M = ’); readln (M); case N of 1: K: = NA/M; 2: begin write (’R = ’); readln (R); K: = NA*R/M; end ; 3: begin write (’плотность вещества P = ’); readln (P); write (’V = ’); readln (V); K: = NA*P*V/M; end ; 4: begin write (’плотность вещества P = ’); readln (P); K: = NA*P/V; end ; end ; write (’ число молекул K = ’, K’); END. 03.11.2013 Цыбикова Т.Р. 11

Слайд 12

03.11.2013 Цыбикова Т.Р. 12

Слайд 13

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.120-122 03.11.2013 Цыбикова Т.Р. 13


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

подпрограммы Тема 9. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

СОДЕРЖАНИЕ Подпрограммы (слайды 4 , 5 , 6 , 7 ) Структура подпрограммы (слайд 8) Два этапа при работе с подпрограмой (слайд 9) Что такое процедуры (слайд 10) Процедуры без параметров (слайды 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 ) Процедуры c параметрами (слайды 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 ) Подпрограммы-функции (слайды 30 , 31 , 32 , 33 , 34 , 35 , 36 ) Вопросы и задания (слайд 37) Источники (слайд 38) 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Подпрограммы При разработке программы иногда появляются повторяемые группы действий или возникает необходимость расчленить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм. Для решения сложной задачи рекомендуется сначала алгоритм, а затем и программу разрабатывать « сверху вниз », от более общего плана к детальному. В таком виде г лавная программа соответствует укрупненному плану решения задачи , а ее команды — вызову соответствующей подзадачи, реализованной в виде подпрограммы. 03.11.2013 Цыбикова Т.Р. 4 В содержание

Слайд 5

Подпрограммы Идя по такому пути создания программы, можно отдельные мелкие функции реализовывать сначала в виде небольших подпрограмм, проверять их на контрольных примерах и, только убедившись в правильности работы, включать в состав основной программы. Это удобнее проделывать, имея в распоряжении язык, позволяющий полностью выделить подпрограмму из текста основной программы в виде отдельного модуля. Использование подпрограмм дает возможность разрабатывать программу по частям, поручать реализацию больших проектов группам разработчиков. В состав групп входят: специалисты данной науки или производства, из области которой решается задача, разрабатывающие алгоритм и структурирующие данные, а также программисты, объединяющие алгоритм и данные в программе для компьютера. 03.11.2013 Цыбикова Т.Р. 5 В содержание

Слайд 6

В Паскале подпрограмма является частью основной программы... В Паскале подпрограмма является частью основной программы, ее описание располагается между разделом var главной программы и ее программным блоком (первым begin ). Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим. Описание подпрограммы можно сравнить с записываемой в математике формулой «в общем виде», в которую при расчетах подставляются конкретные значения. Поскольку далеко не каждую задачу удастся свести к некоторой формуле, но всегда можно записать алгоритм ее решения, подпрограмма — это та же инструкция по решению некоторой задачи. Как и формула, подпрограмма используется для различных данных, передаваемых из главной программы или других подпрограмм. 03.11.2013 Цыбикова Т.Р. 6 В содержание

Слайд 7

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

Слайд 8

Структура подпрограммы Подпрограммы имеют структуру, аналогичную главной программе. Они содержат заголовок со специальным словом — признаком подпрограммы, имя и, при необходимости, списки передаваемых на обработку и получаемых из подпрограммы данных . Затем могут располагаться все имеющиеся в главной программе разделы описаний: меток, констант, типов и переменных. В этих разделах описываются данные, используемые только внутри подпрограммы и являющиеся промежуточными при ее выполнении. Такие данные называются локальными . В подпрограмме могут участвовать переменные, описанные в главной программе. Эти данные называются глобальными , их значения и подпрограмма, и главная программа берут из общей памяти. 03.11.2013 Цыбикова Т.Р. 8 В содержание

Слайд 9

Два этапа при работе с подпрограмой При работе с подпрограммой всегда выделяется два этапа : описание подпрограммы , т. е. запись алгоритма решения задачи в специальной форме, и вызов подпрограммы — передача ей данных на обработку из вызываемой программы, которая, в свою очередь, может быть подпрограммой, и получение обратно результатов. 03.11.2013 Цыбикова Т.Р. 9 В содержание

Слайд 10

Рассмотрим способы организации подпрограмм в Паскале. Процедура — подпрограмма, имеющая любое количество входных и выходных данных . Процедура может быть описана без параметров и с параметрами. Параметры — это данные из заголовка процедуры, как передаваемые ей на обработку, так и получаемые в виде результатов. Таким образом , с помощью параметров происходит обмен информацией между процедурой и вызывающей ее программой. 03.11.2013 Цыбикова Т.Р. 10 В содержание

Слайд 11

подпрограммы : Процедуры без параметров Тема 9. 03.11.2013 Цыбикова Т.Р. 11 В содержание

Слайд 12

Процедуры без параметров Описание процедуры имеет вид: procedure имя; {описание локальных переменных} begin {операторы} end ; 03.11.2013 Цыбикова Т.Р. 12 В содержание

Слайд 13

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

Слайд 14

Рассмотрим пример Рассмотрим пример вычисления наименьшего общего кратного двух натуральных чисел НОК(X,Y) , которое можно вычислить, используя наибольший общий делитель этих чисел, по формуле: HOK(X,Y) = X*У/НОД(Х,У). Вычисление НОК (X, Y), При составлении программы оформим как процедуру без параметров программу E 7 вычисление НОД по алгоритму Евклида. Результат работы процедуры будет заноситься в ячейку с именем М, переменная М описана как глобальный параметр и используется и главной программой, и процедурой. 03.11.2013 Цыбикова Т.Р. 14 Задача 1. В содержание

Слайд 15

Рассмотрим пример В программе будем вычислять НОК нескольких чисел, занеся их в массив C . Этот массив формируется в разделе констант главной программы. Если данные определяются в разделе констант , то они не требуют дополнительного описания в разделе переменных ( var ). Переменная X сначала содержит значение первого числа, а затем ей присваивается результат — НОК двух первых чисел. Вычисление НОК (X, Y), Переменная Y имеет своим значением второе число из пары, для которой вычисляется наименьшее общее кратное. Таким образом, при каждом шаге цикла вычисляется НОК двух чисел, первое из которых X содержит результат предыдущего шага. Вызов процедуры NOD вычисления наибольшего общего делителя осуществляется только по имени: NOD ; 03.11.2013 Цыбикова Т.Р. 15 Задача 1. В содержание

Слайд 16

Рассмотрим пример выполнения программы вычисления НОК нескольких чисел. 03.11.2013 Цыбикова Т.Р. 16 X := НОК (X, Y) 36 108 216 216 1080 Y :=C[ i ] 54 72 18 15 M := НОД (X, Y) 18 36 18 3 В содержание

Слайд 17

Текст программы имеет вид: program E 21; const c: array [1..5] of integer = (36, 54, 72, 18, 15); var x, y, I, m: integer; procedure NOD ; {заголовок процедуры} var a , b : integer ; {описание локальных переменных} begin a : = x ; b : = y ; {сохранение исходных данных} while a <> b do if a > b then a: = a-b else b : = b - a; m : = a {результат работы процедуры присваивается глобальной переменной} end ; {конец процедуры} begin {начало главной программы} x:= c [1]; for i : = 2 to 5 do begin y : =c [ i ] ; NOD ; {вызов процедуры без параметров} x : = x * y div m { div – деление нацело для целочисленных данных} end; write (‘ НОК = ’, x) end . {конец главной программы} 03.11.2013 Цыбикова Т.Р. 17 В содержание

Слайд 18

03.11.2013 Цыбикова Т.Р. 18 В содержание

Слайд 19

подпрограммы : Процедуры c параметрами Тема 9. 03.11.2013 Цыбикова Т.Р. 19 В содержание

Слайд 20

Формальные и фактические параметры Для удобства передачи данных в процедуру и получения из нее результата используются формальные и фактические параметры. Формальные — условные обозначения в описании процедуры — описываются в ее заголовке. Фактические — с которыми требуется выполнить процедуру — перечисляются при вызове процедуры. Формальные и фактические параметры должны соответствовать по количеству, типу и порядку следования. 03.11.2013 Цыбикова Т.Р. 20 В содержание

Слайд 21

Формальные и фактические параметры Формальные параметры описываются только в заголовке процедуры и больше нигде. Их описание похоже на описание данных в разделе переменных и может также содержать слово var . Слово var в заголовке процедуры ставится перед теми параметрами, имена которых соответствуют выходным данным. Фактические параметры, соответствующие формальным, перед которыми стоит слово var , могут быть только именами переменных. 03.11.2013 Цыбикова Т.Р. 21 В содержание

Слайд 22

Формальные и фактические параметры Перед именами формальных переменных, являющимися входными данными процедуры, слово var указывать не обязательно. Если перед формальным параметром в заголовке процедуры нет слова var , то ему может соответствовать формальный параметр, имеющий вид выражения соответствующего типа. Если для входных данных процедуры при описании формальных параметров указано слово var , то им также соответствуют фактические параметры — имена переменных. 03.11.2013 Цыбикова Т.Р. 22 В содержание

Слайд 23

Процедура NOD с параметрами Например, процедура NOD с параметрами может иметь заголовок: procedure NOD (a, b: integer; var k: integer); Вызов этой процедуры: NOD (x, у, m); или: NOD (36, 54, m); Переменные в заголовке процедуры — формальные параметры , заменяемые при выполнении процедуры на конкретные значения переменных х и у или числа 36 и 54 . В заголовке процедуры NOD описаны формальные параметры: a и b — входные данные, для которых находится наибольший общий делитель; k — результат работы процедуры. При вызове процедуры переменная a примет значение х , а переменная Ь — значение y . Результат работы процедуры при вызове попадет в ячейку с именем m , которой соответствует формальный параметр k . 03.11.2013 Цыбикова Т.Р. 23 В содержание

Слайд 24

Программа при использовании процедуры с параметрами примет вид: program E22; const c: array [1..5] of integer = (36, 54, 72, 18, 15); var x, y, i , m: integer; procedure NOD (a, b: integer; var k: integer); { заголовок процедуры } begin while a<>b do if a>b then a:=a-b else b:= b-a; k:=a { значение переменной k – результат работы процедуры } end ; { конец процедуры } begin { начало главной программы } x:= c[1]; for i := 2 to 5 do begin y:= c [ i ]; NOD (x, y, m); { вызов процедуры с фактическими параметрами } x:= x*y div m end ; write (‘НОК =’, x) end . { конец главной программы } 03.11.2013 Цыбикова Т.Р. 24 В содержание

Слайд 25

03.11.2013 Цыбикова Т.Р. 25 В содержание

Слайд 26

Рассмотрим еще один пример использования процедуры с параметрами. Найдем с помощью процедуры среднее арифметическое, наибольший и наименьший элементы массива . 03.11.2013 Цыбикова Т.Р. 26 Program E23; const n = 10; type R = array [1..n] of real; var Y: R; A, B, C: real; I: integer; procedure Stat (X:R; var S, min, max: real); begin S:=0; min:=x[1]; max:=x[1]; for i := to n do begin S:= S+x [ i ]; if x [ i ]max then max:=x[ i ] end; S:=S/n end; begin { главная программа } for i :=1 to n do read (Y[ i ]); Stat (Y, A, B, C); { вызов процедуры } writeln ; write (‘среднее = ’, A , ‘наименьшее = ’, B , ‘наибольшее = ’, C ); end . В содержание

Слайд 27

03.11.2013 Цыбикова Т.Р. 27 В содержание

Слайд 28

Раздел типов данных type В программе E 23 появился новый раздел описаний — раздел типов данных type . В этом разделе можно описать новый тип данных через уже известные типы , которые могут быть так же ранее описаны в данном разделе. Тип данных R — это массивы из n вещественных чисел, R — имя типа. В дальнейшем этот тип позволяет сократить описания, он используется в главной программе при описании исходного массива Y и в заголовке процедуры при описании формального параметра — массива X . 03.11.2013 Цыбикова Т.Р. 28 В содержание

Слайд 29

Главная программа Главная программа состоит из трех основных этапов: ввода данных — массива Y ; вызова процедуры Stat с фактическими параметрами — массивом Y и получаемыми результатами, попадающими соответственно в ячейки A (среднее значение), B (наименьшее) и C (наибольшее); печати результатов работы программы. 03.11.2013 Цыбикова Т.Р. 29 В содержание

Слайд 30

подпрограммы : подпрограммы-функции Тема 9. 03.11.2013 Цыбикова Т.Р. 30 В содержание

Слайд 31

Подпрограмма как функция Подпрограмма, имеющая единственный результат, может быть оформлена, как функция. function имя_функции (описание входных данных): тип_результата ; {описания локальных переменных} begin {операторы} имя_функции:= результат; end ; 03.11.2013 Цыбикова Т.Р. 31 В содержание

Слайд 32

После описания формальных параметров После описания формальных параметров , которые являются аргументами функции, в заголовке указывается тип результата, т. е. тип самой функции . Это описание относится к имени функции, которому необходимо присвоить значение результата работы подпрограммы. Как и процедура, функция может содержать все четыре раздела описаний локальных переменных. Имя функции нельзя использовать для промежуточных вычислений. 03.11.2013 Цыбикова Т.Р. 32 В содержание

Слайд 33

Функция вызывается с помощью указателя. Функция вызывается с помощью указателя. Указатель — это имя функции, после которого в круглых скобках перечислены фактические параметры — аргументы функции. Указатель имеет вид: имя_функции (список фактических параметров) Указатель может появиться в выражении соответствующею типа, в условиях операторов If , while и repeat после слова until , а также в операторе печати write . Примерами являются встроенные арифметические функции, такие, как sin( x ): write (sin(x)); 03.11.2013 Цыбикова Т.Р. 33 В содержание

Слайд 34

Рассмотрим третий вариант программы вычисления наименьшего общего кратного. Поскольку наибольший общий делитель двух натуральных чисел — единственное число, то вычисляющую его подпрограмму можно оформить, как функцию. 03.11.2013 Цыбикова Т.Р. 34 В содержание

Слайд 35

Программа имеет вид : program E24; const c: array [1..5] of integer = (36, 54, 72, 18, 15); var x, y, i , m: integer; function NOD (a, b: integer) : integer; begin while a<>b do if a>b then a:=a-b else b:= b-a; NOD:=a end ; begin x:=c[1]; for i :=2 to 5 do begin y:=c[ i ]; x:=x*y div NOD(x,y) end; write ('ÍÎÊ=', x) end. 03.11.2013 Цыбикова Т.Р. 35 В содержание

Слайд 36

03.11.2013 Цыбикова Т.Р. 36 В содержание

Слайд 37

Вопросы и задания Что такое подпрограмма и для чего она используется? Объясните назначение локальных и глобальных переменных. Как происходит обмен данными с процедурой без параметров? Что такое формальные и фактические параметры? К чему относится описание типа в конце заголовка подпрограммы-функции? Чем отличается вызов функции от вызова процедуры? Как задать значения элементов массива без использования оператора ввода? Примеры программ предыдущих параграфов, кроме рассмотренных в данном, оформите с использованием процедур. 03.11.2013 Цыбикова Т.Р. 37 В содержание

Слайд 38

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.122-129 03.11.2013 Цыбикова Т.Р. 38 В содержание


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

рекурсия Тема 10. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

СОДЕРЖАНИЕ Рекурсивные объекты Рекурсивное определение Рекурсия Рекурсивный алгоритм Пример 1. Определение факториала ( слайды 8-11) Пример 2. Вычисление степени с натуральным показателем ( слайд 12 ) Пример 3. Вычисление чисел Фибоначчи ( слайды 13 -1 5 ) Пример 4. Решение задачи о Ханойских башнях ( слайды 16-20 ) Вопросы и задания Источники 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рекурсивные объекты Если поставить два зеркала напротив друг друга и между ними поместить предмет, то получится бесконечное множество изображений, причем каждое из них содержит свое собственное. Любое из этих изображений можно рассматривать как рекурсивный объект, который частично состоит или определяется с помощью самого себя. Рекурсивные объекты обладают несколькими свойствами: простотой построения; несхожестью конечного результата с начальными данными; внутренним самоподобием. 03.11.2013 Цыбикова Т.Р. 4 В содержание

Слайд 5

Рекурсивное определение В математике встречаются рекурсивные определения, позволяющие описать объекты через самих себя. К таким определениям относится, например , определение натурального числа: единица есть натуральное число; число, следующее за натуральным (т.е. больше его на единицу), есть натуральное число. Определение, которое задает некоторый объект в терминах более простого случая этого же объекта, называется рекурсивным определением. 03.11.2013 Цыбикова Т.Р. 5 В содержание

Слайд 6

Рекурсия Мощность рекурсивного определения заключается в том, что оно позволяет с помощью конечного высказывания определить бесконечное множество объектов. Как и цикл, рекурсивное определение содержит повторения, но каждый раз при этом используются новые данные, т. е. повторения не являются явными. Рекурсия — это способ описания функций или процессов через самих себя. 03.11.2013 Цыбикова Т.Р. 6 В содержание

Слайд 7

Рекурсивный алгоритм Процесс может быть описан некоторым алгоритмом , называемым в данном случае рекурсивным . В таких алгоритмах выделяется два этапа выполнения: « погружение » алгоритма в себя, т. е. применение определения « в обратную сторону », пока не будет найдено начальное определение, не являющееся рекурсивным; последовательное построение от начального определения до определения с введенным в алгоритм значением . Рассмотрим примеры рекурсивных алгоритмов, часто оформляемых в виде процедур и функций. 03.11.2013 Цыбикова Т.Р. 7 В содержание

Слайд 8

Пример 1. Определение факториала Наиболее распространенным рекурсивным определением является определение факториала (нерекурсивное вычисление факториала приведено в примере Е9): (a ) 1! = 1, (b ) n > 1, n : = n *( n - 1)! На основе этого определения можно записать программу вычисления факториала, использующую рекурсивную функцию . 03.11.2013 Цыбикова Т.Р. 8 В содержание

Слайд 9

03.11.2013 Цыбикова Т.Р. 9 В содержание

Слайд 10

Выполним программу Е25 для n=4 . Выполним программу Е25 для n=4 . Рекурсивная функция будет работать следующим образом (при вызове функции значение n присваивается переменной x ). Сначала осуществляется «погружение», работает оператор ветви else условного оператора: 1-й шаг : х = 4, х - 1 = 3, выполняется промежуточное вычисление 4! = 4 * 3! 2-й шаг: х = 3, х - 1 = 2 , выполняется промежуточное вычисление 3! = 3 * 2! 3-й шаг: х = 2, х - 1 = 1 , выполняется промежуточное вычисление 2! = 2 * 1! 4-й шаг (последний): 1! = 1 по начальному определению, работает оператор F: = 1 ветви then условного оператора. 03.11.2013 Цыбикова Т.Р. 10 В содержание

Слайд 11

Следующий этап выполнения рекурсивного алгоритма Следующий этап выполнения рекурсивного алгоритма — построение «прямого» определения , от начального до получения результата с исходными для алгоритма данными (числом 4). При этом осуществляется подстановка предыдущих вычислений (более поздних шагов) в более ранние: 5-й шаг : 2! = 2 * 1 = 2 6-й шаг: 3! = 3 * 2 = 6 7-й шаг: 4! = 4 * 6 = 24 — получен результат, он возвращается в плавную программу и присваивается переменной Y . 03.11.2013 Цыбикова Т.Р. 11 В содержание

Слайд 12

Пример 2. Вычисление степени с натуральным показателем Вычисление степени с натуральным показателем можно определить рекурсивно: (а) x 0 = 1 (б ) k>0: х k = x * x k -1 Этому определению соответствует рекурсивная функция power( k , x ). Программа имеет вид: 03.11.2013 Цыбикова Т.Р. 12 В содержание

Слайд 13

Пример 3. Вычисление чисел Фибоначчи Вычисление чисел Фибоначчи. Итальянский математик Фибоначчи придумал последовательность натуральных чисел: 1, 1, 2, 3, 5, 8. 13, ... . Первые два члена последовательности равны единице, а каждый, начиная с третьего, равен сумме двух предыдущих. Для чисел Фибоначчи верно соотношение: F k =F k -1 + F k -2 Рекурсивная функция получения значения n -го числа Фибоначчи имеет вид: 03.11.2013 Цыбикова Т.Р. 13 В содержание

Слайд 14

Для чисел Фибоначчи используется следующее рекурсивное определение Для чисел Фибоначчи используется следующее рекурсивное определение: (a) n = 1, n = 2: fib(n) = 1 (b) n > 2: fib(n) = fib(n - 2) + fib(n - 1) Для того чтобы определить fib(6), применяя данное рекурсивное определение, надо вычислить: fib(6) = fib(4) + fib(5) = fib(2) + fib(3) + fib(5)= =1 + fib(3) + fib(5)= =1 + fib(1) + fib(2) + fib(5) = = 1 + 1 + 1 + fib(5) = = 3 + fib(3) + fib(4) = = 3 + fib(1) + fib (2) + fib(4) = =3 + 1 + 1 + fib(4) = =5 + fib(2) + fib(3) = = 5 + 1 + fib(1) + fib(2) = 6+1 + 1= 8 03.11.2013 Цыбикова Т.Р. 14 В содержание

Слайд 15

Количество действий в данных вычислениях с использованием рекурсивного определения чисел Фибоначчи резко возрастает, потому что это определение ссылается само на себя дважды. При вычислении факториала количество действий при выполнении программы с рекурсивной функцией и примера E 9 одинаково. 03.11.2013 Цыбикова Т.Р. 15 В содержание

Слайд 16

Пример 4. Решение задачи о Ханойских башнях Рекурсивные алгоритмы могут быть оформлены и в виде процедур. Примером такой процедуры является решение задачи о Ханойских башнях. Эта задача связана с легендой о том, что в одном из восточных храмов находится бронзовая плита с тремя алмазными стержнями. На один из них при сотворении мира нанизали 64 диска из чистого золота так, как показано на рисунке 36 . Жрецы должны переносить диски с одного стержня на другой, следуя следующим законам: диски можно перемещать только по одному; нельзя класть больший диск на меньший. Согласно легенде, когда все диски будут перенесены с одного стержня на другой, наступит конец света. 03.11.2013 Цыбикова Т.Р. 16 В содержание

Слайд 17

03.11.2013 Цыбикова Т.Р. 17 В содержание

Слайд 18

Решение этой задачи реализовано в виде рекурсивного алгоритма Решение этой задачи реализовано в виде рекурсивного алгоритма, который представляет собой инструкцию по перемещению дисков. Сформулируем задачу, присвоив имена стержням ( A , B , C ) и номера дискам ( от 1 до n ). Надо перенести диски со стержня A на стержень C , используя B как вспомогательный и следуя приведенным выше правилам переноса дисков. Алгоритм на естественном языке имеет вид : если n = 0 , остановиться; переместить верхние n - 1 дисков со стержня A на стержень B , используя стержень C как вспомогательный; переместить оставшийся диск со стержня A на стержень C ; переместить n - 1 дисков со стержня B на стержень C , используя стержень A как вспомогательный. В процедуре появляется новый тип данных — char , значение этого типа — один символ , заключенный в апострофы. 03.11.2013 Цыбикова Т.Р. 18 В содержание

Слайд 19

Программа имеет вид: 03.11.2013 Цыбикова Т.Р. 19 В содержание

Слайд 20

Результат работы программы для n =3 Результат работы программы для n =3 — это инструкция из 7 пунктов ( n = 4 — инструкция из 15 пунктов): переместить диск 1 со стержня A на стержень C переместить диск 2 со стержня A на стержень B переместить диск 1 со стержня C на стержень B переместить диск 3 со стержня A на стержень C переместить диск 1 со стержня B на стержень A переместить диск 2 со стержня B на стержень C переместить диск 1 со стержня A на стержень C 03.11.2013 Цыбикова Т.Р. 20 В содержание

Слайд 21

Вопросы и задания Что такое рекурсивный объект и каковы его свойства? Приведите примеры рекурсивного определения в математике. Что такое рекурсия? Как выполняется рекурсивный алгоритм? Поясните выполнения рекурсивной функции вычисления степени с натуральным показателем. Напишите главную программу для вычисления n -го числа Фибоначчи. Почему использовать рекурсивный алгоритм вычисления n -го числа Фибоначчи невыгодно? Определите рекурсивно умножение как сложение и деление как вычитание и оформите алгоритмы в виде рекурсивных функций с вызовом из главных программ. 03.11.2013 Цыбикова Т.Р. 21 В содержание

Слайд 22

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.130-135 03.11.2013 Цыбикова Т.Р. 22 В содержание


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Обработка строк в Паскале Тема 11. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

СОДЕРЖАНИЕ Символы в памяти компьютера Массив ПРИМЕР. Слово записать в обратном порядке ( программа E28) Строка Объединение строк Сравнение строк Присваивание Длина строки ( программа E29) Копирование строки или ее части ( программа E30) Поиск подстроки в строке Вставка в строку Удаление части строки ( программа E31) Пример программы пословного перевода с английскою языка ( программа E32) Вопросы и задания Источники 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Символы в памяти компьютера В памяти компьютера могут храниться числа и символы. Любой символ занимает один байт памяти . Для данного, соответствующего одиночному символу, используется описатель char . Символы могут объединяться в массивы. Каждому элементу массива, как и числовому данному, соответствует порядковый номер , а имя элемента состоит из имени всего массива и его собственного номера. 03.11.2013 Цыбикова Т.Р. 4 В содержание

Слайд 5

Массив В тексте программы не всегда можно определить, какой массив обрабатывается: числовой или символьный , это можно понять только по описанию массива. Значение символьного данного — любой символ клавиатуры компьютера, ограниченный апострофами. Например : ' A ' , '?', '5' — значения символьных величин. Примеры описаний: Массив а может состоять из 50 символов, ему отводится при трансляции программы 50 байтов памяти. Элементы массива: a[ 1 ] , а [ 2 ] , ... , а [ 50 ] . Переменные х и у — простые, их значения одиночные символы. Для ввода символьного массива необходимо использовать цикл: 03.11.2013 Цыбикова Т.Р. 5 В содержание

Слайд 6

Ввод массива из n символов При вводе такого массива достаточно набрать строку из n символов и в конце нажать < Enter >. Можно объявить в описании таблицу символов и для ее ввода использовать двойной цикл: 03.11.2013 Цыбикова Т.Р. 6 В примере используется b — таблица из 10 строк по 15 символов каждая. При ее вводе необходимо набирать строки по 15 символов и нажимать < Enter >. Неудобство такого ввода заключается в том, что все строки должны содержать по 15 символов, т. е. если набираются слова, то в них не может быть более чем 15 букв, а в коротких словах надо добавлять пробелы. В содержание

Слайд 7

ПРИМЕР. Слово записать в обратном порядке При обработке символьных массивов используются такие же алгоритмы, как и для числовых. Например , требуется слово , заданное как массив символов, записать в обратном порядке , т. е. справа налево. При разработке алгоритма можно использовать такую постановку задачи: данный числовой массив переписать так, чтобы последний элемент встал на первое место, предпоследний на второе и т. д., а первый — на последнее. Другими словами, необходимо из массива a 1 , a 2 ,, ..., а n , получить a n , a n -1 ,, ..., а 1 , который будет находиться в массиве b (рис. 37). 03.11.2013 Цыбикова Т.Р. 7 В содержание

Слайд 8

03.11.2013 Цыбикова Т.Р. 8 На рисунке 37 в рамке обведена формула пересчета индекса: когда у массива а номера перечисляются в прямом порядке, т. е. текущий индекс элемента массива изменяется от 1 до n , у элементов массива b индексы должны меняться от n до 1. Такое изменение и обеспечивает данная формула, она приведена для индексов массива b . Программа Е32 производит перемещение элементов в обратном порядке, для символьных данных она называется программой обращения слова: В содержание

Слайд 9

03.11.2013 Цыбикова Т.Р. 9 В содержание

Слайд 10

Строка Несколько подряд записанных символов образуют строку. Строка — это ограниченная апострофами последовательность любых символов. Длина строки, обрабатываемой в Паскале, не должна превышать 255 символов (апострофы не считаются). Это связано с тем, что в конце строки, в дополнительном байте, хранится её длина — количество символов, а наибольшее целое число, которое может быть записано в байте, — 255. Если требуется обработать текст, длина которого большее 255 знаков, то надо использовать массив строк. Описание строки имеет вид : var x: string [20 ]; 03.11.2013 Цыбикова Т.Р. 10 В содержание

Слайд 11

var x: string [20]; Строка х должна быть не более чем из 20 символов. Если она меньше, то будет занимать в памяти столько байтов, сколько знаков она содержит (плюс 1 байт — длина). Поэтому при вводе строк нет необходимости дополнять их до указанной в описании длины. Для обработки строк используются специальные операции и собранные в специальную библиотеку подпрограммы . Операции позволяют работать со строками, как с цельными объектами, а подпрограммы, в основном, — с отдельными символами или частями строк. Операции над строками — это объединение, сравнение и присваивание. 03.11.2013 Цыбикова Т.Р. 11 В содержание

Слайд 12

Объединение строк Объединение строк. Эта операция позволяет объединить две строки в одну, присоединив начало второй строки к концу первой . Объединение обозначается знаком «+» . Например : 03.11.2013 Цыбикова Т.Р. 12 В содержание

Слайд 13

а+ b <> b +а Переменным x и у присваиваются значения строк, а переменной z — результат объединения этих строк в одну: ' теплоход '. При печати строки будет выдано содержимое области памяти, называемой z . Очевидно, что операция объединения строк некоммутативная, т. е. для нее а+ b <> b +а, поэтому при использовании объединения необходимо предусматривать, с какой стороны к данной строке присоединяется другая: слева или справа . Как и для арифметических операций, для данной операции со строками существует нейтральный элемент, не влияющий на ее результат. Это — строка нулевой длины ( пустая строка ), обозначаемая двумя рядом стоящими апострофами (") . Такую строку можно присоединить к любой строке слева или справа и строка не изменится. 03.11.2013 Цыбикова Т.Р. 13 В содержание

Слайд 14

Сравнение строк Для строк используются такие же операции отношения, как и для чисел, но они имеют несколько другой смысл. Если строки сравнивать на «равно» ( = ), то выполнение равенства означает посимвольное совпадение строк . Соответственно «не равно» ( < > ) означает несовпадение хотя бы в одном знаке. Остальные отношения ( < , > ) относятся к длинам строк, т. е. сравниваются не символы строк, а их количества. Если записать: ‘ a ' < ‘ b ' + ‘ c ', то сначала выполнится объединение строк (эта операция имеет более высокий приоритет), а затем сравнение длин . В данном случае условие удовлетворяется, так как строка из одного символа меньше (по длине), чем строка из двух символов. 03.11.2013 Цыбикова Т.Р. 14 В содержание

Слайд 15

Присваивание Оператор присваивания для строковых данных имеет вид: Имя_строковой_переменной:= строковое выражение ; Имя строковой переменной может быть простое или с индексом (элементом массива строк). Если в результате выполнения всех операций строкового выражения получается строка, длина которой превышает длину в описании переменной, стоящей слева от знака присваивания, то такая строка укорачивается справа до допустимой длины. 03.11.2013 Цыбикова Т.Р. 15 В содержание

Слайд 16

Пример В результате работы этой программы будет напечатано слово « мимоза ». Поэтому допустимая длина х — 6 символов, значение выражения справа от присваивания «мимозабоченный» сократится до «мимоза», остальные символы будут отброшены. 03.11.2013 Цыбикова Т.Р. 16 В содержание

Слайд 17

Длина строки . Функция длины строки выдает количество символов строки: length (строковое _ выражение) Например: 03.11.2013 Цыбикова Т.Р. 17 В содержание

Слайд 18

Программа E29 В программе Е29 используется вывод с форматированием результата . Первый раз формат ( :25 ) указан подле строки, выводимой на экран ( 'длина первой строки '). Это означает, что для данной строки отводится 25 позиций экрана, а поскольку выводимый текст короче (20 символов), он дополнится вначале пробелами, т. е. окажется правоуста - новленным в отведенном ему поле. Аналогично расположатся в предназначенном для них месте экрана целые числа — длины строк. Таким образом, результат работы программы будет иметь вид : С помощью форматирования можно располагать выводимые данные в столбцах, строить на экране дисплея таблицы. 03.11.2013 Цыбикова Т.Р. 18 В содержание

Слайд 19

Копирование строки или ее части Функция копирования называется также « вырезкой ». Она позволяет скопировать одну область памяти в другую. Для копирования необходимо указать строковое выражение, из значения которого выделяется часть, а также начальный номер символа и количество символов копируемой части: сору ( строковое_выражение , нач_номер_символа , кол-во_символов ) Например , результатом работы функции сору ( 'информатика ', 3, 5) будет слово 'форма '. 03.11.2013 Цыбикова Т.Р. 19 В содержание

Слайд 20

Разработка второй версии программы обращения слова Применим данную функцию для разработки второй версии программы обращения слова. Будем обрабатывать слово, выделяя из него буквы и присоединяя к результату слева. Переменной у , содержащей результат, сначала присваивается значение пустой строки. Переменная цикла изменяет свои значения от 1 (первого символа слова) до длины вводимой строки (номера последнего символа слова). 03.11.2013 Цыбикова Т.Р. 20 В содержание

Слайд 21

03.11.2013 Цыбикова Т.Р. 21 В содержание

Слайд 22

Поиск подстроки в строке Функция поиска определяет, с какой позиции (номера символа) одна строка (подстрока) содержится в другой (данной строке). Если такое вхождение подстроки в строку имеет место, то результат работы функции — номер символа в исходной строке , с которого начинается подстрока. Если вхождения нет , то результат — нуль . Аргументы функции могут быть строковыми выражениями, pos (подстрока, исходная строка) 03.11.2013 Цыбикова Т.Р. 22 В содержание

Слайд 23

Вставка в строку В одну строку можно вставить другую строку, указав номер символа, начиная с которого осуществляется вставка. Входные данные процедуры — вставляемая строка , исходная строка и целочисленное выражение , задающее позицию вставки. Строки также могут быть заданы строковыми выражениями . Результат работы процедуры помещается в исходную строку, строка при этом «расширяется». Если длина вставки совместно с длиной исходной строки превышает допустимую длину исходной строки, то вставка укорачивается справа до допустимой длины. I nsert ( вставляемая строка, исходная строка, целочисленное выражение); 03.11.2013 Цыбикова Т.Р. 23 В содержание

Слайд 24

Удаление части строки Часть строки можно удалить, строка при этом «сжимается». Для удаления необходимо указать строку (в виде строкового выражения), начальный номер удаляемой части строки, количество удаляемых символов. Процедура удаления вызывается следующим образом: delete (строка, начальный номер, количество символов); Рассмотрим пример замены буквы в слове. Сделаем из слова «форма» слово «фирма». 03.11.2013 Цыбикова Т.Р. 24 В содержание

Слайд 25

Пример программы пословного перевода с английскою языка Пусть требуется построить программу-переводчик, которая бы, не учитывая правил грамматики, просто переводила каждое слово вводимого предложения. Поскольку программа демонстрационная, словари небольшие, содержат по 10 слов. Однако в случае расширения словарей программу можно использовать и для реального пословного перевода. 03.11.2013 Цыбикова Т.Р. 25 В содержание

Слайд 26

Идея выделения слов Идея выделения слов из вводимого предложения основана на том, что слова разделяются, как обычно, пробелами и слово между двумя пробелами вырезается. Далее происходит обращение к словарю и ищется совпадение выделенного слова со словами словаря. При обнаружении совпадения печатается слово из словаря переводов с тем же индексом элемента, как и в исходном словаре английских слов. Такая идея поиска может быть использована и в других таблицах, когда, например, по названию химического элемента ищется его масса . 03.11.2013 Цыбикова Т.Р. 26 В содержание

Слайд 27

Пример Рассмотрим этапы выполнения программы на примере перевода предложения « I like a cat . Для выделения слов из предложения будем использовать два указателя. Первый из них — переменная m , ее значение всегда 1 , так как она указывает на первый символ вырезаемого (копируемого) из предложения слова. Второй указатель — значение переменной k — всегда показывает на позицию пробела за выделяемым словом, являясь его номером. 03.11.2013 Цыбикова Т.Р. 27 В содержание

Слайд 28

Пример Для первого слова предложения первое значение переменной k — это 2 . Функция поиска подстроки в строке работает таким образом, что поиск вхождения осуществляется обязательно с первой позиции исходной строки. Поэтому , если не менять исходную строку, то каждый раз найденным окажется первый пробел. Следовательно , после очередного выделения слова строку необходимо «усекать», оставляя только необработанную часть строки. 03.11.2013 Цыбикова Т.Р. 28 В содержание

Слайд 29

а:=сору ( a , k , n - k +1); Такое «усечение» производит оператор: а:=сору ( a , k , n - k +1); Здесь n - k +1 длина оставшейся после выделения очередного слова части строки. Так , после выделения первого слова из предложения (слова « I »), которое будет присвоено переменной x , строка a примет вид « like а са t » . При поиске в словаре английских слов (массив е ) значение переменной х сравнивается с каждым словом словаря. 03.11.2013 Цыбикова Т.Р. 29 В содержание

Слайд 30

а:=сору ( a , k , n - k +1); Если произошло совпадение, то печатается слово из словаря русских слов (массив r ) с таким же порядковым номером, как в английском словаре. Если весь словарь просмотрен, но слово не найдено, то печатается сообщение «слова в словаре нет». Программа обрабатывает определенный и неопределенный артикли, они в словаре не ищутся, происходит переход к обработке следующего слова предложения. 03.11.2013 Цыбикова Т.Р. 30 В содержание

Слайд 31

Программа имеет вид (начало): 03.11.2013 Цыбикова Т.Р. 31 В содержание

Слайд 32

Программа имеет вид (продолжение): 03.11.2013 Цыбикова Т.Р. 32 В содержание

Слайд 33

Вопросы и задания Чем отличается символьный тип данных от строковых? Используя символьный массив, определите, сколько слов в данном тексте. Используя символьный массив, посчитайте, сколько букв «а» в данном слове. Используя средства обработки строк, исправьте слово « вылысыпыдысты ». Используя идею программы обращения слова Е34, удвойте каждую букву в данном слове. Используя программу обращения слова Е34, определите, является ли данное слово палиндромом («перевертышем», например, «казак», «потоп», «кок» и т. д.). Дана строка с несколькими запятыми. Подучите слово между первой и второй запятыми. Решите задачу с применением массива символов и строки символов . 03.11.2013 Цыбикова Т.Р. 33 В содержание

Слайд 34

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.135-144 03.11.2013 Цыбикова Т.Р. 34 В содержание


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования ГБОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Решение практических задач Реализация имитации движения графических объектов Цыбикова Т.Р.

Слайд 3

Алгоритм реализации движения Для того чтобы графический объект двигался по экрану, необходимо выполнить следующий несложный алгоритм. Многократно повторить действия: Нарисовать рисунок; Организовать небольшую временную паузу; Стереть рисунок; Изменить координаты рисунок. Временную паузу можно организовать с помощью команды Sleep ( ms ) , которая задает задержку по времени в миллисекундах. Цыбикова Т.Р.

Слайд 4

Пример 1 program imit1; uses GraphABC; var x, y: integer; begin x:=20; y:=20; while x<800 do begin SetPenColor (clGreen); circle (x,y,10); sleep (10); SetPenColor (clWhite); circle (x,y,10); x:=x+3; end ; end . Организовать имитацию движения шарика по экрану компьютера. Цыбикова Т.Р.

Слайд 5

Цыбикова Т.Р.

Слайд 6

О подпрограмме Если для создания рисунка, для которого можно организовать движение, используется много команд, можно выделить эти команды в отдельную часть программы, называемую подпрограммой или процедурой. Цыбикова Т.Р.

Слайд 7

Общий вид программы с процедурой uses GraphABC; var // описание величин для программы procedure имя_процедуры ; var // описание величин для процедуры begin Команда ; Команда ; // тело процедуры Команда ; … end ; begin Команда ; Команда ; //тело программы имя_процедуры ; //вызов процедуры на выполнение … end . Цыбикова Т.Р.

Слайд 8

Пример 2 program imit2; uses GraphABC; var x, y: integer; procedure Ship; begin moveTo ( x,y ); LineTo (x+50,y); LineTo (x+40,y+20); LineTo (x+10,y+20); LineTo ( x,y ); LineTo (x+25,y); LineTo (x+25,y-20); LineTo (x+20,y-15); LineTo (x+25,y-10); end ; BEGIN x:=20; y:=20; while x<800 do begin SetPenColor (clGreen); Ship; sleep (10); SetPenColor (clWhite); Ship; x:=x+2; end ; END . Организовать имитацию движения кораблика по экрану компьютера. Команды прорисовки кораблика оформить в виде процедуры. Цыбикова Т.Р.

Слайд 9

Цыбикова Т.Р.

Слайд 10

Замечание Движущийся объект можно поместить на фоновую картинку. Для того чтобы фоновый рисунок не стирался, можно ту часть программы, в которой прорисовывается фон, тоже оформить в виде процедуры. И вызов этой процедуры поместить внутри цикла рядом с вызовом процедуры для основного объекта. Цыбикова Т.Р.

Слайд 11

Цыбикова Т.Р.

Слайд 12

Пример 3 program imit2; uses GraphABC ; var x, y: integer; procedure Fon ; begin moveTo (5,50); LineTo (50,60); LineTo (100,10); LineTo (130,80); LineTo (200,10); LineTo (260,100); LineTo (360, 20); LineTo (400,110); LineTo (500,310); LineTo (5,310); end ; procedure Ufo ; begin Ellipse (x-30, y-15, x+30, y+15); Ellipse (x-20, y-20, x+20, y+5); end ; BEGIN x:=20; y:=50; Fon ; while x<500 do begin SetPenColor ( clGreen ); Fon ; Ufo ; sleep (10); SetPenColor ( clWhite ); Ufo ; x:=x+3; end; END . Нарисовать движение НЛО (неопознанного летающего объекта) на фоне гор. Цыбикова Т.Р.

Слайд 13

Цыбикова Т.Р.

Слайд 14

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

Слайд 15

Пример 4 program boy; uses GraphABC; var x, y: integer; procedure boy1; begin circle (x,y,10); Line (x,y+10,x,y+30); Line (x,y+10,x-10,y+20); Line (x,y+10,x+5,y+25); Line (x-10,y+20,x-10,y+30); Line (x+5,y+25,x+15,y+18); Line (x,y+30,x-5,y+40); Line (x-5,y+40,x-15,y+50); Line (x-15,y+50,x-12,y+52); Line (x,y+30,x+10,y+53); Line (x+10,y+53,x+13,y+50); end ; procedure boy2; begin circle (x,y,10); Line (x,y+10,x,y+53); Line (x,y+10,x-5,y+35); Line (x,y+10,x+5,y+35); Line (x,y+30,x+7,y+43); Line (x+5,y+25,x+7,y+43); Line (x+7,y+43,x-10,y+43); Line (x-10,y+43,x-5,y+46); Line (x,y+53,x+5,y+53); end ; procedure boy3; begin circle (x,y,10); Line (x,y+10,x,y+30); Line (x,y+10,x-5,y+25); Line (x,y+10,x+5,y+35); Line (x-5,y+25,x-3,y+35); Line (x,y+30,x-4,y+53); Line (x-4,y+53,x,y+53); Line (x,y+30,x+10,y+40); Line (x+10,y+40,x+5,y+50); Line (x+5,y+50,x+8,y+53); end; BEGIN SetPenWidth(2); x:=40; y:=100; while x<800 do begin SetPenColor (clGreen); boy1; sleep (150); SetPenColor (clWhite); boy1; x:=x+3; SetPenColor (clGreen); boy2; sleep (150); SetPenColor (clWhite); boy2; x:=x+3; SetPenColor (clGreen); boy3; sleep (150); SetPenColor (clWhite); boy3; x:=x+3; end ; END . Цыбикова Т.Р.

Слайд 16

Цыбикова Т.Р.

Слайд 17

Анимация для сложного многоцветного рисунка При создании анимации для сложного многоцветного рисунка можно воспользоваться процедурами, задающими режимы вывода рисунка на экран: LockDrawing – блокирует вывод в графическое окно, осуществляя рисование только во внеэкранном буфере . Redraw – осуществляет перерисовку окна вывода при заблокированном выводе в графическое окно. ClearWindow - очищает графическое окно белым цветом. ClearWindows (c) – очищает графическое окно цветом «с». Цыбикова Т.Р.

Слайд 18

Пример 5 program ball; uses GraphABC; var i: integer; begin LockDrawing ; for i:=1 to 500 do begin clearWindow ; SetBrushColor (clGreen); Ellipse(i,100,i+100,200); Redraw; sleep (1); end; end. Организовать имитацию движения цветного мячика по экрану компьютера. Цыбикова Т.Р.

Слайд 19

Цыбикова Т.Р.

Слайд 20

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

Слайд 21

Источники В.А.Терещук , Г.Т.Филлипова Информатика в школе « PascalABC в теории и практике», Минск: Аверсэв , 2009 Цыбикова Т.Р.


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде чертежник: модуле DrawMan ABC Pascal. Выполнил: ученик 7 класса Есин М.Ю. Проверила Цыбикова Т.Р

Слайд 2

Задание №1 . 04.04.2014 Москва 2

Слайд 3

Задание №2 04.04.2014 Москва 3

Слайд 4

Задание №3 04.04.2014 Москва 4

Слайд 5

Задание №4 04.04.2014 Москва 5

Слайд 6

Задание №5 04.04.2014 Москва 6

Слайд 7

Задание №6 04.04.2014 Москва 7

Слайд 8

Задание №6 04.04.2014 Москва 8

Слайд 9

Задание №7 04.04.2014 Москва 9

Слайд 10

Задание №8 04.04.2014 Москва 10

Слайд 11

Задание №9 04.04.2014 Москва 11

Слайд 12

Задание №10 04.04.2014 Москва 12

Слайд 13

Задание №11 04.04.2014 Москва 13

Слайд 14

Задание №12 04.04.2014 Москва 14

Слайд 15

Задание №13 04.04.2014 Москва 15

Слайд 16

Задание №14 04.04.2014 Москва 16


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде Чертёжник: модуле Drawman АВС Pascal Выполнили: ученицы 7 «а» класса Маслова Анастасия и Василенко Валерия

Слайд 2

Задание № 1 04.04.2014 Москва 2

Слайд 3

Задание № 2 04.04.2014 Москва 3

Слайд 4

Задание № 3 04.04.2014 Москва 4

Слайд 5

Задание № 4 04.04.2014 Москва 5

Слайд 6

Задание № 5 04.04.2014 Москва 6

Слайд 7

Задание № 6 04.04.2014 Москва 7

Слайд 8

Задание № 7 04.04.2014 Москва 8

Слайд 9

Задание № 8 04.04.2014 Москва 9

Слайд 10

Задание № 9 04.04.2014 Москва 10

Слайд 11

Задание № 10 04.04.2014 Москва 11


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде Чертежник: модуле Drawman ABC Pascal Выполняла ученица 7 класса Петелина Екатерина

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде Чертёжник: модуле Drawman ABC Pascal Выполнили ученицы 7 класса «а» Петелина Ирина И Степанян Варвара

Слайд 2

Задание№1 04.04.2014 2 Москва

Слайд 3

Задание №2 04.04.2014 3 Москва

Слайд 4

Задание№3 04.04.2014 4 Москва

Слайд 5

Задание№4 04.04.2014 5 Москва

Слайд 6

Задание№5 04.04.2014 6 Москва

Слайд 7

Задание№6 04.04.2014 7 Москва

Слайд 8

Задание№7 04.04.2014 8 Москва


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде Чертёжник: модуле Drawman ABC Pascal Выполнили ученицы 7 класса «а» Петелина Ирина И Степанян Варвара

Слайд 2

Задание№1 04.04.2014 2 Москва

Слайд 3

Задание №2 04.04.2014 3 Москва

Слайд 4

Задание№3 04.04.2014 4 Москва

Слайд 5

Задание№4 04.04.2014 5 Москва

Слайд 6

Задание№5 04.04.2014 6 Москва

Слайд 7

Задание№6 04.04.2014 7 Москва

Слайд 8

Задание№7 04.04.2014 8 Москва


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде чертёжник: Drawman ABC P ascal Выполнила ученица 7 «а» класса Саковская Лиза

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде Чертёжник : модуле DrawMan ABC Pascal Выполнение ученика 7 класса Бублик Богдан Проверила : Цыбикова Т . Р

Слайд 2

Задание № 1

Слайд 3

Задание № 2

Слайд 4

Задание № 3


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Мои работы в среде чертежник: модуле DrawMan ABC Pascal. Выполнил: ученик 7 класса Есин М.Ю. Проверила Цыбикова Т.Р

Слайд 2

Задание №1 . 04.04.2014 Москва 2

Слайд 3

Задание №2 04.04.2014 Москва 3

Слайд 4

Задание №3 04.04.2014 Москва 4

Слайд 5

Задание №4 04.04.2014 Москва 5

Слайд 6

Задание №5 04.04.2014 Москва 6

Слайд 7

Задание №6 04.04.2014 Москва 7

Слайд 8

Задание №6 04.04.2014 Москва 8

Слайд 9

Задание №7 04.04.2014 Москва 9

Слайд 10

Задание №8 04.04.2014 Москва 10

Слайд 11

Задание №9 04.04.2014 Москва 11

Слайд 12

Задание №10 04.04.2014 Москва 12

Слайд 13

Задание №11 04.04.2014 Москва 13

Слайд 14

Задание №12 04.04.2014 Москва 14

Слайд 15

Задание №13 04.04.2014 Москва 15

Слайд 16

Задание №14 04.04.2014 Москва 16

Слайд 17

Задание №15 04.04.2014 Москва 17

Слайд 18

Задание №16 04.04.2014 Москва 18

Слайд 19

Задание №17 04.04.2014 Москва 19

Слайд 20

Задание №18 04.04.2014 Москва 20