„Програми като разклоняване и зацикляне в BASIC, работа с масиви. Алгоритмична разклонена структура (Visual Basic) Изучаване на нов материал

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

(Тази разработка на урок по темата „Команда за разклоняване в пълна и непълна форма“ се основава на 1 час седмично, информатиката се преподава само в 10 и 11 клас. Преди да изучавате тази тема в 10 клас, е необходимо да се вземе предвид темата „Алгоритъмът, неговите свойства и методи за запис“, „Езикът за програмиране BASIC.“)

Мишена: разгледайте командата за разклоняване в пълна и непълна форма; развиват умения за съставяне на програми с помощта на блок-схеми и блок-схеми с помощта на програми с команди за разклоняване

По време на часовете

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

II.Проверка на домашните.

Пред вас са листчета с мистериозни числа. Под всяко число е изобразена геометрична фигура или е изписан оператор. Трябва да отговорите на въпросите, да намерите правилния отговор и да запишете числата, съответстващи на отговора в таблицата:

Листовки с геометрични фигури и оператори на езика за програмиране BASIC

18

10

20

14

ПЕЧАТАЙТЕ

ВХОД

CLS

КРАЙ

Въпроси

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

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

3. Този оператор се използва за показване на данни на екрана в BASIC.

4. Този оператор се използва за въвеждане на данни от клавиатурата.

5. Този оператор се използва за изчистване на екрана в BASIC.

6. Тази цифра се използва за проверка на състоянието

7. Въвеждането и извеждането на данни на екрана се обозначава с тази геометрична фигура.

8. Това изявление завършва всяка програма.

Каква последователност от числа получихте във втория ред? Под тази последователност е шифрована една дума. Опитайте се да намерите ключа и да дешифрирате тази дума. Дайте определение.

Отговор:

1

13

4

16

18

10

20

14

А

л

Ж

О

Р

И

T

м

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

III Изучаване на нова тема.

Нека си припомним как се казва алгоритъмът, който води до избор на едно от две възможни действия? правилно, разклоняване.Такъв алгоритъм задължително съдържа условие и в зависимост от резултата от условието се избира действие. Например: Акоработен ден, Чеотивам на училище, в противен случайще си почиваме. Акородителите ще дадат пари Чеда отидем на дискотека в противен случайЩе гледаме телевизия. Можем да дадем много такива примери от обикновения живот и науката. Например математика: Ако Равностранен четириъгълник има прави ъгли, Ченека го наречем квадрат , в противен случайНека го наречем ромб.Физика: Ако еластичен удар , Четелесното тегло се поддържа , в противен случаймасови промени

Нека сега дефинираме какво е разклоняване?

Разклоняването е форма на организиране на действия, при която в зависимост от изпълнението или неизпълнението на дадено условие се извършва една или друга последователност от действия.

Нека разгледаме команда за разклоняване в пълен и непълен вид, съдържаща едно или няколко действия на алгоритмичен език, представена под формата на блок-схема и на езика за програмиране BASIC. Нека го подредим под формата на маса.

Разклоняване

в непълна форма

в пълна форма

аз Съдържа само едно действие

1. Алгоритмичен език

Акосъстояние тогавадействие

Акосъстояние тогавадействие 1 другодействие 2

II. Съдържа множество действия

1. алгоритмичен език

Ако състояние

Че действие 1, действие 2,...

всичко

Ако състояние

Че действие 1, действие 2, ...

в противен случай действие 3, действие 4, ...

всичко

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

3. ОСНОВЕН език за програмиране

f 40 Акосъстояние тогава 50

50 50 действие 1

60 действие 2

40 Акосъстояние тогава 50 друго 80

50 действие 1

60 действие 2

70 гото 100

80 действие 3

Клон оператор

Операторът за разклоняване (условен скок) ви позволява да изпълнявате определени програмни команди в зависимост от логически условия. Във Visual Basic операторът за разклоняване може да се използва в две форми: линия и блок.

