- Преподавателю
- Информатика
- Рабочая тетрадь по информатике
Рабочая тетрадь по информатике
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Туляева И.А. |
Дата | 19.04.2015 |
Формат | doc |
Изображения | Есть |
Областное бюджетное профессиональное образовательное учреждение
«Курский электромеханический техникум»
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
ПО ВЫПОЛНЕНИЮ ПРАКТИЧЕСКИХ РАБОТ
по дисциплине «Информатика и ИКТ»
I курс
для профессий:
09.01.01 Наладчик аппаратного и программного обеспечения
09.01.03 Мастер по обработке цифровой информации
23.01.03 Автомеханик
Разработчик: Туляева Ирина Алексеевна,
Преподаватель
2015
Рассмотрены
на заседании
ПЦК преподавателей
физико-математических дисциплин
протокол № ____
от ________ 2015 г.
председатель ПЦК
______ Н.В. Николаенко
Рассмотрены
методическим советом
техникума
Председатель методического совета ________Г.Н. Галахова
«___»___________2015г
УТВЕРЖДАЮ
Заместитель директора
_______ А.В. Ляхов
«____»______2015г.
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
ПО ВЫПОЛНЕНИЮ ПРАКТИЧЕСКИХ РАБОТ
по дисциплине «Информатика и ИКТ»
I курс
для профессий:
09.01.01 Наладчик аппаратного и программного обеспечения
09.01.03 Мастер по обработке цифровой информации
23.01.03 Автомеханик
Разработчик:____________ И.А. Туляева, преподаватель
(подпись) (И.О. Фамилия)
АЛГОРИТМИЗАЦИЯ
И
ПРОГРАММИРОВАНИЕ
СОДЕРЖАНИЕ
Раздел I - Алгоритмы Раздел №1
1. Алгоритм. Исполнители алгоритмов Алгоритм
2. Свойства алгоритмов. Свойства
3. Способы описания алгоритмов. Описание
4. Типы алгоритмов. Типы
5. Этапы решения задач на ЭВМ. Этапы
6. Конструирование алгоритмов линейной структуры Линейный
7. Конструирование алгоритмов разветвляющейся структуры Ветвление
8. Конструирование алгоритмов циклической структуры Циклический
Раздел II - Язык программирования QBASIC Раздел №2
-
Введение
-
Функциональные клавиши редактора QBASIC Клавиши
-
Алфавит QBASIC Алфавит
-
Данные и операции над ними Данные
-
Арифметические операции Операции
2. Операторы Операторы
-
Операторы вывода Вывод
-
Операторы ввода Ввод
-
Основные конструкции
-
Разветвляющиеся программы Переходы
-
Циклические программы Циклы
-
Графические возможности языка Графика
4. Символьные величины
-
Основные понятия Символьные
-
Функции обработки символьных величин Функции
-
Сравнение символьных величин Сравнение
-
Задачи Задачи_с
5. Подпрограммы
-
Основные понятия Определения
-
Правила использования подпрограмм Правила
-
Примеры задач Примеры
-
Задачи Задачи_п
-
Библиотека подпрограмм Библиотека
6. Массивы
-
Основные понятия Понятия
-
Способы описания массивов Описание
-
Упражнения на отработку основных понятий Упражнения
-
Задачи заполнения Заполнение
-
Задачи анализа Анализ
-
Задачи поиска Поиск
-
Задачи перестановки Перестановка
7. Литература Литература
ПРИМЕЧАНИЕ: цветом выделены названия закладок для перемещения по документу.
АЛГОРИТМ ПЕРЕМЕЩЕНИЯ:
Команда меню ПРАВКА, ПЕРЕЙТИ, Объект перехода - закладка, выбор имени закладки, ПЕРЕЙТИ, ЗАКРЫТЬ.
ВВЕДЕНИЕ
В электронной тетради рассматриваются:
-
Краткий теоретический материал, содержащий основные понятия, их свойства, определения, схемы, таблицы;
-
Упражнения на отработку основных понятий и их свойств;
-
Задачи разного вида, образцы их решения;
-
Контрольные вопросы по теме;
-
Варианты домашних заданий.
Предложенный объем материала шире, чем предусмотрен в базовом курсе информатики - 1 ч в неделю. Это обусловлено разным уровнем подготовки учащихся, большим количеством часов, выделенным на изучение информатики, а также необходимостью предоставления учителю выбора материала.
Основные значки, используемые в тетради
Записать ответы на вопросы, выполнить упражнения
!
Определения, основные алгоритмы и правила
?
Домашнее задание
Контрольные вопросы
АЛГОРИТМы
ТЕМА "ОБЩИЕ СВЕДЕНИЯ
ОБ АЛГОРИТМАХ"
!
Алгоритм. Исполнители алгоритмов
В зависимости от характера занятий людям в своей повседневной жизни встречаются различные практические задачи: приготовление обеда, проезд в общественном транспорте, пеленание ребёнка, переход улицы, поиск слова в словаре и т. д.
Важно, что при решении любой задачи человек обращается к продуманным заранее со всеми возможными вариантами предписаниям (инструкциям) о том, какие действия и в какой последовательности должны быть выполнены для решения задачи.
Алгоритм - это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи, действий, приводящих к решению поставленной задачи.
Термин «алгоритм» ведёт начало от перевода на европейские языки имени арабского математика IV века аль - Хорезми, которым были описаны правила выполнения арифметических действий в десятичной системе счисления.
Примером алгоритма может служить алгоритм приготовления чая:
-
Подготовить исходные величины - чай, воду, чайник, ложку.
-
Налить в чайник воду.
-
Поставить чайник на огонь.
-
Довести до кипения и снять с огня.
-
Всыпать в чайник 2 ложки чая.
-
Поставить чайник на огонь.
-
Довести воду до кипения (но не кипятить), снять с огня.
-
Процесс прекратить.
ПРИМЕР
Составить алгоритм оценки знаний по результатам теста из 10 вопросов, согласно следующему правилу:
если правильные ответы на 10 вопросов, то выставляется оценка 5, при 9 и 8 правильных ответах - оценка 4, при правильных ответах не более чем на 5 вопросов - оценка 2, в остальных случаях - оценка 3.
-
Формулировка задачи в математическом виде:
5, если ot =10
Ocenka = 4, если 8 <= ot <= 9
3, если 6 <= ot <= 7
2, если ot <= 5
где ocenka - оценка, ot - правильные ответы
2) Алгоритм "Оценка"
-
Ввод значения ot.
-
Если ot = 10, то ocenka = 5,
перейти к п.5.
-
Если ot >= 8, то ocenka = 4,
перейти к п.5,
4. Если ot >= 6, то ocenka = 3,
иначе
ocenka = 2,
-
Вывести значение ocenka.
Наличие алгоритма дает возможность решать задачу формально, механически исполняя команды алгоритма в указанной последовательности.
ЗАДАЧА
Известен алгоритм начисления заработной платы, где ZP - зарплата, ST - стаж работы:
Алгоритм "Начисление зарплаты"
-
Ввод значения ST.
2. Если ST < 5, то ZP = 1000,
перейти к п. 4.
3. Если ST <= 15, то ZP = 1500,
перейти к п. 4,
иначе
ZP = 1500+(ST-15)*50,
-
В
Задание:
ывести значение ZP.
а) Определите зарплату сотрудника, если его стаж работы:
-
3 года - _________ руб.
-
7 лет - _________ руб.
-
15 лет - _________ руб.
-
18 лет - _________ руб.
б) Сформулируйте условие начисления заработной платы в соответствии с предложенным алгоритмом.
Ответ: если стаж работы сотрудника ______________, то зарплата 1000 руб., при стаже работы ________________зарплата - 1500 руб., при стаже ________ зарплата повышается с каждым годом на 50 руб.
в) Запишите формулировку задачи в математическом виде:
Ответ:
_____________, если _________________
ZP = _____________, если _________________
_____________, если _________________
З
!адача составления алгоритма не имеет смысла, если неизвестны или не учитываются возможности его исполнителя.
Исполнитель - это человек или механическое устройство со строго определённым набором возможных действий (операций)
Исполнители: человек, робот, ЭВМ.
Команда - указание выполнить конкретное действие.
Система команд - совокупность всех команд, которые могут быть выполнены некоторым исполнителем.
ПРИМЕР
В систему команд исполнителя Удвоитель входят следующие команды:
умножь на 2, прибавь 1.
а) Составить для исполнителя Удвоитель алгоритм получения числа 100 из числа 0.
Решение:
прибавь 1
умножь на 2
прибавь 1
умножь на 2
умножь на 2
умножь на 2
прибавь 1
умножь на 2
умножь на 2
б) Можно ли используя систему команд исполнителя Удвоитель получить из числа 100 число 0? Почему?
Ответ : __________________
в) Какое число получит Удвоитель из числа 0, исполнив следующий алгоритм:
прибавь 1
прибавь 1
умножь на 2
прибавь 1
умножь на 2
умножь на 2
прибавь 1
умножь на 2
умножь на 2
Ответ: _______________
г) Удвоителю предложен следующий алгоритм действий:
прибавь 1
прибавь 1
умножь на 2
умножь на 2
прибавить 1
умножь на 2
Каков результат исполнения алгоритма? Почему?
Ответ: __________________
С
!войства алгоритмов
От компьютера, как и от любого другого исполнителя, требуется чёткое выполнение команд алгоритма, а разработчикам алгоритмов требуется знание и соблюдение правил их составления, заключающиеся в том, что алгоритм должен обладать шестью свойствами (удовлетворять шести требованиям).
-
Дискретность. (Алгоритм должен состоять из отдельных шагов).
-
Понятность. (Указания должны быть понятны исполнителю).
3. Однозначность. (Единственность толкования правил выполнения действий и порядка их выполнения).
4. Массовость. (С помощью алгоритма можно решать не одну конкретную задачу, а множество однотипных задач и делать это неоднократно).
5. Результативность. (Выполнение алгоритма должно приводить к конкретному результату - решению задачи - за конечное число шагов).
-
Конечность. (Завершение работы алгоритма в целом за конечное число шагов).
Свойства
Пример выполнения свойства
Пример невыполнения
свойства
Дискретность
Казнить нельзя, помиловать!
Казнить, нельзя помиловать
Однозначность
На дубе ларец, а в ларце утка, а в утке яйцо, в яйце игла, в игле смерть Кощея.
Поди туда, не знаю куда, принеси то, не знаю что.
Массовость
Каждой дочери отец привёз по дорогому подарку
Принц мог жениться только на настоящей принцессе
Понятность
Инструкция по-русски
Инструкция на японском языке
Конечность
Мама сварила кашу в горшочке
Каша уже заполнила все улицы, а горшочек всё варил кашу.
Результативность
Мышка хвостиком махнула, яйцо и разбилось
Баба била-била не разбила.
С
!пособы описания алгоритмов
-
Словесно-пошаговый (на естественном языке).
-
Графический (на языке блок-схем).
-
Алгоритмический язык.
ПРИМЕР
Составить алгоритм поиска площади круга радиусом R.
а) Словесно-пошаговый.
1. Ввод значения r
2. Вычислить s=r2
3. Записать в ответ значение s.
4. Конец.
б) Графический (в виде блок-схемы)
С
!хема - наглядное графическое изображение алгоритма, когда отдельные его действия (этапы) изображаются при помощи различных геометрических фигур (блоков), а связи между этапами указываются при помощи стрелок, соединяющих эти фигуры.
Основные блоки
.
в) Алгоритмический язык
алг ЗАДАЧА (вещ r,s)
арг r
рез s
нач
ввод r
s:= 3.14r2
вывод s
кон
Команда присваивания
При записи вычислительных алгоритмов удобно использовать специальный знак присваивания : =. Не путать со знаком "=" (равно) в математике. Этот знак используется для изображения особой операции - операции присваивания. В чем заключается ее смысл?
Пусть имеется предписание вида Y: = X. (Читается: "Y присвоить X").
Здесь Y - переменная, а Х - некоторое выражение.
Предписание означает следующее: выполнить все действия, предусмотренные формулой X, и полученный результат (число) считать значением (т.е. присвоить переменной Y).
В ячейку памяти, отведённую для Y, ЭВМ должна записать результат действий, предусмотренных формулой X.
В левой части команды присваивания всегда должна стоять переменная, в правой части обычно стоит формула (переменная), но в частном случае может быть и число.
Например:
Y: = K; Y: = 37; X: =X+1 ("возьми то, что хранится в X, добавь 1 и результат опять положи в X")
B$: ="Ура! Скоро каникулы!", B - является символьной или литерной переменной, ее значением является текст.
К
?онтрольные вопросы
1) Запишите пропущенные слова:
______________ это понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение указанной цели.
______________ это устройство, которое может выполнять некоторый, вполне определённый набор действий.
______________ это отдельное указание исполнителю.
______________ это совокупность всех команд, которые может выполнить конкретный исполнитель.
-
Приведите примеры алгоритмов.
-
Приведите примеры исполнителей алгоритмов.
4) Напишите свойства, соответствующие каждому определению:
_______________ алгоритм не содержит команд, смысл которых может восприниматься неоднозначно.
________________ алгоритм разбит на отдельные элементарные действия.
________________ алгоритм даёт правильное решение при различных наборах различных данных для целого класса однотипных задач.
________________ алгоритм должен завершаться получением определённых результатов.
______________ алгоритм состоит из конечного числа шагов.
______________ алгоритм состоит из команд, которые понятны исполнителю.
Домашнее задание
-
Выучить опорный конспект.
-
Ответьте на вопрос: какой системой команд вы снабдили бы автомат, заменяющий кассира в магазине?
-
Некий злоумышленник выдал следующий алгоритм за алгоритм получения кипятка:
Налить в чайник воду.
Открыть кран газовой горелки.
Поставить чайник на плиту.
Ждать, пока вода не закипит.
Поднести спичку к горелке.
Зажечь спичку.
Выключить газ.
Ответьте на вопрос:
-
Каков результат работы данного алгоритма?
-
Каким свойством не обладает данный алгоритм?
-
Исправьте алгоритм, чтобы предотвратить несчастный случай.
-
Составить алгоритм действий Удвоителя для получения числа 8 из числа 0, используя не более четырех шагов.
-
Некий человек должен перевезти в лодке через реку волка, козу и капусту. Каждый раз он может перевезти только либо волка, либо козу, либо капусту. На одном берегу нельзя оставить вместе козу и волка, а также козу и капусту.
а) Запишите систему команд исполнителя Перевозчик;
б) Составьте алгоритм переправы на другой берег, используя систему команд Перевозчика.
-
Определить значение переменной А в результате исполнения последовательности команд присваивания: A:= 7 B:= A A:= 3A - B
-
Записать в виде команды присваивания:
а) Увеличить значение переменной C на 2;
б) Уменьшить значение переменной M в три раза;
в) Занести в память ЭВМ свою фамилию, имя, год рождения, используя три команды присваивания.
-
Заполните таблицу
Свойства
алгоритма
Пример выполнения свойства
Пример невыполнения свойства
Дискретность
Определённость
Массовость
Понятность
Конечность
Результативность
ТЕМА: "ТИПЫ АЛГОРИТМОВ"
!
Типы алгоритмов
-
Линейные (следования);
-
разветвляющиеся (развилка);
-
циклические.
Во многих задачах искомые результаты из исходных данных можно получить без проверки выполнения, каких бы то ни было условий. Алгоритмы решения таких задач получили название линейных алгоритмов.
Линейный- это такой алгоритм, в котором все команды выполняются строго последовательно друг за другом.
Форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность действий, называется ветвлением.
Разветвляющийся - это такой алгоритм, который содержит команду ветвления.
Команда ветвления - это составная команда, в которой та или иная серия команд выполняется после проверки условия.
Команда ветвления имеет полную (1) или сокращенную (2) форму:
если условие (1) если условие (2)
то серия 1 то серия 1
+ -
+ -иначе серия 2 все
Например:
алг БИД (цел а,b,у)
а
+ - -рг а,b
резу
нач
ввод а,b
если а<b
то у:=а
иначе у:==b
все
вывод у
кон
Сформулируйте условие задачи, по предложенному алгоритму.
___________________________________________________________
___________________________________________________________
!
Для записи алгоритмов, в которых одно или несколько действий необходимо повторить несколько раз, используется команда повторения или цикла.
Циклический - это такой алгоритм, который содержит команду повторения.
Команда повторения - это составная команда, в которой тело цикла выполняется несколько раз.
Выделяется три типа команд повторения:
цикл ДЛЯ
цикл ПОКА
цикл ДО
Каждый из циклов повторяет некоторую последовательность команд, называемую телом цикла.
Друг от друга различные типы циклов отличаются в основном лишь способом проверки окончания цикла.
нц пока условие нц для х от а до b шаг
серия команд серия команд
кц кц
ПРИМЕР. Вывести нечетные числа из интервала от 1 до 10
Цикл "ПОКА" Цикл "ДО" Цикл "ДЛЯ"
Этапы решения задач на ЭВМ
-
Постановка задачи.
При работе на этом этапе необходимо ответить на вопросы:
-
что дано?
-
Что необходимо найти?
-
Какие данные допустимы?
-
При каких условиях возможно получение требуемых результатов, а при каких нет?
-
Какие результаты, и в каком виде должны быть получены?
-
Какие результаты будут достоверными и правильными?
-
Математическая модель.
Составление математической модели - это описание задачи с помощью математических уравнений, неравенств и других соотношений, формулировка целей решения на языке математики.
3. Конструирование алгоритма.
4. Перевод алгоритма в программу.
5. Ввод и испытание программы.
6. Получение и анализ результатов решения задачи.
Задача №1
Определить периметр крышки стола
1. Нас интересуют только размеры крышки стола, заменим стол плоской геометрической фигурой, размеры и форма которой соответствуют поверхности крышки.
Это может быть такая фигура:
2. Математическая постановка задачи имеет такой вид:
и
aсходные данные: a, b, r
(a>0, b>0, r>0)
р
b
rезультат: P (периметр)
Вычислить значение P:
P=2*3,14*r+(a+b)*2
-
Алгоритм решения задачи.
Алгоритм к решению этой задачи является ___________________.
aЕсли величина закругления углов очень мала, то ею можно пренебречь, и в качестве крышки стола можно взять прямоугольник.
В этом случае приходим к такой задаче:
И
bсходные данные: a, b (a>0, b>0)
Результат: P
Вычислить значение P:
P=(a+b)*2
К
?онтрольные вопросы
-
Назовите типы алгоритмов.
-
Какой алгоритм называется линейным? Примеры.
-
Какой алгоритм называется разветвляющимся? Примеры.
-
Что такое команда ветвления?
-
Какие формы записи команды ветвления существуют?
-
Какой алгоритм называется циклическим? Примеры.
-
Что такое блок-схема? Какие блоки используются в блок-схеме?
-
Назовите этапы решения задачи на ЭВМ.
Домашнее задание
-
Выучить конспект.
-
Ответить на контрольные вопросы.
-
Составьте алгоритм решения задачи №1, если крышка стола будет прямоугольной формы.
ТЕМА: "КОНСТРУИРОВАНИЕ АЛГОРИТМОВ
ЛИНЕЙНОЙ СТРУКТУРЫ"
Задача №1. Периметр треугольника равен Р, длина одной стороны равна А, а другой - В. Найти длину третьей стороны.
Задача №2. Длина стороны треугольника равна А, периметр равен Р, длины двух других сторон равны между собой. Найти эти длины.
Задача №3. Длины сторон первого прямоугольника А и В, его площадь в 6 раз меньше площади второго прямоугольника. Найти длину стороны второго прямоугольника, если длина одной из его сторон равна С.
Задача №4. Определить путь, пройденный автомобилем за T мин. Со скоростью 90 км/ч.
Задача №5. Вычислить:
-
z=a2 +3
-
-
Задача №6. Определить стоимость покупки: 3 кг сахара по x руб. за 1 кг, 5 кг муки по y руб. за 1 кг и 1 кг риса по z руб.
Задача №7. Даны переменные A и B. Требуется поменять их местами.
Задача №8. Записать алгоритм циклического обмена значениями переменных А, В, C По схеме A B C
Например, если до обмена было: А=1, В=2, С=3, то после обмена должно стать: А=3, В=1, С=2. Выполнить трассировку.
Требуется дополнительная переменная, обозначим ее X
Команда
А
В
С
X
Задача №9. Составьте условие задачи по представленному алгоритму.
ТЕМА: "КОНСТРУИРОВАНИЕ АЛГОРИТМОВ
РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ"
Задача №1. По блок-схеме сформулируйте условие задачи.
Задача №2. Сравните два числа, большее из них уменьшите в 2 раза, а меньшее уменьшите на 2.
Задача №3. Даны три числа а, Ь и c. Составить алгоритм, определяющий большее из трех чисел.
Задача №4. Вводятся оценки за контрольные работы по физике и информатике. Выведите на экран "Молодец", если их сумма равна или более 9, иначе - "Подтянись".
Задача №5. Прием на работу идет на конкурсной основе. Условия приема требуют 20 лет рабочего стажа и возраста не более 42 лет. Определите, будет ли человек принят на работу.
Задача №6. Вычислить значение выражений
Задача №7. Чтобы принять участие на выставке кошек, животное должно иметь длину хвоста менее 30 см. Составьте алгоритм участия кошки Мурки в конкурсе.
Задача №8. Вычислите значение функции:
1) представленную графиком
x
0 2
2) представленную формулой
Задача №8(1).
График функции состоит из 2- частей:
Y=x при x <=2
Y=2 при x>2
Задача №8(2) Составьте блок-схему.
Задача №9. Составьте алгоритм попадания точки с координатами (x,y) в заштрихованную область.
а) б)
-1 2
Задача №9(а)
Решение
Этапы решения задачи
1. Уравнения границ
x=0 x=4 y=0 y=2
x
2. Конструирование условия
Выбрать точку, которая попадает в область, например (1,1) и подставить
ее координаты в уравнения границ: 1>=0 и 1<=4 и y>=0 и y<=2
связка "и" показывает, что все условия должны выполняться одновременно.
3. Построение алгоритма.
Заполните схему.
Задача №10. Определить какая из двух точек A(-1,2) и B(5,10) принадлежит области, заданной условием x<=0 и y>=0. Докажите свое утверждение.
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
Задача №11.
Нарисуйте область, в которую попадает
точка, координаты которой удовлетворяют
условию: x>=-2 и x<=4 и y>=-1 и y<=3.
Задача №12.
Запишите условие попадания точки в заштрихованную
о
yбласть.
_
-2_________________________________
__________________________________
Задача №13.
Построить график функции y(x), заданной командой ЕСЛИ:
Если x<=-3
То y:=3
Иначе y:=-x
все
ТЕМА: «КОНСТРУИРОВАНИЕ АЛГОРИТМОВ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ»
!
Пример. Вычислить S =1+2+3+4+ …+100
Цикл «ПОКА» - выполняется пока условие истинно
Цикл «ДО» - выполняется до тех пор, пока условие не станет истинным.
Обязательные блоки:
-
Установка начального значения параметра
-
Проверка условия достижения конечного значения параметра
-
Изменение параметра
Отличие:
-
Способ проверки окончания цикла
-
Цикл «ДЛЯ» или цикл с параметрами. Все три необходимых блока собираются в один, в котором указывается начальное, конечное значение параметра и шаг изменения
+ -
- +
Цикл «ПОКА» Цикл «ДО» Цикл «ДЛЯ»
У
пражнения
Определить значение целочисленной переменной S после выполнения команд:
S:=1
A:=1
ДЛЯ I от 1 до 3
НЦ
S:=S+I*A
A:=A+2
КЦ
I:=0
S:=0
ПОКА I<3
НЦ
I:=I+1
S:=S+I*I
КЦ
Задачи
Задача №1. По данной блок-схеме сформулируйте условие задачи.
Сколько раз будут повторяться команды тела цикла?
Задача №2. Найдите произведение положительных двузначных чисел.
Задача №3. Вычислите:
-
22+24+26+28+210
-
(x+1)*(x+2)*(x+3)*…*(x+11)
-
произведение двузначных чисел, кратных числу 3; 5
-
сумму четных трехзначных чисел
-
(2t+3) + (2 t+6) + (2t+9) + ...+ (2t+30), где t - целое число
-
+ + + +
-
123 + 456 + 789 + +434445
Задача №4. Расход бензина на 100 км пути в среднем составляет 9 л. Составить алгоритм определения стоимости бензина для расстояний 200 км, 400 км, 600 км, 800 км и 1000 км, если цена одного литра равна x руб.
Задача №5. Цена 1 кг сыра к рублей. Составить алгоритм определения стоимости 100 г, 200 г, 300 г, 400 г, 500 г, 600 г, 700 г, 800 г сыра.
Задача №6*. Каждая бактерия делится на две через 1 минуту. В начальный момент имеется 1 бактерия. Сколько их будет через n минут
Решение:
Пусть I - время, Z- количество
1 мин - 2
2 мин - 2*2=4
3 мин - 4*4=8
4 мин - 8*2=16
. . .
I:=I+1
Z:=Z*2
Задача №7. Последовательно вводятся N целых чисел. Определить каких среди них больше положительных или отрицательных?
Задача №8. Определить значение целочисленной переменной S после выполнения алгоритмов:
_______________________________
_______________________________
_______________________________
_______________________________
.
Задача №9. Напечатать таблицу перевода температуры из градусов по шкале Цельсия (C) в градусы по шкале Фаренгейта (F) для значений температуры от 25C до 40C с шагом 1C. Формула перевода F=1.8*C+32.
32 41 50 59 68 77 86 95 104 F0
0 5 10 15 20 25 30 35 40 C0
Задача №10. Напечатать таблицу перевода миль в километры для расстояний от 5 до 75 миль с шагом 5, если 1 миля составляет 1,609 км.
Задача №11. Напечатать таблицу соответствия между весом в фунтах и весом в килограммах для значений от 1 до 10 фунтов с шагом 1 ф, если 1 ф=400 г.
ДОМАШНЯЯ КОНТРОЛЬНАЯ РАБОТА ПО ТЕМЕ
«КОНСТРУИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ И ЦИКЛИЧЕСКОЙ СТРУКТУРЫ»
-
Вычислить значение функции, представленной графиком
-
П
2
-3
3
роверьте, принадлежит ли точка А(x,y) заштрихованной области
-
Вычислить:
-
Произведение двузначных чисел кратных 3.
-
Дополнительно (*)
1) Вычислить:
1+3+9+27+…36
Проверьте, принадлежит ли точка А(x,y) заштрихованной области.
ТЕМА: "ЯЗЫК ПРОГРАММИРОВАНИЯ QBASIC"
Начальные понятия
Среда программирования
Запуск QBASIC
_______________________________________________________________
_______________________________________________________________
Ввод и редактирование программ
Главное окно QBASIC разделено на две основные части- окно редактора (вверху) и окно быстрого выполнения (в нижней части экрана).
-
Окно редактора-здесь выполняются все операции с программой- набор и редактирование, запуск на выполнение, сохранение в файле…
-
Окно быстрого выполнения-здесь можно немедленно получить результат выполнения команды-напечатать команду и нажать клавишу ENTER. Переход в данное окно- клавиша F6.
Функциональные клавиши редактора QBASIC
Клавиша
Действие
F1
Вывод подсказки для того элемента, на который указывает курсор
F2
Вывод списка подпрограмм
F3
Поиск в тексте
F4
Просмотр экрана вывода
F5
Продолжение выполнения программы со следующего оператора
F6
Перемещение в окно быстрого выполнения
F7
Выполнение программы до текущего положения курсора
F8
Пошаговое выполнение операторов программы
F9
Установка/удаление контрольной точки
F10
Пошаговое выполнение операторов программы, пропуская процедуру
Shift + клавиша
Действие
F1
Переход в режим помощи
F2
Переход к следующей процедуре
F5
Выполнение программы с начала
F6
Переключение в окно просмотра
Ctrl + клавиша
Действие
F1
Просмотр следующей темы в режиме помощи
F2
Переход к следующей процедуре
F10
Переключение между многооконным и полноэкранным режимами
Alt+ F1
Просмотр предыдущей темы помощи
Сохранение программы в виде файла на диске
-
Сохранение первой версии программы - ФАЙЛ ( или Alt+F)-СОХРАНИТЬ КАК - записать имя файла, ENTER. Файлу можно присвоить любое имя с произвольным расширением, но рекомендуется использовать стандартное расширение BAS.
-
Сохранение новой версии программы под старым именем -
ФАЙЛ ( или Alt+F) - СОХРАНИТЬ.
Выход из среды QBASIC
- ФАЙЛ ( или Alt+F) - ВЫХОД.
Алфавит QBASIC
символ
наименование
символ
наименование
A-Z
Заглавные буквы
:
Двоеточие
a-z
Строчные буквы
+
Плюс
0-9
Цифры
-
Минус
Пробел
*
Звезда
!
Восклицательный знак
/
Наклонная черта (Слеш)
#
Диез
\
Обратный слеш
%
Знак процента
^
Знак вставки
&
Знак амперсанта
=
Знак равенства
$
Знак доллара
<
Знак меньше
"
Двойные кавычки
>
Знак больше
'
Апостроф
( )
Левая и правая скобки
.
Точка
?
Знак вопроса
,
Запятая
_
Знак подчеркивания
;
Точка с запятой
Тильда
Данные и операции над ними
Типы данных
Тип
Запись
Обозначение
Минимум
Максимум
Целые числа
Integer
%
-32 768
32 767
Длинные целые числа
Long integer
&
-2 147 483 648
2 147 483 647
Вещественные числа
Single-precision
!
-3,4 Е+38
3,4 Е+38
Вещественные числа с двойной точностью
Double-precision
#
-1,8 D+308
1.8 D+308
Строки символов
String
$
0 символов
32 767 символов.
Примечание: арифметические действия с целыми числами выполняются точно, а с вещественными- приближенно.
Числа, форма их записи
-
целые- имеют вид десятичных чисел со знаком или без него.
-
длинные целые- имеют вид десятичных чисел со знаком или без него.
-
вещественные- представленные в форме чисел с фиксированным разделителем:
2,45 - 2.45; -102,36 - 102.36
-
вещественные- представленные в экспоненциальной форме:
235.9887*10 -7=0,00002359887=235.9887Е-7;
3590000=35,9*10 6 =35.9Е+6;
5. длинные вещественные- представленные в экспоненциальной форме:
235.9887*10 47 =235.9887D47
Упражнения
1) Переведите запись числа с плавающей точкой в запись числа с фиксированной точкой:
23Е-2
654Е-3
56.3Е+02
23.4Е-02
8.56Е-03
2) запишите числа в экспоненциальной форме
234*10 5
231,45*10 -7
6500000000
45661000000000000000
0,0000000000000012
-523,12*10-15
П
!еременные
Переменная- это область памяти, в которой хранится значение.
Имя переменной- произвольный набор латинских букв и цифр ( первый символ-буква; длина имени- не более 40 символов; заглавные и строчные буквы не различаются).
Суффикс- указывает тип переменной; по умолчанию- вещественное число обычной точности. При нежелании использовать суффиксы можно в начале программы задать типы всем переменным:
DEFINT A-C- все переменные, имена которых начинаются с букв указанного диапазона, будут считаться целыми.
DEFLNG D-G- все переменные, имена которых начинаются с букв указанного диапазона, будут считаться длинными целыми
DEFSGN H-K- все переменные, имена которых начинаются с букв указанного диапазона, будут считаться «--«-- вещественными
DEFDBL S-T- все переменные, имена которых начинаются с букв указанного диапазона, будут считаться вещественными двойной точности
DEFSTR X-Z- все переменные, имена которых начинаются с букв указанного диапазона, будут считаться строками символов
Константы
Константы (числовые и символьные) не меняются в ходе исполнения программы. Значения констант указывается явно, числом или строкой символов в кавычках.
Например: А$= «Москва-Париж»; Х%=123; …
Существует специальный оператор для описания констант:
CONST < имя константы = значение>
Арифметические операции
Знак
Операция
Пример
Примечание
^
Возведение в степень
2 6 = 2^6
*
Умножение
2*3
Знак не пропускается
/
Деление
45 / 8
Результат- веществ.
\
Целочисленное деление
45 \ 8 ( = 5)
10 \ 3 ( = 3)
Операнды и результат- целые
MOD
Нахождение остатка от деления
10 MOD 3 ( =1)
Операнды и результат- целые
+
Сложение
5 + 6
-
вычитание
45 - 89
Числовые функции
Функция
Обознач
Функция
Обознач.
Модуль числа ( х )
ABS(x)
Знак числа
SGN(x)
Корень квадратный
SQR(x)
Случайное число из промежутка (0;1)
RND(x)
Синус ( sin x )
SIN(x)
Целая часть ( [ x ] )
INT(x)
Косинус ( cos x )
COS(x)
Число без дробной части
FIX(x)
Тангенс ( tg x )
TAN(x)
Натуральный логарифм ( ln x )
LOG(x)
Арктангенс (arctg x)
ATN(x)
Экспонента ( e x )
EXP(x)
Встроенная математическая функция RND генерирует случайные числа двойной точности, равномерно распределённые в открытом интервале от 0 до 1.
Умножая RND на некоторое число N, мы получим число, принадлежащее промежутку (0; N). Отбросив дробную часть полученного числа (с помощью функции INT или FIX), получим случайное целое число, принадлежащее промежутку [0;N) (по другому этот промежуток можно записать [0;N-1] ). Прибавив к полученному числу какое-нибудь целое число К, получим случайное число из промежутка [К;N+К-1]
Примеры
INT(RND*101) - случайное целое число из промежутка [0;100]
INT(RND*51)-25 - случайное целое число из промежутка [-25;25]
INT(RND*20)+40 - случайное целое число из промежутка [40;59] (этот промежуток можно записать [20; 60).
Операции сравнения
Знак
Значение операции
Пример
=
равно
4=4
<>
не равно
5<>6
>
больше
8>7
<
меньше
3<6
>=
больше или равно
9>=9
<=
меньше или равно
8<=9
У
пражнения
-
Запишите выражения на языке программирования
Математическая запись
Язык программирования
x-1
x4
x-2
x5
x100
2) Найдите значение выражения
ABS(-5-8)
SQR(49)
INT(25/6)
SQR(6^2-SQR(100)-1)
ABS(SQR(36)-INT(15/2))
SQR(ABS(64-100))
SQR(SQR(81))
SQR(INT(121.76))
INT(ABS(-79.83-12/84))
3) Составить формулу получения случайного целого числа, принадлежащего промежутку:
Промежуток
Формула
[-50, 80]
[-50, 80)
(-50, 80]
(-50, 80)
Операторы языка
REM _____________________________________________________
END______________________________________________________
CLS______________________________________________________
Оператор присваивания
Переменная = значение
Слева от знака = указывают имя переменной, справа - ее значение.
Например: X%=3; summa=a+65.32; K=K+1
У
пражнения
1). Чему будет равно значение переменной Х после выполнения последовательности операторов
Х=8
Y=11
X=X*Y+X
А=25
В=А-4
Х=(А-В)*2-2
X=3
Y=2
X=(X+Y)/Y+Y
X=2
Y=X^2+2*X
X=X-Y
X=5
Y=X*2
X=X+Y
X=Y^2+X
X=X+Y
X=1
Y=2
X=X*X Y=Y*Y
X=X+Y
В
!ывод информации на экран
PRINT <элемент печати>
Этот оператор выводит указанный элемент печати на экран, с начала той строки, в которой установлен курсор. После вывода курсор переводится в начало следующей строки.
CLS (очистка экрана) - обычно этот оператор размещают в начале программы.
Виды элементов печати:
-
Фраза - должна быть заключена в кавычки, выводится без изменения;
-
Арифметическое выражение - выводится его значение;
-
Имя переменной - выводится значение этой переменной;
-
Элемент печати может отсутствовать- выводится пустая строка.
В одном операторе PRINT можно указывать несколько элементов печати, разделяя их специальными знаками
; - знак плотной печати (символьные значения выводятся подряд друг за другом, числовые - через пробел), запрет перевода курсора на следующую строку.
, - знак печати по зонам (каждая зона печати имеет стандартную ширину 14 символов), запрет перевода курсора на следующую строку.
Эти знаки можно ставить и в конце оператора PRINT, тогда элементы печати следующего оператора PRINT будут выведены в этой же строке.
Для вывода информации не с начала строки, а с определенной позиции используют оператор PRINT TAB(n), где n -номер позиции.
Например:
PRINT TAB(5); «Эта строка выводится с пятой позиции»
Если необходимо вывести информацию в определенном месте экрана, то перед оператором PRINT размещают оператор LOCATE, который устанавливает курсор в указанное место экрана:
LOCATE <номер строки>,<номер позиции>
!
Ввод данных
INPUT «комментарий»; <имя переменной>
-
На экран выводится комментарий и знак вопроса
-
Программа приостанавливает работу и ждет, когда вы наберете какое-либо значение на клавиатуре.
-
Нажатием клавиши ENTER сообщаем, что ввод закончен.
-
При неверном вводе программа повторяет запрос.
-
В одном операторе INPUT можно указывать несколько имен переменных, разделяя их запятыми. а клавиша ENTER нажимается после набора последнего значения.
-
Комментарий можно пропускать.
З
адачи
-
По блок-схеме написать программу
-
Составьте программы к задачам 1-8 темы "Конструирование алгоритмов линейной структуры".
Графические возможности языка
-
видеорежим
разрешение
текстовый режим
7
320*200
40*25
9
640*350
80*25
12
640*480
80*25
№
цвет
color
№
цвет
color
0
Черный
Black
8
Серый
Gray
1
Голубой
Blue
9
Светло-голубой
Light blue
2
Зеленый
Green
10
Светло-зеленый
Light green
3
Бирюзовый
Cyan
11
Светло-бирюзовый
Light cyan
4
Красный
Red
12
Светло-красный
Light red
5
Сиреневый
Magenta
13
Светло-сиреневый
Light magenta
6
Коричневый
Brown
14
Желтый
Yellow
7
Белый
White
15
Ярко-белый
High-intensity white
Операторы графики
SCREEN n - установка режима экрана
COLOR c1, c2 - установка цветов -c1-цвет символа; с2-цвет фона
PSET (X%, Y%), n - высвечивание точки (X, Y) цвета n
LINE (X1%, Y1%)-(X2%, Y2%), n - отрезок с началом в точке (X1, Y1) и концом в точке (X2, Y2) цвета n
LINE -(X%, Y%), n - отрезок с началом в текущей точке и концом в точке (X, Y) цвета n
LINE (X1%, Y1%)-(X2%, Y2%), n, B - прямоугольник с диагональю (X1, Y1)-(X2, Y2) цвета n
LINE (X1%, Y1%)-(X2%, Y2%), n, BF - закрашенный прямоугольник
CIRCLE (X%, Y%), R, n - окружность с центром (X, Y), радиусом R цвета n
CIRCLE (X%, Y%), R, n, a, b - дуга окружности, а - начальный угол дуги, - конечный угол дуги
CIRCLE (X%, Y%), R, n,,,e - эллипс (овал), е - коэффициент сжатия (равен отношению вертикального радиуса к горизонтальному).
PAINT (X%, Y%), n, m - закрашивание замкнутой области с внутренней точкой (X, Y) и границей цвета m
Упражнения
Составь программы для получения изображений:
Изобрази результат действия программы
SCREEN 9
CIRCLE (320,170), 50, 1, 0, 3.14
LINE (270,170)-(370,170), 1
PAINT (320,160), 1, 1
LINE (320,170)-(320,240), 14
CIRCLE (310,240), 10,14,3.14,6.28
SCREEN 7
LINE (120,80)-(160,120), 4
LINE (160,80)-(160,120), 4
LINE (200,80)-(160,120), 4
CIRCLE (160,80), 20, 3, , , 0.9
CIRCLE (120,80), 30, 9, , , 1.5
CIRCLE (200,80), 10, 12, , , 2.5
ТЕМА: «РАЗВЕТВЛЯЮЩИЕСЯ И ЦИКЛИЧЕСКИЕ ПРОГРАММЫ»
Р
!азветвляющиеся программы
Линейные алгоритмы и соответствующие им программы редко встречаются в практике решения на ЭВМ реальных задач. Чаще всего порядок выполнения действий (ход алгоритмического процесса) зависит от определенных условий. Поэтому ВЕТВЛЕНИЕ является одной из основных форм организации действий.
Для реализации команды ветвления на языке Бейсик применяется условный оператор:
IF <условие> THEN <серия 1> ELSE <серия 2>
Служебным словам IF, THEN и ELSE соответствуют слова если, то, иначе. Выполняется эта команда аналогично команде ветвления в алгоритмическом языке.
Существуют два способа записи оператора IF: блочная и линейная.
В случае линейной формы вся команда записывается в одну строку.
Например, IF A>B THEN PRINT A ELSE PRINT B
В блочной форме условный оператор записывается в столбик и заканчивается командой END IF (см. таблицу).
Аналогично команде ветвления, записанной на алгоритмическом языке, в языке Бейсик существуют полная и сокращенная формы условного оператора.
Таблица. Формат оператора IF:
Блок-схема
Бейсик
Блочная форма
Линейная форма
Н
еполная развилка
IF условие THEN
серия
END IF
IF условие THEN серия
Если условие принимает значение ИСТИНА, то выполняется серия команд.
П
олная развилка
IF условие THEN
серия 1
ELSE
серия 2
END IF
IF условие THEN серия 1 ELSE серия 2
Если условие принимает значение ИСТИНА, то выполняется серия команд 1, в противном случае - серия команд 2.
Задача 1 Из двух данных чисел выбрать наибольшее
REM Большее из двух
INPUT «Введите 2 числа», A, B
IF A > B THEN C = A ELSE C = B
PRINT "Большее число"; C
END
Задача 2. Сформулируйте условие задачи по предложенной программе:
INPUT «Введите число», X _______________________________
IF X < 0 THEN _______________________________
Y = -X _______________________________
ELSE _______________________________
Y = X _______________________________
END IF
PRINT Y
END
Сложные условия, составленные с помощью логических связок и, или, не, записываются на языке Бейсик с применением английских слов: AND - и, OR - или, NOT - не.
Примеры:
Условия: Бейсик:
(0 ≤ x) и (x ≤ 1) (0 <= x) AND (x<= 1)
(0 ≤ x) или (x ≤ 1) (0 <= x) OR (x<= 1)
не (x = y) NOT (x = y)
Безусловный переход
Для изменения порядка выполнения команд используется оператор безусловного перехода GOTO («идти к»).
Формат оператора: GOTO номер_строки или метка
По этой команде управление передается команде, помеченной номером строки или меткой. Командами GOTO следует пользоваться как можно реже, так как они делают программу трудно читаемой для человека - приходится особо следить за тем, в каком порядке выполняются строки программы.
Пример 1. Сформулируйте условие задачи по предложенной программе
1 INPUT A *: INPUT A
IF A < 0 THEN GOTO 1 IF A < 0 THEN GOTO *
B = SQR (A) B = SQR (A)
PRINT В PRINT
__________________________________________________________________
__________________________________________________________________
Ответьте на вопрос: с какой целью в данной программе использован оператор безусловного перехода?
П
Запишите результат работы программы:
ример 2. Определите, что будет выведено на экран в результате выполнения следующей программы:
GOTO 4
1 PRINT "Он храбрецом не слыл"
GOTO 3
2 PRINT "Он человеком был"
GOTO 5
3 PRINT "Но поклонись ему"
GOTO 2
4 PRINT "Он мудрецом не слыл"
GOTO 1
5 END
?
Контрольные вопросы
-
Сформулируйте определение условного оператора.
-
Какие существуют формы записи условного оператора? Приведите примеры.
-
Как записываются на языке Бейсик сложные условия?
-
Для чего в программах используется оператор безусловного перехода?
-
Как оформляется оператор безусловного перехода к строке, помеченной номером, меткой?
Домашнее задание
-
Выучить конспект
-
Ответить на контрольные вопросы
-
Составить программу вычисления большего их трех чисел
З
адачи
Задача №1. Заполните пропуски в программе, которая определяет меньшее из трех чисел.
INPUT A, B, C
IF A < B THEN
D = ____
ELSE
D = ____
END IF
IF D < ____ THEN
M = D
ELSE
M = ____
END IF
PRINT "Меньшее из трех данных чисел равно"; _____
END
Задача № 2. В баскетбольную секцию принимаются юноши, достигшие возраста 13 лет и ростом не ниже 165 см. Составьте программу зачисления юношей в секцию.
Задача № 3. Составить программу нахождения корней квадратного уравнения ax2+bx+c=0, где a≠0.
Задача № 4. Составить программу вычисления значения функции .
Задача № 5. Сравните два числа, большее из них уменьшите в 2 раза, а меньшее уменьшите на 2.
Задача № 6. Вычислите значение функции:
а) представленную графиком
0 2
б) представленную формулой
Составьте программы к задачам №4-9 темы «Конструирование алгоритмов разветвляющейся структуры»
Дополнительные задания
Задача № 1. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц оплачиваются В р., а разговоры свыше установленной нормы оплачиваются из расчета С р. в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.
Задача № 2. На плоскости XOY задана своими координатами точка А. Указать, где она расположена: на какой оси или в какой координатной четверти.
Задача № 3. Составить программу, определяющую по трем данным числам, могут ли они быть длинами сторон треугольника. В случае утвердительного ответа проверить, является ли треугольник прямоугольным. (Примечание. Определите сначала длину большей стороны)
Домашнее задание
Используя команды IF и GOTO, составьте программу вычисления
S = 1 + 2 + 3 + 4 + … + 100
Операторы цикла
!Рассмотрим решение домашней задачи двумя способами
Такой способ организации действий называется циклом или командой повторения.
I способ реализуется при помощи команд IF и GOTO (см. домашнее задание)
II способ - цикл «ДЛЯ» (цикл с параметром) реализуется при помощи команды FOR… NEXT
Цикл FOR… NEXT - это цикл с заранее заданным числом повторений.
Формат оператора:
FOR параметр = начало ТО конец [STEP шаг]
<серия команд>
NEXT параметр
Запишем решение задачи, используя цикл FOR:
S = 0
FOR I = 1 TO 100 STEP 1
S = S + I
NEXT I
PRINT S
Сформулируйте условие рассмотренной задачи:
В случаях, когда шаг изменения равен 1, команду STEP можно опустить. Например, FOR I = 1 TO 100
S = S + I
NEXT I
«Досрочный» выход из цикла
Для цикла FOR предусмотрена возможность безусловного выхода из цикла (до его завершения по заданному условию). Управление передается команде, следующей за NEXT. Формат команды выхода:
EXIT FOR
?
Контрольные вопросы
-
Какие виды циклов вы знаете?
-
Как на языке Бейсик реализуются циклы с условием, счетчиком?
-
Какой оператор служит для «досрочного» выхода из цикла?
Задачи
Задача № 1. Определите, сколько раз будет выполнено тело цикла в приведенном фрагменте
FOR I = 2 TO N STEP 1
S = S + I
NEXT I
при N, равном: а) 2; б) 0; в) 4; г) 5.
Задача № 2. Дана серия операторов:
A = 1
A = A + 2
A = A + 3
A = A + 4
A = A + 5
A = A + 6
Определите, с результатами выполнения каких фрагментов программ совпадают результаты выполнения этой линейной серии:
а) A = 0 б) A = 1: N = 6 в) A = 0
FOR I =1 TO 6 FOR I = N TO 2 STEP -1 FOR I = 2 TO 6
A = A + I A = A + I A = A + I
NEXT I NEXT I NEXT I
Следующие задачи (№№3-11) реализуют алгоритмы, составленные вами в теме «Конструирование алгоритмов циклической структуры»
Задача № 3. Найти произведение положительных двузначных чисел.
Задача № 4. Вычислить:
-
(x+1)*(x+2)*(x+3)*…*(x+11)
-
произведение двузначных чисел, кратных числу 3,5
-
сумму четных трехзначных чисел
-
(2t+3) + (2t+6) + (2t+9) + ...+ (2t+30), где t - целое число
-
+ + + +
-
123 + 456 + 789 + +434445
-
22+24+26+28+210
Задача № 5. Расход бензина на 100 км пути в среднем составляет 9 л. Составить программу определения стоимости бензина для расстояний 200 км, 400 км, 600 км, 800 км и 1000 км, если цена одного литра равна x руб.
Задача № 6. Цена 1 кг сыра k рублей. Составить программу, определяющую стоимость 100 г, 200 г, 300 г, 400 г, 500 г, 600 г, 700 г, 800 г сыра.
Задача № 7*. Каждая бактерия делится на две через 1 минуту. В начальный момент имеется 1 бактерия. Сколько их будет через n минут?
Задача № 8. Последовательно вводятся N целых чисел. Определить, каких среди них больше положительных или отрицательных?
Задача № 9. Наташа позвонила классному руководителю и сказала, что она заболела, градусник показывает температуру 102,20.
Ответьте на вопрос может ли такое быть или девочка обманывает учителя.
Подсказка. Напечатайте таблицу перевода температуры из градусов по шкале Цельсия (C) в градусы по шкале Фаренгейта (F) для значений температуры от 25C до 40C с шагом 1C. Формула перевода F=1.8*C+32.
Задача № 10. Напечатать таблицу перевода миль в километры для расстояний от 5 до 75 миль с шагом 5, если 1 миля составляет 1,609 км.
Задача № 11. Напечатать таблицу соответствия между весом в фунтах и весом в килограммах для значений от 1 до 10 фунтов с шагом 1 ф, если 1 ф = 400 г.
Задача № 12. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Составьте программу расчета необходимой суммы денег, которую надо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.
Задача № 13 (табулирование функции). Вывести значение функции на отрезке [1; 7] с шагом h = 0.5.
ТЕМА: «СИМВОЛЬНЫЕ ВЕЛИЧИНЫ»
Символьные величины
!
Символьные величины означаются буквой или буквой и цифрой с добавлением символа «$»
Символьные (строковые, текстовые) константы - это заключенные между двойными кавычками строки длиной до 255 символов, которые остаются неизменными в процессе решения задачи.
Такими символами могут быть буквы, цифры, пробелы и любые другие знаки, за исключением знака кавычек. Иногда текстовые константы используются для вывода пояснительных надписей в различных операторах - PRINT, INPUT, REM.
а
Какие строки в примерах являются символьными константами?
__________________________________________________________________________________________________________________) ai$ = "бейсик"
б) С$ = "2+3="
в) INPUT "ВВЕДИ ЧИСЛО"; А
…
PRINT "ОТВЕТ"; A + 20
Символьная переменная - строка длиной до 255 символов, но ее значение может меняться в ходе решения задачи.
Пример 1
INPUT "Введите число, большее 0"; Х
IF К > О THEN С$ = "ПРАВИЛЬНО" ELSE C$ = "НЕПРАВИЛЬНО"
PRINT C$
В данном примере С$ - символьная переменная.
Ввод, присвоение и вывод символьных величин осуществляются так же, как и для числовых:
Пример 2
INPUT "Как вас зовут?"; N$
NAME$ = N$
PRINT "Здравствуйте, "; NAME$
У
пражнения
Задание 1. Найдите ошибки в записях символьных величин (если они есть) и объясните их:
а) А$ = "информатика"
б) СК2 = "вычислительная техника"
в) D$ = компьютер
г)64N$ = "algorithm"
Задание 2. Наберите и запустите программу, вводя различные значения фамилии и имени.
INPUT "Введите ваше имя"; А$
INPUT "Введите вашу фамилию**; В$
PRINT "Здравствуй, "; А$; " "; В$; ". Начнем урок."
Задание 3. Назовите все величины, используемые в программе. Определите, какие из них являются символьными переменными, а какие - символьными константами.
Для символьных величин определена единственная операция - сложение или конкатенация. Она обозначается знаком «+» и позволяет строить из двух символьных величин третью, состоящую из символов первой, за которыми следуют символы второй.
Например, если K$="ин", Р$="форма", S$=''тика'', то результатом сложения D$=K$+P$+S$ будет слово "информатика",
А что получится в результате сложения P$+K$+S$? _____________________
Задание 4.
а) Добавьте и измените строки ранее рассмотренной программы следующим образом:
С$ = А$ + " " + В$ (*)
PRINT "Здравствуй, "; С$; ". Начнем урок."
б) Измените строку (*), поменяв местами А$ и В$.
в) Измените строку (*) до вида С$ = А$ + В$.
Проанализируйте результаты выполнения программы в случаях б) и в).
?
Контрольные вопросы
-
Какие величины называются символьными?
-
Как они обозначаются?
-
Какая операция определена для символьных величин?
-
Каким образом вводятся и выводятся символьные величины?
Самостоятельное задание. Составьте простейшую диалоговую программу, используя символьные величины (покупка в магазине, приобретение билета в кассе и т. д.).
Ф
!ункции обработки
символьных величин
Для работы с символьными величинами есть свои функции, строковые (символьные) функции.
Задание
Подсчитайте длину символьной величины А$="Информатика изучает технологию сбора, хранения и переработки информации".
Функция LEN(X$)
Трудоемкую работу по определению длины текста в Бейсике выполняет функция LEN(X$) (от англ. LENgth -длина), которая находит длину символьной величины Х$. Аргументом функции LEN должна быть символьная величина. Результатом является целое число, заключенное между 0 и 255.
LEN('SOS") = 3
LEN("*****") = 5
LEN("") = О
Функция MID$(X$, N, М)
Одна из основных операций, необходимая для анализа текста, - выделение какой-либо его части. Эту операцию выполняет функция MID (от англ. Meddle - середина). Ее результатом являются символьные строки, поэтому имя этой функции всегда сопровождается знаком $. Функция MID$(X$, N, М) вырезает подстроку длиной в М символов из строки Х$, начиная с символа с номером N.
Функция может находится как справа, так и слева от знака равенства и в зависимости от своего положения выполнять различные действия:
Функция MID$ слева от знака равенства
Формат: В$ = MID$(A$, N, М)
При выполнении этой команды переменной В$ присваивается значение, представляющее собой М последовательных символов величины А$, первый из которых занимает позицию N. (Исходная переменная А$ при этом не искажается)
A$ - из какой переменной вырезают символы
N - с какого символа вырезают
М - сколько символов вырезают
Рассмотрим фрагмент программы:
Х$ = "ИНФОРМАТИКА"
B$ = MID$(X$, 3, 5)
PRINT B$
В результате его выполнения на экран выводится _______________.
Функция MID справа от знака равенства
Формат: MID$(A$, N, [М]) = В$
При выполнении этой команды часть переменной А$ (М последовательных символов, первый из которых занимает позицию N) заменяется значением переменной В$.
Х$ = "ИНФОРМАТИКА"
В$ = "У"
MID$(X$, 11, 1) = B$
PRINT B$
В результате его выполнения на экран выводится _______________.
?
Контрольные вопросы
-
Назовите основные функции обработки строк.
-
Что такое длина символьной величины? Как найти ее с помощью функций языка Бейсик?
-
К
ак работает функция MID$(A$, M, N)? Что представляют собой аргументы этой функции?
Задача 1. Замените в предложении восклицательный знак на вопросительный.
Решение
Используемые величины:
А$ - вводимый текст;
N - длина вводимого текста;
В$ - вырезаемый из текста символ;
I - номер вырезаемого символа;
С$ - текст, в котором «!» заменен «?>».
Алгоритм решения
Из вводимого текста А$ вырезается по одному символу В$ и проверяется условие: если BS$="!", то С$=С$+"?", иначе С$==С$+В$.
INPUT A$
M = LEN(A$)
С$ = ""
FOR I = 1 TO N
В$ = MID$(A$, I, 1)
IF B$ = "!" THEN C$ = С$ +"?" ELSE C$ = С$ + В$
NEXT I
PRINT C$
END
Вопрос. Обязательно ли использовать при решении величину N? Почему?
Задача 2. Дан текст. Определить, содержит ли он символы "*".
Решение
Вопрос. Что изменится в решении, если находить нужно не «*», а «**>»? «+++»?
Задача 1. Во введенном тексте поменяйте «!» на «?» и наоборот.
Задача 2. Напишите программу, которая из слов «финал», «урок», «турист», «балет», «окно», «линия» составит слово «футбол».
Задача 3. Составьте 5 слов из слов "информатика" и "компьютер".
!
Сравнение символьных величин
Даны три слова: «вычислитель», «исполнитель», «алгоритм». Упорядочите эти слова.
Решая данную задачу, сталкиваемся с необходимостью сравнить эти три слова, какое-то из них сделать «большим», какое-то «меньшим». А можно ли вообще сравнивать символьные величины, имеющие далеко не близкие значения, например «лошадь» и «Бейсик»?
Сравнение символьных величин основано на том, что каждый символ имеет свой ASCII-код и при сравнении символьных величин сравниваются коды составляющих их символов.
Операторы сравнения: <, <=, =, <>, >=, >.
Кодировка у каждого типа машин своя. Например, для Бейсика строчные буквы латинского алфавита имеют коды в промежутке от 97 («а») до 122 («z»), прописные - от 65 («А») до 90 («Z»). Поэтому "а"<"z".
Буквы русского алфавита закодированы таким образом, что сначала следуют в алфавитном порядке строчные, а затем в алфавитном же порядке прописные.
Символьные величины сравниваются посимвольно; начиная с первого символа. Если первые символы обеих величин совпадают, то сравниваются вторые и т. д. Сравнение ведется до первой пары символов, не удовлетворяющих условию.
"банан" > "ананас"
"банан" < "Ананас"
"булка" > "бублик".
Большинство версий Бейсика учитывают пробелы, имеющиеся справа и слева от букв:
"мгпи"<>" мгпи" "мгпи" <> "мгпи ".
Если длины сравниваемых величин не совпадают, то меньшее дополняется пробелом (пробел является самым младшим символом).
Задача. Используя таблицу ASCII-кодов, сравните следующие величины:
А$ == ".;d",
В$ = ".*Zh"
C$ = ")Wiqt".
Решение
Запишем коды данных величин:
А$ соответствует последовательности кодов - 46, 59, 100, 32 (добавили два пробела, чтобы сравниваемые величины имели одинаковую длину);
В$ - 46, 42, 90, 104, 32 (добавили один пробел);
С$- 41,87, 105, 113, 116.
Получаем, что С$<В$<А$.
Решение задач
Используя операции сравнения и известные функции обработки строк, можно решать задачи различного типа, например задачи на подсчет и поиск.
В условиях задач типа «подсчет, поиск» присутствуют слова «найти...», «подсчитать...», при этом указывается условие, которому должны удовлетворять подсчитываемые символы (или группы символов).
Алгоритм решения задач типа «подсчет и поиск»:
-
ввести текст, определить его длину;
-
«вырезать» из текста группу символов и проверить, удовлетворяет ли она условию задачи;
-
если требуется только найти группу символов, удовлетворяющих заданному условию, то выдать сообщение, что символы найдены, или что групп символов, удовлетворяющих такому условию, нет;
-
если требуется подсчитать количество групп символов, удовлетворяющих заданному условию, то изменить значение счетчика;
-
если конец текста достигнут, то завершить работу программы.
Задача 1. Введите текст и определите номер позиции первой точки, заканчивающей предложение (предполагается, что хотя бы одно из предложений заканчивается точкой).
Решение
Используемые величины:
А$ - вводимый текст;
В$ - символ, вырезаемый из текста (текущий и стоящий справа);
Е$ - символ, вырезаемый из текста (текущий и стоящий слева);
N-длина текста;
f - номер пары символов в тексте;
В - номер первой точки.
Текст просматривается начиная со второго символа.
Поскольку возможны два случая употребления точки - точкой оканчивается предложение и точка употребляется в многоточии, то проверяются, во-первых, текущий и стоящий справа символы, если они равны ". *, то это точка в конце предложения; во-вторых, текущий и находящийся слева от точки, их комбинация не должна быть "..".
Если оба условия выполняются, то, значит, первая точка найдена (В=1) и просмотр текста заканчивается.
INPUT A$
N = LEN(A$)
FOR I = 2 ТО N - 1
В$ « MID$(A$, 1, 2)
Е$ = MID$(A$, I - 1, 2)
IF B$ = ". " AND E$ < > ".." THEN В = I ELSE 1
I = N
1 NEXT I
PRINT В
END
Задача 2. Подсчитайте количество слов в тексте, заканчивающихся на букву «я». Подсказка. Задача сводится к подсчету количества комбинаций символов «я », «я,», «я:», «я., «я?», «я!».
Задача 3. Каждые пять символов во введенном тексте отделите знаком «*».
Задача 4. Какая буква в предложении, введенном с клавиатуры, встречается чаще первая или последняя.
ТЕМА: «ПОДПРОГРАММЫ»
При составлении алгоритма часто возникает необходимость многократного использования одного и того же набора действий.
З
120адача 1. Составить программу изображения трёх концентрических окружностей с радиусами: R1= 100, R2 = 70, R3 = 40.
Какую, изученную ранее алгоритмическую конструкцию можно использовать при решении данной задачи и почему?
Допишите недостающие записи в программе:
S
Какое действие повторяется?CREEN 7
FOR R = ___ TO ___ STEP ___
CIRCLE ( ___ , ___ ), ___ , 3
NEXT R
END
Задача 2. Составить программу изображения трёх кругов с радиусами:
R1 = 100, R2 = 80, R3 = 25.
Возможно ли использование циклического алгоритма, для решения этой задачи? Почему?
П
а)
SCREEN 7
CIRCLE (150,120), 100, 2
PAINT (150,120), 2, 2
CIRCLE (150,120), 80, 4
PAINT (150,120), 4, 4
CIRCLE (150,120), 25, 15
PAINT (150,120), 15, 15
END
рограмма может быть записана следующими способами:
б
Какой набор действий повторяется многократно?)
SCREEN 7
R = 100: C = 2
CIRCLE (150,120), R, C
PAINT (150,120), C, C
R = 80: C = 4
CIRCLE (150,120), R, C
PAINT (150,120), C, C
R = 25: C = 15
CIRCLE (150,120), R, C
PAINT (150,120), C, C
END
Н
!абор действий выполняется многократно при значениях аргументов R и C, изменяющихся без определённой закономерности.
Набор действий, который может решать одну и ту же задачу с разными значениями исходных данных, выделяют в качестве самостоятельного алгоритма и дают ему имя. С этого момента он становится вспомогательным алгоритмом и появляется возможность обращаться к нему из разных точек основного (рабочего) алгоритма любое число раз.
Закончить определение.
Вспомогательный алгоритм это - __________________________________________________________________________________________________________________________
Подпрограмма - это группа операторов или часть программы, которую можно многократно использовать, обращаясь к ней из различных точек программы.
Программа, в которой используется подпрограмма, называют основной.
В основной программе набор команд, из которых состоит подпрограмма, заменяют одной командой вызова подпрограммы.
При использовании подпрограмм необходимо учитывать
следующие правила:
-
Программа может содержать любое количество подпрограмм.
-
Основная программа записывается перед подпрограммой и отделяется от подпрограммы оператором END.
-
Написание основной программы следует начинать с определения набора команд, выделенных в подпрограммы.
-
Подпрограмма может содержать любое количество строк, состоящих из любых команд языка программирования.
-
Подпрограмма может быть выполнена при помощи оператора GOSUB.
-
Конец подпрограммы отмечается оператором RETURN.
-
Подпрограмма может быть вызвана из других подпрограмм.
-
Перед обращением к подпрограмме всем её входным переменным необходимо присвоить нужные значения.
-
В основной программе имя прочей переменной не должно совпадать с именем внутренней переменной подпрограммы.
GOSUB n - оператор обращения к подпрограмме, где n - номер строки (метка) подпрограммы
RETURN - оператор возврата из подпрограммы. Возврат осуществляется к команде рабочей программы, которая следует за командой обращения к подпрограмме.
Обозначение обращения к подпрограмме на блок-схеме:
Схема использования подпрограммы:
ПРИМЕРЫ
Задача 2 (решение)
Выделим в качестве подпрограммы набор команд рисующих круг.
SCREEN 7
Основная программа= 100: C = 2
GOSUB 1
R = 80: C = 4
GOSUB 1
R = 25: C = 15
GOSUB 1
END
1 REM КРУГ
ПодпрограммаEM арг R, C
CIRCLE (150,120), R, C
PAINT (150,120), C, C
RETURN
Задание. Укажите стрелками порядок исполнения программы для рисования второго и третьего круга.
Вывод При использовании подпрограмм решение новых задач можно свести к решению уже известных, а решение сложных задач - к решению более простых подзадач.
Задача 3. Составить программу изображения домика.
70 100 140 190 230 280 310
Решение данной задачи можно разбить на две подзадачи:
нарисуй крышу
нарисуй корпус
Рисование крыши можно свести к рисованию двух отрезков с разными координатами концов.
Задание: Напишите команды для изображения этих отрезков
Крыша
Нарисовать корпус, значит, нарисовать три прямоугольника с разными координатами концов их диагоналей.
Задание: Напишите команды для изображения этих прямоугольников
Корпус
Вывод: Решение задачи можно свести к изображению двух отрезков и трёх закрашенных прямоугольников, с различными исходными данными.
О
(a1,b1)трезок (координаты концов и цвет)
LINE (X1,Y1) -(X2,Y2), C
П
(a2,b2)рямоугольник (координаты концов диагонали и цвет)
LINE (a1,b1) - (a2,b2), C1
З
1
2адание 1: Запишите подпрограммы рисования отрезка и закрашенного прямоугольника.
Основная программа
Задание 2: Допишите в рабочей программе недостающие команды.
SCREEN 7
X1 = 70: Y1 = 150: X2 = 190: Y2 = 60: C = 10
X1 = 310: Y1 = 150: X2 = 190: Y2 = 60: C = 10
a1 = 70: b1 = 150: a2 = 310: b2 = 300: C = 10
a1 = 100: b1 = 180: a2 = 140: b2 = 240: C = 4
a1 = 230: b1 = 180: a2 = 280: b2 = 300: C = 2
END
?
Вопросы и задачи
-
Объясните, как выполняются правила использования подпрограмм в данной программе изображения домика?
-
Г
де будут расположены подпрограммы?
Задача 4 Известен возраст трёх мальчиков. Определить возраст старшего из них.
Напишите программу по предложенному алгоритму, записав команды рядом с соответствующими блоками.
З
Ответ
____________________________________________________________________________________________________________________________адача 5. Определите результат исполнения программы и сформулируйте условие задачи.
CLS
N = 4
GOSUB 1
X = P
N = 3
GOSUB 1
Y = P
Z = X/Y
PRINT Z
END
REM Произведение (Факториал)
P = 1
FOR I = 1 TO N
P = P * I
NEXT I
RETURN
Задача 6. Составить программу изображения трёх разноцветных кругов произвольных радиусов.
1) Обоснуйте рациональность использования подпрограммы при решении этой задачи.
_____________________________________________________________________
2) Что служит входными данными в подпрограмме? _____________________________________________________________________
3) Сколько раз в основной программе используется команда обращения к подпрограмме? ____
4) Допиши в программе недостающие команды.
S
CREEN 7
100 REM Круг
CIRCLE (X,Y), C
PAINT (X,Y), C, C
________________
GOSUB 100
GOSUB 100
X = 150: Y = 90: R = 30: C = 4
100 REM Круг
И
спользуя библиотеку подпрограмм составить программы решения задач
Задачи из курса алгебры
Вычислить значение выражения
а) ; б) ; в) ; г)
д) .
Задачи из курса геометрии
-
Сравнить длины отрезков AB и CD, если известны координаты их концов.
И
Рис. 2
Рис. 2
Рис. 1спользовать подпрограмму вычисления длины отрезка по координатам его концов (Рис. 1)
2. Вычислить периметр треугольника и площадь треугольника MNP (Рис.2).
-
О
пределить существует ли треугольник со сторонами равными длинам отрезков:
а) б)
-
Используя подпрограмму вычисления площади треугольника по формуле Герона
а) вычислить площадь выделенного б) вычислить площадь фигуры
треугольника по длинам отрезков
-
Вычислить площадь кольца, если известны радиусы окружностей.
Использовать подпрограмму вычисления площади круга.
Задачи из курса физики
-
Футболист ударом ноги посылает мяч вертикально вверх с высоты h0=0,4м с начальной скоростью V0=18м/с. На какой высоте будет мяч через 2с, 3с, 5с? Использовать подпрограмму вычисления высоты тела в определённый момент времени.
-
Кубик из мрамора имеет объём 1 см 3, кубик изо льда 2,5 см 3 , из латуни 0,5 см 3. Какой из кубиков имеет (меньшую) массу, если плотность мрамора 2,7 г/см3 плотность льда 0,9 г/см3 , а плотность латуни 8,5 г/см3 . Использовать подпрограммы вычисления массы тела и максимума (минимума).
-
Определите давление на глубине х метров в воде, у метров в керосине и z метров в ртути, если плотность воды 1000, керосина-800, ртути-13600 кг/м3 . В какой жидкости давление больше (меньше), если P=9,8*ρ*h. Использовать подпрограммы вычисления большего (меньшего) из двух чисел.
Задачи с использованием графических возможностей языка программирования.
Используя подпрограмму, составить программу изображения картинки.
100
-
.
!
Библиотека подпрограмм
1 REM ПЛОЩАДЬ КРУГА
REM АРГ. R; РЕЗ. S
S = 3.14 * R ^ 2
RETURN
2 REM ПЛОЩАДЬ ТРЕУГОЛЬНИКА
REM АРГ. A, B, C; РЕЗ. S
P = (A + B + C) / 2
S = SQR (P * (P-A) * (P-B) * P - C))
RETURN
3 REM МОДУЛЬ
REM АРГ. A; РЕЗ. B
IF A >= 0 THEN B = A ELSE B = - A
RETURN
4 REM БОЛЬШЕЕ ИЗ ДВУХ ЧИСЕЛ
REM АРГ. A, B; РЕЗ. С
IF A > B THEN C = A ELSE C = B
RETURN
5 REM СУММА
REM АРГ. A, B, C; РЕЗ. S
S = 0
FOR I = A TO B STEP C
S = S + I
NEXT I
RETURN
6 REM МЕНЬШЕЕ ИЗ ДВУХ ЧИСЕЛ
REM АРГ. A,B; РЕЗ. С
IF A > B THEN C = B ELSE C = A
RETURN
7 REM ОТРЕЗОК
REM АРГ. X1, X2, Y1, Y2, C
LINE (X1,Y1) - (X2,Y2) , C
RETURN
8 REM СУЩУСТВОВАНИЕ ДРОБИ
REM АРГ. A; РЕЗ. B
IF A = 0 THEN PRINT "НЕ ОПРЕДЕЛЕНО" ELSE B = 1 / A
RETURN
9 REM ПРОИЗВЕДЕНИЕ
REM АРГ. A, B, C; РЕЗ. P
P = 1
FOR I=A TO B STEP C
P = P * I
NEXT I
RETURN
10 REM ДЛИНА ОТРЕЗКА
REM АРГ. X1, Y1, X2, Y2; РЕЗ.L
L = SQR ((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
RETURN
11 REM ТРЕУГОЛЬНИК
REM АРГ. X1, Y1, X2, Y2, X3, Y3, C
L INE (X1,Y1) - (X2,Y2) , C
L INE (X2,Y2) - (X3,Y3) , C
L INE (X3,Y3) - (X1,Y1) , C
RETURN
12 REM ЗАКРАШЕННЫЙ ТРЕУГОЛЬНИК
REM АРГ. X1, Y1, X2, Y2, X3, Y3, X4, Y4,C
L INE (X1,Y1) - (X2,Y2) , C
L INE (X2,Y2) - (X3,Y3) , C
L INE (X3,Y3) - (X1,Y1) , C
PAINT (X4,Y4) , C
RETURN
13 REM ЗАКРАШЕННЫЙ ПРЯМОУГОЛЬНИК
REM АРГ. A1, A2, B1, B2, C
LINE (A1,B1) - (A2,B2) , C , BF
RETURN
14 REM ВЫСОТА
REM АРГ. H0, V0, t; РЕЗ. Н
H = H0 + V0 * t + (9.8 * t ^ 2) / 2
RETURN
15 REM МАССА ТЕЛА
REM АРГ. RO, V; РЕЗ. M
M = RO * V
RETURN
16 REM ДАВЛЕНИЕ
REM АРГ. RO, H; РЕЗ. P
P = 9.8 * RO * H
RETURN
17 REM КРУГ
REM АРГ. X, Y, R, C
CIRCLE (X, Y) , R, C
PAINT (X, Y) , C
RETURN
18 REM ПОЛУКРУГ
REM АРГ. X, Y, R, C
CIRCLE (X, Y) , R , C , 0 , 3.1416
LINE (X - R, Y)-(X + R, Y) , С
PAINT (X, Y - 1) , C
RETURN
ТЕМА: «МАССИВЫ»
О
-
!
Массив - упорядоченная последовательность однотипных величин, обозначенная одним именем. Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти.
Примеры: любой список числовых или символьных констант
-
«Домашняя библиотека. Книги Л. Толстого»: "Война и мир", "Анна Каренина", "Воскресенье", "Севастопольские рассказы", "Отец Сергий"
-
Натуральные двузначные числа от 10 до 100.
-
Классный журнал, аттестат зрелости.
-
Среднемесячная температура за 1 квартал 2000-2003г.
год
январь
февраль
Март
2000
-10
-14.9
-5.6
2001
-9.2
-19
-11
2002
-14
-16.2
-4.5
2003
-9.3
-17
-8
Массив имеет три характеристики:
-
Имя;
-
Тип
-
Количество элементов
Имя массива формируется по правилам Бейсика.
Тип выбирается программистом, в зависимости от типа величин которые будут храниться в массиве
Количество элементов называют размером массива
Например
-
имя - "Книги" Л. Толстого", тип- символьный, размер -5
-
имя - двузначные числа, тип- целый, размер - 90
Элемент массива - это один предмет из множества предметов, которые образуют массив.
Например
массив - список книг домашней библиотеки Л. Толстого, элемент - книга
-
массив - список учащихся 1 группы, элемент данного массива - ученик
-
массив - список натуральных двузначных чисел, элемент - число от 10 до 99.
Каждый элемент массива имеет три характеристики:
-
Имя - имя "Книга Л. Толстого".
-
Значение элемента - название книги, например "Воскресенье"
-
Порядковый номер элемента - порядковый номер книги в списке библиотеки (3)
Порядковый номер (индекс) - основная характеристика элемента, определяет положение элемента в массиве
В примерах 1-3 индекс равен 1, т.к. положение элемента в массиве определяет только одна координата - номер по порядку. Такие массивы называются одномерными.
В примере 4 представлен двумерный массив, т.к. значение температуры определяется двумя индексами - номером строки и номером столбца.
Количество индексов, с помощью которых определяется элемент массива называется размерностью массива.
Массив, по аналогии с ящиками, можно представить как несколько одинаковых ящиков, скреплённых вместе. На всю конструкцию как целое повешен один ярлык с именем массива. Все ящики такой конструкции пронумерованы, начиная с 1. Содержимое ящиков - это элементы массива. Номер ящика - это значение индекса элемента массива.
Чтобы получить доступ к нужному элементу массива, необходимо:
-
указать имя массива;
-
индекс элемента массива.
Индекс записывается в круглых скобках после имени: А(3)=76.
Таким образом, мы имеем простой способ перехода от одного элемента массива к другому, меняя индекс.
А(1)=10
А(2)=11 For I=1 to 90
A(3)=12 или A(I)=10
A(4)=13 Next
. . .
А(90)=99
Условные обозначения
Обозначение
Смысл
A(N), N=12
Массив с именем А и размером 12
ST(R), R=7
Массив с именем ST, состоящий из 7 элементов
A$(3)
Третий элемент символьного массива А$
B34(6)
Шестой элемент массива B34
A(2)=9
Второму элементу массива А присвоено значение 9
D$(3)="Петр"
Значение третьего элемента символьного массива D$ равно "Петр"
G(I)
I-й элемент массива G
B(K)
K-тый элемент массива B
Схематическое изображение массива А
1
2
3
4
5
6
7
А
8
В первой строке таблицы - порядковые номера элементов массива A(N), N=7, во второй - имя массива и значения его элементов (A(5)=8).
Эта таблица позволяет наглядно представить расположение элементов массива в памяти
Элементы массива последовательно располагаются в памяти ЭВМ. При обращении к элементу массива указывается имя массива и индекс: A(5)=8, BIBL$(3)="Воскресенье".
Описание массива
Прежде, чем использовать массивы в программе, надо дать машине указание, чтобы она заранее отвела в памяти место. Для этого служит команда DIM (по английски dimension-"размер").
Формат: DIM X ( N ), где Х - имя массива, N - верхняя граница изменения индекса (задаётся натуральным числом).
Нижняя граница фиксирована и равна 0.
Например,
Команда DIM A(3) описывает массив А из 4-х элементов: А(0), А(1), А(2), А(3).
Команда DIM A(10), BAS(3,4) определяет одномерный массив A, состоящий из 10 элементов и двумерный массив BAS, состоящий из 12 элементов (3 строки и 4 столбца).
DIM A(7), T$(13) описывает два массива: числовой массив А, состоящий из 8 элементов, и символьный массив Т из 14 элементов. В памяти будет выделено соответственно 8 ячеек и 14 ячеек памяти.
Перед использованием в программе массив должен быть описан. При описании указываются его имя и количество элементов в нем (для двумерного - число строк и столбцов):
Способы заполнения массива
Пример 1. Заполнение элементов массива "вручную".
DIM A(4) ' в памяти выделяется место для 4 элементов
A(1)=1.2 ' первому элементу массива А присваивается значение 1.2
A(2)=4 ' второму элементу массива А присваивается значение 4
A(3)=-34 ' третьему элементу массива А присваивается значение -34
A(4)=0.5 ' четвертому элементу массива А присваивается значение 0.5
Пример 2.
А) Заполнение элементов массива с клавиатуры с заданным числом элементов.
DIM B(5)
FOR I=1 TO 5
INPUT A(I)
NEXT I
В
Массив будет выведен в виде линейной таблицы с последующим переводом курсора в начало следующей строки.
ывод массива на экран
FOR I=1 TO 5
PRINT A(I);
NEXT I
Б) Ввод одномерного массива с клавиатуры произвольной размерности, которую задаёт пользователь.
INPUT "размерность массива"; N
DIM A(N)
FOR I=1 TO N
INPUT A(I)
NEXT I
Пример 3. Заполнение элементов массива c использованием формулы
DIM B(5)
FOR I=1 TO 5
B(I)=2*I
NEXT I
Пример 4. Заполнение элементов массива cлучайными числами (частный случай использования формулы)
Встроенная математическая функция RND(1) генерирует случайные числа двойной точности, равномерно распределённые в открытом интервале от 0 до 1.
Вследствие того, что во многих случаях при каждом запуске программы требуется получить новую последовательность случайных чисел, в состав языка включён оператор RANDOMIZE, позволяющий решить эту задачу.
Оператор RANDOMIZE (перемешать) задаёт исходное состояние генератора случайных чисел, реализуемого с помощью функции RND.
Формат: RANDOMIZE [n] (где n - число или выражение)
Удобным способом автоматической перенастройки генератора случайных чисел является использование совместно с оператором RANDOMIZE функции TIMER, выдающей время, прошедшее с момента загрузки операционной системы. Включение перед функцией RND строки: RANDOMIZE TIMER обеспечивает неповторяемость последовательностей случайных чисел, поскольку при каждом запуске программы функция TIMER будет иметь новое значение.
а) CLS
INPUT "размерность массива"; n
RANDOMIZE TIMER
FOR I=1 TO n
A(I)=RND(1)
NEXT I
б) Чтобы массив был задан в ограниченном интервале, например,[0;10), необходимо использовать формулу:
A(I)=RND(1)*10.
Или, в промежутке [40 ; 50): A(I)=RND(1)*10+40
в) Для получения случайных чисел с разными знаками: A(I)=RND(1)*10-5
г) В задачах заполнения массива предпочтение отдаётся целым числам, в связи с чем можно использовать функцию преобразования чисел INT(x), которая преобразует вещественный аргумент х в ближайшее целое число, меньшее х (округляет «вниз»).
Например, INT(2.9)=2; INT(-7.2)=-8, тогда программная строка может выглядеть, например, так: A(I)=INT(RND(1)*10)-5
У
пражнения
-
Объяснить смысл обозначений.
а) N=10 б) B1( R ), R=7 в) А2(5) г) А(2)=5 д) МS(K) e)B(I) ж) DIM М(N)
-
Дана модель массива В
1
2
3
4
5
6
7
8
В
0
9
-5
-9
78
2
14
87
Определите: а) размер массива;
б) значение элемента В(4);
в) значение элемента В(2);
г) номер элемента массива, значение которого равно 2.
-
Изобразить модель массива (к каждому из заданий № 1, № 2, № 3) и отразить в ней результат работы программы по данному образцу.
Индекс элементов I
Значения элементов A(I)
№ 1. DIM A(8) № 2. DIM D(9) № 3. DIM P(8)
FOR I=2 TO 8 STEP 2 FOR I=1TO 6 STEP 2 FOR I=1 TO 8
A(I)=3*I D(I)=2*I^2 P(I)=3*I
NEXT I NEXT I NEXT I
В задании №3 дописать программу так, чтобы нечётные элементы массива изменили своё значение на число 67 (модель нового массива не изображать).
-
Н
б) INPUT N
DIM B(N)
FOR I=1 TO N
C(I)=0.5*I^2+5*I-6
NEXT I
PRINT C(I);
айдите ошибки:
а) DIM A(N)
S=0
FOR I=1 TO N
S=S+ A(1)
PRINT S
NEXT I
Домашнее задание
-
Выучить определения. Что означает термин «одномерный»? Запишите пример одномерного массива.
-
Назовите характеристики массива. Что вы знаете об элементе массива и его характеристиках?
-
Какую роль играют характеристики элемента массива при определении местоположения элемента массива в памяти,
-
Запишите словесные выражения следующих записей:
а) M(N), N=7
б) Z(2)=9
в) S(t)=0
г) L(1)=55
-
Схематически изобразите условие следующей задачи.
Дан массив Z(N), N=5; Z(1)=2, Z(2)=14, Z(5)=-7, все остальные элементы массива имеют значение 55.
-
"Проверь себя". Дан массив A(N), N=5. Его элементы имеют следующие значения: A(N)=4; -8; 5; 3; -2. Существует программа, в которой после оператора ввода значений элементов этого массива в память ЭВМ следуют операторы присваивания: A(3)=0 и A(5)=A(1). Как вы думаете, внесут ли эти операторы изменения в заданный массив. Если внесут, то какие и почему?
-
Решите задачи "заполнения массива"
-
Заполните массив 0.
-
Сделайте все элементы массива равными числу х.
-
Заполните массив квадратами натуральных чисел.
-
Заполнить массив последовательностью нечетных двузначных чисел.
Виды задач на массивы
-
Задачи заполнения
-
Задачи анализа
-
Задачи поиска
-
Задачи перестановки
Решая задачи с использованием массивов, необходимо четко придерживаться следующей последовательности в работе:
-
Ввод элементов массива, т.е. происходит заполнение массива.
-
Вывод данного массива на экран (с поясняющей надписью).
-
Обработка элементов массива согласно условию задачи.
-
Вывод результатов, полученных после обработки, на экран (с поясняющей надписью).
Наглядно работа представлена в виде блок-схемы
Задачи заполнения
Дан массив произвольной размерности.
-
Заполнить массив 0.
-
Сделать все элементы массива равными числу х.
-
Заполнить массив квадратами натуральных чисел.
-
Заполнить массив последовательностью чётных чисел.
-
Заполнить массив значениями элементов последовательности Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21, …
-
Заполнить массив случайными числами из интервала от 1 до k.
-
Заполнить массив по заданному правилу: b(i)=
-
Заполнить массив по заданному правилу: a(i)=
-
З
аполнить массив по заданному правилу: первые 10 элементов массива b(50) вычисляются по формуле b(i)=, а остальные по формуле
Задачи анализа
В задачах анализа, как правило, требуется определить:
-
сумму (произведение) элементов массива или индексов, удовлетворяющих некоторому условию;
-
количество элементов, удовлетворяющих некоторому условию.
Например, блок обработки нахождения суммы имеет вид:
Внесите изменения в блок-схему
для нахождения произведения.
Задача №1
Наташа сдала в экзаменационную сессию 8 экзаменов, получив при этом оценки 4 и 5. Определите:
-
Какой средний балл набрала Наташа
-
Сколько пятерок она получила.
-
В какие дни сессии девочка получила оценку 4.
Заполните блок-схему нахождения среднего балла.
Задача №2
Среднесуточная температура за первую неделю октября записана в таблицу.
Определите
-
какого числа были заморозки, если известно, что в нечетные дни заморозков не было;
-
сколько дней температура воздуха была отрицательной;
-
первый день заморозков;
-
если температура положительна, то уменьшить ее значение на 5;
-
среднюю температуру недели.
Задача №3
Учащиеся 8-х классов участвовали в посадке деревьев. 8-а посадил 100 деревьев, 8-б -122 дерева, 8-в - 98 деревьев, 8-г - 104 дерева, 8-д - 121 дерево. Определить, сколько посажено деревьев.
Задача №4
Загрузите на экран текст программы. Сформулируйте условие задачи и прокомментируйте решение.
DIM A(10)
FOR I=1 TO 10
INPUT A(I)
NEXT I
FOR I=1 TO 10
? A(I);
NEXT I
FOR I=1 TO 10
IF A(I) MOD 3<>0 THEN ? I
IF I MOD 2 =0 THEN ? A(I)
NEXT I
END
Задача №5*
В области 10 районов. Информация о площадях, засеваемых каждым районом пшеницей, находится в массиве S, а информация об урожае, собранном в каждом районе, находится в массиве U. Определите урожайность пшеницы по каждому району. (Поместить результат в массив R).
DIM S(10), U(10), R(10)
FOR I=1 TO 10
? "Введите площадь";I;"района"
INPUT S(I)
? "Введите урожайность"; I; "района"
INPUT U(I)
NEXT I
FOR I=1 TO N
R(I)=U(I)/S(I)
? R(I);
NEXT I
Задача №6 . Определить стоимость комплекта учебников для учащегося 9 класса.
Задача №7. Информация о количестве выпадавших в течение месяца осадков задана в виде массива. Определить общее количество осадков за месяц.
Задача № 8. Учащимся класса было предложено до конца месяца собрать по 10 кг макулатуры. Выяснить, сколько учащихся перевыполнили норму.
Задача №9. Учащиеся одного класса получили оценки за контрольную работу. Определить, сколько учащихся получили «двойку».
Задача №10. Информация о количестве осадков, выпавших в течение месяца, задана в виде массива Е, а информация о температуре воздуха задана в виде массива Т. Определить, какое количество осадков выпало в виде дождя, а какое в виде снега.
Задача №11. Сформулируй условие задачи
А
Б) DIM T(20)
FOR I=1 TO 20
INPUT T(I)
NEXT I
FOR I=1 TO 20
IF T(I)<0 THEN PRINT I
NEXT
) DIM R(10)
FOR I=1 TO 10
INPUT R(I)
NEXT I
S=0
FOR I=1 TO 10
IF I/2=INT(I/2) THEN S=S+R(I)
NEXT I
PRINT S
______________________________ _____________________________
______________________________ _____________________________
Задачи поиска
Задачи поиска сводятся к нахождению наименьшего и наибольшего элементов массива, а также их номеров.
Задача №1. Проанализируйте предложенную блок-схему. Составьте программу и условие задачи. Условие
Программа
Задача №2. Среднесуточная температура за первую неделю октября записана в таблицу. Определите самую высокую и самую низкую температуру недели.
Задача №3. Заданы результаты участников соревнований по плаванию. Напечатать результат чемпиона и его номер.
Задачи перестановки
(для продвинутых учащихся)
Задача №1. Поменять местами MAX и MIN элементы массива.
DIM A(8)
FOR I=1 TO 8
READ A(I)
? A(I);
NEXT I
MAX=A(1) : MIN=A(I)
FOR I=1 TO 8
IF A(I)>MAX THEN MAX=A(I):MA=I : IF A(I)
NEXT I
A(MI)=MAX : A(MA)=MIN
FOR I=1 TO 8
? A(I);
NEXT I
DATA 1, 3, -8, 7, -6, 4, -45, 3
END
Задача №2. Переставьте элементы массива в обратном порядке (первый - на место последнего, второй - на место предпоследнего и т. д.)
Массив до обработки
1
2
3
4
5
6
7
А
8
4
7
1
9
2
5
Массив после обработки
1
2
3
4
5
6
7
А
5
2
9
1
7
4
8
1) Возникает необходимость сохранить элемент при перестановке в промежуточной ячейке - "кармане", назовем его P.
Алгоритм будет выглядеть так:
A(1) P A(2) P
A(1) A(7) A(2) A(6)
A(7) P A(6) P
I=1 I=2
Меняем местами 1 и 7, 2 и 6 и т. д..
2) Номер переставляемого элемента можно записать формулой A(N-I+1).
3) Перестановок будет 3, т.к. в массиве 7 элементов. В общем случае перестановок будет INT (N), где N-количество элементов.
4) Программа
DIM A(7)
FOR I=1 TO 7 : READ A(I) : ? A(I); : NEXT I
FOR I=1 TO 3
A(1)=P
A(1)= A((N-I+1)
A((N-I+1)=P
NEXT I
FOR I=1 TO 7 : ? A(I); : NEXT I
DATA 8,4,7,1,0,2,5 : END
Выводы:
В рассмотренных задачах выполняется перестановка элементов массива, поэтому они и называются задачами перестановки.
ЛИТЕРАТУРА
-
Зельднер Г. А QiuckBASIC для носорога, ABF, 1994 г.
-
Шафрин Ю.А. Здравствуй, мир BASICa.Приложение к газете "Первое сентября" Информатика №28-29 1998 г.
-
Мельникова О.И., Бонюшкина А.Ю. Начала программирования на языке Qbasic: -М., ЭКОМ, 1997.
-
Каймин В. А. Основы информатики и вычислительной техники 10-11 класс,. "Просвещение" 1990г.
-
Бабушкина И.А., Бушмелева Н.А. Практикум по Турбо-Паскалю. Учебное пособие по курсам "Основы программирования", "Информатика и вычислительная техника",- М., АБФ, 1998.
-
Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования язык Паскаль. М., Высшая школа, 1991.
-
Гусева Л.И. Учимся информатике. Задачи и методы их решения. М., Диалог-МИФИ, 1998.
-
Фаронов В.В. Турбо-Паскаль 7.0.
-
Гусева А. И. Учимся информатике: задачи и методы их решения. Учебное пособие, М., ДИАЛОГ-МИФИ,1998.
-
Павловский А. И., Пенкрат В. В. Информатика и вычислительная техника. Факультативные курсы: программирование на языке Бейсик, Учебное пособие, Минск "Народная газета", 1988.
-
Юркова Т. А. Информатика, Практическое пособие для старшеклассников, Издательский дом "Пенаты", С.- П., 1997.
-
Светозарова Г. И. Практикум по программированию на языке Бейсик. - М.: Наука, 1988.
13. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. - М.:Мир, 1078.
14.. Любинский Э. З., Мартынюк В. В. Программирование. - М.:Наука, 1980.
15. Вирт Н. Систематическое программирование. Введение. - М.: Мир, 1977.
16. Вирт Н. Алгоритмы + структуры данных = программы. - М.: Мир, 1977.
17. Касьянов В. Н., Сабельфельд В. К. Сборник заданий по практикуму на ЭВМ. - М.: Наука, 1986.
18. Турбо Паскаль 7.0 -. К.:Торгово-издательское бюро BHV, 1996 -448 c: ил.
19. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0. - М.: "ДИАЛОГ-МИФИ", 1993. -288 с.
20. Звенигородский Г. А. Первые уроки программирования. - М.: Наука, 1985.
23. Дьяконов В. П. Применение персональных ЭВМ в программировании на языке Бейсик. - М.: Радио и связь, 1989.
24. Криницкий Н. А. Алгоритмы вокруг нас. - М.: Наука, 1984.
25. Нестеренко А. В. ЭВМ и профессия программиста. - М.: Просвещение, 1990.
26. Монахов В. И. Программирование. Факультативный курс. Пособие для учителя. - М.: Просвещение, 1974.
34