Операторы бейсик реализующие команды ветвления. Язык программирования Visual Basic. Программирование ветвлений. II.Проверка домашнего задания

Темы: «Программы типа ветвление и цикл на Бейсике, работа

с массивами».

Задание состоит из нескольких частей:

- прочитайте лекционный материал по теме (с. 1-5) и разберите примеры;

- выполните задание 1 (с. 5);

- прочитайте лекционный материал по теме (с. 6-8) и разберите примеры;

- выполните задание 2 (с. 8-9 );

- прочитайте лекционный материал по теме (с. 9-14) и разберите примеры;

- выполните задание 3 (с. 14);

- познакомьтесь с понятием «матрица» и примерами работы с матрицами (с. 15-17).

Решенные задания пришлите на электронный адрес школы, в письме в

разделе «Тема» укажите «Кавериной Н. Е информатика». В начале текста

письма укажите свою фамилию, класс, дату выполнения задания и

номера заданий (13 - 1 7 ). Задания копируйте, а затем записывайте ответы.

ВНИМАНИЕ! Задание должно быть сдано до 12 января .

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

Просмотрите лекционный материал по данной теме, разберите примеры,

если будут вопросы – задайте их в письме.

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

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

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

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

Простая форма оператора выглядит следующим образом:

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

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

<ОПЕРАТОР
N > END IF

Если условие справедливо , то программа выполняет тот оператор, который стоит после ключевого слова THEN (или серию операторов от ключевого слова THEN до END IF ), и дальше руководствуется обычным порядком действий. Если условие не выполняется , то оператор, стоящий после THEN (или серия операторов от THEN до END IF ) не выполняется , и программа сразу переходит к обычному порядку действий.
Конструкция IF...THEN позволяет в зависимости от справедливости условия либо выполнить оператор, либо пропустить этот оператор.
Конструкция IF...THEN...END IF позволяет в зависимости от справедливости условия либо выполнить группу операторов, либо пропустить эту группу операторов.

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

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

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

Справа и слева от знака сравнения должны стоять величины, относящиеся к одному типу. В результате сравнения получается логическая величина, имеющее значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE).

Пример:
5<7 - ИСТИНА;
8=12 - ЛОЖЬ (проверяем равно ли 8 12, именно проверяем, а не утверждаем, что 8=12 );

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

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

Если условие справедливо (ИСТИНА), то выполняются <операторы 1> (стоящие между THEN и ELSE ), а <операторы 2> (стоящие между ELSE и END IF ) будут пропущены.
Если условие не справедливо (ЛОЖЬ), то <операторы 1> игнорируются и выполняются <операторы 2>.

IF - если, THEN - тогда, ELSE - иначе.

Если в комнате темно, тогда надо включить свет.

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

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

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

После запуска программы проверяется, равно ли введенное значение семи или нет. Если равно, то на экран выводится сообщение "Числа равны".

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


INPUT "Введите а", а
INPUT "Введите b", b
IF a>b THEN
PRINT "Большее число: ", a
с=2*a
ELSE
PRINT "Большее число: ", b
с=2*b
END IF
PRINT "результат: ", c
END

Сначала программа запрашивает оба числа, затем проверяет условие a>b. Если условие верно, то на экран выводится число a, затем это число удваивается. Иначе на на экран выводится число b, затем число b удваивается. В завершении на экран выводится удвоенное значение большего числа.

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

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

Задание 1.

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

2. Заданы 3 числа (вводите их с клавиатуры с комментариями) а, в, с. Напишите программу, выбирающую и распечатывающую большее число.

3. Напишите программу для вычисления значения У, если известно:

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

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

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

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

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

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

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

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

Пример: Вывести на экран все числа от 1 до 100. Для этого можно было бы написать следующую программу:

REM Вывод чисел от 1 до 100
PRINT 1
PRINT 2
PRINT 3
PRINT 4
PRINT 5
PRINT 6
PRINT 7
...
PRINT 98
PRINT 99
PRINT 100
END

Всего каких-то 102 строчки:-). Хотя эту же программу можно написать намного короче:

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

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

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

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

Легко сделать чтобы программа выводила числа в обратном порядке. Для этого шаг цикла должен быть равен -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

Программа перебирает числа от 10 до 99 каждый раз выполняя действия s=s+I . С точки зрения математики это совершенно бессмысленная запись, но рассмотрим её внимательней.
Процесс решения вычислительной задачи - это процесс последовательного изменения значений переменных. В итоге - в определенных переменных получается результат. Переменная получает определенное значение в результате присваивания . Вы помните, что присваивание - это занесение в ячейку, отведенную под переменную, определенного значения в результате выполнения команды.
В результате операции а=5 переменная а получает значение 5.
В результате операции с=a+b переменная с получает значение равное сумме значений переменной а и b .
В результате операции s=s+I переменная s получает значение равное сумме предыдущего значения переменной s и значения переменной I . Т. е., если до операции присваивания значение s было равно 5, а переменной I равно 3, то после операции значение переменной s будет равно 8 (5+3, старое значение s + значение I ).
Значит после выполнения нашей программы в переменной s будет хранится сумма всех двузначных чисел от 10 до 99.

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

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

Задание 2.

1. Используя оператор FOR … NEXT, напишите программу расчета и вывода на печать значения функции Y=5/X при изменении аргумента Х от -5 до +5 с шагом 0,5.

2. Используя оператор FOR … NEXT, напишите программу которая вычеслит сумму первых 10 целых чисел и выдете результат на экран.

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

10 FOR X=1.5 TO 0 STEP -0.5

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

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

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

Массив - это набор переменных, имеющих одинаковое имя (идентификатор), но различающихся порядковыми номерами (индексами).

Обычно массивы применяют для группировки переменных, имеющих много общих свойств. Например, если в классе 30 учеников, то имя каждого ученика можно было бы сохранить в отдельной строковой переменной: name1, name2, ... Но вводить 30 новых переменных крайне неудобно. Можно сделать проще: объявить один массив name(), имеющий 30 элементов. В скобках проставляется индекс когда надо обратиться к какому-то конкретному элементу.

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

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

DIM a(100) AS INTEGER
Это массив из ста элементов, каждый из которых может быть целым числом.
DIM name(30) AS STRING
DIM mas(20)
Это массив из 20 элементов, тип переменных явно не указан.

DIM mas1(10) AS INTEGER

Обращение к элементам массива:

a(24)
name(5)
mas(2)
mas(3)

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

Можно также объявить массив и таким образом:

DIM mas2(1 TO 10) AS INTEGER

или даже так:

DIM a2(5 TO 10) AS INTEGER

В чем отличие? В том что данном случае индексация элементов массива начинается не с нуля, а с нужного вам индекса (в примере массив mаs2 имеет индексы от 1 до 10, массив а2 - от 5 до 10).

Допустим в классе 30 учеников. Предположим, что для хранения их оценок по предмету создан массив DIM mark(30) AS INTEGER . Следующая программа, поставит каждому учащемуся случайную оценку от 3 до 5. Конечно, так расставлять оценки нельзя, но этот пример показывает, что программа не становиться сложнее, если в классе не 30 учеников, а сто пятьдесят миллионов. Сочетание массивов и циклов позволяет достичь удивительной простоты.

REM Выставление оценок:)
DIM mark(30) AS INTEGER
FOR I=0 TO 29
mark(I)=3+INT(RND*3)
NEXT
END

Для создания случайных чисел в языке Basic служит стандартная функция RND . Она создает случайное число в диапазоне от 0 до 1. Умножив его на 3, мы получаем случайное число от 0 до 3. А взяв от него целую часть (с помощью функции INT), получим целое случайное число в диапазоне от 0 до 2. Прибавив к нему число 3, мы поучаем случайную оценку, которая не меньше 3 и не больше 5.

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


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

CLS - очистка экрана. Точка с запятой (;) в операторе PRINT позволяет выводить элементы массива в строку.

Тоже самое задание, но отличающиеся объявлением массива:

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

Всё очень просто. Какой из вариантов использовать решать вам.

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

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

DIM mas(n) AS INTEGER
FOR I=0 TO n-1

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

Задание выполняется в строчках:
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 Вначале примем за наибольший элемент - первый элемент массива mas(0) . Затем перебирая все элементы по очереди сравниваем их со значение max и если mas(I)>max , то принимаем этот элемент за наибольший.

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

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 и READ .
DATA указывает значения для чтения последующими операторами READ . READ считывает эти значения и присваивает их переменным. RESTORE позволяет READ заново считать значения в указанном операторе DATA .

DATA константы
READ переменные

Пример: ввод массива с использование оператора 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
END

Задание 3.

1. Составьте программу для вычисления суммы и произведения элементов массива, больших 4. Массив А состоит из 15 элементов.

2. Напишите программу для нахождения минимального элемента массива В, состоящего из 20 элементов.

3. Даны массивы А и В, состоящие из 20 элементов. А) Напишите программу для получения нового массива Х, состоящего из 20 элементов, если известно, что х(I)=2*a(i)-b(i). Б) Напишите программу для получения нового массива У, состоящего из 15 элементов, если известно, что у(I)=a(i)+3*b(i).

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

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

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

DIM tabl(3 ,4) AS INTEGER

DIM tabl1(1 TO 3 ,1 TO 4) AS INTEGER

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

DIM tablum(1 TO 9 ,1 TO 9) 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

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

Урок №31. Составление программ с использованием операторов ветвления. Два варианта решения задач.

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

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

Ветвление - это такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий.

Простейшей командой, изменяющей естественный порядок выполнения программы, является команда GOTO (go to) (идти туда, перейти к…). Это команда имеет вид:

GOTO N, где N - номер строки программы

По этой команде компьютер переходит к выполнению команды с номером N.

Мы знакомы с двумя способами записи ветвлений – полной и неполной.

Ветвление в неполной форме

Вариант записи


Q – здесь условие, а P – последовательность действий, которую надо выполнять в случае, когда условие верно. Ветвление в неполной форме записывается так:

Если Q то:

Иначе - конец ветвления

Можно по разному перевести на язык BASIC эту форму записи. Если Р состоит из одного действия, то перевод такой:

(слово if означает "если", а слово then "то"). Например:

10 IF X > 0 THEN Y = LOG (X)

Если значение переменной х>0, то ЭВМ вычислит ln x и присвоит результат переменной Y, а затем будет выполняться команда с номером 20. Если же значение х не превосходит нуля, то сразу будет выполняться команда с номером 20.

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

Например: в Р содержатся 6 действий р1...р6, ветвление должно начинаться со 120 строки, а следующая после ветвления команда имеет номер 150. Это означает, что в случае невыполнения условия Q надо перейти к команде 150. в этой базовой структуре программа будет выглядеть так:

2 вариант записи:





120 IF NOT (Q) THEN GOTO 150

