Как составить программу по блок схемы бейсик

На чтение 12 мин Просмотров 4 Опубликовано 11 апреля 2023 Обновлено 11 апреля 2023

П.6. Методика составления программ на языке программирования Бейсик

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

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

Начинать составление программы рекомендуется с составления блок-схемы алгоритма. А написание программы сводится к замене блока алгоритма соответствующими операторами.

Пример 11.6.1 Даны 2 действительных числа. Требуется вычислить в программируемом режиме среднее арифметическое этих чисел и среднее геометрическое их модулей.

Решение:

10 REM «Вычисление ср.ар. и ср. геом.»

Пример 11.6.2 Даны катеты прямоугольного треугольника. Найти гипотенузу и площадь.

10 REM «Вычисление гипот. и площади»

20 INPUT «Введите значения катетов:»;X,Y

50 PRINT «Гипотенуза=»;A;»Площадь=»;S

X Y A S
640.3124
728.5307

2. Разветвляющиеся программы.

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

IF выражение THEN операторы ELSE операторы

Пример 11.6.3Вычислить действительные корни квадратного уравнения при произвольных значениях коэффициентов a,b,c и условии a¹0.

10 REM «Вычисление корней»

40 IF D 0 THEN 80 ELSE 110

Пример 11.6.4 Определить, является ли данное целое число четным.

10 REM»ОПРЕДЕЛЕНИЕ ЧЕТНОСТИ»

30 IF X / 2 = INT(X / 2) THEN 30 ELSE 60

Циклы с произвольным числом повторений реализуются с помощью базовых алгоритмических структур цикл-“пока”, цикл-“до”, цикл с параметром

Цикл-“пока” реализуется на Бейсике с помощью операторов
IF … THEN…ELSE и GOTO…

Пример 11.6.5 Дано натуральное число n. Вычислить n!.

10 REM «вычисление факториала»

50 IF M M THEN 90 ELSE 50

Контрольный счет:

Пример 11.6.8 Дано действительное число а. Найти среди чисел и т.д. первое большее а.

10 REM «НАХОЖДЕНИЕ ЭЛЕМЕНТА»

70 IF S > A THEN 80 ELSE 50

Цикл с параметром реализуется с помощью операторов цикла со счетчиком:

FOR счетчик = начало TO конец [STEP приращение]

Пример 11.6.9 Вычислить (для данного n) n!.

10 REM»Вычисление факториала»

Пример 11.6.10 Вычислить значение функции y=4x 3 -2x 2 +5 для значений х, изменяющихся от -3 до 1 с шагом 0,1.

10 REM «Вычисл. значения функции»

30 Y = Y * X ^ 3 — 2 * X ^ 2 + 5

Э. Дийкстр (известный математик) в своей структурной теореме сказал: «Алгоритм любой сложности можно реализовать, используя триаду «следование» — «повторение (циклы)» — «выбор (развилки)».

Пример 11.6.11 Алгоритм Евклида нахождения наибольшего общего делителя (НОД) неотрицательных целых чисел основан на следующих свойствах этой величины. Пусть m и n одновременно не равные нулю целые неотрицательные числа и пусть m³n. Тогда, если n=0, то НОД(n,m)=m, а если n¹0, то для чисел m, n и r, где r — остаток от деления m на n, выполняется равенство НОД(m,n)=НОД(n,r). Например, НОД(15,6) = НОД(6,3) = НОД(3,0) =3

НОД(56,24) = НОД(24,32) = НОД(24,8) = НОД(8,16) = НОД(8,8) = 8

Даны натуральные числа n, m. Используя алгоритм Евклида, найти наибольший общий делитель n и m.

40 IF M>N THEN M=M-N ELSE N=N-M

Пример 11.6.12 Задано n троек чисел a, b, c. Определить, сколько из предложенных троек можно использовать для построения треугольника, если
a, b, c – длины его сторон.

Источник

Как составить блок схему в бейсике

Понятие об алгоритмах. Псевдокод. Блок-схемы.

Вначале пару слов: у нас сегодня радостный день (ну, не знаю, как у вас, а у меня — точно), т.к. у меня появился помошник в написании уроков VB. Прошу любить и жаловать — с сегодняшнего дня с вами — Dusk. Он согласился взять на себя тяжкий труд по подбору и сочинению заданий для уроков. Dusk, большое спасибо, ты значительно мне помогаешь. В том числе-морально.

Ученые проводят опыт. Под потолком подвешен вне досягаемости банан и бутылка водки. Испытуемые — шимпанзе и алкоголик. В углу лежит ящик. Обезьяна пару раз подпрыгивает, останавливается, потом идет к ящику, ставит его под банан, достает и ест. Пьяница прыгает дальше. Ученые сжалились и стали подсказывать: «Да ты погоди, постой, подумай. » На что получили ответ: «Что тут думать! Прыгать надо. «

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

Для программиста алгоритм всегда был важнее языка, т.к. он показывает как сделать, а язык — как это написать. Непонятно в чем разница? Разберемся.

Язык — это синтаксис, то есть, правильно описанная операция: взяли правильные для этого языка ключевые слова, правильно описали переменную и ее тип, правильно закончили строку, правильно написали операторы и т.д. Чтобы компилятор или интерпретатор — что там с вашим языком работает — поняли в чем дело, что от них требуют и не выдали ошибки.

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

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

Очень часто начинающие программисты ахают и открывают рты, когда маститые мэтры бросают через плечо: «Да какая разница на чем писать!» Понятно, эту фразу очень трудно понять, когда ты еще путаешься в элементарных синтаксических правилах одного языка, а остальные ощущаются как какие-то неподъемные громады в тумане: нечто неясное и аморфное. И очень неясно зачем писать какие-то алгоритмы непонятные. Код надо писать, код! А если неправильно написали, мы чего-нибудь исправим, и опять запустим, и так пока не заработает.

О! В таком виде работа очень напоминает приведенный эпиграф. Прямо один в один!

НО! Не все так плохо. На самом деле каждый из нас даже тот, кто ни в какую не понимает и зачем это ему/ей алгоритмы, он/она и так все нормально сделает, даже такие кадры где-нибудь про себя, в голове, нет-нет да и подумают: ага, сначала надо будет сделать вот это, а после него — то. Вот тут они и попались, т.к. такие мысли можно смело отнести к алгоритмам.

Итак, алгоритм — это последовательность операций (в обычной жизни — действий). Что за чем мы должны сделать, чтобы получить какой-то результат. На самом деле мы уже знакомились с составлением алгоритмов, во всяком случае те, кто читал Вводную лекцию по курсу программирования для начинающих. Напомню — посмотрите задание 1. То, что в нем предлагалось вам сделать, и было написанием алгоритма.

Мне тут подсказывает Сашок, что можно привести хороший пример для сравнения языка с алгоритмом: сделать то же описание похода на кухню по-русски, по-английски и, скажем, по-японски. Алгоритм один и тот же, языки — разные. Выучил новый язык — можешь описать и на нем. Но если не в силах просто членораздельно описать, как пройти на кухню, тогда за программирование лучше и не браться. Даже на самом простом языке.

Каким должен быть алгоритм?

  • Правильным или результативным. То есть, он должен обеспечивать такую последовательность действий, которая позволит вам достичь результата. Если вы, описывая алгоритм утреннего вставания-одевания, опустите операцию «взять одежду в руки», удастся вам одеться? Сомневаюсь, если только вы не фея. Следовательно, такой алгоритм будет неверным без одной-единственной операции.
  • Однозначным. Он должен быть написан так, чтобы не было возможности не единственным образом толковать правила и порядок выполнения действий.
  • Эффективным. То есть, он должен достигать результата максимально удобным и коротким способом. Например, если взять тот же алгоритм «как дойти до кухни из комнаты», то можно сделать это не одним способом. Можно (коротко говоря) выйти из комнаты в коридор, а из него попасть в кухню. А можно вылезти в окно (если вы живете на первом этаже, а если не на первом, то возможностей масса: вылезти по веревке, спуститься, как Тарзан, по балконам соседей, по пожарной лестнице, или придумать что-нибудь покруче в стиле американских экшенов), пробежать/пройти по земле до подъезда, подняться по лестнице или лифтом, открыть свою дверь ключом или позвонить, чтобы кто-то ее открыл и войти на кухню. Итак, цель достигнута в обоих случаях. А про эффективность, думаю, все ясно А про то, что программа, сделанная по неэффективному алгоритму работает во много раз дольше?

Как записать алгоритм.

записывать алгоритмы можно любым удобным способом, лишь бы понятно было.

  • Алгоритмический язык. Хорошо, мы уже выяснили, что алгоритм от языка не зависит. А как же его можно записать? А как мы описывали алгоритм, когда делали задание 1? Правильно, на своем собственном языке. Мы просто описывали — что за чем нужно делать. Обычными словами разговорной речи. Но, наверно, вы заметили, что описания, которые у нас получились — это весьма сдержанный, усеченный вариант речи в котором отсутствуют ненужные красивости и, главное, неоднозначности. Получаем так называемый псевдокод. Это язык описания алгоритмов, искусственный, неформальный (то есть, пишешь так, как тебе удобно, только чтобы другие понимали, если ты работаешь не один).
  • Блок-схема. Алгоритм может быть записан графически. Для этого и служит блок-схема. Для изображения операций в ней используются специальные символы. Познакомимся с основными из них.

Начало или конец. Внутри фигуры пишут начало (или begin — кому как нравится) или конец (end) соответственно. Если вы рисуете не всю схему, а только кусок ее, который нужно расписать подробнее, можете ограничиться маленьким кружочком.

В прямоугольнике находится операция. Можно написать ее словами (например: умножить х на у), а можно кусочком кода с оператором (х*у)

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

Внутри ромба пишутся проверяемые условия (урок С6, урок VB 8). Обычно после проверки условий последовательность операторов перестает быть конструкцией следования и становится конструкцией выбора либо повторения. (следующие уроки будут посвящены именно этим конструкциям)

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

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

Последовательность операторов изображается стрелочками, соединяющими блоки. Например вот так:

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

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

  • Специальные алгоритмические таблицы. Один из примеров таких таблиц является таблица процедур, которая испрользуется для визуальных сред программирования из-за специфики: изначального разделения программы по процедурам обработки событий. Пишутся они следующим образом: в одном столбце пишется название процедуры, во втором столбце — описание этой процедуры как можно более полное, со всеми названиями компонентов, которые участвуют в этой процедуре. Например, если взять ту маленькую программку, которую вам предлагали сделать в курсе VB, где было 2 кнопки — включение звука и выход их программы, то для нее таблица процедур должна выглядеть так:
название процедуры описание этой процедуры
CmdSound_Click При щелчке мышью на кнопке cmdSound вызывается звуковой сигнал
CmdEnd_Click При щелчке мышью на кнопке cmdEnd приложение заканчивает работу.

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

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

  • Поставь машину на ручной тормоз
  • Достань домкрат
  • Сними колпак
  • Ослабь болты на колесе
  • Подними машину на домкрате
  • Выверни болты
  • Сними колесо
  • Достань запасное колесо
  • Одень запасное колесо на место
  • Вверни болты
  • Опусти домкрат
  • Затяни болты
  • Одень колпак
  • Положи домкрат и спустившееся колесо в багажник

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

В представленном виде можно отображать линейную структуру (когда действие происходит одно за другим без выбора). А если на колесах вашей машины нет колпаков, тогда вам эта программа не подойдет. Поэтому в реальных программах часто встречаются механизмы принятия решения, и отображать их лучше в виде блок-схем. Для примера представлена блок-схема «Как поджарить яичницу»:

Задание.

  • Написать алгоритмы и блок-схемы программ, которые вы делали в курсе раньше. Для VB — сделать таблицу процедур.
  • Попробуйте составить блок-схему программы «Как перейти дорогу».

Источник

Темы для изучения: Линейный
алгоритм. Разветвляющийся алгоритм. Циклический
алгоритм. Цикл с известным числом повторений.
Цикл с предусловием. Цикл с постусловием.
Массивы. Процедуры и функции. Графические
возможности QB.

Задачи модуля:

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

Учащиеся должны знать:

  • назначение алгоритма и его определение;
  • свойства алгоритма;
  • формы представления алгоритма;
  • типовые алгоритмические конструкции;
  • представление алгоритма в виде блок-схемы;
  • основные стадии разработки алгоритма.
  • графические исполнители в среде
    программирования QBasic.
  • исполнитель DRAW. Исполнитель LINE. Исполнитель CIRCLE.

Учащиеся должны уметь:

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

Введение в язык программирования Basic.

Для представления алгоритма в виде, понятном
компьютеру, служат языки программирования.
Сначала разрабатывается алгоритм действий, а
потом он записывается на одном из таких языков. В
итоге получается текст программы – полное,
законченное и детальное описание алгоритма на
языке программирования. Затем этот текст
программы специальными служебными приложениями,
которые называются трансляторами, либо
переводится в машинный код (язык нулей и единиц),
либо исполняется.

Basic (Бейсик) создавался в 60-х годах в качестве
учебного языка и очень прост в изучении. По
популярности занимает первое место в мире.

Некоторые операторы языка Basic.

REM – оператор комментария.

CLS – очистить экран.

PRINT (вывод, печать) – оператор вывода.

INPUT (ввод) – оператор ввода.

DIM – оператор описания типа
переменной. .

Для задания значения переменной служит
оператор присваивания. Он записывается так:
LET переменная = значение (или
просто: переменная = значение)

END – оператор конца программы

Арифметические операции на языке Basic.

Операция

Обозначение Пример Результат
Сложение + 2+5 7
Вычитание 10–8 2
Умножение * 3*4 12
Деление / 15/3
15/4
5
3.75
Целочисленное деление 154 3
Возведение в степень ^ 2^3 8
Остаток от деления MOD 13 MOD 5 3

Математические функции на языке Basic.

Корень SQR(X)
Модуль числа ABS(X)
Синус SIN(X)
Косинус COS(X)
Тангенс TAN(X)
Целая часть числа INT(X)
Натуральный логарифм LOG(X)

Линейная структура программы.

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

Пример: Вычислите площадь
прямоугольника по его сторонам.

REM Площадь прямоугольника
INPUT «Введите сторону а», а
INPUT «Введите сторону b», b
s = a * b
PRINT «Площадь равна: «, s
END

Пример: Вычислите длину окружности и
площадь круга по данному радиусу.

REM Вычисление длины окружности и площади круга
INPUT «Введите радиус «, r
PI = 3.14
l = 2 * PI * r
s= PI * r * r
PRINT «Длина окружности равна: «, l
PRINT «Площадь равна: «, s
END

Ветвление в алгоритмах и программах.

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

Рассмотрим запись условного оператора на языке
Basic.

IF <УСЛОВИЕ> THEN <ОПЕРАТОР>

или

IF <УСЛОВИЕ> 
<ОПЕРАТОР 1>
<ОПЕРАТОР 2>

<ОПЕРАТОР N>.

Условия – еще один тип логических выражений. В
них используются следующие операторы
сравнения
:

= равно
<> не равно
> больше
< меньше
>= больше или равно
<= меньше или равно

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

IF…THEN…ELSE…END IF.

IF <УСЛОВИЕ> THEN 
<ОПЕРАТОРЫ 1>
ELSE
<ОПЕРАТОРЫ 2>
END IF

Пример: Проверить, равно ли введенное
число некоторому значению, и в случае равенства
выдать на экран сообщение о равенстве чисел.

REM сравнить число со каким-то значением
INPUT «Введите а», а
IF a=7 THEN PRINT «Числа равны»
END

Пример: Определить большее из двух
чисел, вывести его на экран, затем – увеличить
его в двое и вывести результат на экран.

REM определить большее из двух чисел…
INPUT «Введите а», а
INPUT «Введите b», b
IF a=b TNEN
PRINT «Числа равны»
с=2*a
ELSE
IF a>b THEN
PRINT «Большее число: «, a
с=2*a
ELSE
PRINT «Большее число: «, b
с=2*b
END IF
END IF
PRINT «результат: «, c
END

Пример: Решение квадратного
уравнения.
Решение квадратного уравнения зависит от
значения дискриминанта.

REM Решение квадратного уравнения
INPUT «Введите коэффициент a: «, а
INPUT «Введите коэффициент b: «, b
INPUT «Введите коэффициент c: «, c
d=b*b-4*a*c
IF d<0 THEN
PRINT «Корней нет»
ELSE
IF d=0 THEN
x=-b/(2*a)
PRINT «корень уравнения: «, x
ELSE
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT «корни уравнения: «, x1, x2
END IF
END IF
END

Структура «Выбор».

Структура IF… позволяет выбрать между
двумя вариантами. Если требуется осуществить
выбор между большим числом вариантов, то это
можно организовать используя лишь структуру IF…
Но можно (что чаще проще) и с помощью структуры
«Выбор». Эта структура имеет вид:

SELECT CASE <Выражение>
CASE <условие 1>
<серия 1>
CASE<условие 2>
<серия 2>

CASE ELSE
<серия иначе>
END SELECT

Выражение, заданное после ключевых слов SELECT
CASE
, сравнивается с определенными значениями
– условиями и если они истинны, то выполняется
соответствующая серия команд. Если не одно
условие не истинно, то выполняется серия команд
между CASE ELSE и END SELECT.

Пример: Выдать словесное значение
числа

REM Преобразование чисел в слова
INPUT «Введите число», a
SELECT CASE a
CASE 1
PRINT «один»
CASE 2
PRINT «два»
CASE 3
PRINT «три»

CASE 10
PRINT «десять»
CASE ELSE
PRINT «это число не могу перевести»
END SELECT
END

Циклы а алгоритмах и программах

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

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

Такие циклы называются – циклы со
счетчиком.

На языке Basic они записываются следующим
образом:

FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг]
тело цикла
NEXT [Счетчик]

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

Пример: Вывести на экран все числа от 1
до 100.

REM Вывод чисел от 1 до 100
FOR I=1 TO 100
PRINT I
NEXT
END

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

REM Вывод чисел от b до a
a=55
b=107
FOR I=b TO a STEP -1
PRINT I
NEXT
END

Пример: Вычислить сумму двухзначных
натуральных чисел.

REM Вычислить сумму двухзначных натуральных
чисел
FOR I=10 TO 99
s=s+I
NEXT
PRINT «Результат = «,s
END

Пример: вычислить факториал числа а
(записывается так: а!). Факториал – это
произведение чисел от 1 до а. Например, 5!
(факториал пяти) – это 5!=1*2*3*4*5

REM Вычислить факториал числа
a=5
f=1
FOR I=1 TO a
f=f*I
NEXT
PRINT f
END

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

Циклы такого вида называют – циклы с
предусловием.

На языке Basic они записываются следующим
образом:

DO WHILE условие
Тело цикла
LOOP

В этом цикле проверяется условие и если оно
выполняется (ИСТИНА), то выполняется тело цикла
до ключевого слова LOOP, затем условие проверяется
снова … и так до тех пор пока условие истино.

DO UNTIL условие
Тело цикла
LOOP

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

Пример: Вывести все натуральные числа
меньше данного.

REM Вывод всех чисел меньше данного
a=0
chislo=10
DO WHILE a<chislo
PRINT a
a=a+1
LOOP
END

Вам надо поточить все карандаши в коробке. Вы
точите один карандаш и откладываете его в
сторону. Затем проверяете, остались ли карандаши
в коробке. Если условие ложно, то снова
выполняется действие ‘заточить карандаш’. Как
только условие становится истинным, то цикл
прекращается.

Циклы такого вида называют – циклы с
постусловием.

На языке Basic они записываются следующим
образом:

DO
Тело цикла
LOOP WHILE условие

DO
Тело цикла
LOOP UNTIL условие

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

Пример: Вычислите сумму цифр в числе.

REM Сумма цифр числа
DIM a, chislo, s AS INTEGER
INPUT «Введите число: «, chislo
a=chislo
DO
s=s+a MOD 10
a=a/10
a=INT(a)
LOOP UNTIL a=0
PRINT «Сумма цифр числа «,chislo ,» равна: «, s
END

Массивы. Одномерные массивы.

При работе с большим числом данных одного типа
очень удобно использовать массивы.

Для того чтобы использовать массив его надо
сначала объявить в программе. Для этого
используют оператор DIM. По умолчанию
(если нет оператора DIM в программе)
считается заданным массив из 10 элементов.

Пример: Составить программу
заполнения массива из 15 элементов случайными
числами в диапазоне от 1 до 10. Предусмотреть вывод
массива на экран.

REM Заполнение и вывод массива
DIM mas(15) AS INTEGER
FOR I=0 TO 14
mas(I)=1+INT(RND*10)
NEXT
CLS
PRINT «Вывод массива»
FOR I=0 TO 14
PRINT mas(I);
NEXT
END

Пример: Вывести количество
отрицательных элементов массива.

REM Вывести количество отрицательных элементов
INPUT «Введите число элементов массива», n
DIM mas(n) AS INTEGER
FOR I=0 TO n-1
INPUT «Введите элемент массива», mas(I)
NEXT
CLS
PRINT «Вывод массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
FOR I=0 TO n-1
IF mas(I)<0 THEN k=k+1
NEXT
PRINT
PRINT «Число отрицательных элементов: «,k
END

Подсчет количества отрицательных элементов
массива происходит в цикле:

FOR I=0 TO n-1
IF mas(I)<0 THEN k=k+1
NEXT

Пример: Составить программу для
вычисления наибольшего элемента массива и его
номера.

REM вычисления наибольшего элемента массива и
его номера
INPUT «Введите число элементов массива», n
DIM mas(n) AS INTEGER
FOR I=0 TO n-1
INPUT «Введите элемент массива», mas(I)
NEXT
CLS
PRINT «Вывод массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
max=mas(0)
nomer=1
FOR I=0 TO n-1
IF mas(I)>max THEN
max=mas(I)
nomer=I+1
END IF
NEXT
PRINT
PRINT «Максимальный элемент: «, max, » с номером
«, nomer
END

Пример: составить программу
сортировки массива по возрастанию.

REM сортировка массива
INPUT «Введите число элементов массива», n
DIM mas(n) AS INTEGER
FOR I=0 TO n-1
mas(I)=1+INT(RND*10)
NEXT
CLS
PRINT «Вывод массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
REM сортировка массива
FOR I=0 TO n-2
FOR J=I+1 TO n-1
IF mas(I)>mas(J) THEN
REM если нашли меньший элемент, то обменяем их
местами
a=mas(I)
mas(I)=mas(J)
mas(J)=a
END IF
NEXT J
NEXT I
REM конец сортировки массива
PRINT
PRINT «Вывод отсортированного массива»
FOR I=0 TO n-1
PRINT mas(I);
NEXT
END

Пример: ввод массива с использование
оператора DATA.

REM Ввод данных из DATA
DIM mas(5) AS INTEGER
DATA 2, -4, 1, 5, 9
REM ввод массива
FOR I=0 TO 4
READ mas(I);
NEXT
REM вывод массива
FOR I=0 TO 4
PRINT mas(I);
NEXT
EN

Массивы. Двумерные массивы.

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

Объявляются двумерные массивы так же, как
переменные и одномерные массивы. Например,
целочисленный числовой массив, содержащий 3
строк и 4 столбца объявляется следующим образом:

DIM tabl(3 ,4)

DIM tabl(3 ,4) AS INTEGER

REM Таблица умножения
DIM tabum (1 TO 9, 1 TO 9) AS INTEGER
REM Заполнение массива – создание таблицы
умножения
FOR I=1 TO 9
FOR J=1 TO 9
tabum(I, J)=I*J
NEXT J
NEXT I
REM Вывод массива на экран в виде таблицы
FOR I=1 TO 9
FOR J=1 TO 9
PRINT tabum(I,J);
NEXT J
PRINT
NEXT I
END

Пример: В таблице 3х4 вычислить
количество отрицательных элементов, сумму
четных элементов, произведение элементов второй
строки.

REM вычислить количество…
DIM tabl(1 TO 3, 1 TO 4) AS INTEGER
REM Заполнение массива
FOR I=1 TO 3
FOR J=1 TO 4
INPUT «Введите элемент массива:», tabl(I, J)
NEXT J
NEXT I
REM Вывод массива на экран в виде таблицы
CLS
FOR I=1 TO 3
FOR J=1 TO 4
PRINT tabl(I,J);
NEXT J
PRINT
NEXT I
REM требуемые вычисления
k=0
s=0
p=1
FOR I=1 TO 3
FOR J=1 TO 4
IF tabl(I, J)<0 THEN k=k+1
IF tabl(I, J) MOD 2 = 0 THEN s=s+tabl(I, J)
IF I=2 THEN p=p*tabl(I, J)
NEXT J
NEXT I
PRINT
PRINT «результ:»
PRINT «отрицательных элементов: «, k
PRINT «сумма четных элементов: «, s
PRINT «произведение элементов второй строки:
«,p
END

Символьные и строчные переменные.

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

DIM s AS STRING
s=»Cтрока123″

Или добавлять справа от переменной символ $.

s$=»Тоже строка 987″

Пример:

REM Сравнение строк
s1$=»abc»
s2$=»abc»
s3$=»klmn»
IF s1$=s2$ THEN PRINT «Строки равны»
IF s1$=s3$ THEN PRINT «Строки равны»
END

Функции для работы со строками:

LEN(s$) Вычисляет длину строки
(количество символов).
MID$(s$,n,k) Выделяет из строки s$ k
символов начиная с n-го символа.
VAL(s$) Преобразует числовую часть
начала строки в число.
STR$(x) Преобразует число в
символьную форму.
ASC(s$) Вычисляет десятичный код
символа.
CHR$(x) Преобразует код в символ.
INKEY$ Функция опроса клавиш,
нажатых на клавиатуре.

Пример: составить программу
подсчитывающую, количество букв «а» в
предложении.

REM кол-во букв «а»
INPUT «Введите предложение», s$
FOR I=1 TO LEN(s$)
IF MID$(s$,I,1)=»а» THEN k=k+1
NEXT
PRINT «Кол-во букв а =», k
END

Пример: Заменить все буквы «а» в
предложении на буквы «о».

REM замена букв
ss$=»»
INPUT «Введите предложение», s$
FOR I=1 TO LEN(s$)
IF MID$(s$,I,1)=»а» THEN
ss$=ss$+»о»
ELSE
ss$=ss$+MID$(s$,I,1)
END IF
NEXT
PRINT «Исправленная строка: «, ss$
END

Пример: Получить предложение в
обратном порядке следования символов.

REM обратный порядок букв
ss$=»»
INPUT «Введите предложение», s$
FOR I=LEN(s$) TO 1 STEP -1
ss$=ss$+MID$(s$,I,1)
NEXT
PRINT «Исправленная строка: «, ss$
END

Дополнительные возможности Basic: Приложение1
в окне правка / правка слайдов возможно
доработать презентацию.

Графический режим работы: Приложение
2

Тема:
Реализация
базовых алгоритмических структур на
ЯП
QBasic.

Учебные вопросы:

  1. Реализация
    на языке QBasic
    алгоритма следования.

  2. Реализация
    на языке QBasic
    алгоритмов ветвления.

  3. Реализация
    на языке QBasic
    алгоритмов цикла.

1.

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

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

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

Создание
программы
для вычисления математического выражения
начинаем с разработки алгоритма
выполнения команд (процедур) для ЭВМ.

Создание
простого алгоритма
следования (линейного) можно рассмотреть
на примере решения математического
выражения.

Например:
Задание:

Найти значение переменной Y при любом
произвольном значении переменной X по
заданному математическому выражению.

, при
X
= 3,45

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

  1. Разработать
    алгоритм программы.

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

  3. Записать
    математическое выражение на языке
    QBasic (кодирование).

  4. Вывести
    на экран результат, вычисленный
    компьютером.

  5. Тестировать
    программу.

  6. Оформить
    документацию к программе.

Для
начального шага разработки программы
необходимым является определение
исходных (ввод) и выходных (вывод) данных
задачи.

Блок-схема алгоритма следования:

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

1.1.1. Оператор присваивания

Функция
оператора
присваивания − передача
данных в переменную
,
то есть присвоение переменной нового
или другого значения. Синтаксис оператора
присвоить (=) переменной (имя)
значение
. В
левой части оператора присваивания
может находиться только имя той
переменной, которой будет присваиваться
значение. В правой части оператора
присваивания может находиться: конкретное
значение; арифметическое выражение;
алгебраическое выражение, содержащее
имена других переменных.

x
= 2 – читается как «присвоить переменной
x
значение 2».

x=
x
+ 2 – «присвоить переменной
x
значение, большее на 2».

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

Если
в программе указана переменная, которой
не присвоено значение, то по умолчание
её значение Бейсик считает равным нулю.

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

Операторы
ввода данных:

1.1.2. Оператор ввод данных input

Используется для ввода
в ЭВМ с клавиатуры значений исходных
переменных и размещения этих значений
в выделенных для переменных ячейках
памяти. Оператор даёт возможность решать
одну и ту же задачу с разными значениями
исходных переменных без изменения
программы
Пользователь может вводить
произвольные данные
. Оператор позволяет
организовать работу пользователя
с программой в диалоговом режиме.

Общий формат: input [“Запрос” {;|,}] переменная 1, переменная 2, …, переменная n.

[“Запрос” {;|,}]
Необязательный
параметр. Позволяет вывести на экран
монитора пояснения. Текст всегда
заключается в кавычки. После него
обязательно ставится точка с запятой
или запятая. Точка с запятой — на экран
выводится ?_.
Запятая – выводится только _.

переменная 1, переменная 2,
…, переменная
N
– Обязательный параметр. Вводятся
значения.
Оператор не
умеет считывать математические выражения
.
Если в INPUT
несколько переменных, то их значения
вводятся
в одну строку, через запятую
.
Если ввести значение не соответствующее
типу переменной программа выдаст
сообщение об ошибке Redo
from
start
(Повторить ввод).

1.1.3. Операторы ввода данных data read

Операторы
применяется
в том случае, когда данные заранее
известны и вводятся в память ЭВМ в воде
перечня (списка) значений без участия
пользователя. Необходимость в этом
возникает при использовании редко
изменяющихся данных, например справочных.

После
слова DATA
вводится некоторый перечень данных
(через запятую). Оператор должен быть
единственным в строке. Несколько
операторов DATA,
размещённых в программе, работают как
один перечень (список).

Слово
READ указывает
(считывает из памяти), каким переменным
последовательно
присваиваются значения ранее введенных
данных. Перечень (список) данных из DATA
могут использовать несколько операторов
READ.
Количество
переменных в операторах READ
должно соответствовать числу элементов
перечня (списка) в операторах DATA.

Оператор
RESTORE
позволяет повторно считывать данных
операторами READ,
начиная
с
первого
элемента оператора DATA.

Соседние файлы в папке информатика

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

0 / 0 / 0

Регистрация: 20.06.2014

Сообщений: 55

1

17.12.2014, 22:43. Показов 4877. Ответов 3


Студворк — интернет-сервис помощи студентам

Вот схема.
А вот подробности.
На рисунке представлена блок-схема цикла со счетчиком С, значение которого изменяется от 1 до 50. До начала цикла выполняется обнуление суммы S. В цикле происходит накопление суммы S=S+C, то есть на очередной прокрутке цикла к сумме прибавляется текущее значение счетчика С. Цикл выполняется, пока условие С > 50 не истинно. В результате переменная S примет значение суммы чисел от 1 до 50.

Миниатюры

Написать простую программу на VBA по выбранной блок схеме
 



0



vba-dev

Заблокирован

18.12.2014, 05:35

2

За деньги?



0



Апострофф

Заблокирован

18.12.2014, 07:06

3

Лучший ответ Сообщение было отмечено ThePanix как решение

Решение

Подарок —

Visual Basic
1
2
3
4
5
6
7
8
9
sub main 'начало
s=0
c=1
do until c>50
  s=s+c
  c=c+1
loop
msgbox "S=" & s
end sub 'конец



2



0 / 0 / 0

Регистрация: 20.06.2014

Сообщений: 55

18.12.2014, 18:47

 [ТС]

4

СПасиб)



0



МИНИСТЕРСТВО ОБРАЗОВАНИЯ НИЖЕГОРОДСКОЙ ОБЛАСТИ

Государственное бюджетное профессиональное образовательное учреждение «Кстовский нефтяной техникум имени Бориса Ивановича Корнилова»

СК-МД-15

Система качества образовательного учреждения

Учебно-методическое пособие

Н. В. КОЛДАЕВА

Основы алгоритмизация и программирование
на языке Basic

Учебно-методическое пособие
по дисциплине «Информатика и ИКТ»

Кстово 2015

Аннотация

Учебно-методическое пособие по дисциплине «Информатика и ИКТ» Основы алгоритмизация и программирование на языке Basic разработано в соответствии с действующей программой по курсу дисциплины «Информатика и ИКТ» для раздела «Информация и информационные процессы».

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

Учебное пособие предназначено для студентов ГБОУ СПО «Кстовский нефтяной техникум им. Б.И. Корнилова», изучающих дисциплину «Информатика и ИКТ», а также преподавателей, преподающих дисциплины связанные с информационными технологиями.

СОДЕРЖАНИЕ

Введение        

1. Алгоритмизация задач        

1.1. Понятие алгоритма        

1.2. Способы описания алгоритмов        

1.3. Структурные схемы алгоритмов        

2. Основы программирования на языке Basic        

2.1. Алфавит языка программирования Бейсик        

2.2. Константы и переменные языка Бейсик        

2.3. Арифметические выражения        

2.4. Операторы языка Бейсик для записи линейного алгоритма        

2.4.1. Оператор очистки экрана        

2.4.2. Оператор ввода        

2.4.3. Оператор присваивания        

2.4.4. Оператор вывода        

2.4.5. Программа линейного алгоритма        

2.5. Операторы языка Бейсик для записи разветвляющегося алгоритма        

2.5.1. Выражения отношения        

2.5.2. Логические выражения        

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

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

2.5.5. Программа разветвляющегося алгоритма        

2.6. Операторы языка Бейсик для записи циклического алгоритма        

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

2.6.2. Программа циклического алгоритма        

3. Среда программирования QBasic        

3.1. Цели лабораторно-практической работы        

3.2. Технология выполнения лабораторно-практической работы        

3.3. Требования по оформлению отчета        

3.4. Контрольные вопросы        

4. Программная реализация линейного алгоритма        

4.1. Цели лабораторно-практической работы        

4.2. Технология выполнения лабораторно-практической работы        

4.3. Требования по оформлению отчета        

4.4. Контрольные вопросы        

5. Программная реализация разветвляющегося алгоритма        

5.1. Цели лабораторно-практической работы        

5.2. Технология выполнения лабораторно-практической работы        

5.3. Требования по оформлению отчета        

5.4. Контрольные вопросы        

6. Программная реализация циклического алгоритма        

6.1. Цели лабораторно-практической работы        

6.2. Технология выполнения лабораторно-практической работы        

6.3. Требования по оформлению отчета        

6.4. Контрольные вопросы        

7. Программная реализация сложного алгоритма        

7.1. Цели лабораторно-практической работы        

7.2. Технология выполнения лабораторно-практической работы        

7.3. Требования по оформлению отчета        

7.4. Контрольные вопросы        

Список литературы        

Введение

Образованным культурным человеком, грамотным специалистом в XXI веке может быть тот, кто хорошо владеет информационными технологиями. Ведь деятельность людей все в большей степени зависит от информативности, способности эффективно использовать информацию. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию с помощью компьютеров, телекоммуникаций и других средств связи. Заложить фундамент информационной культуры призвана дисциплина «Информатика и ИКТ», изучение которой начинается со школьной скамьи, а затем, приобретая более целенаправленный характер, продолжается в среднем профессиональном учебном заведении. Эта дисциплина достаточно новая и своим появлением обязана развитию индустрии информатики, бурному процессу информатизации, начавшемуся в нашей стране. Об информации начинают говорить как о стратегическом ресурсе общества, как о ресурсе, определяющем уровень развития государства.

Информатика, как никакая другая область знаний, характеризуется чрезвычайно высокой степенью динамики изменений предмета ее изучения. Сегодня количество компьютеров в мире превышает 500 миллионов единиц и продолжает удваиваться в среднем каждые три года. При этом в среднем один раз в полтора года удваиваются основные технические параметры аппаратных средств, один раз в два-три года меняются поколения программного обеспечения, и один раз в пять-семь лет меняется база стандартов, интерфейсов и протоколов. Следует также отметить, что каждая вычислительная система по-своему уникальна. Найти две системы с одинаковыми аппаратными и программными конфигурациями весьма сложно, поэтому для эффективной эксплуатации вычислительной техники от специалиста требуется достаточно широкий уровень знаний и практических навыков.

К сожалению, до сих пор нет единой точки зрения на область знаний под названием «Информатика» и соответствующую ей дисциплину. Одни говорят – это веление времени, дань моде, явление преходящее или считают информатику сложной премудростью, где к тому же требуется познать характер некоего современного монстра – персонального компьютера и научиться управлять им. Другие воспринимают информатику лишь как практическую дисциплину, где учат «правильно нажимать кнопки» персонального компьютера. Однако не вызывает сомнения, что современному специалисту, чтобы на должном уровне выполнять свои обязанности, необходимы инструментарий и методология его применения для обработки информации. Это сравнимо с использованием средств передвижения: теоретически человек может пешком преодолеть любое расстояние, но современный темп жизни просто немыслим без применения автомобиля, поезда, самолета и т. д. То же самое происходит и в области, связанной с обработкой информации: теоретически человек сам может переработать без компьютера любую информацию, но сделает это эффективнее, если он овладеет знаниями и умениями, которыми располагает информатика.

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

Информатику в узком смысле можно представить как состоящую из трех взаимосвязанных частей — технических средств (hardware), программных средств (software), алгоритмических средств (brainware).

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

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

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

Задача (problem, task)– проблема, подлежащая решению.

Приложение (application)– программная реализация на компьютере решения задачи.

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

Процесс создания программ можно представить в укрупненном виде как последовательность, представленную на рис. 1.

Рис. 1. Схема процесса создания программ

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

  1. постановка задачи;
  2. моделирование задачи;
  3. алгоритмизация задачи;
  4. разработка, подготовка и отладка программы;
  5. эксплуатация программы.

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

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

1. Алгоритмизация задач

1.1. Понятие алгоритма

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

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

Алгоритмы являются объектом систематического исследования пограничной между математикой и информатикой научной дисциплины, примыкающей к математической логике – теории алгоритмов.

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

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

Алгоритмами, например, являются правила сложения, умножения, решения алгебраических уравнений, умножения матриц и т.п. Слово алгоритм происходит от algorithmi, являющегося латинской транслитерацией арабского имени великого математика IX века Аль Хорезми. Благодаря латинскому переводу трактата Аль Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.

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

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

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

Для задания алгоритма необходимо описать следующие его элементы:

  • набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;
  • правило начала;
  • правило непосредственной переработки информации (описание последовательности действий);
  • правило окончания;
  • правило извлечения результатов.

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

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

1.2. Способы описания алгоритмов

К основным способам описания алгоритмов можно отнести следующие:

  • словесно-формульный;
  • структурный или в виде блок–схем;
  • с помощью граф–схем;
  • с помощью сетей Петри.

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

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

Например, алгоритм, определяющий движение робота–исполнителя по некоторому маршруту, может иметь вид:

АЛГ в_склад

НАЧ

                   вперед

                   поворот на 90° направо

                   вперед

КОН

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

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

1. Ввести значения a и x.

2. Сложить x и 6.

3. Умножить a на 2.

4. Вычесть из 2a сумму (х+6).

5. Вывести y как результат вычисления выражения.

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

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

Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В ЕСПД определены и правила оформления блок-схем алгоритмов (ГОСТ 19.701-90 ЕСПД, который действует взамен ГОСТа 19.002-80 ЕСПД, на который до сих пор ссылаются некоторые авторы учебных и справочных пособий по информатике).

Операции обработки данных и носители информации изображаются на схеме соответствующими блоками. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Большая часть блоков по построению условно вписана в прямоугольник со сторонами a (высота) и b (длина). ГОСТ 19.701-90 ЕСПД жестких требований на размеры a и b не устанавливает. Но для качественного выполнения блок-схемы, целесообразно придерживаться рекомендации ГОСТа 19.002-80 ЕСПД: минимальное значение a равно 10 мм, увеличение a производится на число, кратное 5 мм; размер b=1,5a; для отдельных блоков допускается соотношение между a и b, равное 1:2. Нумерация блоков сейчас необязательна (по ГОСТу 19.002-80 ЕСПД порядковый номер блока записывался в разрыве верхней линии в ее левой части). Виды и назначение основных блоков в соответствии с действующим ГОСТом 19.701-90 ЕСПД приведены в таблице 1.

Таблица 1. Условные обозначения блоков схемы алгоритмов

Наименование

Обозначение

Функция

Процесс

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

Ввод–вывод

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

Решение

Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий

Предопределенный

процесс

Использование ранее созданных и отдельно написанных программ (подпрограмм)

Терминатор

(Пуск–останов)

Начало, конец, прерывание процесса обработки данных или выполнения программы

Соединитель

Указание связи между прерванными линиями, соединяющими блоки.

Дисплей

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

Ручной ввод

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

Подготовка

(Модификация)

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

Комментарий

Связь между элементом схемы и пояснением.

Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводиться параллельно линиям рамки. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме блоков «Решение» и «Подготовка») может выходить только одна линия. Блок «Решение» может иметь в качестве продолжения один из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.

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

Если при обрыве линии продолжение схемы находится на этом же листе, то на одном и другом конце линии изображается специальный символ соединитель — окружность диаметром 0,5a. Внутри парных окружностей указывается один и тот же идентификатор. В качестве идентификатора, как правило, используется порядковый номер блока, к которому направлена соединительная линия.

В ГОСТ 19.701-90 ЕСПД понятие межстраничного соединителя отсутствует, поэтому если схема занимает более одного листа, то используется описанный выше соединитель в виде окружности.

1.3. Структурные схемы алгоритмов

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

•        последовательность двух или более операций;

•        выбор направления;

•        повторение.

Любой вычислительный процесс может быть представлен как комбинация этих элементарных алгоритмических структур (это содержание теоремы Бема–Якопини). Соответственно, вычислительные процессы, выполняемые на компьютере по заданной программе, можно разделить на три основных вида:

•        линейные;

•        разветвляющиеся;

•        циклические.

Линейным принято называть вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Соответственно, линейный алгоритм – это алгоритм, в котором действия выполняются одно за другим.

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

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

Рассмотрим пример линейного вычислительного процесса с соответствующим ему линейным алгоритмом.

Задача: Вычислить периметр произвольного треугольника по его трем сторонам (вопрос существования треугольника не рассматривается).

Решение:

1 этап: Постановка задачи.

Исходные данные: А, B, C – стороны произвольного треугольника

Выходные данные: P – периметр треугольника.

2 этап: Математическая модель.

P=A+B+С

3 этап: Составление алгоритма

Рис. 2. Пример линейного алгоритма

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

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

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

Направление ветвления выбирается логической проверкой, в результате которой возможны два ответа: «да» — условие выполнено и «нет» — условие не выполнено.

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

Разветвляющиеся алгоритмы могут иметь различную структуру (Рис.3).

Рис. 3. Структуры разветвляющегося алгоритма

Запись разветвляющегося алгоритма типа «Развилка» в виде блок-схемы представлена на рисунке 4.

Рис. 4. Блок-схемы разветвляющихся алгоритмов типа «Развилка»: а) обычная, б) обход

Рассмотрим пример разветвляющегося вычислительного процесса с соответствующим ему разветвляющимся алгоритмом.

Задача: Вычислить значение функции  для заданного x.

Решение:

1 этап: Постановка задачи.

Исходные данные: x – значение аргумента функции.

Выходные данные: y – искомое значение функции при заданном x.

2 этап: Математическая модель.

3 этап: Составление алгоритма

Рис. 5. Пример разветвляющегося алгоритма

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

В организации цикла можно выделить следующие этапы:

•        подготовка (инициализация) цикла (И);

•        выполнение вычислений цикла (тело цикла) (Т);

•        модификация параметров (М);

•        проверка условия окончания цикла (У).

Порядок выполнения этих этапов, например, Т и М, может изменяться. В зависимости от расположения проверки условия окончания цикла различают циклы с нижним и верхним окончаниями (соответственно: цикл «ДО» или цикл с постусловием и цикл «ПОКА» или цикл с предусловием) (рис. 6). Для цикла с нижним окончанием (рис. 6–а) тело цикла выполняется как минимум один раз, так как сначала производятся вычисления, а затем проверяется условие выхода из цикла. В случае цикла с верхним окончанием (рис. 6–б) тело цикла может не выполниться ни разу в случае, если сразу соблюдается условие выхода.

Рис. 6. Блок-схемы циклических алгоритмов: а) с постусловием, б) с предусловием

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

Рис. 7. Блок-схема циклического алгоритма с параметром

Работу цикла с параметром можно описать следующим образом (словесный алгоритм):

  1. Вычисление значений выражений, определяющих NI, KI и HI;
  2. I присваивается значение NI;
  3. I сравнивается с KI: если I больше KI при положительном HI (или, наоборот, I меньше KI при отрицательном HI), то переход к пункту 7, иначе к следующему пункту;
  4. Выполняется тело цикла;
  5. I автоматически изменяется на HI;
  6. Переход к пункту 3;
  7. Конец цикла.

Рассмотрим пример циклического вычислительного процесса с соответствующим ему циклическим алгоритмом.

Задача: Требуется вычислить значение функции y=sin φ в диапазоне изменения аргумента от 10° до 90° с шагом 10°.

Решение:

1 этап: Постановка задачи.

Исходные данные: X – угол φ (аргумент функции)

NX – начальное значение угла φ (10°)

KX – конечное значение угла φ (90°)

HX – шаг изменения угла φ (10°)

Выходные данные: Y – значения функции при заданных φ.

2 этап: Математическая модель.

        

3 этап: Составление алгоритма

Рис. 8. Пример циклического алгоритма

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

2. Основы программирования на языке Basic

Язык программирования Basic (Beginner’s All-purpose Instruction Code – Всецелевой язык программирования для начинающих) разработан Джоном Кимини и Томасом Куртцем в Дартмутском университете, США, в 1964 г.

Basic занимает особое место среди всех языков высокого уровня. С самого начала он задумывался как универсальный язык для начинающих. Средства программирования на Basic долгое время включались в комплект поставки ПК как обязательный элемент программного обеспечения. В настоящее время существует множество версий этого языка, которые иногда очень сильно отличаются друг от друга. Для учебных заведений самыми распространенными являются версии MSX, впервые реализованная на японском компьютере «Ямаха», и версии фирмы Microsoft для компьютеров IBM. Кроме того, в нашей стране популярностью пользуется версия Turbo-Basic фирмы Borland. Без преувеличения можно сказать, что сегодня Бейсик до сих пор является самым распространенным языком программирования. После появления мощных компиляторов Visual Basic этот язык стал популярен и у профессиональных программистов. Бейсик относится к языкам программирования высокого уровня. Как и другие языки, этот язык имеет алфавит, синтаксис и семантику.

К достоинствам языка программирования QBASIC с точки зрения массового пользователя следует отнести:

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

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

2.1. Алфавит языка программирования Бейсик

Алфавит языка Basic базируется на кодировочной таблице символов ASCII, первая половина которой (символы с кодом 0 – 127) – стандартная, а вторая половина (символы с кодом 128 – 255) – специфична для каждой страны. В этой таблице каждый символ имеет 8-битовое обозначение. Таким образом, в алфавит языка Basic входят: 1) прописные и заглавные буквы английского алфавита, 2) прописные и заглавные буквы русского алфавита, 3) десятичные цифры, 4) знаки препинания (точка, запятая, точка с запятой, кавычки, апостроф и др.), 5) знаки операций (сложение, деление, больше, равно и др.), 6) набор специальных символов, который имеется на клавиатуре компьютера (% & ! # $ и др.).

2.2. Константы и переменные языка Бейсик

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

Синтаксические единицы условно можно разбить на следующие виды:

– константы;

– переменные;

– ключевые слова;

– метки.

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

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

Целые константы – это целые числа, которые записываются в виде последовательности десятичных цифр, перед которой может стоять знак + или –. Числа без знака воспринимаются положительными. Бейсик допускает использование как целых чисел в диапазоне от –32768 до 32768, так и длинных целых чисел в диапазоне от –2147483648 до 2147483648.

Примеры записи целых чисел:

Математическая запись

Запись на языке Бейсик

41

41 или +41

-39

-39

-2147483648

-2147483648

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

Допускается запись вещественных чисел:

  • в основной форме – числа с фиксированной точкой;
  • в форме с порядком – числа с плавающей точкой.

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

                                 ,

где N и М – последовательности десятичных цифр.

Десятичная точка в записи этого числа обязательна. Знак + или — записываются в начале константы. Число без знака воспринимается положительным.

Примеры записи чисел с фиксированной точкой:

Математическая запись

Запись на языке Бейсик

Верно

Неверно

0

0. или 0.0 или .0

0

4

4. или 4.0

4 или +.4

-1,0

-1.0 или -1.

.1 или -1,0

-1,5

-1.5

1.5 или -1,5

Числа с плавающей точкой – запись чисел представленных в математике в показательной форме. На языке бейсик они записываются:

 и имеют в записи отличия по основанию степени и где N и М — последовательность десятичных цифр.

Для чисел одинарной точности N + М = 6.

Для чисел удвоенной точности N + М = 14.

Е – основание степени для чисел одинарной точности, т.е. число 10.

D – основание степени для чисел удвоенной точности, т.е. число 10.

S – порядок числа, выражается целой константой, состоящей из одной или двух десятичных цифр.

Положительный знак числа и показателя степени можно не указывать.

Примеры записи чисел с плавающей точкой одинарной точности:

Математическая запись

Запись на языке Бейсик

Верно

Неверно

123,4∙10-2=

=1,234=

=0,1234∙101

123.4Е-2

123.4*10**(-2)

1.234Е00

1.234*10

0.1234Е1

0.1234*Е1

Примеры записи чисел с плавающей точкой удвоенной точности:

Математическая запись

Запись на языке Бейсик

Верно

Неверно

1234,5678∙10-2=

=12345678∙10-6=

=0,12345678

1234.5678D-2

1234.5678*10**(-2)

12345678.D-6

12345678D-6

0.12345678D2

.12345678E2

Символьная константа представляет собой последовательность любых символов алфавита. Значения символьных констант заключается в кавычки. Примеры записи символьных констант: ”Кстовский нефтяной техникум”, ”Array”, ”sin(x)= ”.

Переменная – это величина, которая может меняться при выполнении программы. При изучении алгебры дается понятие переменной величины. Например, в простом алгебраическом равенстве c = f + 2b – 5 значение переменной с зависит от значения переменных  f и b, указанных в правой части равенства. Если  f=2 и b=6, тогда с=9. Такое же равенство можно записать в программе на Бейсике: c = f + 2*b – 5 . В терминах языка Бейсик c, f и b – это имена переменных. Такие имена также называют идентификаторами.

В языке Бейсик идентификатор (имя переменной) – это произвольный набор символов для обозначения переменной, который может содержать от 1 до 40 символов, причём первый символ должен быть латинской буквой, а остальные – латинские буквы или цифры или символы типа @, #, % и.т.д. Примеры имен переменных: A, Ds, SodRan, k1, n123, dlina!

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

Тип переменной, определяемый ее значением

Символ, определяющий тип переменной

Описание типа переменной

Объём поля памяти

Пример значения переменной

Целые числа

%

integer

2 байта

17; -123

Вещественные числа

!

single

4 байта

314.15;

3.1415Е+2

Символьный

$

string

min 1 байт

язык

Длинные целые числа

&

long

4 байт

-12543786

Вещественные числа двойной точности

#

double

8 байт

1.2543786

Тип переменной в Бейсике опознаётся по последнему символу в её имени: % – целая переменная; & – длинная целая переменная; ! – вещественная переменная обычной точности; # — вещественная переменная двойной точности; $ — символьная переменная, а также может определяться специальным оператором задания типа.

2.3. Арифметические выражения

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

В Бейсике существует четыре вида выражений:

  • арифметические;
  • отношений;
  • логические;
  • строковые.

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

Функция – это заранее определённая операция над данными, математическая функция – это функция, значением которой является число. Вот некоторые примеры математических функций встроенных в транслятор Бейсика:

Название функции

Запись в математике

Запись в Бейсике

Пример в Бейсике

Абсолютная величина

|x|

ABS(X)

ABS(-5)

Экспонента

ex

EXP(X)

EXP(5)

Логарифм натуральный

ln x

LOG(X)

LOG(3)

Квадратный корень

SQR(X)

SQR(4)

Синус

sin x

SIN(X)

SIN(3.14)

Косинус

cos x

COS(X)

COS(1)

Тангенс

tg x

TAN(X)

TAN(2)

Целая часть числа

[x]

INT(X)

INT(13.5)

Арктангенс

arctg x

ATN(X)

ATN(3)

Знак числа

SGN(X)

SGN(-5)

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

В Бейсике допустимы следующие арифметические операции:

Название операции

Знак в математике

Знак в Бейсике

Пример в математике

Пример в Бейсике

Возведение в степень

нет

^

25

2^5

Умножение

·

*

2·5

2*5

Деление

:

/

10:2

10/2

Сложение

+

+

5+10

5+10

Вычитание

a–b

a–b

Остаток от деления

нет

mod

нет

17 mod 3

(результат 2)

Деление нацело

нет

нет

173

(результат 5)

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

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

Примеры записи чисел математических выражений на языке Бейсик:

Математическое выражение  запишется на языке Бейсик в виде: ((sin(x^3)–cos(x)^2)/(sqr(x–8.5)+1.75E-6))^(1/5)+exp(x+1)/5/abs(x)

2.4. Операторы языка Бейсик для записи линейного алгоритма

2.4.1. Оператор очистки экрана

Оператор очистки экрана состоит из одного ключевого слова: CLS. Название этого оператора произошло от английских слов Clear Screen, что в переводе означает очистить экран.

Например, результатом выполнения операторов:

CLS

?  ”Привет”

будет черный экран монитора, а в левом верхнем углу будет выведено слово Привет.

2.4.2. Оператор ввода

Оператор ввода начинается с ключевого слова INPUT. INPUT в переводе с английского языка означает вставлять, вводить. Поэтому действие этого оператора состоит в ведении значения переменной или значений переменных с клавиатуры в память компьютера.

Синтаксис оператора ввода:

INPUT ”подсказка”; имя переменной

INPUT [”подсказка”;] имя1, имя2, …

Отметим, что конструкция в синтаксисе типа […], означает, что данный параметр является необязательным, т.е. его можно пропустить. При встрече с оператором ввода (ключевое слово INPUT) программа приостанавливает своё действие; на экране появляется знак вопроса «?» или подсказка со знаком «?», после которого необходимо набрать на клавиатуре значение переменной, входящий в состав оператора, нажать клавишу Enter. Если в операторе указано несколько имен переменных, то их значения набираются на клавиатуре через запятую и потом нажимается клавиша Enter.

Оператор INPUT можно использовать для присваивания значения как числовым, так и строковым переменным. Пример его использования будет приведен ниже.

2.4.3. Оператор присваивания

Оператор присваивания начинается с ключевого слова LET. LET в переводе с английского языка означает позволять, допускать. Отметим, что ключевое слово LET можно опустить, что почти всегда и делается при написании программы, а отличительным признаком оператора является присутствие знака «=» в синтаксисе оператора.

Синтаксис оператора присваивания:

Имя переменной = арифметическое выражение

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

Например, результаты выполнения трех операторов присваивания:

Оператор присваивания

Действие оператора присваивания

X=15

присваивание переменной X значения 15

Y=2

присваивание переменной Y значения 2

Z=(X-3*Y^2)+7

  1. вычисление значения правой части третьего оператора присваивания (X-3*Y^2)+7. Получается 10
  2. присваивание переменной Z значения 10

Отметим, что с помощью оператора можно задавать значения переменных в самой программе, но это ограничивает возможность использования программы с различными исходными данными.

2.4.4. Оператор вывода

Оператор ввода начинается с ключевого слова PRINT. PRINT в переводе с английского языка означает печать, оттиск. Поэтому действие этого оператора состоит в выведении значения переменной или значений переменных, текста или значений выражений после их вычисления из памяти компьютера на экран монитора. Вместо слова PRINT можно набирать знак «?», который после набора оператора транслятор Бейсик заменяет ключевым словом.

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

Оператор вывода на экран позволяет:

1. Выводить текстовую информацию, заключенную в кавычки, на экран монитора.

Например:

PRINT  ”Привет”

2. Вычислять выражения арифметических выражений.

Например:

PRINT   5.5*4-5^2

3. Выводить значения переменных на экран монитора.

Например:

SQ1=12*25

DAY$=«понедельник»

PRINT   SQ1,  DAY$

Разделителем между выводимыми данными может быть:

запятая ( , ) – данные отделяются друг от друга шагом табуляции, равным 8 пробелам;

точка с запятой ( ; ) – данные печатаются вплотную друг к другу.

2.4.5. Программа линейного алгоритма

Рассмотрим реализацию линейного алгоритма на примере задачи, приведенной в разделе 1.3, а именно: вычислить периметр произвольного треугольника по его трем сторонам.

CLS

INPUT » Введите значения:  А, В, С «; А, В, С

Р = А + В + С

? » Р= «; Р

END

Если записать эти пять строк на русском языке, то получим:

  1. Начало – очистить экран монитора
  2. Ввод трех чисел   А, В, С   с клавиатуры
  3. Вычислить сумму  Р = А + В + С  и  присвоить ее значение  Р
  4. Вывод на экран дисплея значения  Р
  5. Конец

В программе использован оператор конца программы. Его ключевое слово END. Действие этого оператора заключается в том, что транслятор определяет: программа завершена, далее операторов нет.

Для самостоятельной работы на построение блок-схемы и записи программы линейного алгоритма можно предложить следующие задачи:

Задача 1. Найти площадь (S) и длину окружности (L). R – радиус вводится с клавиатуры.

Задача 2. Найти площадь (S) и периметр прямоугольного треугольника (Р). Значения катетов А и В вводятся с клавиатуры.

Задача 3. Найти общее сопротивление параллельно соединенных проводников (RО). Значения R1 и R2 вводятся с клавиатуры.

2.5. Операторы языка Бейсик для записи разветвляющегося алгоритма

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

2.5.1. Выражения отношения

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

Операции отношения

Знак операции

Выражение в Бейсике

Равенство

=

x = y

Неравенство

< >

x < > y

Меньше

<

x < y

Больше

>

x > y

Меньше или равно

< =

x < = y

Больше или равно

> =

x > = y

Значением выражения отношения могут быть лишь TRUE или FALSE. TRUE с английского языка переводится как истина, что обычно ассоциируется с ответом «ДА», FALSE с английского языка переводится как ложь, что обычно ассоциируется с ответом «НЕТ». Значение выражение отношения может быть получено только после того, как получены значения арифметических выражений, входящих в выражение отношения.

Примеры выражений отношений, для записи условий на языке Бейсик:

A > B+10

SIN(C) < 30

A$ = ”cat

X < >135

Y/17 > = Z

S+T < = F

2.5.2. Логические выражения

Сложное условие записывается с помощью логических выражений, содержащих операции: NOT – логическое отрицание, AND – логическое умножение (в переводе с английского языка означает И) – конъюнкция (название в математике), OR – логическое сложение (в переводе с английского языка означает ИЛИ) – дизъюнкция (название в математике). В логическом отношении операции осуществляются над операциями отношений. Поэтому действие логических операций можно полностью описать таблицей истинности над двумя выражениями отношений A и B, которые принимают значения либо TRUE, либо FALSE:

A

B

NOT A

NOT B

A AND B

A OR B

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

TRUE

TRUE

FALSE

FALSE

Логическое выражение в общем виде может содержать несколько логических операций, поэтому определен приоритет их выполнения: высший приоритет – логическое отрицание (NOT), затем – логическое умножение (AND), низший приоритет – логическое сложение (OR). Для изменения порядка выполнения логических операций используются круглые скобки (как в арифметических выражениях).

Примеры логических выражений, для записи условий на языке Бейсик:

1. Записать на языке Бейсик условие: 1 < C < 7, т.е. С принадлежит интервалу (1, 7) или графически        

Ответ:        C>1 AND C<7

2. Записать на языке Бейсик условие: C ≤ 1 или C ≥7, т.е. С не принадлежит интервалу (1, 7) или графически        

Ответ:        NOT (C>1 AND C<7)        или        С<=1 OR C>=7

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

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

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

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

Условные операторы служат для изменения последовательности выполнения операторов программы в зависимости от некоторого условия. Они позволяют описывать разветвляющийся вычислительный алгоритм типа развилки, который был описан выше. По своей структуре условные операторы подразделяются на строчные и на блочные. Однако любой условный оператор начинается с ключевого слова IF, что в переводе с английского языка означает если. Затем записывается условие в виде логического выражения или выражения отношения и потом следует ключевое слове THEN, что в переводе c английского языка означает тогда. Далее следуют отличия в использовании блочного или строчного условных операторов, а также учитывается тип разветвляющегося алгоритма. В условных операторах могут использоваться еще два ключевых слова: ELSE, что в переводе c английского языка означает иначе, и ENDIF, что в переводе c английского языка означает конец если.

Синтаксис условного строчного оператора для полного варианта разветвления, т.е. алгоритм предусматривает одно действие (команду 1) при значении условия TRUE (истина, «Да») и одно действие (команду 2) при значении условия FALSE (ложь, «Нет»):

IF условие THEN команда 1 ELSE команда 2

Действие условного оператора состоит в том, что вычисляется значение условия. Если оно равно TRUE, то выполняется команда 1, следующая за ключевым словом THEN, и осуществляется переход к следующему оператору программы. Если оно равно FALSE, то выполняется команда 2, следующая за ключевым словом ELSE, и осуществляется переход к следующему оператору программы.

Синтаксис условного строчного оператора для неполного варианта разветвления («обход»), т.е. алгоритм предусматривает лишь одно действие (команду) при значении условия TRUE (истина, «Да»), а при значении условия FALSE (ложь, «Нет») действий нет:

IF условие THEN команда

Действие условного оператора состоит в том, что вычисляется значение условия. Если оно равно TRUE, то выполняется команда, следующая за ключевым словом THEN, и осуществляется переход к следующему оператору программы. Если оно равно FALSE, то при отсутствии ключевого слова ELSE сразу осуществляется переход к следующему оператору программы.

Синтаксис условного блочного оператора для полного варианта разветвления, т.е. алгоритм предусматривает одно или более действий (серию команд 1) при значении условия TRUE (истина, «Да») и одно или более действий (серию команд 2) при значении условия FALSE (ложь, «Нет»):

IF условие THEN

серия команд 1

ELSE

серия команд 2

ENDIF

Действие условного оператора состоит в том, что вычисляется значение условия. Если оно равно TRUE, то выполняется серия команд 1, которые записаны в следующих строках программы после заголовка условного блочного оператора, закачивающегося ключевым словом THEN. Сигналом для дальнейшего перехода является ключевое слово ELSE. Тогда программа анализирует появление ключевого слова ENDIF и осуществляется выполнение следующего оператора за этим ключевым словом. Если значение условия равно FALSE, то выполняется серия команд 2, которые записаны в следующих строках программы после ключевого слова ELSE до ключевого слова ENDIF, а осуществляется выполнение следующего оператора за этим ключевым словом.

Синтаксис условного блочного оператора для неполного варианта разветвления («обход»), т.е. алгоритм предусматривает лишь одно или более действий (серию команд) при значении условия TRUE (истина, «Да»), а при значении условия FALSE (ложь, «Нет») действий нет:

IF условие THEN

серия команд

ENDIF

Действие условного оператора состоит в том, что вычисляется значение условия. Если оно равно TRUE, то выполняется серия команд, которые записаны в следующих строках программы после заголовка условного блочного оператора, закачивающегося ключевым словом THEN. Не встретив ключевого слова ELSE, программа анализирует появление ключевого слова ENDIF и осуществляется выполнение следующего оператора за этим ключевым словом. Если значение условия равно FALSE, но, не встретив ключевого слова ELSE, а, получив для анализа ключевое слово ENDIF, осуществляется выполнение следующего оператора за этим ключевым словом.

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

Для осуществления переходов в программе используется оператор безусловного перехода. Ключевое слово этого оператора GOTO, что в переводе с английского языка означает: иди к.

Синтаксис оператора безусловного перехода:

GOTO N

где N – номер строки или метки оператора, на который происходит переход в программе.

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

Примеры использования безусловного оператора перехода на языке Бейсик:

Пример 1.

10     X=3

20     GOTO 40

30     Y=2*X

40     Z=5*X

Пример 2.

 X=3

GOTO W1

Y=2*X

W1    Z=5*X

2.5.5. Программа разветвляющегося алгоритма

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

REM вычисление значения функции y(x)

CLS

INPUT » Введите значения:  X «; X

IF X<=10 THEN Y=-5 ELSE Y=X^3

? “Y= “; Y

END

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

IF X<=10 THEN

Y=-5

ELSE

Y=X^3

ENDIF

В программе использован оператор комментария Его ключевое слово REM (от английского слова remark – замечать, отмечать). Транслятор, встретив это ключевое слово, игнорирует эту строку программы для анализа синтаксиса и выполнения. Этот оператор служит для внесения пояснений в программу как для ее автора, так и для людей, которые будут ее читать.

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

Задача 1. Даны катеты одного треугольника (А1, В1) и катеты другого треугольника (А2, В2). Определить, будут эти треугольники равновеликими, т.е. имеют они равные площади?

Задача 2. Найти общее сопротивление двух проводников R1 и R2, если они соединены параллельно (R3) или последовательно (R4). Значения R1 и R2 вводятся с клавиатуры.

2.6. Операторы языка Бейсик для записи циклического алгоритма

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

•        линейные;

•        разветвляющиеся;

•        циклические.

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

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

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

Пример: Вычислить сумму

CLS

S=0

N=0

1       N=N+1

S=S+1/N

IF  N<=1000  THEN  GOTO  1

PRINT  ”Сумма =”;  S

END

Это так называемый цикл «ДО», т. е. проверка условия выхода из цикла осуществляется после выполнения тела цикла. Для его организации использован условный строчный оператор и оператор безусловного перехода. Не составит особого труда составить цикл, в котором проверка условия выхода из цикла осуществляется перед выполнением тела цикла, т. е. цикл «ПОКА».

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

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

Оператор цикла является одним из наиболее важных операторов. Его эффективность особенно велика при использовании массивов, т. е. работе с элементами массивов.

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

FOR I=NI TO KI STEP HI                        заголовок оператора цикла

СЕРИЯ ОПЕРАТОРОВ                        тело цикла

NEXT I                                                завершающий оператор

Оператор цикла содержит четыре ключевых слова: FOR, что в переводе c английского языка означает для, TO, что в переводе c английского языка означает до, STEP, что в переводе c английского языка означает шаг и NEXT, что в переводе c английского языка означает следующий.

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

Напомним, I – имя параметра цикла (управляющая переменная цикла, такое определение более информативно: переменная, которая управляет циклом и входе его выполнения изменяет свое значение); NI – начальное значение параметра цикла (управляющей переменной цикла); KI – конечное значение параметра цикла (управляющей переменной цикла); HI –  шаг изменения параметра цикла (управляющей переменной цикла). NI, KI и HI могут быть представлены любыми арифметическими выражениями, но значения переменных, которые входят в них, должны быть определены до выполнения цикла.

Работу оператора цикла можно описать следующим образом:

  1. Вычисление значений выражений, определяющих NI, KI и HI;
  2. I присваивается значение NI;
  3. I сравнивается с KI: если I больше KI при положительном HI (или, наоборот, I меньше KI при отрицательном HI), то переход к выполнению оператора следующего за завершающим оператором цикла ( NEXT I ), иначе вход в цикл;
  4. Выполняются операторы, входящие в тело цикла до завершающего оператора цикла ( NEXT I );
  5. I автоматически изменяется на HI;
  6. Переход к пункту 3, т.е. как бы переход к заголовку цикла;

Иначе говоря, операторы FOR и NEXT обеспечивают изменение значения I от NI до KI с шагом HI и выполнение оператора (операторов), заключенных между FOR и NEXT, при каждом значении I.

Замечания:

1. Изменять значение величин NI, KI и HI в процессе выполнения оператора цикла не рекомендуется.

2. Вход в цикл, минуя заголовок оператора цикла, в Бейсике запрещен.

3. Значение HI не должно быть 0 (нуль), так как цикл будет бесконечным.

4. Если Значение HI равно 1, конструкцию STEP 1 можно опустить.

Пример: Вычислить сумму

CLS

S=0

FOR  N=1  TO 1000  STEP  1

S=S+1/N

NEXT  N

PRINT  ”Сумма =”;  S

END

2.6.2. Программа циклического алгоритма

Рассмотрим реализацию разветвляющегося алгоритма на примере задачи, приведенной в разделе 1.3, а именно: вычислить значение y=sin φ в диапазоне изменения аргумента от 10° до 90° с шагом 10°.

CLS

INPUT » Введите значения:  NX»; NX

INPUT » Введите значения:  KX»; KX

INPUT » Введите значения:  HX»; HX

FOR  X=NX  TO  KX  STEP  HX

X1 = X*3.14/180

Y = SIN(X1)

? Y;»=sin(«;X;»)»

NEXT  X

END

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

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

Задача 1. Вычислить сумму (S) натуральных нечетных чисел от 1 до 99 (S=1+3+5+…+99).

Задача 2. Вычислить произведение (P) натуральных чисел от 1 до 10 (P=1*2*3*…*10=10! – это называется 10 факториал).

3. Среда программирования QBasic

3.1. Цели лабораторно-практической работы

  1. Знакомство с интерфейсом транслятора QBasic.
  2. Научиться набору программы с использованием транслятора QBasic.
  3. Научиться отлаживать и запускать на выполнение программу с использованием транслятора QBasic.

3.2. Технология выполнения лабораторно-практической работы

  1. Включить компьютер, осуществить загрузку операционной системы, введя имя пользователя и пароль.
  2. Запустить транслятор QBasic: кнопка [Пуск]  Все программы  QBasic (или ДЩЛКМ по ярлыку программы «QBasic» на рабочем столе).
  3. Набрать программу для вычисления периметра произвольного треугольника по его трем сторонам.

CLS

INPUT » Введите значения:  А, В, С «; А, В, С

Р = А + В + С

? » Р= «; Р

END

Внимание. 1. Последователь операторов записывается в строки, каждая из которых имеет свой порядковый номер. Строки обычно нумеруются с интервалом в 10, т. е. 10, 20, 30, …

2. В одной строке можно использовать несколько операторов. Для отделения их друг от друга используется двоеточие «:».

  1. Запустить программу на выполнение:

1. ЩЛКМ (щелкнуть левой кнопкой мыши) по пункту горизонтального меню RUN;

2. ЩЛКМ по пункту START открывшегося ниспадающего меню.

  1. Если есть синтаксические ошибки, то исправить их в программе и снова запустить программу на выполнение (пункт 4). Если синтаксических ошибок нет, то переходим к пункту 6.
  2. Задать исходные данные для длин сторон треугольника: набрать на клавиатуре 2 , 3, 4 и нажимаем клавишу Enter. На экране видим результат р = 9. Показать преподавателю.
  3. Самостоятельно протестировать выполнение программы с другими значениями длин сторон треугольника.
  4. Набрать программу для определения наибольшего из двух чисел набранных на клавиатуре.

1. ЩЛКМ (щелкнуть левой кнопкой мыши) по пункту горизонтального меню FILE;

2. ЩЛКМ по пункту NEW PROGRAM открывшегося ниспадающего меню;

3. На вопрос «One or more loaded files are not saved. Save them now?» ЩЛКМ по пункту NO и набрать текст программы:

CLS

INPUT » Введите значения:  А, В «; А, В

IF A

? » A меньше B «

ELSE

? «B меньше или равно A «

ENDIF

END

  1. Запустить программу на выполнение (см. пункт 4), исправить синтаксические ошибки, если они есть (см. пункт 5), задать исходные данные – любые два числа (см. пункт 6) и получить результат. Показать преподавателю.
  2. Самостоятельно:

1. протестировать выполнение программы для чисел: ;

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

  1. Набрать программу для вычисления значений функции y=sin φ в диапазоне изменения аргумента от 10° до 90° с шагом 10° (см. пункт 8):

CLS

INPUT » Введите значения:  NX»; NX

INPUT » Введите значения:  KX»; KX

INPUT » Введите значения:  HX»; HX

FOR  X=NX  TO  KX  STEP  HX

X1= X*3.14/180

Y=SIN(X1)

? Y;»=sin(«;X;»)»

NEXT  X

END

Запустить программу на выполнение, задав исходные данные с клавиатуры (см. пункт 4, 5 и 6), получить результат. Показать преподавателю.

  1. Самостоятельно: исправить текст программы, чтобы отказаться от ввода исходных данных, указав их в заголовке оператора цикла, получить результат.
  2. Набрать программу для вычисления значений функции  для задаваемого с клавиатуры x:

REM вычисление значения функции y(x)

CLS

INPUT » Введите значения:  X «; X

IF X<=10 THEN Y=-5 ELSE Y=X^3

? “Y= “; Y

END

Протестировать работу программы при х = 0, х = 10 и х = 12. Показать преподавателю.

  1. Завершить работу с транслятором QBasic:

1. ЩЛКМ по пункту горизонтального меню FILE;

2. ЩЛКМ по пункту EXIT открывшегося ниспадающего меню;

3. На вопрос «One or more loaded files are not saved. Save them now?» ЩЛКМ по пункту NO.

Дополнительно

  1. Получить значения выражений, используя QBasic:

1).

2).

3).

3.3. Требования по оформлению отчета

Кратко, но понятно ответить на вопросы:

1. Как осуществляется включение ПК и его подготовка к работе?

2. Как осуществить запуск транслятора QBasic?

3. Как происходит набор программы?

4. Как запустить набранную программу на выполнение?

5. Как набрать новую программу, не сохраняя ранее набранную?

6. Как осуществляется ввод исходных данных в программу?

7. Как завершить работу с транслятором QBasic?

3.4. Контрольные вопросы

  1. В чем состоит программный принцип работы компьютера?
  2. Что такое компьютерная программа?
  3. Каково предназначение транслятора QBasic?
  4. Что такое арифметическое выражение в языке QBasic?
  5. Что может входить в состав арифметического выражения?
  6. Как осуществляется обращение к стандартным функциям в языке QBasic?

4. Программная реализация линейного алгоритма

4.1. Цели лабораторно-практической работы

  1. Закрепить навыки в написании математических выражений.
  2. Научиться использовать стандартные функции.
  3. Освоить практическое применение операторов: LET, INPUT, PRINT, END, CLS.
  4. Закрепить навыки в работе с блок-схемами.
  5. Уметь писать и отлаживать программу линейного алгоритма.

4.2. Технология выполнения лабораторно-практической работы

  1. Включить компьютер, осуществить загрузку операционной системы, введя имя пользователя и пароль.
  2. Запустить транслятор QBasic: кнопка [Пуск]  Все программы  QBasic (или ДЩЛКМ по ярлыку программы «QBasic» на рабочем столе).
  3. Написать программу для вычисления значения , если . Протестировать программу при  (результат: Р = 354, К = 12.885164). Показать преподавателю.
  4. Перевести на язык программирования следующие команды:

Очистить экран

Ввести с клавиатуры А, В

Увеличить А в 20 раз

Уменьшить В в 34 раза

Вычислить С=А+В

Вывести на экран значения А, В, С

Конец

Протестировать программу при А = 2, В =68 (результат: А = 40, В = 2, С =42). Показать преподавателю.

  1. Перевести на язык программирования следующую блок-схему:

Протестировать программу при В = 20, С = 10 (результат проверить в ручную). Показать преподавателю.

Дополнительно

  1. Составить программу вычисления длин сторон прямоугольного треугольника, у которого длина одного катета в два раза больше длины другого, а площадь равна S (значения S вводить с клавиатуры, результат: длины катетов). Показать преподавателю.
  2. Составить программу вычисления произведения цифр заданного трехзначного числа (Замечание: 1. все используемые переменные определить целым типом; 2. использовать в программе встроенную функцию языка Basic: целая часть х – INT(x)). Показать преподавателю.
  3. Решить примеры, используя QBasic:

1).

2).

4.3. Требования по оформлению отчета

1. Вычертить блок-схему и записать программу для первой задачи (пункт 3 задания на лабораторно-практическую работу): вычислить значения , если .

2. Вычертить блок-схему и записать программу на языке QBasic для второй задачи, представленной на алгоритмическом языке (пункт 4 задания на лабораторно-практическую работу):

Очистить экран

Ввести с клавиатуры А, В

Увеличить А в 20 раз

Уменьшить В в 34 раза

Вычислить С=А+В

Вывести на экран значения А, В, С

Конец

3. Записать программу и указать ответ при ее тестировании для третьей задачи, представленной в виде блок-схемы (пункт 5 задания на лабораторно-практическую работу):

Дополнительно

4. Для следующих двух задач (пункт 6 и 7 задания на лабораторно-практическую работу) вычертить блок-схемы, записать программы и указать данные для тестирования (исходные и результат).

5. Записать ответы решения примеров (пункт 8 задания на практику).

4.4. Контрольные вопросы

  1. Дать определение линейного алгоритма.
  2. Привести примеры линейных алгоритмов.
  3. Каково предназначение оператора, состоящего из одного ключевого слова CLS?
  4. Какова синтаксическая структура оператора ввода языка QBasic?
  5. Каков состав оператора присваивания языка QBasic?
  6. С помощью какого оператора языка QBasic осуществляется вывод значений переменных, текста, а также значений арифметических выражений?
  7. Каково предназначение оператора, состоящего из одного ключевого слова END?

5. Программная реализация разветвляющегося алгоритма

5.1. Цели лабораторно-практической работы

  1. Закрепить навыки в написании математических выражений и использовании стандартных функций.
  2. Освоить практическое применение оператора безусловного перехода и условного оператора.
  3. Закрепить навыки в работе с блок-схемами.
  4. Уметь писать и отлаживать программу разветвляющегося алгоритма.

5.2. Технология выполнения лабораторно-практической работы

  1. Включить компьютер, осуществить загрузку операционной системы, введя имя пользователя и пароль.
  2. Запустить транслятор QBasic: кнопка [Пуск]  Все программы  QBasic (или ДЩЛКМ по ярлыку программы «QBasic» на рабочем столе).
  3. Написать программу для вычисления значения , если . Протестировать программу: 1). при  (результат: t = 0, V= 0); 2). при  (результат: t = 0.3465Е+02, V= 0.912Е+01). Показать преподавателю.
  4. Заменить в отлаженной программе условный блочный оператор на условный строчный, и снова провести тестирование аналогичное пункту 3. Показать преподавателю.
  5. Перевести на язык программирования следующие команды.

Очистить экран

Ввести с клавиатуры А, В

Если А < B, тогда С = В — А, иначе С = А — В

Вывести на экран значения С

Конец

Протестировать программу: 1). при А = 2, В =68 (результат: С =66); 2). при А = 8, В =3 (результат: С =5). Показать преподавателю.

  1. Перевести на язык программирования следующую блок-схему:

Протестировать программу при f = 0; f = 20 и f = 21. Показать преподавателю.

Дополнительно

  1. Для вычисления величины , если  набрать программу:

10   CLS

20   INPUT  f

30   IF  f < 10  THEN  y = f ^ 3 – 0.3  :  GOTO  60

40   IF  f < 21  THEN  y = 0  :  GOTO  60

50   y = f ^ 2 – 21

60   x = y + 6.3 * y ^ 2

70   PRINT  “y =” ; y , ”x =” ; x

80   END

Протестировать программу при f = 0; f = 20 и f = 21. Показать преподавателю.

5.3. Требования по оформлению отчета

1. Вычертить блок-схему и записать программу для первой задачи (пункт 3 задания на лабораторно-практическую работу): вычислить значения , если .

2. Вычертить блок-схему и записать программу на языке QBasic для второй задачи, представленной на алгоритмическом языке (пункт 5 задания на лабораторно-практическую работу):

Очистить экран

Ввести с клавиатуры А, В

Если А < B, тогда С = В — А, иначе С = А — В

Вывести на экран значения С

Конец

3. Записать программу и указать ответ при ее тестировании для третьей задачи, представленной в виде блок-схемы (пункт 6 задания на лабораторно-практическую работу):

Дополнительно

4. Для первой задачи: вычислить значения , если , записать программу с использованием условного строчного оператора (пункт 4 задания на лабораторно-практическую работу).

5. Для четвертой задачи: вычислить значения , если  (пункт 7 задания на лабораторно-практическую работу), вычертить блок-схему.

5.4. Контрольные вопросы

  1. Дать определение разветвляющегося алгоритма.
  2. Привести примеры разветвляющихся алгоритмов.
  3. Назовите виды разветвляющихся алгоритмов.
  4. С помощью какого оператора осуществляется запись разветвляющегося алгоритма в программе на языке QBasic?
  5. В чем состоит отличие в синтаксической структуре условного блочного оператора и условного строчного оператора?
  6. В каких разветвляющихся алгоритмах существует возможность использования условного строчного оператора?
  7. Какой блок обязательно присутствует при записи разветвляющегося алгоритма в виде блок-схемы?
  8. Какими видами выражений языка QBasic записывается условие в условных операторах?

6. Программная реализация циклического алгоритма

6.1. Цели лабораторно-практической работы

  1. Закрепить навыки в написании математических выражений и использовании стандартных функций.
  2. Освоить практическое применение оператора безусловного перехода и условного оператора для организации цикла.
  3. Научиться использовать оператор цикла с параметром на практике.
  4. Закрепить навыки в работе с блок-схемами.
  5. Уметь писать и отлаживать программу циклического алгоритма.

6.2. Технология выполнения лабораторно-практической работы

  1. Включить компьютер, осуществить загрузку операционной системы, введя имя пользователя и пароль.
  2. Запустить транслятор QBasic: кнопка [Пуск]  Все программы  QBasic (или ДЩЛКМ по ярлыку программы «QBasic» на рабочем столе).
  3. Написать программу для вычисления значений функции  на отрезке [0; 1]с шагом . Вывод результатов организовать построчно парами: x=…   y=… Протестировать программу (результат: 0, 0;   0.2, 2.641445;   0.4, 3.373068;   0.6, 4.2088;   0.8, 6.168438;   1, 6.278035). Показать преподавателю.
  4. Перевести на язык программирования следующие команды.

1        Очистить экран

2        Ввести с клавиатуры N, K, H

3        Определить X=N

4        Определить

5        Вывести на экран значения X и Y

6        Определить X=X+H

7        Если X ≤ K, тогда перейти к пункту 4

8        Конец

Протестировать программу при N = 0, K =1, H =0,2. Показать преподавателю.

  1. Перевести на язык программирования следующую блок-схему:

Протестировать программу при N = 0, K =1, H =0,2.  Показать преподавателю.

Дополнительно

  1. Написать программу для вычисления куба суммы всех четных чисел от 1 до 100.
  2. Для данных K и M написать программу вычисления значения выражения: . Протестировать программу при M = 2, K = 10.
  3. Для заданного x и N программу вычисления значения выражения: . Протестировать программу при x = 2, N = 6.

6.3. Требования по оформлению отчета

1. Вычертить блок-схему и записать программу для первой задачи (пункт 3 задания на лабораторно-практическую работу): вычислить значения функции  на отрезке [0; 1]с шагом .

2. Указать вид алгоритма, вычертить блок-схему и записать программу на языке QBasic для второй задачи, представленной на алгоритмическом языке (пункт 5 задания на лабораторно-практическую работу):

1        Очистить экран

2        Ввести с клавиатуры N, K, H

3        Определить X=N

4        Определить

5        Вывести на экран значения X и Y

6        Определить X=X+H

7        Если X ≤ K, тогда перейти к пункту 4

8        Конец

3. Указать вид алгоритма и записать программу для третьей задачи, представленной в виде блок-схемы (пункт 5 задания на лабораторно-практическую работу):

Дополнительно

4. Для следующих трех задач (пункты 6, 7 и 8 задания на лабораторно-практическую работу) записать программы и указать результаты тестирования.

6.4. Контрольные вопросы

  1. Дать определение циклического алгоритма.
  2. Привести примеры циклических алгоритмов.
  3. Назовите виды циклических алгоритмов.
  4. С помощью каких операторов осуществляется запись циклического алгоритма в программе на языке QBasic?
  5. В чем состоит отличие в выполнении цикла с предусловием от выполнения цикла с постусловием?
  6. Какова синтаксическая структура оператора цикла с параметром?
  7. Какой блок обязательно присутствует в блок-схеме при записи циклического алгоритма с конечным количеством повторений?
  8. Допустимо ли изменение параметра цикла в теле цикла при использовании оператора цикла с параметром?

7. Программная реализация сложного алгоритма

7.1. Цели лабораторно-практической работы

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

7.2. Технология выполнения лабораторно-практической работы

  1. Включить компьютер. Осуществить загрузку операционной системы, введя имя пользователя и пароль.
  2. Загрузить транслятор QBasic: кнопка [Пуск]  Все программы  QBasic (или ДЩЛКМ по ярлыку программы «QBasic» на рабочем столе).
  3. Написать программу для вычисления значения , если , для  с шагом . Вывод результатов организовать построчно парами: x=…   V=… Протестировать программу (результат: 0, 1;   0.314, 0.9875457;   0.628, 0.9484502;   0.942, 0.8757417;   1.256, 0.7459474;   1.57, 0.1679831;   1.884, 7.450335;   2.198, 8.752615;   2.512, 9.481756;   2.826, 9.874177). Показать преподавателю.
  4. Написать программу для вычисления значения , если . Протестировать программу: 1). при А = -1, В = 1, N = 5, x = 0 (результат: S = 625); 2). А = -1, В = 1, N = 5, x = -1 (результат: S = 702.8726); 3). А = -1, В = 1, N = 5, x = 2 (результат: S = 781.4806). Показать преподавателю.

Дополнительно

  1. Даны натуральные числа n, A1, A2, …, An. Написать программу нахождения:

а) max(A1, A2, …);     б) max(A2, A4, …);     в) mix(A2, A4, …)+ max(A1, A3, …) Протестировать программу. Показать преподавателю.

  1. Составить программу, выясняющую является натуральное число N (N>2) простым.
  2. Для данного N составить программу вычисления выражения:

1).

2).

  1. Для данного X составить программу вычисления выражения: .

Протестировать программу при X = 2 (результат: Y = 0,452539)

7.3. Требования по оформлению отчета

1. Вычертить блок-схему и записать программу для первой задачи (пункт 3 задания на лабораторно-практическую работу): вычислить значения , если , для  с шагом .

2. Вычертить блок-схему и записать программу для второй  задачи (пункт 4 задания на лабораторно-практическую работу): вычислить значения , если .

Дополнительно

3. Записать программы и указать результаты тестирования для задач из пунктов 5, 6, 7 и 8 задания на лабораторно-практическую работу.

7.4. Контрольные вопросы

  1. Какова структура сложного алгоритма?
  2. Какой оператор используется для записи вложенных циклов? В чем состоит синтаксическая особенность его использования?
  3. Как в программе можно реализовать множественное разветвление?

Список литературы

  1. Гейн А.Г., Сенокосов А.И., Юнерман Н.А. Информатика: Учеб. пособие для 10– 11 кл.. общеобразоват. учреждений. – М.: Просвещение, 2000. – 255 с.
  2. Голицына О.Л., Попов И.И. Основы алгоритмизации и программирование: Учеб. пособие (серия «Профессиональное образование»). – М.: ФОРУМ: ИНФРА-М, 2004. – 432 с.
  3. Житкова В.Б., Кудрявцева Е.К. Алгоритмы и основы программирования. (Тематический контроль по информатике.). – М.: Интеллект-Центр, 1999. – 64 с.
  4. Кириенко Д.П., Осипов П.О., Чернов А.В. ГИА-2013: Экзамен в новой форма: Информатика: 9-й класс: Тренировочные варианты экзаменационных работ для проведения государственной (итоговой) аттестации в новой форме. – М.: Астрель, 2013. – 78 с.
  5. Колдаева Н.В. Основы информатики: Учебное пособие. – Кстово: НФВИУ, 2002. – 60 с.
  6. Коханко В.В., Колдаева Н.В., Матвейчук. Основы программирования: Учебное пособие. – Кстово: НВВИКУ (ВИ), 2008. – 244 с.
  7. Кузнецов А.А., Пугач В.И., Добудько Т.В., Матвеева Н.В. – 2-е изд., испр. – М.: БИНОМ, Лаборатория знаний, 2003. – 232 с.
  8. Мамонтов Д.В. Quick Basic в задачах и примерах. – СПб.: Питер, 2006. – 256 с.
  9. Острейковский В.А., Полякова И.В. Информатика. Теория и практика: Учеб. пособие. – М.: Издательство Оникс, 2008. – 608 с.
  10. Островская Е.М., Самылкина Н.Н. ЕГЭ 2013. Информатика. Сдаем без проблем! – М.: Эксмо, 2012. – 160 с.
  11. Самылкина Н.Н.. Островская Е.М., Кузнецова Е.Ю. ЕГЭ 2013. Информатика: тренировочные задания. – М.: Эксмо, 2012. – 200 с.
  12. Светозарова Г.И., Мельников А.А., Козловский А.В. Практикум по программированию на языке бейсик: Учеб. пособие для вузов. – М.: Наука. Гл. ред. физ.-мат. лит., 1988. – 368 с.
  13. Угренович Н.Д. Информатика и ИКТ. Базовый уровень: учебник для 11 класса. – 5-е изд. – М.: БИНОМ, Лаборатория знаний, 2012. – 187 с.
  14. Хлебников А.А. Информатика: учебник (Среднее профессиональное образование). – Изд. 3-е, стер. – Ростов н/Д.: Феникс, 2012. – 507 с.
  15. Цветкова М.С. Информатика и ИКТ: учебник для нач. и сред. проф. образования. – 3-е изд. стер. – М.: Издательский центр «Академия», 2012. – 352 с.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти потерянные беспроводные наушники самсунг
  • Как исправить номер снилс в больничном листе
  • Как найти угол по длине двух катетов
  • Как найти правильный ответ в рэш
  • Как найти площадь сечения стержня сопромат

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии