Программа элективного курса по информатике «ОСНОВЫ ПРОГРАММИРОВАНИЯ» для учащихся 11-х классов.

advertisement
Программа элективного курса по информатике
«ОСНОВЫ ПРОГРАММИРОВАНИЯ»
для учащихся 11-х классов.
Пояснительная записка.
Требования высших учебных заведений к выпускникам школ существенно возросли и расширились. Это
обстоятельство вынуждает особенно тщательно согласовывать разработку программы преподавания предмета
информатики в школе с дальнейшим изучением соответствующего материала в вузе.
Поэтому необходимо «Основы программирования» выделить как отдельный курс, изучение которого базируется
на современных системах и языках программирования, решении практических задач. Значительное внимание уделяется
фундаментальным вопросам технического и технологического обеспечения информатики, логическим и
арифметическим основам компьютера.
Содержание курса сочетает в себе три существенных сейчас основных подхода в обучении информатики в школе
и отражает важнейшие аспекты ее образовательной значимости:
 «пользовательский» аспект, связанный с формированием компьютерной грамотности, информационной культуры,
подготовкой школьников к практической деятельности в условиях широкого использования информационных
технологий. Такое обучение целесообразно вводить как можно раньше, чтобы учащиеся могли использовать
различные доступные их возрасту программные продукты, применяя компьютер в качестве инструмента для своих
целей;
 алгоритмический (программистский) аспект, связанный в большей мере с развитием мышления учащихся;
 кибернетический аспект, связанный с формированием мировоззренческих представлений о роли информации в
управлении, специфики самоуправляющих систем, общих закономерностях информационных процессов в системах
разной природы.








Курс в целом охватывает следующие группы вопросов:
Вопросы, связанные с пониманием сущности информационных процессов, информационных основ процессов
управления в системах различной природы и представлением о передаче информации, канале передачи
информации, количестве информации, способах представления информации для формального исполнителя
(информационный аспект);
Методы и средства формализованного описания действий исполнителя (алгоритмический аспект);
Вопросы, связанные с выбором исполнителя для решения задачи, анализом его свойств, возможностей и
эффективности его применения для решения данной задачи;
Вопросы, связанные с адекватным описанием реальных объектов и явлений для их использования с помощью ЭВМ,
проведение компьютерного эксперимента (моделирование).
В процессе обучения заложены следующие необходимые умения и навыки:
умение планировать структуру действий, необходимых для достижения заданной цели при помощи
фиксированного набора средств;
умение организовывать поиск информации, необходимой для решения поставленной задачи;
умение строить информационные структуры (модели) для описания объектов и систем;
технические навыки работы с компьютером и его периферийными устройствами.
Именно при формировании таких навыков и умений можно будет говорить о высокой эффективности
использования компьютеров и достижении учащихся не только уровня знаний и умений, заложенных в «Обязательный
минимум содержания образования», но и достаточно более высокого уровня, необходимого в дальнейшем обучении.
Курс предлагается для изучения в 11 классах образовательных учреждений, рассчитан на 34 часа и
предусматривает выполнение 7 практических работ по различным темам, а также самостоятельную работу учащихся
над проектами.
При изучении языка программирования следует стремиться к использованию формального описания
конструкций языка программирования (синтаксис и семантику), а при решении задач использовать только изученные
элементы. Это способствует не только глубокому пониманию учебного материала, но и дает возможность
использовать изученный материал в дальнейшем.
При обучении программированию следует добиваться определенного стиля оформления текстов программ.
«Программировать трудно. Программировать хорошо – очень трудно. И о том, как нужно правильно
программировать пишут много. Но … сколько людей – столько и мнений…», - написал редактор перевода очередной
книги «Практика программирования». (Цитата из книги «Программирование на Паскале для начинающих». Для
студентов физического факультета /ГОУ ВПО «Кемеровский госуниверситет»; сост. Т. Ю. Павлова. Кемерово, 2007
г.). Однако из всех советов по стилю программирования можно все же выбрать, несомненно, полезные для
начинающего программиста, которые можно рекомендовать детям на уроках.
Советы для учащихся.
При написании программы нужно руководствоваться принципом, что написать программу – это не
только разработать ее текст, исправить ошибки и заставить ее выполняться достаточно быстро. Нужно написать ее так,
чтобы в случае необходимости другой человек или вы сами через некоторое время, могли легко разобраться в этой
программе, чтобы модернизировать ее. А программу, написанную хорошо, куда проще понять, чем написанную плохо.
Кроме того, культура написания текста позволит создавать программы с меньшим числом ошибок.
Текст программы должен быть прост и понятен, для этого придерживайтесь правил:

имя переменной или функции должно содержать информацию о ней. Это не просто, так как используется
латинский алфавит, но латинскими буквами можно написать русское имя или использовать знакомые английские
слова; используйте одни и те же имена для счетчиков цикла (например: i, j).

форматируйте текст программы. Для этого сдвигайте начало написания части операторов вправо на несколько
позиций. Сдвигайте операторы, находящиеся внутри составного оператора begin – end (для языка
программирования Pascal), пишите ветвь else под ветвью then в условном операторе и т.п.

При работе с составными типами данных необходимо их предварительно описывать в разделе type.

В хорошо написанной программе каждая константа может встречаться только один раз: или в разделе констант, или
в начале программы (подпрограммы) для присваивания значения соответствующей переменной.
Содержание обучения и требования к подготовке учащихся.
Основные понятия о языках программирования (2ч).
История появления языков QBASIC и TURBO PASCAL. Языки программирования интерпретирующего и
компилирующего типа. Основные средства языка. Алфавит языка. Служебные слова. Структура программы.
Переменные и константы. Типы данных. Присваивание. Технология разработки программного обеспечения.
Система и языки программирования. Общая характеристика системы программирования. Система оперативной
подсказки. Редактор исходного текста. Пример простой программы. Компиляция и отладка программы.
В результате изучения темы учащиеся должны знать:
- историю появления языков программирования QBASIC и TURBO PASCAL;
- отличия компилятора и интерпретатора;
- основные средства, алфавит языка программирования, служебные слова, структуру программы;
- команду присваивания;
- типы данных, переменные и константы;
- общую характеристику системы программирования.
В результате изучения темы учащиеся должны уметь:
- составлять простейшие программы с использованием команды присваивания;
- компилировать и отлаживать программу.
Встроенные функции в языки программирования (4 ч).
Запись на языке QBASIC функций |X|, sin x, Cos x, tg x, целая часть x, x2 и т. д.Операторы INPUT, PRINT. Работа
оператора присваивания. Выражение вида N=N+1. Блок-схема конструкции «Следование». Оператор комментария.
Набор, отладка и запуск программы в среде программирования QBASIC.
В результате изучения темы учащиеся должны знать:
- форму записи встроенных функций;
- оператор ввода;
- оператор вывода;
-оператор присваивания;
-оператор комментария;
- блок-схему конструкции «Следование»
В результате изучения темы учащиеся должны уметь:
Составлять простейшие программы с использованием операторов присваивания, ввода-вывода информации.
Условный оператор (5 ч).
Блок-схема конструкции «Ветвление». Условный оператор. Служебные слова IF, THEN, ELSE. Работа полного
условного оператора. Работа сокращенного условного оператора. Вложенные условные операторы. Блок – схема
вложенных условных операторов. Конструкция вложенного условного оператора. Служебные слова IF, THEN, ELSE,
END IF. Логические связки AND, OR, NOT. Программирование задач с использованием вложенных условных
операторов и сложных условий. Блок-схема оператора варианта. Структура оператора варианта. Служебные слова
SELECT, CASE, END SELECT.
В результате изучения темы учащиеся должны знать:
- блок-схему полной формы условного оператора, блок-схему сокращенной формы условного оператора, блок-схему
вложенного условного оператора, оператора варианта;
- запись условного оператора с помощью языка программирования;
- запись оператора варианта с помощью языка программирования.
В результате изучения темы учащиеся должны уметь:
- составлять программы с использованием полной и сокращенной формы условного оператора;
- составлять программы с использованием вложенных условных операторов;
- составлять программы, содержащие сложные условия;
- составлять программы с использованием оператора варианта.
Циклы (5 ч).
Блок-схема цикла с предусловием. Тело цикла. Оператор цикла с предусловием. Служебные слова WHILE, WEND.
Работа оператора цикла с предусловием. Блок-схема цикла с постусловием. Тело цикла. Оператор цикла с
постусловием. Служебные слова DO, LOOP, WHILE, UNTIL. Работа оператора цикла с постусловием. Блок-схема
цикла с параметром. Тело цикла. Параметр цикла. Начальное и конечное значение параметра цикла. Шаг цикла.
Оператор цикла с параметром. Служебные слова FOR, TO, NEXT. Работа оператора цикла с параметром. Конструкция
вложенных циклов. Конструкция сочетания цикла и условного оператора.
В результате изучения темы учащиеся должны знать:
- блок-схему цикла с параметром, блок-схему цикла с предусловием, блок-схему цикла с постусловием;
- запись циклов с логическим условием;
- запись циклов с помощью языка программирования.
В результате изучения темы учащиеся должны уметь:
- программировать задачи с использованием циклов с параметром, с предусловием, с постусловием;
- программировать задачи с использованием циклов с логическим условием;
- программировать задачи с использованием вложенных циклов.
Массивы (7 ч).
Понятие массива. Понятие индекса. Переменная с индексом. Простая переменная. Одномерные массивы.
Описание массива: DIM имя массива (n1 TO n2) AS тип элементов. Присвоение значений элементам массива.
Способы задания одномерных массивов. Понятие матрицы. Двумерные массивы. Нумерация элементов двумерного
массива. Способы описания двумерного массива. Способы задания двумерных массивов. Проверка на четность.
Подсчет количества элементов, отвечающих заданным условиям. Нахождение суммы, произведения и количества
элементов массива, отвечающих заданным условиям. Максимальный и минимальный элементы. Сортировка элементов
массива. Метод «пузырька». Оператор SWAP. Перестановка элементов массива. Поиск, подбор и группировка данных.
Слияние и отбор данных в одномерных и двумерных массивах.
В результате изучения темы учащиеся должны знать:
- понятие массива, переменной с индексом, простой переменной;
- понятие одномерного массива;
-как происходит присвоение значений элементам одномерного массива;
- работу датчика случайных чисел;
- понятие двумерного массива;
- как происходит присвоение значений элементам двумерного массива;
В результате изучения темы учащиеся должны уметь:
- организовывать задание одномерного и двумерного массива;
- подсчитывать сумму, произведение и количество элементов одномерного и двумерного массивов, отвечающих
заданным условиям;
- находить максимальный и минимальный элемент одномерного и двумерного массивов;
-осуществлять перестановку элементов одномерного и двумерного массивов;
- осуществлять слияние и отбор данных в одномерных и двумерных массивах;
- осуществлять поиск, подбор и группировку данных;
- осуществлять сортировку элементов массива.
Строковый, символьный типы данных (4 ч).
Основные сведения о символьных величинах. Стандартные функции, процедуры для работы с символьными
величинами: сравнение, конкатенация, копирование, удаление, замена (вставка), длина строки, подстрока числа и
строки. Понятие шифровки, дешифровки текста. Способы шифровки текста.
В результате изучения темы учащиеся должны знать:
- основные сведения о символьных величинах;
- реализацию символьных величин с помощью языков программирования;
- стандартные функции для работы с символьными величинами: сравнение, конкатенацию, копирование, удаление,
замену (вставку), длину строки, подстроку.
В результате изучения темы учащиеся должны уметь:
- программировать алгоритмы обработки текста;
- программировать задачи на поиск и подсчет (лингвистическая статистика).
Процедуры и функции. Понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и
функций (3 ч).
Понятие рекурсии. Рекурсивные алгоритмы. Задачи, сводимые к рекурсивным. Понятие подпрограммы, процедуры,
функции, Описание процедуры. Оператор SUB. Описание функции. Оператор FUNCTION. Механизм реализации
подпрограмм с помощью процедур и функций. Обмен информацией между основной программой и подпрограммой.
Глобальные и локальные переменные.
В результате изучения темы учащиеся должны знать:
-понятие подпрограммы;
- понятие процедуры;
- оператор процедуры;
- понятие функции;
- оператор задания функции;
- как осуществляется обмен между основной программой и подпрограммой;
- понятие глобальной и локальной переменной;
- механизм реализации подпрограммы с помощью процедур и функций.
В результате изучения темы учащиеся должны уметь:
- уметь программировать задачи с использованием процедур и функций.
Работа с файлами (3 ч).
Понятие файла. Классификация файлов. Операции над файлами: открытие файла, чтение и запись обрабатываемых
данных, закрытие файлов. Файл произвольного доступа. Операторы и функции работы с файлом произвольного
доступа.
В результате изучения темы учащиеся должны знать:
-понятие файла: имя, расширение;
- типы файлов;
- операции над файлами;
- файлы с произвольным доступом.
В результате изучения темы учащиеся должны уметь:
-решать задачи на программирование с использованием файлов.
Повторение. Решение задач. (1 ч).
Тематическое планирование.
Содержание учебного материала
№
урока
Основные понятия о языках программирования (2 ч).
1-2
1. Понятие о языке программирования высокого и низкого уровня.
Цели: дать основные сведения о языках программирования, средствах языков, структуре
программ.
Краткий обзор теоретического материала. История создания языков программирования
Бейсик и Паскаль. Система и языки программирования. Технология разработки программного
обеспечения. Общая характеристика системы программирования. Основные средства языка
программирования. Алфавит языка. Служебные слова. Структура программы. Система
оперативной подсказки. Редактор исходного текста. Пример простой программы. Компиляция
и отладка программы.
Примеры возможных заданий.
Подготовить ответы на вопросы:
1. Для чего служит компьютер?
2. Что называется алгоритмом?
3. Что называют алфавитом языка?
4. Что такое интерпретация и компиляция?
5. Что представляет собой программа?
6. Что включает в себя алфавит языка QBASIC?
7. Выполнение творческого проекта (отчета) по теме «История языков программирования».
2. Переменные и константы. Описание типов.
Цели: дать основные сведения о константах, переменных; познакомить учащихся с
различными типами данных.
Краткий обзор теоретического материала. Понятие переменной. Переменные числового
типа: целые, длинные целые, обычной точности, двойной точности; переменные символьного
типа: строка переменной длины, строка фиксированной длины; переменные пользовательского
типа. Понятие константы.
Примеры возможных заданий.
Подготовить ответы на вопросы:
1. Чем характеризуется переменная?
2. В каком разделе происходит описание переменных?
3. Как описываются переменные?
4. Перечислите типы данных.
5. Какова структура программы?
6. С чего начинается основная программа?
7. Чем заканчивается программа?
8. Определите тип выражения: 1+0.0; 20/4.
3-6
Колво
часов
1
1
Встроенные функции в языки программирования. Простейшие
операторы языка QBASIC (4 ч)
1. Встроенные функции.
Цели: дать представления о встроенных функциях; научить учащихся использовать
встроенные функции при записи математических выражений на языке программирования
QBASIC.
Краткий обзор теоретического материала. Запись на языке QBASIC функций |X|, sin x,
Cos x, tg x, целая часть x, x2 и т. д.
Примеры возможных заданий.
Записать на языке QBASIC следующие выражения:
1. Y=5sinX
2. Z= 14X4 – 5X3 +11X – 17
3. X1=
−𝑏−√𝐷
2𝑎
1
4. D=b2 – 4ac
Сделать математическую запись следующих выражений:
1. LOG(X)-32/ (ABS(X)-1)
2. SQR(64)
2. Операторы ввода и вывода информации. Оператор присваивания.
Цели: познакомить учащихся с операторами ввода – вывода информации, оператором
присваивания; программировать простейшие задачи с использованием операторов ввода –
вывода и присваивания.
Краткий обзор теоретического материала. Операторы INPUT, PRINT. Работа оператора
присваивания. Выражение вида N=N+1. Блок-схема конструкции «Следование»
Примеры возможных заданий.
1. Вывести на экран приветствие: «Добрый день»
2. Вычислить периметр прямоугольника со сторонами А и В.
3. Занести в переменную Р по очереди значения некоторых вышеприведенных функций,
аргументом которых является сумма А+В.
4. Напечатайте случайное число в пределах от А до В.
5. Напечатайте значения переменной Р в формате: 3 позиции для целой части и 2 для
дробной.
3. Создание и отладка элементарной программы. Печать исходного текста. Комментарии.
Цели: отрабатывать навыки написания программ в среде программирования QBASIC,
навыки работы с функциональными клавишами среды QBASIC.
Краткий обзор теоретического материала. Оператор комментария. Набор, отладка и запуск
программы в среде программирования QBASIC.
Примеры возможных заданий.
1. Известны количество жителей (A) в государстве и площадь его территории (S).
Определите плотность населения в государстве.
2. Даны два целых числа. Найти их среднее арифметическое. Модернизируйте программу
так, чтобы на экран было выведено среднее геометрическое этих чисел.
3. Составить программу обмена значениями двух переменных.
4. Практическая работа №1 «Составление простейших программ».
Смотрите приложение.
7-11
1
1
1
Условный оператор (5 ч).
1. Условный оператор. Полная и неполная формы оператора.
Цели: познакомить учащихся с полной и сокращенной формой условного оператора.
Рассмотреть типы задач, для которых лучше использовать полную и для которых – неполную
форму ветвления.
Краткий обзор теоретического материала. Блок-схема конструкции «Ветвление».
Условный оператор. Служебные слова IF, THEN, ELSE. Работа полного условного оператора.
Работа сокращенного условного оператора.
Примеры возможных заданий.
1. Дано вещественное число. Вывести на экран его абсолютную величину (условно
принимая, что соответствующей стандартной функции нет). Полный условный оператор
не использовать.
2. Определите значение переменной x после выполнения фрагмента программы:
F=5:D=7
IF F>=D THEN X = F ELSE X = D
3. Даны три целых числа. Вывести на экран те из них, которые являются четными.
4. Известны два расстояния: одно в километрах, другое в футах (1фут=0,45 м).
Какое из расстояний меньше?
5. Составить программу вычисления значений функции
√𝑥, еслиx>0,
Y=
x 2 , если x ≤0.
1
2. Вложенные условные операторы. Логические условия.
Цели: познакомить учащихся с использованием вложенных условных операторов и сложных
(логических) условий при программировании различных задач.
Краткий обзор теоретического материала. Вложенные условные операторы. Блок – схема
вложенных условных операторов. Конструкция вложенного условного оператора. Служебные
слова IF, THEN, ELSE, END IF. Логические связки AND, OR, NOT. Программирование задач с
использованием вложенных условных операторов и сложных условий.
Примеры возможных заданий.
1. Даны три числа. Составить программу вывода на экран наибольшего из них
a) Используя вложенные условные операторы;
b) Используя последовательные условные операторы.
1
2. Выяснить, в какой координатной четверти расположен треугольник,
образованный прямой, заданной уравнением y=ax + b и осями координат.
3. Определите значение переменной x после выполнения фрагмента программы:
A = 53 : B = 14 : C = 2
IF A>=B THEN
IF A>=C THEN
X = A-B-C
ELSE
X=C-A-B
END IF
ELSE
X=B-A
END IF
4. Составьте программу для нахождения корней квадратного уравнения.
5. Определить, попадет ли точка с заданными координатами в область I (для простоты
принять, что точка не попадает на границу этой области).
y
-2
I
0
x
-3
I
3. Оператор выбора.
Цели: познакомить учащихся с использованием оператора выбора (варианта) при
программировании различных задач.
Краткий обзор теоретического материала. Блок-схема оператора варианта. Структура
оператора варианта. Служебные слова SELECT, CASE, END SELECT.
Примеры возможных заданий.
1. С клавиатуры вводится какой-либо год ХХ века. Определить, мирным ли был этот год
для России или она в то время участвовала в войне. Если год был военный, то
выяснить, какая именно тогда была война.
2. Найти остаток от деления целого выражения С=К(А+В) на 4 и вывести сообщение о
величине остатка. Если остаток равен 0, то значение переменной С оставить без
изменения, если 1 или 3 – уменьшить на величину остатка, если 2 – увеличить на
величину остатка. Новое значение С вывести на экран (оно делится на 4 без остатка).
1
12-16
4. Программирование простых и условных вычислительных алгоритмов. Вычисление
простых и условных математических выражений.
Цели: программировать различные задачи с использованием условного оператора.
Примеры возможных заданий.
1. Составить программу, которая определяет принадлежность точки с координатами (x, y)
сектору, являющемуся пересечением круга радиуса R с центром в начале координат и 1
координатной четверти.
2. Составить программу, которая в зависимости от порядкового номера дня недели (1, 2,
…, 7) выводит на экран его название (понедельник, вторник, …, воскресенье).
3. Составить программу для вычисления значения функции
-1, если x < -1,
Y=
x, если x < 1,
1, если x = 1.
1
5. Практическая работа №2 «Ветвление».
Смотрите приложение.
1
Циклы (5 ч).
1. Оператор цикла с предусловием.
Цели: познакомить учащихся с циклом с предусловием, алгоритмом его работы;
программировать задачи с использованием цикла с предусловием.
Краткий обзор теоретического материала. Блок-схема цикла с предусловием. Тело цикла.
Оператор цикла с предусловием. Служебные слова WHILE, WEND. Работа оператора цикла с
предусловием.
Примеры возможных заданий.
1. Дано натуральное число n. Посчитать количество цифр в числе.
1
2
1
3
1
1
4
2. Вычислить приближенное значение суммы 1+ + + + … . Суммирование
продолжать до тех пор, пока очередное слагаемое не станет меньше заданного числа H.
3. Сумма в P рублей положена в сберегательный банк. При этом прирост составляет M%
ежегодно. Считая, что прирост осуществляется непрерывно, написать программу,
подсчитывающую, через какой промежуток времени сумма достигнет K рублей.
2. Оператор цикла с постусловием.
Цели: познакомить учащихся с циклом с постусловием, алгоритмом его работы;
программировать задачи с использованием цикла с постусловием.
Краткий обзор теоретического материала. Блок-схема цикла с постусловием. Тело цикла.
Оператор цикла с постусловием. Служебные слова DO, LOOP, WHILE, UNTIL. Работа
оператора цикла с постусловием.
Примеры возможных заданий.
1. Вычислить приближенное значение суммы
1
1∗2
+
1
2∗3
+
1
3∗4
+ … . Суммирование
продолжать, пока очередное слагаемое (кроме первого) будет больше заданной
точности вычислений.
2. Составить программу планирования закупки товара в магазине на сумму, не
превышающую заданную величину.
3. Написать программу нахождения НОД двух натуральных чисел.
3. Оператор цикла с неизвестным числом повторений (параметром).
Цели: познакомить учащихся с циклом с параметром, алгоритмом его работы;
программировать задачи с использованием цикла с параметром.
Краткий обзор теоретического материала. Блок-схема цикла с параметром. Тело цикла.
Параметр цикла. Начальное и конечное значение параметра цикла. Шаг цикла. Оператор цикла
с параметром. Служебные слова FOR, TO, NEXT. Работа оператора цикла с параметром.
Примеры возможных заданий.
1. Вычислить:
20
∑
𝑘=1
𝑘+1
𝑘+2
1
1
2. Составьте программу вычисления первых десяти членов последовательности, заданной
формулой n-го члена: Xn = 3n -5.
3. Вычислить произведение всех двузначных нечетных чисел.
4. Определить, сколько из N заданных точек принадлежит графику Y=|X|.
4. Вложенность циклов. Программирование циклических алгоритмов.
Цели: дать понятие о вложенных циклах и особенностях их выполнения, научить
программировать задачи с использованием вложенных циклов, задачи на сочетание цикла и
условного оператора.
Краткий обзор теоретического материала. Конструкция вложенных циклов. Конструкция
сочетания цикла и условного оператора.
Примеры возможных заданий.
1. Даны натуральные числа n и k. Составить программу вычисления выражения
1k + 2k + … + nk.
2. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10
рублей, за корову – 5 рублей, за теленка – полтинник (0,5 рубля), если на 100 рублей
надо купить 100 голов скота.
3. Написать программу, которая находит и выводит на печать все четырехзначные числа
abcd, a, b, c, d – различные цифры, для которых выполняется : ab –cd = a + b + c + d.
4. Вывести на экран все целые числа от 100 до 200, кратные 3.
5. Практическая работа №3 «Циклы».
Смотрите приложение.
17-23
1
1
Массивы (7 ч).
1. Одномерные массивы.
Цели: познакомить учащихся с понятием одномерного массива, рассмотреть способы
задания одномерных массивов; учить программировать задачи с использованием одномерных
массивов.
Краткий обзор теоретического материала. Понятие массива. Понятие индекса.
Переменная с индексом. Простая переменная. Одномерные массивы. Описание массива:
DIM имя массива (n1 TO n2) AS тип элементов. Присвоение значений элементам массива.
Способы задания одномерных массивов.
Примеры возможных заданий.
1. Опишите, как организовать вывод линейного массива в строку? В столбец?
2. Заполнить массив чисел так, чтобы
a. значения элементов совпадали с их индексами;
b. значениями элементов оказались случайные числа на интервале [111, 555];
c. каждый элемент вычислялся по формуле b( i ) =
1
sin 𝑖
1−| sin 𝑖|
3. Сформировать одномерный массив из N элементов, элементы которого целые
случайные числа в пределах от 1 до 45. Напечатать элементы массива в прямом
и обратном порядке.
4. Дана последовательность Х0=6765, Х1 – неизвестно, Хk = Хk-1 + Хk-2 (k = 2, 3,
…, 20). Найти последовательность Х0, Х1, Х2, …, Х20, если известно, что Х20= 0.
Двумерные массивы.
Цели: познакомить учащихся с понятием двумерного массива, рассмотреть способы задания
двумерных массивов; учить программировать задачи с использованием двумерных массивов.
Краткий обзор теоретического материала. Понятие матрицы. Двумерные массивы.
Нумерация элементов двумерного массива. Способы описания двумерного массива. Способы
задания двумерных массивов.
Примеры возможных заданий.
1. Определить, является ли данный квадратный массив симметричным относительно
своей главной диагонали.
1
2. Заполнить массив A размером m x n в виде «змейки» (Например, если n=5,
m=5, то массив должен быть следующим:
1
2
3
4
5
10
9
8
7
6
11
12 13 14 15
20
19 18 17 16
21
22 23 24 25
).
3. Составить программу, запрашивающую координаты ферзя на шахматной доске и
показывающую поля доски, находящиеся под боем.
2. Поиск экстремальных значений величин в одномерных и двумерных массивах чисел.
Цели: программировать задачи на поиск экстремальных значений величин в одномерных и
двумерных массивах чисел.
Краткий обзор теоретического материала. Проверка на четность. Подсчет количества
элементов, отвечающих заданным условиям. Нахождение суммы, произведения и количества
элементов массива, отвечающих заданным условиям. Максимальный и минимальный
элементы.
Примеры возможных заданий.
1. Найти максимальный (минимальный) элемент одномерного (двумерного) массива, а
также его порядковый номер.
2. Посчитать количество, (сумму, произведение) отрицательных и неотрицательных
(четных, нечетных) элементов одномерного (двумерного) массива.
3. Найти количество элементов, больших некоторого заданного числа Х в каждой строке
двумерного массива (во всем массиве).
3. Перестановка элементов массива. Сортировка массива.
Цели: программировать задачи, на перестановку и сортировку элементов массива.
Краткий обзор теоретического материала. Сортировка элементов массива. Метод
«пузырька». Оператор SWAP. Перестановка элементов массива.
Примеры возможных заданий.
1
1
1. Отсортировать одномерный массив в порядке возрастания (убывания).
2. Сформировать одномерный массив из N элементов, элементы которого целые
случайные числа в пределах от 1 до 45. Переставить элементы, стоящие на
нечетных местах, с соответствующими элементами на четных местах.
3. Дан двумерный массив.
a. Поменять местами первую и третью строки.
b. Поменять местами второй и последний столбцы.
4. Слияние и отбор данных в одномерных и двумерных массивах.
Цели: программировать задачи на слияние и отбор данных (по определенному условию) в
одномерных и двумерных массивах чисел.
Краткий обзор теоретического материала. Слияние и отбор данных в одномерных и
двумерных массивах.
Примеры возможных заданий.
1. Произвести удаление (вставку) элемента одномерного массива, заданного датчиком
случайных чисел.
2. Вставить строку из нулей на место строки с номером k двумерного массива.
3. Удалить строку с номером k двумерного массива.
4. В массиве A(N, M) удалить все строки, сумма значений элементов которых
отрицательна, и вставить пред последней строкой строку, значения элементов равны 1.
5. Поиск, подбор и группировка данных.
Цели: программировать задачи на поиск, подбор и группировку данных (по определенному
условию) в одномерных и двумерных массивах чисел.
Краткий обзор теоретического материала. Поиск, подбор и группировка данных.
Примеры возможных заданий.
1. Дан массив A(N), сформированный датчиком случайных чисел на интервале (-50; 150).
1
1
Из элементов массива А, кратных 5, сформировать массив В.
2. Дан двумерный массив размером 4х5, заполненный целыми числами с клавиатуры.
Сформировать одномерный массив, каждый элемент которого равен количеству
отрицательных элементов, кратных 3 или 5, соответствующей строки.
6. Практическая работа №4 «Массивы».
Смотрите приложение.
24-27
Строковый, символьный тип данных (4 ч).
1. Строковый, символьный тип данных. Основные операции.
Цели: познакомить учащихся с основными сведениями о строковом, символьном типе
данных, с операциями над символьными величинами.
Краткий обзор теоретического материала. Основные сведения о символьных величинах.
Стандартные функции, процедуры для работы с символьными величинами: сравнение,
конкатенация, копирование, удаление, замена (вставка), длина строки, подстрока числа и
строки.
Примеры возможных заданий.
1. Распечатайте символы, соответствующие различным кодам, и одновременно
определите, какой максимальный код можно использовать.
2. Вывести слово и:
a. Напечатать его по вертикали;
b. Переставить буквы слова в обратном порядке.
3. Составить программу «простейший справочник».
4. Даны две символьные строки А и В. Определите, в какой из них больше символов и на
сколько.
2. Операции поиска и замены в символьных строках и массивах.
Цели: программировать задачи на поиск и замену элементов в символьных строках и
массивах.
Краткий обзор теоретического материала. Удаление, замена (вставка), длина строки,
подстрока числа и строки.
Примеры возможных заданий.
1. Определите, сколько раз в данном тексте встречается каждый символ (Один и тот же
символ дважды не использовать).
2. Составить программу, заменяющую в данном тексте одну подстроку на другую.
3. Реализовать на компьютере возможность автоматического исправления слова
<граматика> (правильно <грамматика> ).
3. Программирование алгоритмов обработки текста.
Цели: программировать задачи на обработку, шифровку и дешифровку текста.
Краткий обзор теоретического материала. Понятие шифровки, дешифровки текста.
Способы шифровки текста.
Примеры возможных заданий.
1. Дана строка, состоящая из нескольких слов, между словами стоит один пробел, в конце
предложения - точка. Посчитать количество слов и вывести на экран только те из них,
которые начинаются с буквы «А».
2. Составить программу устранения лишних пробелов в тексте (Лишним будем считать
каждый пробел, следующий непосредственно за пробелом).
3. Определить, является ли данная фраза палиндромом
4. Заменить в тексте все символы их кодами.
4. Практическая работа №5 «Обработка текста»
Смотрите приложение.
28-30
1
1
1
1
1
Подпрограммы (3 ч).
1. Подпрограммы (функции и процедуры). Назначение. Способы описания.
Цели: дать учащимся представление о подпрограммах и возможностях их использования.
Показать на примерах механизм реализации подпрограмм с помощью процедур и функций.
Краткий обзор теоретического материала. Понятие подпрограммы, процедуры, функции,
Описание процедуры. Оператор SUB. Описание функции. Оператор FUNCTION. Механизм
1
реализации подпрограмм с помощью процедур и функций. Обмен информацией между
основной программой и подпрограммой. Глобальные и локальные переменные.
Примеры возможных заданий.
1. Составить процедуру сложения двух чисел, вводимых с клавиатуры.
2. Упорядочить значения трех переменных a, b, c используя подпрограмму
упорядочивания двух переменных.
3. Написать функцию, подсчитывающую количество цифр целого числа. Используя ее,
определить, в каком из двух чисел больше цифр.
4. Напишите функцию для нахождения НОД двух чисел с помощью алгоритма Евклида и
используйте ее в программе для нахождения НОД уже N чисел.
2. Рекурсия.
Цели: дать учащимся представление о рекурсии и возможностях ее использования.
Краткий обзор теоретического материала. Понятие рекурсии. Рекурсивные алгоритмы.
Задачи, сводимые к рекурсивным.
Примеры возможных заданий.
1. Перевести натуральное число из десятичной системы счисления в двоичную.
2. Определить, является ли заданное натуральное число простым.
3. Вычислить факториал натурального числа.
4. Найти НОД двух натуральных чисел.
3. Практическая работа №6 «Подпрограммы»
Смотрите приложение.
31-33
34
1
1
Работа с файлами (3 ч).
1. Файлы. Текстовые файлы. Файлы с фиксированной структурой записи.
Цели: дать учащимся основные сведения о файлах и их классификации; познакомить с
операциями над файлами; программировать задачи с использованием файлов.
Краткий обзор теоретического материала. Понятие файла. Классификация файлов.
Операции над файлами: открытие файла, чтение и запись обрабатываемых данных, закрытие
файлов.
Примеры возможных заданий.
1. Открыть файл f86.txt и сохранить в нем N целых чисел в пределах от 65 до 90:
a. Считайте информацию из данного файла;
b. Найдите сумму элементов, находящихся в файле f86.txt.
2. Создать файл, элементы которого вычисляются по формуле M=I*I+4*I; I=1,2, … N.
3. Создать текстовый файл, содержащий только целые числа, в каждой строке может быть
несколько чисел, которые разделяются пробелами. Вывести на экран все числа с учетом
разбиения на строки и подсчитать количество элементов в каждой строке.
4. Дан список данных о группе баскетболистов с указанием имени, роста, числа забитых
мячей. Создайте файл, содержащий информацию о баскетболистах. Определите число
записей в файле.
2. Процедуры и функции для работы с файлами.
Цели: дать учащимся основные сведения о процедурах и функциях работы с файлами;
программировать задачи с использованием файлов.
Краткий обзор теоретического материала. Файл произвольного доступа. Операторы и
функции работы с файлом произвольного доступа.
Примеры возможных заданий.
1. Создайте файл прямого доступа, элементами которого являются целые случайные
числа в диапазоне от -35 до 30. Число элементов в файле нечетно. Установив указатель
позиции на первый, средний и последний элемент, считайте данные из файла и найдите
их сумму.
2. Создать файл, элементами которого являются целые случайные числа. Упорядочить по
убыванию (возрастанию) элементы файла.
3. Практическая работа №7 «Работа с файлами».
Смотрите приложение.
1
Повторение, решение задач (1 ч).
1
Цели: повторить основные разделы программирования; решать задачи.
1
1
Примечание. На данном уроке можно разобрать олимпиадные задачи по программированию.
Примеры возможных заданий.
1. Вася и Петя учатся в школе со следующим расписанием занятий: уроки начинаются в 8:30,
каждый урок длится 45 минут, а между уроками есть пятнадцатиминутная перемена.
Сейчас идет K-й урок по счету и Вася, уставший после напряженного учебного дня,
поскорее хочет домой и спрашивает у Пети, сколько времени. Петя отвечает «Т минут»,
если с начала урока прошло Т минут и «минус Т минут», если до конца урока осталось Т
минут. Составьте программу, которая по известному номеру урока, а также ответу Пети
точно определит, сколько сейчас времени. (С клавиатуры вводится два числа через пробел–
К и Т (1 ≤ К ≤ 6, -45≤ Т ≤ 45), где К – номер текущего урока, Т – время, которое назвал
Петя.)
2. Один из самых простых шифров – это шифр Цезаря. Его суть – скачек через две буквы
алфавита в направлении от его начала к его концу: любая k-я буква, кроме последней и
предпоследней, заменяется на (k+2)-ю букву. Предпоследняя буква заменяется на первую, а
последняя – на вторую букву.
Составить программу зашифровки и расшифровки русского текста шифром Цезаря.
3. Бесконечная в обе стороны последовательность чисел fi, в которой любой целый элемент
fi+2 вычисляется, используя следующее условие fi+2=fi+1+fi.
Пусть заданы два различных члена этой последовательности f i и fj с
соответствующими номерами i и j, а также некое целое число n. Необходимо восстановить
элемент этой последовательности fn, соответствующий номеру n.
4. Маленький мальчик взял лист бумаги NxN клеток и нарисовал на нем замкнутую mзвенную ломанную с вершинами в узлах клеток. После этого он выписал квадраты длин
звеньев в порядке их обхода по ломанной и выкинул рисунок.
Определить, существует ли хотя бы одна ломанная, соответствующая данным,
записанным мальчиком
1<=n<=15
3<=m<=20
ИТОГО
34
Организация текущего и промежуточного контроля знаний.
№
1
2
3
№
1
2
3
4
5
6
7
Творческие проекты (отчеты).
Название
Творческий проект (отчет) по теме «История языков программирования».
Творческий проект (отчет) «Угадай пословицу».
Цель. С помощью известных алгоритмических конструкций и изученных операторов языка Basic
закодировать русские народные пословицы.
Творческий проект (отчет) одной задачи.
Например, творческий проект (отчет) «Нахождение наибольшей из трех величин».
Цель. Привести несколько способов решения одной задачи (используя последовательные условные
операторы, используя логические условные операторы, используя оператор безусловного перехода
и др.)
Практические работы.
Название
Практическая работа №1 «Составление простейших программ».
Практическая работа №2 «Ветвление».
Практическая работа №3 «Циклы».
Практическая работа №4 «Массивы».
Практическая работа №5 «Обработка текста»
Практическая работа №6 «Подпрограммы»
Практическая работа №7 «Работа с файлами».
Рекомендации для проведения практической работы.
Каждая практическая работа состоит из двух частей: теоретической и практической.
Теоретическая часть включает в себя пример разобранной задачи в изучаемом языке программирования и
вопросы по данной теме, на которые ученик должен ответить, тем самым повторив основные моменты темы.
При выполнении практической части учащимся предлагается решить одну или несколько (по желанию)
разноуровневых задач. Уровень 1 соответствует оценке «3», уровень 2 соответствует оценке «4», уровень 3
соответствует оценке «5».
Список рекомендуемой литературы
1. Чернов А.А. Информатика. Конспекты уроков. 9-11 классы. Практикум по программированию. Волгоград:
Учитель, 2006г.
2. В.С.Новичков, А.Н.Пылькин. Начала программирования на языке QBASIC.М.: Горячая линия-Телеком, 2007 год.
3. Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. 7-11 классы. Москва «1сентября»,
2001 год.
4. Босова Л.Л., Розова В.М., Семенова Е.Е. Разноуровневые дидактические материалы по информатике. Москва
«Образование и информатика», 2001 год.
5. Житкова О.А., Кудрявцева Е.К. Тематический контроль по информатике. Бейсик и Паскаль в вопросах и задачах.
Рабочая тетрадь 1, 2. «Интеллект – центр» Москва, 2002 г.
6. Турчак Л.И. Основы численных методов: Учеб. пособие.- М.: Наука; Гл. ред. физ.-мат. лит., 1987.- 320 с.
7. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль.- Томск: МП “Раско”, 1991.- 272
с.
8. Тынкевич М.А. Численные методы анализа: Учеб. пособие.- Кемерово, 1997.- 123 с.
9. Абрамов С.А. Гнездилов Г.Г. и др. «Задачи по программированию». М.: НАУКА,1988г.
10. Филиппов С.В. «Занимательный Бейсик», М.: Издательство ЭКОНОМ, 1998 г.
11. Мельникова О.И. Бенюшкина А.Ю. «Начала программирования на языке «Бейсик» для персональных ЭВМ»
12. Зельдер Г.А. «Программируем на языке QUICK BASIC 4.5», М.: ABF, 1997г.
Приложение.
Практическая работа №1.
Составление простейших программ.
Цель. Программировать задачи с использованием операторов ввода, вывода и присваивания.
1. Пример. Составить программу вычисления площади круга по известному радиусу.
QBASIC
PASCAL
INPUT «Ведите радиус круга R»; R
S=3.14*R^2
PRINT «Площадь круга равна»; S
program pl;
const k=3.14;
var r,s:real;
begin
readln(r);
s:=k*sqr(r);
writeln(s);
end.
2.Вопросы.
1. Как оформляется оператор вывода на экран?
2. Что можно указать в качестве элементов списка вывода? Какой символ используется для разделения элементов
списка вывода?
3. Что будет выведено на экран, если в списке вывода записано:
 Число;
 Имя величины;
 Текст в кавычках;
 Арифметическое выражение?
4. Как оформляется оператор ввода?
5. Что можно указать в качестве элементов списка ввода?
6. Как работает оператор ввода (что происходит при его выполнении)?
7. Как оформляется оператор присваивания? Как он работает (что происходит при его выполнении)?
8. Указать значения величин A и B после выполнения следующих операторов присваивания:
A=0
B=-9.99
B=A
A=b
9. Записать по правилам изучаемого языка программирования:
 5cosy
 -5√𝑥+√𝑦
 sinαcosβ+cosαsinβ
 mv2+ex
3.Выполните индивидуальное задание.
Индивидуальные задания.
Уровень 1.
1. Длины сторон прямоугольника равны А и В. Найдите его площадь, периметр, длину диагонали.
2. Градусная мера угла равна G, найдите его радианную меру R.
3. Вычислить и напечатать дискриминант квадратного уравнения.
4. Найти площадь кольца, если его толщина Т - см, а диаметр внутреннего круга – R см.
5. Даны радиус основания цилиндра и высота цилиндра. Написать программу вычисления площади боковой
поверхности и площади полной поверхности цилиндра.
6. Написать программу вычисления площади трапеции, если известны длины ее оснований и высота.
7. Составить программу вычисления значения функции y=7x2 - 3x + 6 при любом значении x.
8. Составить программу вычисления значения функции x=12a2 + 7a - 16 при любом значении a.
9. Даны катеты прямоугольного треугольника. Найти его периметр.
10. Даны основания и высота равнобедренной трапеции. Найти ее периметр.
11. Дан радиус окружности. Найти длину окружности и площадь круга.
12. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.
Уровень 2.
1. По известному периметру равностороннего треугольника определить его площадь.
2. По известным диагоналям ромба вычислить и напечатать его периметр.
3. Даны периметр основания правильной пирамиды, и высота ее боковой грани. Написать программу вычисления
площади боковой поверхности правильной пирамиды.
4.
5.
6.
7.
8.
9.
10.
11.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Вычислить значение выражения, предварительно задав значения x, y. (sinx)-3y2√2𝑥2𝑦 − 2.
Вычислить значение выражения, предварительно задав значения переменных:
Вычислить значение выражения, предварительно задав значения переменных:
𝑥
Вычислить значение выражения, предварительно задав значение x: y=2sin3x + 4cos( ).
3
Известны объем и масса тела. Определить плотность материала этого тела.
Даны два целых числа. Найдите их среднее арифметическое и среднее геометрическое.
Даны два числа. Найти среднее арифметическое и среднее геометрическое их модулей.
Даны длины сторон прямоугольника. Найти его периметр и длину диагонали.
Уровень 3.
Дано расстояние в сантиметрах. Найти число полных метров в нем.
Дана масса в килограммах. Найти число полных центнеров в нем.
Дана масса в килограммах. Найти число полных тонн в ней.
Дано расстояние в метрах. Найти число полных километров в нем.
Даны два числа. Найти их сумму, разность, произведение, а также частное от деления первого числа на второе.
Даны длины сторон прямоугольного параллелепипеда. Найти его объем и площадь боковой поверхности.
Известны координаты двух точек на плоскости. Составить программу вычисления расстояния между ними.
Даны основания трапеции и угол при большем основании. Найти площадь трапеции.
Составить программу обмена значениями двух переменных величин.
Составить программу обмена значениями трех переменных величин a,b,c по следующей схеме:
 B присвоить значение c, a присвоить значение b, c присвоить значение a.
Составить программу обмена значениями трех переменных величин a,b,c по следующей схеме:
 B присвоить значение a, c присвоить значение b, a присвоить значение c.
Практическая работа №2.
Ветвление.
Цель. Программировать задачи с использованием операторов условного и безусловного перехода.
1.Пример. Составить программу вычисления значения функции по формуле
√𝑥, если х≥0
Y= х2, если х<0
QBASIC
PASCAL
INPUT “Введите численное значение Х”; X
program fn;
IF X>=0 THEN Y=SQR(X) ELSE Y=X^2
var x,y: real;
PRINT “Значение функции равно”;Y
begin
readln(x);
if x>0 then begin
y:=sqrt(x);
write(y);
end;
else begin
y:=sqr(x);
write(y);
end;
end.
2.Вопросы.
 Какие виды операторов условного перехода вы знаете?
 В каких случаях в программе используется полный оператор условного перехода? Как он оформляется? Как он
работает (что происходит при его выполнении)? Нарисовать графическую схему выполнения.
 В каких случаях используют неполный оператор условного перехода? Как он оформляется? Как он работает
(что происходит при его выполнении)? Нарисовать графическую схему выполнения.
 В каких случаях в программе используется вложенный условный оператор? Как он оформляется?
 В каких случаях в программе используется оператор варианта (выбора)? Как он работает (что происходит при
его выполнении)? Нарисовать графическую схему выполнения.
 Исправить ошибки.
QBASIC
INPUT A,B,C
D:=A+B+C
IF D>0 THEN PRINT √𝐷 : GOTO 50
PRINT “√D= ”;D
PASCAL
program fn;
begin
d=a+b+c
if d>0 then
writeln(√d);
else
write(“d=”);d
end.
3. Выполните индивидуальное задание.
1.
2.
3.
4.
Индивидуальные задания.
Уровень 1.
Увеличить число Х на 10, если оно положительное, во всех остальных случаях уменьшить его на 10.
Увеличить число Х на 5, если оно положительное.
Написать программу, определяющую, является ли произвольное целое число Х четным.
Написать программу, определяющую, является ли целое число N делителем целого числа Х.
1
Написать программу, вычисляющую значение функции Y = .1−𝑎+𝑏 для произвольных значений аргументов.
5. Написать программу, определяющую, как соотносятся между собой два произвольных числа А и В.
6. Написать программу, определяющую по длинам сторон А,В и С, является ли треугольник равнобедренным.
7. Группу детей, приехавших в лагерь отдыха, распределяют по отрядам в соответствии с возрастом:
С 6 до 7 лет – 1 отряд;
С 7 до 9 лет – 2 отряд;
С 9 до 11 лет – 3 отряд;
С 11 до 13 лет - 4 отряд;
С 13 до 15 лет – 5 отряд.
8.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Написать программу, которая позволяет каждому приехавшему самому определить свой отряд.
Продумать сообщение в случае, когда приехавшие по возрасту не подходят ни в один из отрядов: малыши (< 6 лет)
и взрослые (> 15 лет).
Решить квадратное уравнение ax2+bx+c=0.
Уровень 2.
Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?
Даны две точки в прямоугольной системе координат. Написать программу, определяющую, которая из точек
находится ближе к началу координат.
Даны два различных вещественных числа А и В. Написать программу возведения наименьшего из чисел в квадрат,
наибольшего - в куб и нахождения среднего арифметического полученных значений.
Ракета запускается из точки на экваторе Земли в космос со скоростью v км/ч в направлении движения Земли. Каков
будет результат этого запуска в зависимости от скорости v?
Даны три вещественные переменные А, В, С. Написать программу, определяющую среднее геометрическое этих
переменных, если все они отличны от нуля, и их среднее арифметическое в противном случае.
Дана окружность радиуса R с центром в начале координат. Написать программу, определяющую, лежит ли точка с
координатами (X,Y) внутри окружности, на окружности или вне окружности.
Написать программу, определяющую положение точки относительно прямой y=ax+b.
За весну Обломов похудел на p1 %, за лето поправился на p2%, за осень похудел на p3%, за зиму поправился на
p4%. Написать программу, определяющую, похудел или поправился за год Обломов.
Для произвольного числа А написать программу, возводящую его в квадрат, если число отрицательное;
извлекающую из числа А квадратный корень, если положительное; оставляющую А без изменения, если А=0.
Фирма осуществляет набор сотрудников. Условия приема требуют не менее 3 лет рабочего стажа и возраст не
более 35 лет. Написать программу, проверяющую, удовлетворяет ли кандидат этим требованиям.
Написать программу, выводящую на экран компьютера сообщение «Да», если точка Х принадлежит отрезку [А; В],
и «Нет» в противном случае.
Решить квадратное уравнение ax2+bx+c=0.
Уровень 3.
1. Составить программу для вычисления значения функции
-1, если х< -1,
Y=
x, если х<1,
1, если х=1.
2. Составить программу для вычисления значения функции Z(a)
1, если a> 0,
Z=
0, если a=0,
-1, если a<0.
3. Составить программу для вычисления значения функции f(x)
0, если х≤0,
f=
x, если 0<х≤1,
x2, в остальных случаях.
4. Составить программу для вычисления значения функции f(y)
2, если y>2,
f=
0, если 0<y≤2,
-3y, в остальных случаях.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Написать программу нахождения максимального из трех величин.
Написать программу нахождения минимального их трех величин.
Составить программу нахождения суммы двух наибольших из трех различных чисел.
Составить программу нахождения произведения двух наименьших из трех различных чисел.
Даны три тройки вещественных чисел. В каждой тройке все числа различные. Найти среднее арифметическое
средних чисел каждой тройки (средним назовем такое число в тройке, которое больше наименьшего из чисел
данной тройки, но меньше наибольшего).
Даны четыре целых числа. Определить, сколько из них четных.
Даны четыре вещественных числа. Определить, сумму тех чисел, которые больше пяти.
Даны четыре вещественных числа. Определить, сколько из них отрицательных.
Даны четыре целых числа. Найти произведение чисел, отличных от нуля.
Практическая работа №3.
Циклы.
Цели. Программировать задачи с использованием повторений (циклов).
1.Пример. Составить программу вычисления суммы натуральных четных чисел от 2 до 30.
QBASIC
PASCAL
S=0
FOR I=2 TO 30 STEP 2
S=S+I
NEXT I
PRINT S
program summa;
var s,i: integer;
begin
s:=0;
for i:=2 to 30 step 2 do
s:=s+i;
writeln(‘s=’,s);
end.
2.Вопросы.
 В каких случаях используется оператор цикла с параметром? Как он оформляется? Как он работает (что
происходит при его выполнении)? Нарисовать графическую схему выполнения.
 Что такое тело цикла?
 Может ли тело цикла с параметром не выполняться ни разу?
 Как должен быть оформлен оператор цикла с параметром, чтобы тело цикла выполнялось при уменьшающихся
значениях параметра цикла? Как он будет работать (что будет происходить при его выполнении)? Нарисовать
графическую схему выполнения.
 Можно ли в теле цикла с параметром не использовать величину – параметр цикла?
 В программировании существует правило: нельзя изменять параметр цикла в теле цикла. Приведите примеры,
когда изменение параметра цикла приводит к его бесконечному выполнению.
 В каких случаях используются операторы цикла с условием?
 В каких случаях используется оператор цикла с предусловием? Как он оформляется? Как он работает (что
происходит при его выполнении)? Нарисовать графическую схему выполнения.
 Может ли тело оператора цикла с предусловием:
А) не выполняться ни разу;
Б) выполняться бесконечное число раз (или до тех пор, когда пользователь прервет его выполнение)?
 В каких случаях используется оператор цикла с постусловием? Как он оформляется? Как он работает (что
происходит при его выполнении)? Нарисовать графическую схему выполнения.
 Может ли тело оператора цикла с постусловием:
А) не выполняться ни разу;
Б) выполняться бесконечное число раз (или до тех пор, когда пользователь прервет его выполнение)?
 Всегда ли можно вместо оператора цикла с параметром использовать оператор цикла с предусловием? А
наоборот?
 Всегда ли можно вместо оператора цикла с параметром использовать оператор цикла с постусловием? А
наоборот?
 В программе написан бесконечный цикл с условием (с предусловием или постусловием).
Индивидуальные задания.
Циклы.
1 уровень.
1. Составить программу для вычисления суммы квадратов первых 100 членов натурального ряда.
2. Составить программу, вычисляющую факториал числа.
3. Составить программу, которая вычисляет сумму N членов арифметической прогрессии по первому члену
прогрессии и ее разности (знаменателю);
4. Население города N увеличивается на 3% ежегодно. В текущем году оно составляет 40000 человек. Вывести
предполагаемую численность населения города в каждый из ближайших 5 лет.
5. Составить программу, которая вычисляет сумму N членов арифметической прогрессии по любым двум
последовательным членам прогрессии, номера которых известны.
6. Каждый будний день недели рыбак ходил ловить рыбу. Сколько он поймал в среднем рыб, если известен
ежедневный улов?
7. Напечатать ряд из повторяющихся чисел 20 в виде:
2020202020202020202020202020.
8. Напечатать «столбиком» все целые числа от 20 до 35.
9. Напечатать «столбиком» квадраты всех целых чисел от 10 до с (значение с вводится с клавиатуры; с≥10).
10. Напечатать «столбиком» третьи степени всех целых чисел от с до 50 (значение с вводится с клавиатуры; с≤50).
11. Напечатать «столбиком» все целые числа от а до с (значение а и с вводится с клавиатуры; с≥а).
12. Напечатать числа следующим образом
10
11
12
25
10.4
11.4
12.4
…
25.4
Уровень 2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.
2.
3.
4.
5.
6.
7.
8.
Написать программу, которая распечатывает любой из столбиков таблицы умножения.
Составить программу, вычисляющую сумму N членов арифметической прогрессии по любым двум ее членам,
номера которых известны.
Составить программу, вычисляющую сумму N членов арифметической прогрессии по любому члену прогрессии,
номер которого известен, и разности (знаменателю) прогрессии.
Каждая бактерия делится на две в течение 1 минуты. В начальный момент имеется 1 бактерия. Сколько их станет
через 10 минут?
Одна штука некоторого товара стоит 20,4 руб. Напечатать таблицу стоимости 2, 3, …, 20 штук этого товара.
Напечатать таблицу соответствия между весом в фунтах и весом в килограммах для значений 1, 2, …,10 фунтов
(1фунт = 453 г).
Напечатать таблицу соответствия расстояний в дюймах расстояниям в сантиметрах для значений 10, 11, …, 22
дюйма (1дюйм =25,4 мм).
Считая, что Земля - идеальная сфера с радиусом 6350 км, определить расстояние до линии горизонта от точки с
высотой над Землей, равной 1, 2, …, 10км.
Напечатать таблицу перевода 1, 2, …, 20 долларов США в рубли по текущему курсу (значение курса вводится с
клавиатуры).
Вывести «столбиком» значения sin0,1, sin0,2, …, sin1,1.
Вывести «столбиком» значения √0,1, √0,2, …, √0,9.
Напечатать таблицу стоимости 50, 100, 150, …, 1000 г сыра (стоимость 1кг сыра вводится с клавиатуры).
Напечатать таблицу стоимости 100, 200, …, 1000 г конфет (стоимость 1кг конфет вводится с клавиатуры).
Вывести «столбиком» следующие числа: 2,1, 2,2, 2,3, …, 2,8.
Уровень 3.
В течение двух недель человек заключает пари на скачках. В первый день он делает ставку в 1 фунт и
проигрывает. Во второй день, чтобы возместить свой проигрыш, он делает ставку в 2 фунта, однако снова
проигрывает. На третий день он ставит 3 фунта, но опять проигрывает. Он упрямо продолжает увеличивать на 1
фунт свою ставку, но продолжает проигрывать. Написать программу, выводящую на экран сумму денег,
проигранную этим человеком к концу второй недели.
В текущем месяце бригада в каждый последующий день работы выпускала на три изделия больше, чем в
предыдущий. В первый день было выпущено 42 изделия, что составляло 67% дневной нормы. В месяце 26
рабочих дней. Сумеет ли бригада выполнить месячную норму?
Приближенно можно считать, что скорость охлаждения горячего чая, налитого в стакан, пропорциональна
разности между его температурой и температурой воздуха – за 1 минуту температура снижается на 3% от
разности этих температур. Составить программу, реализующую эти вычисления и выводящую на экран
температуру чая по истечении каждого из N промежутков времени по 1 минуте каждый. Начальная температура
воздуха – 200С, начальная температура чая – 1000С.
Резервуар наполнен 100л водного раствора, содержащего 5 кг растворенного сахара. Приток воды в сосуд
составляет 6 л в минуту, а расход смеси из сосуда – 5л в минуту. Концентрация поддерживается равномерной по
средствам помешивания. Написать программу, определяющую количество сахара, которое будет содержаться в
резервуаре через 10 минут.
В некотором году (назовем его условно первым) на участке в 100 гектаров средняя урожайность ячменя составила
20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить:
 урожайность за второй , третий, …, восьмой год;
 площадь участка в четвертый, пятый, …, седьмой год;
 какой урожай будет собран за первые шесть лет.
Определить суммарный объем в литрах 12 вложенных друг в друга шаров со стенками толщиной 5 мм.
Внутренний диаметр внутреннего шара равен 10 см. Принять, что шары вкладываются друг в друга без зазоров.
Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на
2% от имеющейся суммы. Определить:
 Прирост суммы вклада за первый, второй, …, десятый месяц;
 Сумму вклада через три, четыре, …, двенадцать месяцев.
Одноклеточная амеба каждые три часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9, …, 24
часа, если первоначально бала одна амеба.
Вычислить сумму √2+√2+…+√2 (n слагаемых).
10.
11.
12.
13.
14.
15.
16.
Вычислить сумму √3+√6+…+√3(𝑛 − 1) + √3𝑛.
Известен возраст (количество лет, например, 14,5 лет) каждого ученика двух классов. Определить средний
возраст учеников каждого класса. В каждом классе учатся 20 человек.
Известно количество осадков, выпавших за каждый день января и марта. Определить среднее количество осадков
за каждый месяц.
В области 10 районов. Заданы площади, засеваемые пшеницей (в гектарах), и средняя урожайность (в центнерах с
гектара) в каждом районе. Определить количество пшеницы, собранное в области, и среднюю урожайность по
области.
Известны оценки по физике каждого из 20 учеников класса. Определить среднюю оценку по классу.
Известны оценки ученика по 10 предметам. Определить среднюю оценку.
Последовательность чисел Фибоначчи образуется так: первый и второй члены последовательности равны 1,
каждый следующий равен сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, …). Дано натуральное число n (n≥3).
a.
найти k-й член последовательности Фибоначчи.
b.
получить первые n членов последовательности Фибоначчи.
Практическая работа №4.
Массивы.
Цели. Программировать задачи с использованием одномерных и двумерных массивов.
1.Пример 1. Найти сумму элементов одномерного массива.
QBASIC
PASCAL
INPUT N,K
DIM A(N)
FOR I=1 TO N
A(I)=INT(2*K*RND(1) – K)
PRINT A(I);
NEXT I
S=0
FOR I=1 TO N
S=S+A(I)
NEXT I
PRINT “Сумма элементов =”; S
progpam summa;
var c:=array [1:1000] of integer;
i,n : integer;
s : integer;
begin
write(‘Введите размер массива’);
readln(n);
for i:=1 to n do
c[i]:=random(100);
s:=0
for i:=1 to n do
s:=s+c[i];
writeln(‘’,s);
repeat until keypressed;
end.
Пример 2. Найти минимальный элемент двумерного массива.
QBASIC
PASCAL
INPUT N,K,M
DIM A(N,M)
FOR I=1 TO N
FOR J=1 TO M
A(I,J)=INT(2*K*RND(1)-K)
PRINT A(I,J);
NEXT J
PRINT
NEXT I
MIN=A(1,1)
FOR I=1 TO N
FOR J=1 TO M
IF A(I,J)<MIN THEN MIN=A(I,J)
NEXT J
NEXT I
PRINT “Минимальный элемент =”; MIN
program minimum;
var a:array [1:50;1:50] of integer;
i, j, n1, n2: integer;
min: integer;
begin
write(‘Сколько строк в массиве?’);
read(n1);
write(‘Сколько столбцов в массиве?’);
read(n2);
randomize;
for i:=1 to n1 do
for j:=1 to n2 do
begin
a[i,j]:=random(100);
clrscr;
end;
min:=a[1,1];
for i:=1 to n1 do
for j:=1 to n2 do
if a[i,j]<min then
min:=a[i,j[;
writeln;
writeln (‘Минимальный элемент =’);
repeat until keypressed;
end.
2.Вопросы.



Что такое одномерный массив? Для чего используются одномерные массивы? Как они описываются?
Как в программе использовать значение конкретного элемента одномерного массива?
Как называется номер элемента одномерного массива?






Как можно заполнить одномерный массив?
Для чего в программах используются двумерные массивы? Как они описываются?
Сколько индексов характеризуют конкретный элемент двумерного массива?
Как можно заполнить двумерный массив?
Какую структуру данных описывает двумерный массив?
Какой индекс двумерного массива изменяется быстрее при последовательном размещении массива в
оперативной памяти?
3.Выполните индивидуальное задание.
Индивидуальные задания.
Уровень 1.
1. Найти все элементы массива целых чисел А(20), меньшие 0.
2. Найти все элементы массива целых чисел В(к), удовлетворяющие условию: остаток от деления на 5 равен 3.
3. Найти все элементы массива целых чисел А(к), большие заданного числа.
4. Найти номера элементов массива целых чисел А(50), меньшие заданного числа.
5. Найти количество элементов массива целых чисел С(к), меньше заданного числа.
6. Найти количество элементов массива целых чисел С(40), больших квадрата первого элемента этого массива. Если
таких элементов нет, выдать сообщение «поиск неудачен».
7. Найти и выдать на печать номера элементов массива целых чисел В(к), которые больше первого, но меньше 4-го
элементов массива. (Если таких элементов нет, выдать сообщение «таких элементов нет»).
8. Найти и выдать на печать все элементы линейного массива целых чисел С(к), которые больше среднего
арифметического элементов массива и их номера.
9. Найти все элементы линейного массива целых чисел В(к), которые делятся на 5 (кратны 5).
10. Найти все нечетные элементы массива целых чисел В(к).
11. Найти элементы массива целых чисел С(к), которые делятся на 5 и на 8 (одновременно).
12. Найти сумму четных элементов массива целых чисел.
13. Найти произведение элементов массива целых чисел, которые кратны 9.
14. Найти сумму элементов массива вещественных чисел, имеющие нечетные номера.
15. Найти сумму наибольшего и наименьшего элементов массива вещественных чисел В(к).
16. Найти сумму всех элементов массива целых чисел, удовлетворяющих условию: остаток от деления на 2 равен 3.
Уровень 2.
1. В линейном массиве целых чисел В(25) заменить все элементы, меньшие 0, на квадрат этих элементов.
2. В линейном массиве вещественных чисел А(к) заменить все элементы, большие 10, на число С.
3. В линейном массиве целых чисел В(к) заменить все элементы кратные 5, на их удвоенное значение.
4. В линейном массиве целых чисел В(50) заменить все элементы, кратные введенному числу С, на их квадраты.
5. В линейном массиве целых чисел В(40) заменить первые 10 элементов по формуле В(к)=В(к)*3.
6. В линейном массиве целых чисел А(к) заменить все элементы, большие второго и меньшие пятого, на сумму
второго и пятого.
7. Переписать линейный массив вещественных чисел В(30) в обратном порядке.
8. В линейном массиве целых чисел В(к) поменять местами все четные по номеру элементы с нечетными по номеру
элементами.
9. Задан массив. Создать два массива, в одном из которых находятся все четные по номеру элементы, в другом
нечетные по номеру элементы массива.
10. Заданы два массива. Создать один массив, в котором вначале идут четные элементы, затем нечетные.
11. Из заданного массива создать три массива, в одном из которых содержатся элементы кратные 2, в другом кратные
5, в третьем оставшиеся элементы.
12. Заданы два массива. Создать один массив, в котором все элементы расположены в порядке возрастания.
13. В массиве хранится информация о количестве страниц в каждой их 100 книг. Все страницы имеют одинаковую
толщину. Определить количество страниц в самой толстой книге.
14. В массиве хранится информация о стоимости каждой их 50 марок легковых автомобилей. Определить, сколько
стоит самый дорогой автомобиль.
15. В массиве хранится информация о стоимости 1 кг 20 видов конфет. Определить, сколько стоят самые дешевые
конфеты.
16. В массиве хранится информация о росте 25 человек. Определить, на сколько рост самого высокого человека
превышает рост самого низкого.
Уровень 3.
1. Составить программу, заменяющую значение любого элемента двумерного массива на число А.
2. Дан двумерный массив. Вывести на экран элемент, расположенный в правом верхнем и левом нижнем углу
массива.
3. Дан двумерный массив. Составить программу вывода на экран любого элемента массива, если пользователь задает
в какой строке и в каком столбце этот элемент находится.
4. Заменить значения всех элементов главной диагонали массива на нулевые.
5. Определить сумму элементов главной диагонали массива.
6. Дан двумерный массив. Составить программу расчета сумы двух любых элементов третьего столбца массива.
7. В двумерном массиве хранится информация о количестве студентов в той или иной группе каждого курса
института с первого по пятый (в первой строке – информация о группах первого курса, во второй – второго и т.д.)
На каждом курсе имеется 8 групп. Составить программу для расчета общего числа студентов на любом курсе.
8. В двумерном массиве хранится информация о зарплате 20 человек за каждый месяц года (первого человека – в
первой строке, второго – во второй и т.д.) Составить программу для расчета общей зарплаты, полученной за год
любым человеком, информация о зарплате которого представлена в массиве.
9. Фирма имеет 10 магазинов. Информация о доходе каждого магазина за каждый месяц года находится в двумерном
массиве (первого магазина – в первой строке, второго – во второй и т. д.). Составить программу для расчета
среднемесячного дохода любого магазина.
10. В зрительном зале 23 ряда, в каждом из них 40 мест (кресел). Информация о проданных билетах хранится в
двумерном массиве, номера строк которых соответствуют номерам рядов, а номера столбцов – номерам мест. Если
биле6т на то или иное место продан, то соответствующий элемент массива имеет значение 1, в противном случае –
0. Определить имеются ли свободные места в первом ряду.
11. Три группы студентов, в каждой из которых 20 человек, в сессию сдавали по 3 экзамена. Сведения об оценках
каждой группы хранятся в двумерных массивах. Определить лучшую по средней оценке группу.
Практическая работа №5.
Символьные переменные.
Цель. Работать с текстом в языке программирования.
1.Пример 1. Определить, сколько раз в данном тексте встречается буква «А»
QBASIC
PASCAL
INPUT W$
program zadacha;
S=0
var s: string[20];
FOR I=1 TO LEN(W$)
i,k: integer;
IF MID$(W$,I,1)=”A” THEN S=S+1
begin
NEXT I
writeln(‘Введите слово. Количество символов
PRINT S
в нем не должно превышать 20’);
read(s);
k:=0:
for i:=1 to 20 do
if s[i]=’A’ then k:=k+1;
writeln (‘буква А встречается’, k, ‘раз’)
end.
Пример 2. В тексте заменить букву «А» на букву «Я».
QBASIC
PASCAL
INPUT W$
program zadacha;
FOR I=1 TO LEN(W$)
var s: string[20];
k: string[1];
g: string[1];
IF MID$(W$,I,1)=”A” THEN W$=MID$(W$,1,I-1)+
i:integer;
“Я”+MID$(W$,I+1,LEN(W$)-I)
begin
NEXT I
writeln(‘Введите слово. Количество
PRINT “НОВОЕ СЛОВО”; W$
символов в нем не должно
превышать 20’);
read(s);
k:=’A’
g:=’Я’
for i:=1 to 20 do
if s[i]=k then s[i]:=g
for i:=1 to 20 do write(s[i])
end.
2.Вопросы.
 Что такое символьная (или строковая) переменная?
 Что собой представляет символьное выражение?
 Какие способы задания текста вы знаете?
 При помощи каких операторов можно задать значения символьных переменных?
 Какие операции определены для символьных переменных?
 Как определить длину строки?
 Какие стандартные функции определены для символьных переменных?
 Что напечатается в результате выполнения программы?
QBASIC
A$=”ФУНКЦИЯ”
L=LEN(A$)+4
PRINT L
PASCAL
a:=’функция’;
m:=length(a)+4;
writeln(m);
3.Выполните индивидуальное задание.
Индивидуальные задания.
Обработка текста.
Уровень 1.
1. Составьте программу замены буквы «А» на букву «Б» и наоборот.
2. Составьте программу подсчета суммарного числа букв «А» и «Б» в данном тексте.
3. Используя функции символьных переменных, написать программу, которая из слова ИНФОРМАТИКА составит
слово КИНО.
4. Используя функции символьных переменных, написать программу, которая из текста «Я очень хорошая
вычислительная машина», получила бы текст «Я хорошая машина».
5. Используя функции символьных переменных, написать программу получения из слова ЖЕЛЕЗНОДОРОЖНИК
слов ДОНОР, ЖЕЗЛ, КОЛЕНО, КРОКОДИЛ.
6. Используя функции символьных переменных, написать программу составления из слов ТЕРРИКОН, ОПЕРА,
СЛАЙД слова ТРИОД.
7. Используя функции символьных переменных, написать слова, которые можно получить из слова
ИНДУСТРИАЛИЗАЦИЯ.
8. Используя функции символьных переменных, определить, с какой позиции слово ФОРМА входит в слово
ИНФОРМАЦИЯ.
9. Дано слово с ошибками: «малако». Исправить в нем ошибки, используя операцию склеивания, вывести на печать
правильный вариант.
10. Определить, какое из двух исходных слов длиннее и насколько. Полученные результаты вывести на печать.
11. Написать программу, подсчитывающую число повторений произвольного символа в заданном предложении.
Уровень 2.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Составьте программу для замены в данном слове всюду части ДЕТЕКТИВ на часть РОМАН.
Составьте программу, вычеркивающую все пробелы из данного текста.
Составьте программу для замены в данном слове всюду части ДОМ на часть РОД.
Составьте программу, определяющую имеется ли в данном слове часть, равная заданному слову.
Составьте программу, проверяющую, является ли частью данного слова слово «СОК», ответ должен быть «да» или
«нет».
Написать программу, которая выдает номер позиции заданной строки, в которой первый раз встречается буква Л.
Если такой буквы нет, то выдать об этом сообщение.
Из заданной строки получить новую, выбросив из нее все точки.
Посчитать все согласные буквы в заданной строке.
В заданной фразе после каждой буквы «О» вставить сочетание «ОК».
Написать программу, печатающую количество слов в заданном предложении. Слова разделены одним пробелом.
Написать программу, определяющую длину самого короткого слова в заданной строке. Слова разделены одним
пробелом.
Написать программу, убирающую все гласные буквы в заданном предложении.
Написать программу, сравнивающую количество букв «а» с количеством букв «о» в заданном предложении и
выводящую соответствующее сообщение на экран.
Определить, какое из трех исходных слов длиннее. Результат сравнения вывести на печать.
Задана строка символов. Если ее длина превышает 20, то вывести первые 10 символов в одной строке, а все
оставшиеся – в другой. Если длина строки не более 20, то вывести ее без изменения.
Определить, какое из трех исходных слов больше (идет позже по алфавиту). Результат сравнения вывести на
печать.
Уровень 3.
Составьте программу для определения, является ли данное слово «перевертышем».
Составьте программу для определения, сколько раз в данном слове встречается часть, равная заданному слову.
Составьте программу обращения слова.
Составьте программу для определения, является ли данная буква гласной, согласной или одной из букв Й, Ъ, Ь.
Составьте программу для замены в данном слове всюду части РОМАН на ДЕТЕКТИВ.
Составьте программу, определяющую, сколько раз в тексте встречается слово «СО».
Составьте программу для проверки правописания приставок из- и ис- в словах русского языка.
Задана строка, содержащая буквы и числа. Найти произведение всех чисел заданной строки.
Составить алгоритм, подсчитывающий для заданного текста частоты вхождения всех букв русского алфавита.
Задана фраза. Распечатать все слова этой фразы (в столбик) в алфавитном порядке.
Определить, сколько цифр содержится в записи произвольного вещественного числа.
По правилам набора машинописного текста после знаков препинания обязательно ставится один и только один
пробел. Не должно быть «лишних» пробелов. Написать программу, редактирующую текст согласно этим правилам.
13. В строке записано полное имя (имя, отчество, фамилия). Написать программу, которая на основании этой
информации определяет пол человека.
14. Дан зашифрованный текст. Известно, что он зашифрован следующим образом: каждые четыре его символа
записаны в обратном порядке. Если число символов в тексте не кратно четырем, то последняя группа символов не
изменяется. Написать программу расшифровки текста.
15. Написать программу, обеспечивающую эффект движущейся строки: введенный с клавиатуры текст движется и
постепенно исчезает за левым краем экрана.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Практическая работа №6.
Подпрограммы (процедуры, функции).
Цель. Программировать задачи с использованием подпрограмм, процедур и функций.
1. Пример 1. Составить процедуру нахождения максимального из двух действительных чисел, вводимых с
клавиатуры. Используйте процедуру для нахождения максимального значения из четырех чисел.
QBASIC
PASCAL
DIM A, B, C, D, AS SINGLE
uses crt;
SUB maxim (X, Y, S)
var a, b, s, c, d: real;
procedure maxim (x, y: real; var s: real);
IF X<Y THEN S=Y ELSE S=X
begin
END SUB
if x<y then s:=y else s:=x;
end;
CLS
begin
INPUT “a=, b=”; A, B
clrscr
INPUT “c=, d=”; C, D
writeln(‘a=b=’); readln(a,b);
CALL maxim (A, B, S)
writeln(‘c=d=’); readln(c,d);
CALL maxim (C, S, S)
maxim(a, b, s);
CALL maxim (D, S, S)
maxim(c, s, s);
PRINT “max=”; S
maxim(d, s, s);
END
writeln (‘max=’, s:3:1);
readln;
end.
3. Вопросы.
 Что такое процедура?
 В чем различие между процедурой и функцией?
 Какие виды процедур и функций используются в программах?
 Перечислить несколько стандартных функций и процедур.
 В каких случаях целесообразно использовать нестандартные (определенные в программе) функции и
процедуры?
 Что такое формальные параметры функции или процедуры?
 Как в программе выполнить функцию или процедуру?
 Что такое фактические параметры функции или процедуры? Каковы правила их использования?
 Какие преимущества дает использование нестандартных (определенных в программе) функций или процедур?
 Что такое рекурсия?
 Как оформляется рекурсивная процедура или функция?
 Могут ли рекурсивные вызовы функции или процедуры продолжаться бесконечно? Как должна быть
оформлена рекурсивная функция или процедура, чтобы количество рекурсивных вызовов было конечным?
 Могут ли в одной программе процедура и функция иметь одинаковые имена?
 Может ли программист дать функции имя sin?
4. Выполните индивидуальное задание.
Индивидуальные задания.
Подпрограммы (процедуры, функции).
Уровень 2.
1. Рассчитать значение x, определив и использовав необходимую функцию. 𝑥 =
2. Рассчитать значение x, определив и использовав необходимую функцию. 𝑥 =
3. Рассчитать значение x, определив и использовав необходимую функцию. 𝑥 =
6+√6 13+ √13 21+√21
+ 2 + 2
2
15+√8 6+ √12 7+√21
+ 12+ 6 + 21+ 7
8+√15
√
√
13+√7 15+ √12 32+√21
+ 12+√15 + 21+ 32
7+√13
√
4. Рассчитать значение Y, однотипные действия выполняя с использованием соответствующей функции:
Y =
1+sin 1
3
+
5+𝑠𝑖𝑛5 3+𝑠𝑖𝑛3
+ 3
3
5. Определить значение z = max(a, 2b)*max(2a-b, b), где max(x,y) есть максимальное из чисел x, y. При решении
задачи не использовать функцию max.
6. Определить значение z = max(a, 2b)*max(2a-b, b), где max(x,y) есть максимальное из чисел x, y. При решении
задачи определить и использовать функцию max.
7. Составить программу, в результате которой величина А меняется значением с величиной B, а величина C – с
величиной D. (Определить процедуру, осуществляющую обмен значениями двух переменных величин).
8. Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. (Определить процедуру для
расчета периметра и площади треугольника по его сторонам).
9. Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров и сумму их площадей.
(Определить процедуру для расчета периметра и площади равнобедренной трапеции по ее основаниям и высоте).
10. Найти рекурсивную функцию для вычисления факториала натурального числа n.
11. Написать рекурсивную функцию для расчета степени n вещественного числа a (n- натуральное число).
12. Написать рекурсивную функцию вычисления суммы цифр натурального числа.
13. Написать рекурсивную функцию вычисления количества цифр натурального числа.
14. Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения n-го
члена прогрессии.
15. Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения
суммы n первых членов прогрессии.
16. Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию нахождения ее n-го
члена.
17. Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию нахождения суммы
n первых членов прогрессии.
Уровень 3.
1. Найти периметр фигуры ABCD по заданным сторонам AB, AC, DC. (Определить функцию для расчета гипотенузы
прямоугольного треугольника по его катетам. ∟BAC = 900, ∟BCD = 900.
2. Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров. (определить функцию для
расчета периметра равнобедренной трапеции по ее основаниям и высоте.)
3. Даны три квадратных уравнения
Ax2+Bx+C=0
Bx2+Ax+C=0
Cx2+Ax+B=0.
Сколько из них имеют вещественные корни? (Определить функцию, позволяющую распознавать наличие
вещественных корней в квадратном уравнении).
4. Найти периметр треугольника, заданного координатами своих вершин. (Определить функцию для расчета длины
отрезка по координатам его вершин).
5. Даны вещественные числа a, b, c, d, e, f, g. Найти площадь пятиугольника, изображенного на рисунке. (определить
функцию для расчета площади треугольника по трем его сторонам).
e
d
g
a
f
b
c
6. Даны два предложения. Найти общее количество букв «н» в них. (Определить функцию для расчета количества
букв «н» в предложении.
7. Составить программу для нахождения общего количества вхождений заданной буквы в трех заданных
предложениях. (Определить функцию для расчета количества вхождений некоторой буквы в предложение).
8. Даны два предложения. В каком из них доля (в %) вхождений букв «б» больше? (Определить функцию для расчета
доли вхождений некоторой буквы в предложение).
9. Даны три слова. Выяснить, является ли хоть одно из них палиндромом («перевертышем»), т.е. таким, которое
читается одинаково слева направо и справа налево. (Определить функцию, позволяющую распознавать словапалиндромы).
10. Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке.
11. Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел и вывода ее на экран в
обратном порядке (окончание последовательности – при вводе 0).
12. *Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную.
13. *Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в N - ичную.
Значение N в основной программе вводится с клавиатуры (2 ≤ N ≤ 16).
14. *Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым.
15. *Написать рекурсивную функцию, определяющую, является ли симметричной часть строки S, начиная с i-го
элемента и кончая j-м.
Практическая работа №6.
Работа с файлами.
Цель. Программировать задачи с использованием файлов.
18. Пример 1. Создайте файл прямого доступа, элементами которого являются целые случайные числа в диапазоне от 35 до 30. Число элементов в файле нечетно. Установив указатель на первый, средний и последний элемент,
считайте данные из файла и найдите их сумму.
QBASIC
PASCAL
DEFINT I, M-N, S
program fil97;
DEFSTR A
uses crt;
CLS
var f: file of integer;
A=”d:\fil97.txt”
s, n, m, i:integer;
OPEN A FOR RANDOM AS#1
a:string;
LEN=2
begin
RANDOMIZE TIMER
clrscr;
INPUT”N=”; N
a:=’d:\fil97.txt’;
FOR I=1 TO N
assign(f,a); rewrite(f);
M=RND*65-35
randomize;
PRINT M; “ ‘;
write(‘n=”); readln(n);
PUT #1, I, M
for i:=1 to n do begin
NEXT
m:=trunc(random(65))-35;
CLOSE #1
write(m,’ ‘);
PRINT
write(f,m);
FOR A FOR RANDOM AS #1
end;
LEN=2
close(f);
MAX=LOF(1)\2
writeln;
PRINT”ЧИСЛО ЗАПИСЕЙ”; MAX
assign(f,a);reset(f);
SEEK#1,1:GET#1,,N:PRINT N:S=S+N
writeln(‘число записей=’,filesize(f));
SEEK#1,MAX\2+1:GET#1, , N:PRINT N:S=S+N
seek(f,0);read(f,n);write(n:4);s:=s+n;
SEEK#1,MAX:GET#1, , N:PRINT N:S=S+N
seek(f,filesize(f) div 2); read(f, n);write(n:4);s:=s+n;
CLOSE#1
seek(f,filesize(f) - 1); read(f, n);write(n:4);s:=s+n;
PRINT”S=”;S
close(f);
END
writeln(‘s=’,s);
readln;
end.
19. Вопросы.
 Что такое файл? В чем заключаются возможности текстовых файлов?
 В чем преимущество использования файлов по сравнению с массивами?
 Какие операции можно проводить с файлами?
 Как производится запись в файл?
 Как производится чтение из файла?
 Как получить доступ к элементу файла с заданным номером?
 Как закрыть файл?
 Может ли файл состоять только из одной записи?
 Могут ли в текстовых файлах записи иметь разную длину?
 Какова максимальная длина записи в текстовом файле?
 Можно ли текстовый файл открыть одновременно для чтения и для записи?
 Почему в текстовом файле используется признак конца строки, а в типизированном – нет?
 Если в текстовом файле нет ни одной строки, записан ли в нем признак конца файла?
20. Выполните индивидуальное задание.
Индивидуальные задания.
Работа с файлами.
Уровень 1.
1. Дан текстовый файл. Посчитать количество строк в нем.
2. Дан текстовый файл. Посчитать количество символов в каждой строке.
3. Создать текстовый файл и записать в него фразу «Здравствуй, мир!»
4. Создать текстовый файл и записать в него 5 одинаковых строк. Записываемая строка вводится с клавиатуры.
5. Дан массив строк. Записать их в файл, расположив каждый элемент массива на отдельной строке с сохранением
порядка.
6. В конец существующего текстового файла записать новую строку с текстом «До свидания, люди!».
7. В конец существующего текстового файла записать 3 новые строки текста. Записанные строки вводятся с
клавиатуры.
8. Имеется текстовый файл, в котором записана одна строка – «Здравствуйте, дорогие ребята». Приписать в конце
строки восклицательный знак.
9. Создать типизированный файл и записать в него:
 Число 500;
 Число 4,5;
 Слово «Привет».
10. Создать типизированный файл и записать в него числа 10, 12, …, 16.
11. Создать файл и записать в него:
 7 целых чисел;
 4 вещественных числа;
 5 слов.
Записываемые слова и числа вводятся с клавиатуры.
12. Дан массив из двадцати вещественных чисел. Записать все числа массива в типизированный файл в том же
порядке.
13. Дано предложение. Записать каждый из его символов в файл. Какая структура файла наиболее целесообразна для
решения этой задачи?
14. Дана последовательность целых чисел, оканчивающаяся нулем. Записать все числа последовательности в
типизированный файл.
15. В конец существующего типизированного файла записать :
 Число 0;
 Фразу «До свидания!»
16. В конец существующего файла записать:
 6 целых чисел;
 5 вещественных чисел;
 4 слова.
Записываемые слова и числа вводятся с клавиатуры.
17. Создать типизированный файл, элементами которого являются двенадцать первых членов последовательности
Фибоначчи (последовательности, в которой первые два члена равны 1, а каждый следующий равен сумме двух
предыдущих.)
Уровень 2.
1. В существующем типизированном файле, элементами которого являются числа, изменить на заданное число:
 Первый элемент;
 Пятый элемент;
 k-й элемент;
 последний элемент.
Новые значения вводятся с клавиатуры.
2. В существующем типизированном файле, элементами которого являются отдельные слова, изменить на заданное
значение:
 Первое слово;
 Третье слово;
 s-е слово;
 последнее слово.
Новые слова вводятся с клавиатуры.
3. Имеется типизированный файл с целыми числами. Все его четные элементы заменить нулями. Рассмотреть два
варианта:
 Известно, что в существующем файле записаны 13 чисел;
 Размер существующего файла неизвестен.
21. Имеется типизированный файл, элементами которого являются отдельные слова. Если слово в записи начинается
на букву «к», то заменить ее на «К».
22. Имеется типизированный файл с числами. Найти сумму первого и второго чисел файла. Принять, что размер файла
неизвестен.
23. Имеется типизированный файл с числами. Найти сумму k-го и q-го чисел файла. Принять, что размер файла
неизвестен.
24. Имеется типизированный файл с числами. Найти произведение первого и последнего чисел файла. Принять, что
размер файла неизвестен.
25. Имеется типизированный файл с числами. Найти сумму всех чисел файла. Принять, что размер файла неизвестен.
26. Имеется типизированный файл с числами. Найти количество чисел в файле. Принять, что размер файла неизвестен.
27. Имеется типизированный файл с числами. Найти количество чисел в файле не превышающих числа а. Принять,
что размер файла неизвестен.
28. Имеется типизированный файл с числами. Найти среднее арифметическое положительных чисел файла. Принять,
что размер файла неизвестен.
29. Имеется типизированный файл с числами. Найти первое число, большее числа b. Если такого числа нет, то
сообщить об этом. Принять, что размер файла неизвестен.
30. Имеется типизированный файл с числами. Найти максимальное число, имеющееся в файле. Принять, что размер
файла неизвестен.
31. Имеется типизированный файл с числами. Найти порядковый номер минимального числа в файле. Если таких
чисел несколько, то найти номер первого из них. Принять, что размер файла неизвестен.
32. Имеется типизированный файл, элементами которого являются отдельные слова. Найти количество слов,
начинающихся на букву «м». Размер файла неизвестен.
33. Имеется типизированный файл, элементами которого являются отдельные слова. Определить, есть ли в файле
слова, начинающиеся на букву «к». В случае положительного ответа напечатать порядковый номер первого из них.
Размер файла неизвестен.
34. Имеется типизированный файл, элементами которого являются отдельные слова. Получить предложение,
составленное из слов, порядковый номер которых четный. Размер файла неизвестен. Размер файла неизвестен.
35. Имеется типизированный файл, элементами которого являются отдельные слова. Найти самое длинное слово.
Размер файла неизвестен.
36. Имеется типизированный файл, элементами которого являются отдельные слова. Найти самое короткое слово.
Размер файла неизвестен.
37. В типизированном файле записаны название городов и их численность. Увеличить численность каждого города на
5% (количество жителей всегда целое число).
38. Имеется текстовый файл. Посчитать количество строк, начинающихся с букв «А» или «а».
39. Имеется текстовый файл. Посчитать количество строк, в которых имеется ровно 5 букв «И».
40. Имеется текстовый файл. Найти длину самой длинной строки.
41. Имеется текстовый файл. Найти номер самой длинной строки. Если таких строк несколько, то найти номер одной
из них.
42. Имеется текстовый файл. Напечатать самую длинную строку. Если таких строк несколько, то напечатать первую из
них.
Уровень 3.
1. Имеется типизированный файл с числами. Переписать все числа в другой файл. Размер заданного файла
неизвестен.
2. Имеется типизированный файл, элементами которого являются отдельные слова. Переписать их в другой файл.
Размер заданного файла неизвестен.
3. Имеется типизированный файл с целыми числами. Все четные числа записать в другой файл. Размер заданного
файла не известен.
4. Имеется типизированный файл, элементами которого являются отдельные слова. Записать в другой файл слова,
начинающиеся на букву «о» или «а». Размер заданного файла неизвестен.
5. Имеется типизированный файл с тридцатью числами. Записать в другой файл числа имеющегося файла в обратном
порядке.
6. Имеется типизированный файл, элементами которого являются 20 отдельных символов. Записать в другой файл
символы имеющегося файла в обратном порядке.
7. Имеются два типизированных файла одинакового размера, элементами которых являются числа. Получить третий
файл:
 Каждый элемент которого равен сумме соответствующих элементов заданных файлов;
 Каждый элемент которого равен большему из соответствующих элементов заданных файлов.
8. Имеются два типизированных файла одинакового размера, элементами которых являются отдельные буквы.
Получить третий файл, каждый элемент которого представляет собой сочетание соответствующих букв первого и
второго файлов.
9. Имеются два типизированных файла одинакового размера, элементами которых являются числа. Получить третий
файл, в котором записаны сначала числа из первого файла, а затем – из второго. Порядок следования чисел
сохраняется.
10. Имеются два типизированных файла одинакового размера, элементами которых являются отдельные буквы.
Записать в третий файл все начальные совпадающие элементы имеющихся файлов.
11. Имеются типизированный файл, элементами которого являются целые числа. Все четные числа этого файла
записать во второй файл, а нечетные - в третий файл. Порядок следования чисел сохраняется.
12. Имеется типизированный файл, элементами которого являются отдельные символы. Все цифры этого файла
записать во второй файл, а остальные символы – в третий файл. Порядок следования сохраняется.
13. Имеются два типизированных файла одинакового размера, элементами которых являются отдельные символы.
Переписать с сохранением порядка следования элементы первого файла во второй, а элементы второго файла – в
первый. Использовать вспомогательный файл.
14. Имеются два типизированных файла одинакового размера, элементами которых являются отдельные символы.
Выяснить совпадают ли их элементы. Если нет, то получить номер первого компонента, в котором эти файлы
отличаются друг от друга.
15. Имеются два отсортированных типизированных файла одинакового размера, элементами которых являются целые
числа. Получить новый типизированный файл слиянием двух исходных в отсортированном виде. Алгоритм
слияния должен предусматривать, что исходные файлы могут содержать очень большое число записей.
16. Имеется текстовый файл. Переписать его строки в другой файл. Порядок строк во втором файле должен:
 Совпадать с порядком строк в заданном файле;
 Быть обратным по отношению к порядку строк в заданном файле.
17. Имеется текстовый файл. Переписать его строки в перевернутом виде в другой файл. Порядок строк во втором
файле должен:
 Совпадать с порядком строк в заданном файле;
 Быть обратным по отношению к порядку строк в заданном файле.
13. Имеется текстовый файл. Получить текст, в котором в конце каждой строки заданного файла добавлен
восклицательный знак.
14. Имеется текстовый файл. Переписать в другой файл те его строки, в которых имеется более 30 символов.
15. Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа «0» на символ «1» и
наоборот.
16. Имеется текстовый файл. Все четные строки этого файла записать во второй файл, а нечетные – в третий. Порядок
следования строк сохраняется.
17. Имеются два текстовых файла с одинаковым числом строк. Переписать с сохранением порядка следования строки
первого файла во второй, а строки второго файла – в первый. Использовать вспомогательный файл.
18. Имеются два текстовых файла с одинаковым числом строк. Выяснить, совпадают ли их строки. Если нет, то
получить номер первой строки, в которой эти файлы отличаются друг от друга.
19. Дан текстовый файл, каждая строка которого представляет собой арифметическое выражение. Для каждой строки
проверить сбалансированность открывающих и закрывающих скобок. Вывести на экран порядковый номер и
содержимое строк, в которых скобки сбалансированы.
Download