Здесь NOT (Q) означает отрицание условие (Q), например NOT (xy, а NOT (x=y) означает x<>y.

Отметим, что в строках вида: IF ... THEN GOTO N, где N номером строки, одно из слова GOTO или THEN можно не писать.

IF ...THEN GOTO N

Означает одно и тоже

Например, алгоритм нахождения максимума из двух чисел

2. Присвоить М, значение А

3. Если М<В, то

4. Присвоить М значение В

5. Конец ветвления

6. Сообщить М

Блок-схема



На языке BASIC:

30 IF M < B THEN M = B

Тот же алгоритм можно перевести на BASIC и иначе:

10 INPUT A, B
20 M = A

30 IF NOT M < B THEN 50

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

Конец ветвления Да


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



IF Q THEN P ELSE T

Если же Р и Т из нескольких действий, то удобнее переводить следующим образом (для примера, пусть Р состоит из трех, Т - из четырех команд, ветвление начинается с 530 строки, следующая за ветвлением строка имеет номер 600).


530 IF Q THEN 536

Исполняя этот фрагмент ЭВМ выполнит команды Р1, Р2, Р3 если условие Q выполняется и команды Т1...Т4, если Q не имеет место. А затем, после выполнения соответствующей серии команд ЭВМ перейдет к выполнению команды записанной в строке 600.

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

20 IF X>=2 THEN Y = SQR (X) ELSE Y = ABS (X)

30 PRINT "Y="; Y

можно записать эту программу и так:ё

20 IF X >= 2 THEN 50

Практическая работа №16

Тема: "Решение задач с использованием оператора IF THEN GOTO" (1 вариант)

Задание №1

Найти максимальное из двух чисел a и b

Составить алгоритм, блок-схему и программу на языке BASIC

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC. Сделать анализ показателей деятельности Кошкинского райпо за 1998г., путем сравнения суммы доходов за отчетный год So с суммой доходов за прошлый год Sn, сделать вывод. Используйте таблицу показателей.

Практическая работа №17

Тема: "Решение задач с использованием оператора IF THEN GOTO" (2вариант)

Задание №1

Составьте алгоритм, блок-схему и программу на языке BASIC, используя операторы REM, IF THEN GOTO. Для расчета уровня динамики, если уровень динамики рассчитывается по формуле: D = (So/Sn) * 100%

D – показатель уровня динамики

So – сумма дохода за отчетный год в тыс. руб.

Sn – сумма доходов за прошлый год в тыс. руб.

Найдите разницу: R = D-100%

Если R – величина положительная, т.е. R>0, то уровень доходов за отчетный год увеличился на R%

Если R – величина отрицательная, т.е. R <0, то уровень доходов снизился на R%

Практическая работа №18

Тема: "Решение задач с использованием оператора IF THEN ELSE" (1вариант)

Задание №1


Y = если х< 2, если х >2

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC для нахождения значений функции Y

Y = x 2 – если x <2

Y = 2x 2 – если x>2

Практическая работа №19

Тема: "Решение задач с использованием оператора IF THEN ELSE" (2вариант)

Задание №1

Составить алгоритм, блок-схему и программу на языке BASIC для решения уравнения.Используя правило математики «делить на ноль нельзя»

Y = (x+8) / (x-5), если х = 5

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC для решения уравнения. Используя правило математики «делить на ноль нельзя»

Y = (х 2 - 3х) / (х – 3) , если х = 3

Урок №36,Тема: Операторы цикла в языке BASIC. Составление программ с использованием операторов цикла

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

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

Существуют циклы с заранее известным числом повторений (детермированный) и циклы, число повторений которое заранее не известно (итерационный).

Сформировать циклический процесс можно при помощи известных вам операторов IF и GOTO.

Цикл «Пока»

1. Итерационный цикл с заранее неизвестным числом вычислений

пока условие Q

повторять действие P

конец цикла

Цикл «Для каждого»

2. Детермированный цикл, когда заранее известно число повторений

Для каждого I от L до R

Для каждого I от L до R

конец цикла по I

(I – счетчик цикла, L – начальное значение счетчика, R – конечное значение, Р – тело цикла)

На языке BASIC цикл для каждого оформляется

10 FOR I = L TO R

Обычное начальное значение счетчика меньше конечного, тогда STEP >0, но бывают случаи, когда начальное значение больше конечного, тогда STEP <0

Если STEP отсутствует, то по умолчанию ЭВМ берет шаг = 1.

Цикл выполняется до тех пор, пока счетчик не достигнет конечного значения. Оператор NEXT передает управление на заголовок цикла и только при достижении конечного значения выполняется NEXT.

Практическое значение №20

Тема: Решение задач с использованием оператора цикла FOR NEXT (детермированный) для нескольких райпо с использованием таблицы показателей деятельности

Задание №1

Используя таблицу показателей деятельности райпо за 1997 год рассчитайте выработку на одного рабочего в год для нескольких райпо: В = То / Q:

Т – товарооборот

Q – численность рабочих

Составьте циклическую программу, используя операторы цикла

Решение:

Итерационный цикл с заранее неизвестным числом вычислений.

Пусть требуются неоднократные вычисления В – выработки на одного рабочего в год. Для подсчета количества вычислений значений В используйте переменную целого типа N%. До начала вычислений ее значение должно быть равно нулю, N% = 0 Для хранения ответа пользователя «Да» или «Нет» на вопрос компьютера о необходимости продолжения вычислений используйте, например, переменную Т$.


Практическое занятие №21

Тема: Решение задач с использованием операторов цикла (итерационный) для нескольких райпо с использованием таблицы показателей деятельности

Задание №1

Используя таблицу показателей деятельности райпо за 1997 год рассчитайте среднюю заработную плату на одного рабочего в год:

Sc – средняя заработная плата

F – фонд заработной платы

Q – численность рабочих

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

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

Практическое занятие № 22

Тема: Составление и решение задач цикл в цикле

Задание №1

Вычислите значение функции sin x в интервале от -3 до 3 с шагом 0.5

Задание №2

Вычислите N! N принять с экрана. Составить алгоритм, программу

N! = 1 * 2 * 3 …N (K=K * I)

Практическое занятие №23

Тема: «Составление и решение задач цикл в цикле с символьными переменными

Задание №1

Вычислите значение 2 в степени N, N принять с экрана

Задание №2

Вычислите функцию у на отрезке от -2 до 10 с шагом 1


Урок 42, 43. Тема: Графика в языке QBASIC

см. методическую разработку

Практическое занятие №24

Тема: «Составление линейных программ с использованием операторов графики LINE и PAINT (рисование флагов)

1. флаг Японии

20 LINE (10, 10) – (70, 50), 8, B

30 PAINT (20, 30), 7, 8

40 CIRCLE (40, 30), 10, 4

50 PAINT (40, 30), 4, 4

2. флаг Молдавии

10 LINE (10, 10) – (55, 40), 7, B

20 LINE (25, 10) – 25, 40), 7

30 LINE (40, 10) – (40, 40), 7

40 PAINT (20, 30), 9, 7

50 PAINT (30, 30), 14, 7

60 PAINT (50, 30), 4, 7

3. флаг Румынии

10 LINE (10, 50) – (55, 80), 7, B

20 LINE (25, 50,) – (25, 80), 7

30 LINE (40, 50) – (40, 80), 7

40 PAINT (20, 65), 1, 7

50 PAINT (30, 60), 14, 7

60 PAINT (50, 70), 4, 7

4. флаг Чехии

10 LINE (60, 10) – (100, 40), 7, B

20 LINE (60, 10) – (80, 25), 7

30 LINE (60, 40) – (80, 25), 7

40 LINE (80, 25) – (100, 25), 7

50 PAINT (65, 30), 1, 7

60 PAINT (80, 20), 15, 7

70 PAINT (90, 35), 4, 7

5. флаг России

10 LINE (60, 50) – (100, 80), 7, B

20 LINE (60, 50) – (100, 60), 7

30 LINE (60, 70) – (100, 70), 7

40 LINE (60, 80) – (100, 80), 7

50 PAINT (80, 55), 15, 7

60 PAINT (80, 65), 1, 7

70 PAINT (80, 75), 4, 7

6. флаг Бразилии

10 LINE (110, 10) – (150, 40), 7, B

20 LINE (115, 25) – (130, 35), 7

30 LINE (130, 15) – (115, 25), 7

40 LINE (130, 15) – (145, 25), 7

50 LINE (145, 25) – (130, 35), 7

60 CIRCLE (130, 25), 5, 7

70 PAINT (120, 15), 2, 7

80 PAINT (132, 19), 14, 7

90 PAINT (131, 26), 1, 7

7. флаг Швеции

10 LINE (10, 10) – (55, 45), 1, B

20 PAINT (30, 20), 1, 1

30 LINE (20, 10) – (25, 45), 14, B

40 PAINT (23, 20), 14

50 LINE (10, 25) – (55, 30), 14, B

60 PAINT (30, 27), 14

70 PAINT (15, 26), 14

Практическое занятие № 25

Тема: «Составление циклических программ с использованием LINE и PAINT

Задание №1.

Используя операторы графики составьте линейную программу для рисунка

Алгоритм решения

20 LINE (80, 20) - (20, 80), 4

30 LINE (160, 20) - (240, 60), 5, BF

40 LINE (80, 80) - (200, 160), 4, B

50 LINE (80, 120) - (140, 80), 3

60 LINE (140, 80) - (200, 120), 3

70 LINE (200, 120) - (140, 160), 3

80 LINE (140, 160) - (80, 120), 3

Задание №2

Для предложенного рисунка составьте линейную программу с использованием операторов графики LINE, PAINT, SCREEN

Алгоритм решения задачи

20 LINE (100, 50) - (200, 80), 2, B

30 LINE (100, 80) - (200, 110), 2, B

40 LINE (100, 110) - (200, 140), 2, B

50 LINE (100, 50) - (200, 80), 2

60 LINE (100, 110) - (200, 80), 2

70 LINE (100, 110) - (200, 140), 2

80 PAINT (180, 70), 3, 2

90 PAINT (120, 70), 4, 2

100 PAINT (120, 100), 6, 2

110 PAINT (180, 100), 7, 2

120 PAINT (180, 120), 8, 2

130 PAINT (120, 130), 9, 2

Практическое занятие №26

Тема: Составление линейных программ с использованием операторов CIRCLE и PAINT (рисование дуг, овалов)

Алгоритм решения задачи

20 CIRCLE (70, 120), 10, 14

30 CIRCLE (70, 90), 20, 4, 4.71, 1.57, 2

40 CIRCLE (70, 90), 20, 4, 1.57, 4.71, 2

50 CIRCLE (70, 150), 20, 4, 4.71, 1.57, 2

60 CIRCLE (70, 150), 20, 4, 1.57, 4.71, 2

70 CIRCLE (40, 120), 20, 4, 3.14, 6.28, .5

80 CIRCLE (40, 120), 20, 4, 6.28, 3.14, .5

90 CIRCLE (100, 120), 20, 4, 3.14, 6.28, .5

100 CIRCLE (100, 120), 20, 4, 6.28, 3.14, .5

110 CIRCLE (70, 120), 80, 2, 6.28, 1.57, 4

Практическое занятие №27

Тема: Составление циклических программ с использованием операторов CIRCLE и PAINT

Для предложенного рисунка составьте линейную программу с использованием операторов графики CIRCLE, PAINT, SCREEN

Алгоритм решения задачи

20 CIRCLE (220, 140), 80, 1, 6.28, 3.14

30 CIRCLE (160, 140), 20, 1, 6.28, 3.14, .5

40 CIRCLE (200, 140), 20, 1, 6.28, 3.14, .5

50 CIRCLE (240, 140), 20, 1, 6.28, 3.14, .5

60 CIRCLE (280, 140), 20, 1, 6.28, 3.14, .5

70 CIRCLE (180, 100), 10, 5

80 CIRCLE (220, 90), 10, 7

90 CIRCLE (220, 120), 10, 6,

100 CIRCLE (270, 110), 10, 11

110 LINE (220, 140) - (220, 180), 1

120 CIRCLE (210, 180), 10, 1, 3.14, 6.28

Практическое занятие №28

Тема: Составление линейных программ с использованием операторов DRAW и PAINT

Для предложенных рисунков составьте линейные программы с использованием операторов графики DRAW, PAINT, SCREEN

Алгоритм решения задачи

20 DRAW "C5 BM 10,80 D70 R10 D10 R10 D10 R10 D10 R60 U10 R50 U10 R10 U10 R10 U50 L10 U20 L20 U20 R20 U10 R20 U10 L30 U10 L10 U10 L30 D10 L10 D10 L10 D20 R10 D10 R10 D20 L60 D10 L20 U10 L10 U10 L10"

30 DRAW "C14 BM 130,50 U10 R10 D10 L10"

20 DRAW "C12 BM 110,90 D60 R20 U30 R20 D70 L20 D20 R40 U70 R10 D70 R40 U20 L20 U70 R20 D30 R20 U60 L50 U20 R20 U40 L70 D40 R20 D20 L50"

30 DRAW "C12 BM 140,30 E10 R70 G10"

40 DRAW "C12 BM 220,30 D40 G10"

50 DRAW "C12 BM 110,90 E10 R40"

60 DRAW "C12 BM 200,70 D10 G10"

70 DRAW "C12 BM 200,80 R50 G10"

80 DRAW "C12 BM 250,80 D60, G10"

90 DRAW "C12 BM 210,120 D60 G10"

100 DRAW "C12 BM 210,180 R20 D20 G10"

110 DRAW "C12 BM 230,180 G10"

120 DRAW "C12 BM 140,120 D20, G10"

130 DRAW "C12 BM 130,190 E10 R10"

140 DRAW "C12 BM 170,210 E10"

Практическое занятие №29

Тема: Составление линейных программ с использованием операторов DRAW и PAINT, CIRCLE, LINE

Для предложенных рисунков составьте линейные программы с использованием операторов графики DRAW, PAINT, CIRCLE, LINE, SCREEN

Алгоритм решения задачи

"Крокодил"

20 DRAW "C2 BM 10,60 D5 F5 E5 F5 E5 F5 E5 F5 E5 R5 D10 H5 G5 H5 G5 H5 G5 H5 G5 D5 R40 G5 R10 E5 R30 G5 R10 E5 R30 E40 L15 G5 L5 D5 L5 G10 L20 H5 G5 H5 G5 H5 G5 L15 H10 D10 L40 H5 G5"

30 CIRCLE (65,60), 2,4

10 DRAW "C9 BM30,40 D40 R20 D70 R30 U20 L20 U20 R30 D40 R30 U20 L10 U40 R10 D10 R20 D10 R20 U10 R20 U10 R10 U60 L10 D10 L10 D10 L10 D10 L40 U10 L10 U10 L10 D50 L60 U50 R10 U10 R20 U10 L30 D10 L10 D10 L10 D10 L10"

20 CIRCLE (140, 70), 7, 5

30 CIRCLE (180, 70), 7, 5

40 CIRCLE (160, 80), 5, 15, 6.28, 3.14, .5

50 CIRCLE (160, 80), 5, 15, 3.14, 6.28, .5

60 CIRCLE (160, 100), 7, 4

70 PSET (160, 100)

Практическая работа №30

Тема: Составление циклических программ с использованием операторов графики (RND)

"Окружности"

10 PRINT "круги"

20 INPUT "введите количество окружностей"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

90 CIRCLE (x, y), r, c

100 PAINT (x, y), c, c

10 PRINT "точки"

20 INPUT "введите количество точек"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

80 PSET (x, y), C

10 PRINT "Линии"

20 INPUT "введите количество линий"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

"Прямоугольники"

10 PRINT "прямоугольники"

20 INPUT "введите количество прямоугольников"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

80 LINE (x1, y1) - (x2, y2), C

Практическое занятие №31

Тема: Составление программ с ветвлением и циклом для операторов графики (LINE, PAINT)

Практическое занятие №32

Тема: Составление программ с ветвлением и циклом для операторов графики (CIRCLE и PAINT)

Практическое занятие №33

Тема: Построение графиков функций квадратной и кубической парабол

"Квадратная парабола"

WINDOW (-10, 10)-(10, -10)

LINE (-10, 0)-(10, 0)

LINE (0, 10)-(0, -10)

FOR X = -10 TO 10 STEP .01

"Кубическая парабола"

WINDOW (-10, 10)-(10, -10)

LINE (-10, 0)-(10, 0)

LINE (0, 10)-(0, -10)

FOR X = -10 TO 10 STEP .01

Практическое занятие №34

Тема: Построение графиков тригонометрических функций

Задание №1

Построить графики тригонометрических функций

Алгоритм решения задачи:

20 WINDOW (-10, 10)-(10, -10)

30 LINE (-10, 0)-(10, 0)

40 LINE (0, 10)-(0, 10)

50 FOR X = -10 TO 10 STEP .01

70 PSET (X, Y), 4

90 FOR X = -10 TO 10 STEP .01

110 PSET (X, Y), 10

130 FOR X = -10 TO 10 STEP .01

150 PSET (X, Y), 6

Задание №2

Построить графики функций y = x^2, y = x ^3, при у = х, если х >=0

y = , если х <0

Алгоритм решения задачи:

20 WINDOW (-10, 10)-(10, -10)

30 LINE (-10, 0)-(10, 0)

40 LINE (0, 10)-(0, -10)

50 FOR x = -10 TO 10 STEP .01

70 PSET (x, y), 15

90 FOR x = -10 TO 10 STEP .01

100 y = x ^ 3140 IF x >= 0 THEN y = SQR(x) ELSE y = -x

150 PSET (x, y), 2

110 PSET (x, y), 3

130 FOR x = -10 TO 10 STEP .01

Практическое занятие №35

Тема: Составление линейных программ и блок-схем (подготовка к зачетному занятию)

Практическое занятие №36

Тема: Операторы ветвления, циклы, графики. Составление программ (подготовка к зачетному занятию)

Практическое занятие №37

Зачетное занятие

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

1. Программа облочка NC, основное назначение (NORTON COMMANDER)

2. Понятие каталога, имя каталога, правила задания имен каталогов.

3. Понятие файл, имя файла, правила задания имен файла.

4. Имена дисководов, правила задания имен для дисководов.

5. Алгоритмизация. Понятие алгоритма. Основные свойства алгоритмов.

6. Язык программирования BASIC, поколения языка. Алфавит языка, основные языковые конструкции.

7. Правила записи операций с переменными из программирования BASIC.

8. Правила представления тригонометрических функций. Правила представления чисел в BASIC.

9. Основные команды языка программирования BASIC. Действия "присвоить", "запросить", "пусть", правила записи с комментарием и без комментариев.

10. Символьные переменные и операции с ними (сложение двух слов, операции выделения части слова MID$ (...a,b).

11. Блок-схемы. Линейные, разветвляющиеся и циклические (цикл "До", цикл "Пока" и цикл с "Параметром").

12. Операторы ветвления IF ...THEN ... ELSE два варианта записи.

13. Операторы ветвления IF ... THEN... GOTO два варианта записи.

14. Понятие цикл. Виды циклов (итерационные, детермированные).

15. Операторы цикла искусственный цикл. Цикл с параметрами (FOR ... NEXT...WHILE).

16. Операторы графики. Операторы рисания точки.

17. Оператор рисования отрезка.

18. Оператор рисования прямоугольника и квадрата.

19. Оператор рисания закрашенного прямоугольника.

20. Оператор рисования окружности.

21. Оператор рисования эллипса сжатого по оси х.

22. Оператор рисования эллипса сжатого по оси у.

23. Оператор закрашивания внутренней поверхности.

24. Оператор вычерчивания дуг.

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

26. Построение графиков функций тригонометрических и арифметических.

Урок №58 Тема: ОС WINDOWS. Основные понятия

Цели урока:

  1. Знакомство с алгоритмической структурой “ветвление”;
  2. Обучение приемам построения алгоритмов с “ветвлением” и их программированию на языке Visual Basic.
  3. Закрепление умений и навыков с помощью теста и практических работ.

Задачи урока:

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

Тип урока: изучение нового материала и его закрепление.

Основные организационные формы обучения на уроке:

  • фронтальная работа с классом;
  • групповая работа;
  • индивидуальная работа за компьютером;
  • дифференцированная форма работы.

Средства обучения:

  • Учебники: Информатика и ИКТ. Базовый курс: Учебник для 9 класса. /Под ред. Н.Д. Угринович. - М.: БИНОМ. Лаборатория знаний, 2005.
  • Технические и программные средства: Персональные компьютеры; проектор; презентация по теме урока (Приложение 1 ); тест (Приложение 2 ); программная среда Visual Basic.
  • Раздаточный материал: Практические работы для учащихся (Приложение 3 ).

План урока.

  1. Организационный момент.
  2. Актуализация опорных знаний.
  3. Изучение нового материала.
  4. Применение полученных знаний.
  5. Подведение итогов урока. Домашнее задание.

Ход урока

1. Организационный момент. (слайд 1)

Приветствие, проверка присутствующих. Объявление темы и целей урока. (слайд 2)

2. Актуализация опорных знаний. (слайд 3)

На прошлых уроках мы познакомились с понятием алгоритма и основами алгоритмизации.

  1. Для начала вспомним, что такое алгоритм?
  2. Какими свойствами обладает алгоритм?
  3. Какие способы задания алгоритмов Вы знаете?
  4. Дайте определение линейному алгоритму?

3. Изучение нового материала.

Постановка проблемной задачи: (слайд 4)

“Из ряда чисел 15, 16, 17, 18 выпишите значения x, при которых верно неравенство x + 24 > 40”.

Выяснить с учащимися, что при x = 15 и x = 16 неравенство x + 24 > 40 верным не будет. Если же x = 17 или x = 18 неравенство x + 24 > 40 будет верным.

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

В алгоритмической структуре “ветвление” в зависимости от истинности или ложности условия выполняется одна или другая серия команд. (слайд 5)

В качестве условия может быть использовано любое логическое выражение со знаком > (больше) , < (меньше) , = (равно) , > = (больше либо равно) , < = (меньше либо равно) .

Алгоритмическая структура “ветвление” может быть наглядно представлена с помощью блок-схемы. В языке программирования Visual Basic ветвление кодируется с использованием оператора условного перехода If … Then … Else … End If (Если…. То… Иначе … Конец Если) . (слайд 6)

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

“Из ряда чисел 15, 16, 17, 18 выпишите значения x, при которых верно неравенство x + 24 > 40”.

If x + 24 > 40 Then
MsgBox “Выписать x”
End If

Дано число x. Определите, является ли число x положительным? (с помощью блок-схемы)

Дано число x. Определите, является ли число x положительным? (на языке программирования)

В качестве условия можно использовать переменную или арифметическое выражение . Если его результат будет равен 0, то это расценивается как “ложь”, остальные значения – “истина”.

If a Then
MsgBox “Не равно 0”
Else
MsgBox “Равно 0”
End If

4. Применение полученных знаний. (слайд 12)

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

Любопытная Варвара
Смотрит влево…Смотрит вправо.
А потом опять вперед. Тут немного отдохнет
Шея не напряжена и расслаблена…

А теперь посмотрим вниз. Мышцы шеи напряглись.
Возвращаемся обратно. Расслабление приятно.
Шея не напряжена и расслаблена!

Какое значение переменной S будет напечатано после выполнения фрагмента программы на языке Visual Basic?

A = 2
B = 3
If A>B Then S=A*B Else S=A+B
Print S

Фрагмент алгоритма изображен в виде блок-схемы. Определите, какое значение переменной S будет напечатано в результате выполнения алгоритма?

A = 2
B = 3
If A>B Then S=A*B Else S=A+B
Print S

Как на языке VB записать следующее условие:

Практическая работа 1. (слайд17) (Приложение 3 )

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

Проверочная работа проводится в виде теста по данной теме и материала прошлого урока. Тест находится в папке “Мои документы”.

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

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

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

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

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

5. Подведение итогов урока. Домашнее задание. (слайд 21)

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

§ 2.6.2 стр. 88 – 92 (Угринович Н. Д. Информатика и ИКТ. Базовый курс: Учебник для 9 класса – М.: БИНОМ. Лаборатория знаний, 2005.)

Задания 2.17 и 2.18.

Вопросы 1 и 2.

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

Написать программу к следующей задаче: “Даны три числа. Определить наибольшее”.

Список используемой литературы:

  1. Волченков Н.Г. Программирование на Visual Basic 6.0 – M.: Горячая линия – Телеком, 2001.
  2. Сафронов И. Visual Basic в примерах и задачах. – СПб.: БХВ - Петербург, 2007.
  3. Угринович Н. Д. Информатика и ИКТ. Базовый курс: Учебник для 9 класса – М.: БИНОМ. Лаборатория знаний, 2005.
  4. Угринович Н., Босова Л., Михайлова Н. Практикум по информатике и информационным технологиям. – М.: Лаборатория базовых знаний, 2006.

Интернет-ресурсы:

  • http://www.fio.by/vypusk/Potok_72/group_2/user_4/Pages/L_ZAR.htm
  • http://www.rusedu.info/VB_Cod.html
  • iit.metodist.ru
  • www.vbnet.ru

Команда ветвления в полной и неполной форме (урок 1)

(Данная разработка урока по теме «Команда ветвления в полной и неполной форме» составлена из расчета 1 час в неделю, информатика ведется только в 10 и 11 классах. До изучения этой темы в 10 классе обязательно рассмотрение темы «Алгоритм. Его свойства и способы записи», «Язык программирования Бейсик».)

Цель : рассмотреть команду ветвления в полной и неполной форме; выработать умения и навыки в составлении программ по блок-схемам и блок-схем по программам с командами ветвления

Ход урока

I. Организационный момент

II.Проверка домашнего задания.

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

Листочки с геометрическими фигурами и операторами языка программирования Бейсик

18

10

20

14

PRINT

INPUT

CLS

END

Вопросы

1.Эта геометрическая фигура используется в блок- схемах для обозначения начала и конца алгоритма.

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

3.Для вывода данных на экран в Бейсике используется этот оператор.

4.Этот оператор используется для ввода данных с клавиатуры.

5.Для очистки экрана в Бейсике служит этот оператор.

6.Для проверки условия используется эта фигура

7.Ввод-вывод данных на экран обозначается этой геометрической фигурой.

8.Этим оператором заканчивается любая программа.

Какая последовательность чисел у вас появилась во второй строке? Под этой последовательностью зашифровано одно слово. Попробуйте найти ключ и расшифровать это слово. Дайте определение.

Ответ:

1

13

4

16

18

10

20

14

а

л

г

о

р

и

т

м

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

III Изучение новой темы.

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

Давайте теперь определим, что же такое ветвление?

Ветвление – эта такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий.

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

Ветвление

в неполной форме

в полной форме

I . Содержит только одно действие

1.Алгоритмический язык

If условие then действие

If условие then действие 1 else действие 2

II . Содержит несколько действий

1. алгоритмический язык

Если условие

то действие 1, действие 2,…

Всё

Если условие

то действие 1, действие 2, …

иначе действие 3, действие 4, …

Всё

2. Блок-схема

3. Язык программирования Бейсик

f 40 If условие then 50

50 50 действие 1

60 действие 2

40 If условие then 50 else 80

50 действие 1

60 действие 2

70 goto 100

80 действие 3

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

93. Массивы и операции циклов

Урок 22. Операторы циклов For...Next и For Each

Циклы в VB.NET похожи на циклы в других языках программирования. На этом занятии мы рассмотрим циклы двух типов - циклы For...Next и For Each. Циклы For...Next выпоялняются опеределенное число раз. Т. е. если вам заранее известно, сколько раз должен выполнится ваш цикл, то используем цикл For...Next. Цикл For Each используется для обхода элементов коллекций и массивов. Например, с помощью For Each можно перечислить (обойти) все элементы на форме или обработать все строки тамбицы в базе данных.

Вот пример на оператор For...Next:

Dim A(10) As Integer

Dim i As Integer

"Заполняем массив квадратами чисел

"Выводим элементы массива

Console.WriteLine(A(i))

В этом примере массив из 10 целых сначала заполняется квадратами чисел, потом элементы массива выводятся на экран. Вместо строки

Можно написать

В циклах типа For...Next счетчик цикла (i в данном случае) изменяется автоматически.

В приведенном примере счетчик увеличивается при каждом прохождении цикла на 1. Если вам нужен другой шаг, то используем конструкцию с Step:

For i = 0 To 9 Step 2

"Что-то делаем

Такой цикл выполнится 5 раз.

Теперь рассмотрим пример на цикл For Each:

Dim z As Integer

Dim A(10) As Integer

"Заполняем массив A

For Each z In A

If z > 10 Then

Console.WriteLine(z)

Как вы видите, мы в нашем цикле пробегаем все элементы в массиве A (это видно из конструкции In A). Если элемент массива оказался больше 10, мы выводим его на экран.

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

Использование массивов данных при решении задач. Массивы в ВБ. Индексированные переменные. Описание массивов. Порядок назначения нижней и верхней границ индексов массивов. Массивы элементов управления. Порядок создания массивов элементов управления. Массивом можно назвать ряд ячеек памяти, отведенных для хранения индексированной переменной. X1,Y2, Zt+1, Mi,j+1 – индексные переменные. => Х(1), Y(2), Z(i+1), M(I, f+1) – в ЯПВУ, предназначены для работы с числовыми рядами. dlina (1), dlina (2), dlina (3) – массив одномерный. Dim dlina (1 to 3) As Integer – описание массива в программе, причем 1 – нижняя граница массива, 3 – верхняя граница массива. Индексация массивов необязательно начинается с 0 или 1. Массив элементов управления образуется с помощью свойства Index, назначая свойства Index, мы говорим компьютеру, что данный объект считается элементом массива. Массив элементов управления – это ряд пронумерованных объектов. Способ создания: 1) Назначение свойства Index на этапе проектирования. 2) Путем копирования в Win (copy/paste). 3) Программным путем (Load Text 1(1) – метод). Load загружает на форму объект с именем Text1(1). Двумерные массивы. Задаются аналогично одномерным: Dim dlina (1 to 3, 1 to 4) As Integer, где в скобках через запятую перечисляются границы по двум направлениям, первыми (1 to 3) границы по вертикали, а вторыми по горизонтали(1 to 4). Обращение к элементу двумерного массива: dlina(1,3) – элемент в первой строчке, третьем столбце.

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

Static х(2) As Integer (x=0,1,2).

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

Dim Y() As Integer.

Для определения констант используется ключевое слово:

Const Pi = 3.142.

Массив, как параметр процедуры

Rem Программа_2.5 – Массив, как параметр процедуры

Dim n As Integer

Dim s As Single

Dim x(2) As Single

x(1) = 5: x(2) = 15: s = 0

Call sumir(x(), n, s) ‘ вызов процедуры суммирования элементов массива

MsgBox "s = " & Str(s)

Sub sumir (x() As Single, n As Integer, s As Single)

Dim i As Integer

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

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

Function ИМЯ_ФУНКЦИИ

В пространство между именем функции и ключевыми словами End Function вносятся необходимые операторы.

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

Общий синтаксис определения функции:

Function ИМЯ_ФУНКЦИИ(ПАРАМЕТР_1[, ПАРАМЕТР_2]...)

ОПЕРАТОР_1

[ОПЕРАТОР_2]

ИМЯ_ФУНКЦИИ = ВЫРАЖЕНИЕ

где ПАРАМЕТР – элемент данных, передаваемый функции при ее вызове; Static – при наличии в объявлении функции данного ключевого слова локальные переменные, объявленные в теле функции, сохраняют свои значения в промежутках между вызовами этой функции.

Способы вызова функций: X = fun1(Y), или Call fun1 Y.

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

Каждая функция всегда возвращает только одно значение.

Примеры функций:

1. Передача параметра из функции

Rem Программа_2.6 – Передача параметра из функции

Dim x As Single, y As Single, s As Single

s = sumir(x, y) ‘ вызов функции суммирования двух чисел

MsgBox "s = " & Str(s)

Function sumir! (x!, y!) ‘ определение функции суммирования двух чисел

sumir! = x! + y!

Для хранения величин кроме простых переменных можно использовать массивы. Массив представляет собой набор переменных с одним именем и разными индексами. Каждая такая переменная называется элементом массива. Количество хранящихся в массиве элементов называется размером массива. Размер массива ограничен объемом оперативной памяти и типом данных элементов массива. Все элементы массива имеют одинаковый тип. Однако если массив имеет тип variant, то отдельные элементы могут содержать данные разных типов. Например, одни элементы могут быть числами, другие - строками или объектами. В Visual Basic существуют массивы фиксированного размера и динамические массивы. Массив фиксированного размера имеет неизменный размер, заданный при его объявлении. Динамические массивы могут изменять размер в процессе выполнения. Что такое двумерный массив? Это такой набор однотипных данных, местоположение каждого элемента которого определяется не одним индексом, а двумя. Например, для тех, кто с детства играл в "морской бой", не будет открытием, что каждая клеточка игрового поля обозначается двумя символами - буквой и цифрой, например, А5 - "мимо", И10- "попал", Ж7 - "убит". Только в Бейсике принято в качестве индексов использовать все же целые числа. Жизненный пример применения двумерных массивов - билеты в кино или театр, имеющие для каждого зрителя две координаты - ряд и место".

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

Что еще почитать