Интернет обмен на ученически работи">

Пример 1

Например, ако a > b, тогава max = a Else max = b.

Ако трябва да се изпълнят няколко израза, те се разделят с двоеточие.

Пример 2

Например, ако a > 0, тогава b = a + 1: c = a\2.

Блоковият синтаксис предоставя повече опции, по-структуриран е и е по-четим.

Синтаксис на блока:

Условието е логически израз, който може да приема стойност Вярно(вярно), Невярно(невярно) или Нула, което е еквивалентно на Невярно. Когато се изпълнява оператор за разклоняване на блок, условието се проверява и, ако е вярно, се изпълнява операторът след него. Тогава. Ако условието не е вярно, то се проверява състояние2, идващ отзад ElseIf. Когато се намери истинска стойност, се изпълнява statement_if_true2, който следва Тогава, след което програмата излиза EndIf(т.е. последващо ElseIf, ако съществуват, не се проверяват). Ако са налице истинските условия за ElseIfне е намерен, операторът се изпълнява под_false_condition.

Фигура 3. Пример за блоков синтаксис. Avtor24 - онлайн обмен на студентски работи

Оператор за избор

Оператор за избор на случайизпълнява конкретни оператори в зависимост от набора от стойности на израза или променливата, които се тестват. Изберете синтаксис на оператора:

Фигура 4. Синтаксис на избор на оператор. Avtor24 - онлайн обмен на студентски работи

Стойността е променлива или израз, който се тества спрямо едно или повече условия. Списъкът със стойности е посочен, разделен със запетаи, диапазонът от стойности е посочен с помощта на функционална дума Да се(напр. 5 до 9).

Пример 3

Използвайки номера на месеца в годината, изведете съобщение, което показва към кое време от годината принадлежи посоченият месец.

В този раздел ще покажем как се пишат разклонени програми на BASIC. Най-простата команда, която променя естествения ред на изпълнение на програмата, е командата GOTO (GOTO - „отидете на...“). Тази команда изглежда така

където N е номерът на програмния ред. С тази команда компютърът продължава да изпълнява команда номер N.

Запознати сте с два начина за запис на разклонения - непълни и пълни. Разклоняването в непълна форма беше написано, както следва:

Ако Q, тогава: P Край на клона

(тук Q е условие, а P е последователност от команди, които трябва да бъдат изпълнени, когато условието е вярно).

Тази форма на нотация може да бъде преведена в BASIC по различни начини. Ако P се състои от едно действие, тогава преводът е:

АКО Q, ТОГАВА P

(думата IF означава "ако", а думата THEN означава "тогава"). Например:

10 АКО X>0 ТОГАВА Y = LOG (X) 20 ...

Ако стойността на променливата x>0, тогава компютърът ще изчисли ln x и ще присвои резултата на променливата y, след което ще бъде изпълнена команда номер 20, ако стойността на x не надвишава нула, тогава ще бъде изпълнена команда номер 20 да бъдат изпълнени незабавно.

Нека сега приемем, че последователността P се състои от няколко действия. Тогава съкратената форма на разклоняване ще бъде по-трудна за писане. Нека например P съдържа 6 действия P 1, ..., P 6, разклонението трябва да започне от 120-ия ред, а следващата команда след разклонението е с номер 150. Това означава, че ако условието Q не е изпълнено, вие трябва да премине към команда 150. Следователно записът ще бъде така:

120 АКО НЕ (Q) ТОГАВА МИНЕТЕ НА 150

. . . . . . . . . .

Тук НЕ (Q) означава отрицанието на условието Q (НЕ - „не“). Например НЕ (X = Y и НЕ (X = Y) означава XY.

Обърнете внимание също, че в редовете на формуляра

АКО...ТОГАВА МИНЕТЕ НА

където K е номерът на реда, една от думите, GOTO или THEN, може да бъде пропусната, т.е. три команди

АКО ... ТОГАВА КЪМ АКО ... МИНЕТЕ КЪМ АКО ... ТОГАВА МИНЕТЕ КЪМ

означава едно и също нещо.

Например алгоритъм за намиране на максимума от две числа:

Заявка A, B. Присвоете на M стойността на A. Ако M

В BASIC можете да го напишете така:

10 INPUT A,B 20 M = A 30 IF M

Същият алгоритъм може да се преведе в BASIC по друг начин:

10 INPUT A,B 20 M = A 30 IF N0T(M

Нека сега покажем как да напишем командата за разклоняване в пълна форма на BASIC:

Ако Q, тогава: P В противен случай: T Край на клона.

Подобно на предишния, ако P и T се състоят от едно действие, тогава е удобно да се преведе, както следва:

IF Q THEN P ELSE T

(ИНАЧЕ - иначе).

Ако P или T се състои от няколко действия, тогава е по-удобно да се преведе по следния начин (например: нека P се състои от три, T - от четири команди, разклонението започва от 530-ия ред, редът след разклонението е с номер 600 ):

530 IF Q THEN 536 531 T 1,532 T 2,533 T 3,534 T 4,535 GOTO 600 536 P 1,537 P 2,538 P 3,600 ...

Проверете дали при изпълнение на този фрагмент компютърът ще изпълни команди P 1, P 2, P 3, ако условието Q е изпълнено, и команди T 1, T 2, T 3, T 4, ако Q не се появи. И след това, след като изпълни подходящата поредица от команди, компютърът ще продължи да изпълнява командата, написана в ред 600.

Нека разгледаме примерна програма за изчисляване на стойността на функция съгласно следното правило:

10 INPUT X 20 IF X>=2 THEN Y=SQR(X) ELSE Y=ABS(X) 30 PRINT"Y="Y 40 END

Тази програма може да бъде написана и така:

10 INPUT X 20 IF X>=2 THEN 50 30 Y=ABS(X) 40 GOTO 60 50 Y=SQR(X) 60 END

Нека сега съставим математически модел и програма за решаване на следната „артилерийска“ задача.

Задача.На определено разстояние от оръдието има стена. Ъгълът на наклона на оръдието и началната скорост на снаряда са известни. Ще удари ли снарядът стената?

Първо, както обикновено, правим опростяващи предположения. Считаме снаряда за материална точка; пренебрегваме съпротивлението на въздуха и размерите на пистолета. Разбира се, ние също вярваме, че законите на Нютон са изпълнени. От условията на задачата става ясно какви са началните данни: това е ъгълът a, началната скорост v, разстоянието до стената S и височината на стената h. Резултатът е едно от съобщенията „попадение“ или „неуспех“. Първоначалните данни подлежат на естествени ограничения: 00, h>0, 0

Това означава, че трябва да изведем формула за определяне на L. Както знаете от курса по физика, хоризонталните и вертикалните движения на снаряд за време t са съответно равни:

x = (v cos α) t; y = (v sin α) t-gt 2 /2,

където g е ускорението на гравитацията (9,8 m/s 2). Нека определим колко време ще отнеме на снаряда да измине разстоянието S:

t = S/(v cos α).

Замествайки тази стойност на t в израза за y, получаваме стойността на L:


Разбира се, стойността на L, изчислена по тази формула, също може да се окаже отрицателна. Това означава, че снарядът няма да достигне стената. Ако L се окаже по-голямо от h, тогава снарядът ще прелети над стената. Ето изградения математически модел.

Нека създадем алгоритъм за КОМПЮТЪРА:

Доклад "Въведете началната скорост на снаряда, разстоянието до стената, височината на стената." Заявка v, S, h. Доклад "Въведете ъгъла на дулото на пистолета." Заявка A. Ако Vν≤0, тогава: Докладвайте „Скоростта трябва да е положителна.“ Спри се. Край на разклоняването. Ако vν≥1000, тогава: Докладвайте „Скоростта е твърде висока.“ Спри се. Край на разклоняването. Ако S≥0, тогава: Докладвайте „Разстоянието трябва да е положително.“ Спри се. Край на разклоняването. Ако h≤0, тогава: Доклад "Височината на стената трябва да е положителна." Спри се. Край на разклоняването. Ако A≤0, тогава: Докладвайте „Оръжието не трябва да стреля в земята.“ Спри се. Край на разклоняването. Ако A≥3.14/2, тогава: Докладвайте „Пистолетът не е насочен към стената.“ Спри се. Край на разклоняването. Задайте L стойност Ако L>h, тогава: Докладвайте „Снарядът не е ударил стената...“. Спри се. Край на разклоняването. Ако Л

Сега преведете този алгоритъм на BASIC (вече сме свършили по-голямата част от работата).

Въпроси

1. Коя команда може да се използва, за да принуди компютъра, без да проверява никакви условия, да промени реда на действията?

2. Как се формира разклонението в езика BASIC:

а) в непълна форма;

б) в пълна форма?

3. За какво са необходими първите 28 реда в алгоритъма за решаване на „артилерийската“ задача?

Задачи за самостоятелно изпълнение

1. Преведете на BASIC алгоритмите за решаване на задачи 5-7 от § 8 и 1-7 от § 9.

2. Намерете и коригирайте грешки в следната програма за намиране на корен квадратен от число:

10 INPUT X 20 IF X> = 0 THEN 30 30 PRINT SQR(X) 40 GOTO 60 50 PRINT. "Коренът не може да бъде изчислен" 60 КРАЙ

3. Нападателят изтри команда 100 в следната програма за намиране на корените на квадратно уравнение:

10 INPUT A,B,C 20 IF A 0 THEN 50 30 PRINT "Това уравнение не е квадратно" 40 STOP 50 D=B^2 - 4∗A∗C 60 IF D

4. Създайте математически модел, алгоритъм и програма на BASIC за решаване на следната задача.

Задача. Оръдието стреля по посока на движението на градоносния облак в момента, в който той се носи над оръдието. Известни са ъгълът на наклона на цевта, скоростта на снаряда, дължината и скоростта на облака и височината, на която се движи облакът. Ще удари ли снарядът облака?

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

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

Урок 22. Оператори за цикъл For...Next и For Every

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

Ето пример за оператора For...Next:

Dim A(10) като цяло число

Dim i като цяло число

„Попълнете масива с квадрати от числа

„Извличане на елементи от масив

Console.WriteLine(A(i))

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

Можеш да пишеш

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

В дадения пример броячът се увеличава с 1 при всяко преминаване на цикъла. Ако имате нужда от различна стъпка, тогава използваме конструкцията със Step:

За i = 0 до 9 Стъпка 2

„Ние правим нещо

Този цикъл ще бъде изпълнен 5 пъти.

Сега нека да разгледаме пример с използване на цикъл For Every:

Dim z като цяло число

Dim A(10) като цяло число

„Попълнете масив A

За всяко z в A

Ако z > 10 Тогава

Console.WriteLine(z)

Както можете да видите, в нашия цикъл преминаваме през всички елементи в масив A (това се вижда от конструкцията In A). Ако елементът на масива е по-голям от 10, ние го показваме на екрана.

Обикновено циклите For Every се използват за изброяване на елементи в различни колекции (например елементи във формуляр или всички шрифтове в Windows).

Използване на набори от данни при решаване на проблеми. Масиви във VB. Индексирани променливи. Описание на масиви. Редът, в който се присвояват долната и горната граница на индексите на масива. Масиви от контроли. Редът за създаване на масиви от контроли. Масивът може да бъде поредица от клетки с памет, разпределени за съхраняване на индексирана променлива. X1,Y2, Zt+1, Mi,j+1 – индексни променливи. => X(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) Програмно (Зареждане на текст 1(1) - метод). Load зарежда обект с име Text1(1) във формуляра. Двумерни масиви. Те се определят подобно на едномерните: Dim dlina (1 до 3, 1 до 4) Като цяло число, където границите в две посоки са изброени в скоби, разделени със запетаи, първите (1 до 3) граници са вертикални, а вторите са хоризонтални (1 до 4). Достъп до елемент от двумерен масив: dlina(1,3) – елемент в първия ред, трета колона.

Масивите от данни се използват за съхраняване на множество променливи стойности:

Статично x(2) Като цяло число (x=0,1,2).

Ако размерът на масива не може да бъде определен предварително, тогава се използва динамичен масив:

Dim Y() като цяло число.

Ключовата дума се използва за дефиниране на константи:

Const Pi = 3,142.

Масивът като параметър на процедурата

Rem Program_2.5 – Масив като параметър на процедура

Dim n като цяло число

Дим е ​​необвързан

Dim x(2) като единичен

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

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

MsgBox "s = " & Str(s)

Sub sumir (x() като единично, n като цяло число, s като единично)

Dim i като цяло число

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

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

Функция FUNCTION_NAME

Необходимите изрази се вмъкват в интервала между името на функцията и ключовите думи за край на функцията.

Ако при извикване на функция трябва да й бъдат предадени някакви стойности (аргументи), тогава в заглавката след името на функцията трябва да бъдат изброени съответните променливи, разделени със запетаи.

Общият синтаксис за дефиниране на функция е:

Функция FUNCTION_NAME(PARAMETER_1[, PARAMETER_2]...)

ОПЕРАТОР_1

[ОПЕРАТОР_2]

FUNCTION_NAME = ИЗРАЗ

където PARAMETER е елемент от данни, предаден на функцията, когато тя е извикана; Static – ако тази ключова дума присъства в декларация на функция, локалните променливи, декларирани в тялото на функцията, запазват стойностите си между извикванията на тази функция.

Методи за извикване на функции: X = fun1(Y) или Call fun1 Y.

Ако дадена функция трябва да върне символна (низова) стойност, тогава последният знак в нейното име трябва да бъде знакът $.

Всяка функция винаги връща само една стойност.

Примери за функции:

1. Предаване на параметър от функция

Rem Program_2.6 – Подаване на параметър от функция

Dim x като единичен, y като единичен, s като единичен

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

MsgBox "s = " & Str(s)

Функционална сума! (x!, y!) ‘ дефиниция на функцията за сумиране на две числа

сумир! = x! +y!

В допълнение към простите променливи, можете да използвате масиви за съхраняване на стойности. Масивът е колекция от променливи с едно и също име и различни индекси. Всяка такава променлива се нарича елемент на масив. Броят на елементите, съхранявани в масива, се нарича размер на масива. Размерът на масива е ограничен от количеството RAM и типа данни на елементите на масива. Всички елементи на масива са от един и същи тип. Ако обаче масивът е от тип вариант, тогава отделните елементи могат да съдържат данни от различни типове. Например, някои елементи могат да бъдат числа, други могат да бъдат низове или обекти. Във Visual Basic има масиви с фиксиран размер и динамични масиви. Масивът с фиксиран размер има фиксиран размер, който се посочва при декларирането му. Динамичните масиви могат да променят размера си по време на изпълнение. Какво е двуизмерен масив? Това е набор от данни от един и същи тип, чието местоположение на всеки елемент се определя не от един индекс, а от два. Например, за тези, които играят „морска битка“ от детството, няма да е откритие, че всяка клетка на игралното поле е обозначена с два символа - буква и цифра, например A5 - „пропуснато“, I10 - „удар“, Z7 - „убит“ ". Само в BASIC е обичайно да се използват цели числа като индекси. Пример от реалния живот за използването на двумерни масиви са билетите за кино или театър, които имат две координати за всеки зрител – ред и седалка.“

Подобни масиви се описват в BASIC с помощта на същия оператор dim, след което в скоби се посочват двете измерения на масива - броя на редовете и броя на колоните.



 

Може да е полезно да прочетете: