- •Информатика
- •Оглавление
- •Введение
- •Лекция № 1Тема «Основные понятия и определения Информатики»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 2 Тема «Арифметические основы эвм»
- •Сложение
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 3 Тема «Форматы данных и машинные коды чисел»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 4Тема «Алгоритмы. Базовые алгоритмические конструкции»
- •Структурный подход к программированию
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 5Тема «Языки программирования и их классификация»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 6 Тема «Программирование на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 7 Тема «Программирование на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 8Тема «Программирование с использованием массивов на языке qbasic»
- •Статические и динамические массивы
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 9Тема «Создание процедур и функций на языке qbasic»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция 10 Тема «Общие принципы организации и работы современных эвм»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №11Тема «Персональный компьютер и его аппаратное обеспечение»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №12 Тема «Память пк и периферийные устройства»
- •1. Устройства ввода
- •Устройство бесперебойного питания (убп)
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №13Тема «История и классификация эвм»
- •I. Классификация по назначению:
- •II. Классификация пк по типоразмерам:
- •III. Классификация по условиям эксплуатации:
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №14 Тема «Программное обеспечение компьютеров»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция № 15 Тема «Программное обеспечение компьютеров»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №16Тема «Компьютерные сети»
- •Классификация компьютерных сетей
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №17Тема «Локальные вычислительные сети. Протоколы.»
- •Лвс с выделенным сервером (иерархические)
- •1. Физический уровень (Physical Layer)
- •2. Канальный уровень (Data-Link Layer)
- •3. Сетевой уровень (Network Layer)
- •4. Транспортный уровень (Transport Layer)
- •5. Сеансовый уровень (Session Layer)
- •6. Уровень представления (Presentation Layer)
- •7. Прикладной уровень (Application Layer)
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №18 Тема «Коммутация. Технологии лвс»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №19Тема «Глобальная сеть и ее службы»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №20Тема «Основные понятия базы данных»
- •Архитектура информационной системы
- •Трехуровневая модель бд
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №21Тема «Модели организации данных»
- •Модели организации данных
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №22Тема «Работа в субд MicrosoftAccess»
- •Системы управления базами данных
- •Субд microsoftaccess
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №23Тема «Работа в субд Access»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №24 Тема «Угрозы безопасности информационных систем и информационных технологий»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
- •Лекция №25 Тема «Криптографические методы защиты информации»
- •Контрольные вопросы для самоподготовки студентов
- •Ссылки на литературные источники, приведенные в рабочей программе дисциплины
Контрольные вопросы для самоподготовки студентов
Чем характеризуется линейный алгоритм?
Как можно определить начальные значения переменных?
Каков приоритет выполнения операций в арифметическом выражении?
Какие типы данных (констант и переменных) можно использовать в программах на QB?
В чем заключается отличие переменной от константы?
Объяснить назначение оператора CLS.
Какие стандартные функции используются в QB?
Каковы особенности выполнения оператора присваивания?
Как объявить тип переменной в программе?
Как объявить в программе именованную константу?
Объяснить назначение операторов READ, DATA, RESTORE?
Какой оператор используется в программе для вывода результатов на экран?
Ссылки на литературные источники, приведенные в рабочей программе дисциплины
Информатика. Базовый курс. 2-е издание/Под. Ред. С.В. Симоновича.-СПб.:Питер, 2008.-640 с.
Информатика. Моделирование.- Волгоград: НОУ ВПО ВНБ, 2009.- Саратов: Издательство «Вузовское образование», 2013.- 143 с. (электронный ресурс) режим доступа http://www.iprgookshop.ru/11320.html
Практикум по курсу “Алгоритмизация и программирование”. Часть 1: Учебное пособие / А.А. Андрианова, Т.М. Мухтарова. - Казань: Казанский государственный университет, 2008. – 95 с. (электронный ресурс) режим доступа http://window.edu.ru/resource/951/79951/files/Programming1.pdf
Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск: Изд-во Тихоокеан. гос.ун-та, 2011. – 56 с. (электронный ресурс) режим доступа http://window.edu.ru/resource/402/77402/files/alg_prog.pdf
Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, VisualBasic. – М.: Финансы и статистика, 2002. – 320 с.
Создание линейных алгоритмов и программ на языке QBASIC: Методические указания для прак. занятий/Сост. Г.А. Фролова. - Егорьевск: - ЕТИ ФГБОУ ВПО МГТУ "СТАНКИН", 2013.-9 с. (электрон. библиотека ЕТИ)
Лекция № 7 Тема «Программирование на языке qbasic»
План лекции
Средства программирования разветвляющихся алгоритмов.
Оператор безусловного перехода.
Понятие логического выражения.
Условный оператор IF … THEN.
Оператор множественного выбора SELECTCASE.
Виды циклических алгоритмических структур.
Средства программирования регулярных циклических структур.
Вложенные циклы.
Средства программирования итеративных циклическихструктур.
Средства программирования разветвляющихся алгоритмов
Вычислительные процессы, в которых в зависимости от тех или иных условий должны выполняться различные этапы вычислений, называются разветвляющимися. Основу алгоритма составляет разветвляющаяся структура. Элементарные разветвленные структуры должны быть представлены в схемах одним из нижеприведенных способов (см. рис.10).
Рис. 10 Полная исокращенная разветвляющаяся структура
Для организации в программе ветвления используются оператор безусловного перехода, оператор условного перехода и оператор множественного выбора (варианта).
Оператор безусловного перехода GOTOn
Оператор безусловного перехода служит для перехода из одной точки (строки) программы к другой. Общий вид оператора:
GOTOn |
где GOTO - имя оператора (переводится – «перейти к...»;
n - номер строки программы или метка.
Пример 1. 30 x=x+1 40 y=(x+2)*2 50 GOTO 30 |
Пример 2. 40 x=3*A 50 GOTO70 60 y=2*x 70 z=5*x |
Пример 3. INPUT “введитепароль”, password IF password <> ”ABC” THEN GOTO metka1 PRINT “Добро пожаловать” GOTOmetka2 metka1: PRINT “Вы не можете работать с данной программой” END metka2: …… |
Понятие логического выражения
Логическое выражение, в отличие от арифметического, содержит операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - NOT, логическое умножение (логическое “И”) - AND, логическое сложение (логическое “ИЛИ”) - OR, исключающее “ИЛИ” - XOR, эквивалентность - EQV.
Результатом выполнения логического выражения может быть “Истина” (не 0) или “Ложь” (0). Например, NOT 7<9 всегда принимает значение “Ложь”, что соответствует значению 0, а 4>3 AND 7<9 принимает значение “Истина”, что соответствует -1.
В табл. 7 приведено описание логических операций. Здесь T (true) - “Истина”, а F (false) “Ложь”.
Таблица 7
Значения операндов |
NOT x |
x AND y |
x OR y |
x XOR y |
х EQV y |
|
X |
Y |
|
|
|
|
|
T |
T |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
T |
F |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
F |
F |
F |
T |
Порядок вычисления логического выражения:
вычисляются значения арифметических выражений;
вычисляются значения операций отношения;
вычисляются операторы NOT, затем AND и после – OR, XOR, EQV.
Пример 4. Вычислить значение логического выражения при X=3 и Y=-2
(X<7) AND (X -Y< X^2) OR (ABS(Y) >3) (3<7) AND (3-(-2)<3*3) OR (ABS(-2)>3) (3<7) AND (5<9) OR (2>3) 1 AND 1 OR 0 1 OR 0 = ? |
Разветвляющиеся алгоритмические структуры в языках программирования реализуются операторами условного перехода. В QB для программирования условных переходов используются три типа операторов: однострочный IF, блочный IF и оператор выбора SELECT CASE.
УсловныйоператорIF … THEN
Однострочная форма записи
IFвыражениеTHEN оператор 1 |
где IF, THEN–зарезервированные слова языка, означающие соответственно ЕСЛИ, ТО;
выражениеможет быть логическим или арифметическим. Ненулевое значение арифметического выражения интерпретируется как «Истина», а нулевое – как «Ложь».
Порядок выполнения условного оператора поясняется рис.11.
Рис. 11 Схема сокращенного условного оператора
Например,
IFage< 15 THENPRINT “Ребенок” IFd-4 THENbeta=0.002 IFlambda<1 OR beta=3 THENPRINTlambda, beta IF i THEN epsilon=0.0001 |
Многострочная форма записи
Пример
IFвыражениеTHEN операторы END IF |
Порядок выполнения оператора следующий: если значение выражения«Истина», то выполняются операторы следующей строки; если значение выражения «Ложь», то управление передается оператору, следующему после ENDIF. Слово ENDIF записывается через пробел.
Например,
IF x>0 THEN y=SQR(x) z=1+y p=4 END IF |
Однострочная форма оператора IF … THEN … ELSE
IF выражение THEN оператор 1 ELSE оператор 2 |
где ELSE – зарезервированное слово, означающее ИНАЧЕ.
Порядок выполнения условного оператора поясняется рис.12.
Рис.12 Схема полного условного оператора
Если выражение принимает значение «Истина», то выполняется оператор 1; если же оно принимает значение «Ложь», то выполняется оператор 2. В любом случае далее выполняется оператор, стоящий в программе непосредственно за условным оператором. Однострочная форма оператора IF … THEN … ELSE в программе записывается в одну строку.
Например,
IF angle <=0 THEN PRINT “острыйугол” ELSE PRINT “тупойугол” |
Многострочная форма записи оператора IF … THEN … ELSE
IFвыражениеTHEN оператор 1 ELSE оператор 2 ENDIF |
Например,
IF age<=7 THEN PRINT “Дошкольник” ELSE PRINT “Школьник или взрослый” ENDIF |
Пример вложения операторов (IF …THEN … ELSE)
IF age >7 THEN IF age <=17 THEN PRINT “школьник” ELSE PRINT “взрослый” END IF ELSE PRINT “дошкольник” ENDIF |
Эквивалент вложенных операторов – оператор IF … THEN … ELSEIF
IF выражение 1 THEN блок операторов 1 ELSEIFвыражение 2 THEN блок операторов 2 ELSEIFвыражение 3 THEN блок операторов 3 ............. ELSE ‘ необязательный элемент конструкции блок операторов n ENDIF |
Порядок выполнения оператора следующий: если значение выражения 1 «Истина» - выполняется блок операторов 1 и далее управление передается оператору следующему после ENDIF. Если выражение 1 «Ложь», то проверяется значение следующего выражения и так далее. После выполнения любого блока операторов управление всегда передается оператору, следующему после ENDIF. Конструкций типа ELSEIFможет быть несколько. Блок операторов n, следующий за ELSE, выполняется в том случае, если последовательные проверки всех выражений выше дали значение «Ложь». Конструкции ELSEIF и ELSE могут отсутствовать. Особенностью оператора является то, что слово THEN должно быть последним в строке, а слово ELSE – единственным. Слово ELSEIFзаписывается слитно, а слово ENDIF – через пробел.
Например,
IF age <7 THEN PRINT “дошкольник” ELSEIF age <17 THEN PRINT “школьник” ELSEIF age<23 THEN PRINT “студент” ELSEIF age <55 THEN PRINT “специалист” ELSE PRINT “пенсионер” END IF |
INPUT C$ IF C$ >=“A” AND C$ <= “Z” THEN PRINT “ ПРОПИСНАЯБУКВА “ ; C$ ELSEIF C$ >= “a” AND C$ <= “z” PRINT “ СТРОЧНАЯБУКВА “; C$ ELSEIF C$ >= “0” AND C$ <= “9” PRINT “ЦИФРА”; C$ ELSE PRINT “ СПЕЦИАЛЬНЫЙ СИМВОЛ”; C$ ENDIF |
Оператор множественного выбора SELECT CASE
Оператор SELECT CASE позволяет осуществлять разветвление по любому фиксированному числу ветвей. Он имеет следующий формат:
SELECT CASE выражение CASE условие 1 блок операторов 1 CASE условие 2 блок операторов 2 ……………. CASEELSE ‘ необязательный элемент конструкции блок операторов n ENDSELECT |
здесь: выражение – арифметическое или текстовое выражение;
условие - логическое выражение.
Логическое выражение может иметь одну из трех форм:
1)выражение, задающее диапазон значений
CASE выражение TO выражение;
2) отношение
CASE IS операция отношения выражение;
3) перечень констант
CASE константа 1, константа 2.
Например, строки CASEмогут содержать следующие условия:
CASE IS>8 ‘ проверка на превышение значения 8;
CASE X^3 ‘ проверка на равенство значению выражения;
CASE 17 TO 25 ‘ проверка на принадлежность отрезку [17;25];
CASE 1 TO 4, 9 TO 20, 11, 56, IS>Min.
В последнем примере через запятую перечисляется несколько условий, при этом результат проверки выражения считается истинным, если выполняется хотя бы одно из условий.
Порядок выполнения оператора SELECT CASE следующий: если значение выражения удовлетворяет условию после конструкции CASE, то выполняется блок операторов, а затем управление передается оператору, следующему после конструкции END SELECT. В противном случае проверяется следующее условие и так далее. Блок операторов n, расположенный после CASE ELSE выполняется в том случае, если последовательные проверки все условий выше дали значение “Ложь».
Оператор имеет следующие особенности: условие 1, условие 2 и так далее должны быть последними в строке, а конструкция CASEELSE должна быть единственной в строке.
REM Пример использования оператора SELECT CASE INPUTV SELECT CASE V CASE 0 PRINT “ НУЛЬ”; V CASE 1, 3, 5, 7, 9 PRINT “ НЕЧЕТНОЕЧИСЛО”; V CASE 2, 4, 6, 8 PRINT “ ЧЕТНОЕЧИСЛО”; V CASE IS <0 PRINT “ ОТРИЦАТЕЛЬНОЕЧИСЛО”; V CASE IS>9 PRINT “ СЛИШКОМ БОЛЬШОЕ ЧИСЛО”; V CASE ELSE PRINT “ НЕЦЕЛОЕЧИСЛО”; V END SELECT 'КОНЕЦ ПРОГРАММЫ END |
Виды циклических алгоритмических структур
Вычислительные процессы с многократным повторением однотипных действий при различных значениях входящих величин называются циклическими. Однотипные действия составляют тело цикла. Различают циклические структуры двух видов: с заранее известным и с заранее неизвестным числом повторений цикла. Циклические структуры, в которых число повторений цикла заранее известно или может быть определено до начала цикла, называются регулярными циклическими структурами (см. рис.13с).
В блоке организации цикла используется специальная переменная, которая предназначена для определения условия останова цикла (i).Эта переменная называется параметром цикла. Блоки, следующие за заголовком цикла, составляют тело цикла. Тело цикла выполняется для всех значений параметра цикла i, начиная со значения iн и изменяющегося с шагом h до значения iк.
Если из условия задачи следует, что число повторений цикла заранее не определено, а вычисляется в процессе выполнения алгоритма, то условие выхода из цикла должно быть определено в процессе его выполнения. При этом важно, чтобы в условие выхода из цикла входила переменная, значение которой изменялось бы в теле цикла, иначе выполнение цикла будет бесконечным.
Циклическая структура, в которой число повторений цикла заранее неизвестно, а определяется только в процессе выполнения алгоритма, называется итеративной циклической структурой. В зависимости от места расположения условия продолжения цикла (или выхода из цикла) итеративные циклические алгоритмы подразделяются на два вида: спредусловием(рис. 13а) и с постусловием (рис.13б).
Рис. 13Блок-схемы циклических алгоритмов: а – цикл-Пока; б – цикл-До; с - цикл с параметром
Средства программирования регулярных циклических структур
Программирование регулярной алгоритмической структуры на языке QB производится при помощи оператора FOR … ТО … NEXT, имеющего следующий формат:
FOR параметр=выражение1 TO выражение2 [STEP выражение3] блок_операторов [EXITFOR] NEXT параметр |
где:параметр – управляющая переменная цикла;
выражение1, выражение2 – начальное и конечное значение управляющей переменной;
выражение3 - шаг изменения управляющей переменной. Шаг может быть как положительным, так и отрицательным. Если выражение3=1, то конструкцию STEPвыражение3 можно опустить;
блок_операторов(тело цикла) – набор операторовповторяющегося вычислительного процесса;
EXITFOR – оператор, предназначенный для выхода из цикла до его завершения.
Логика выполнения оператора цикла с параметром
Прежде всего цикл проверяется на непротиворечивость. Это означает, что если конечное значение параметра больше начального, то шаг цикла должен быть положительным, а если конечное значение параметра меньше начального, то шаг должен быть отрицательным.
Если проверка выявила указанное противоречие, работа цикла будет немедленно прекращена. У параметра остается его начальное значение, и будут выполняться операторы, следующие за циклом.
Если противоречия нет, то тело цикла будет выполнено при начальном значении параметра. Затем значение параметра будет изменено на величину шага цикла. После этого будет выполнена проверка, не вышло ли значение параметра за пределы интервала между его начальным и конечным значениями. Если это так, то работа цикла будет прекращена. Если не так, то тело цикла будет выполнено при новом значении параметра, после чего он будет опять изменен на величину шага цикла и т.д.
Рассмотрим работу программы, которая вычисляет сумму и произведение пяти чисел.
REM Объявление переменных изадание REMначальных значений переменных DIM SUM as Single, P as Single, U as Integer DIM NUM as Single SUM=0: P=1 REM Началоцикла FOR U=1 TO 5 PRINT “Введите “; U; “ число” INPUTNUM REMВычислениесуммы SUM=SUM+NUM REM Вычисление произведения P=P*NUM NEXTU PRINT “Сумма чисел = “;SUM; “Произведение чисел = “;P END |
При выполнении этой программы управляющей переменной цикла U присваивается начальное значение 1. Затем выполняются операторы, составляющие тело цикла. Команда NEXT возвращает управление в начало цикла FOR. Значение U увеличивается на 1 при каждом новом выполнении цикла. Весь процесс повторяется 5 раз, затем значение переменной U становится равным 6, выполнение цикла заканчивается и программа передает управление оператору, следующему за NEXT.
Вложенные циклы
Иногда необходимо организовать цикл в цикле (так называемый вложенный цикл). В этом случае внешний и внутренний циклы не должны пересекаться, внутренние циклы должны целиком помещаться во внешних. Если вложены друг в друга два цикла FOR …NEXT, то они должны иметь различные управляющие переменные.
Например,
REM Программа выводит на экран таблицу Пифагора PRINT “ТаблицаПифагора” FOR x=1 TO 10 FOR y=1 TO 10 A=x*y PRINT USING “###”; A NEXT y NEXT x |
Средства программирования итеративных циклических структур
Для организации циклов с неизвестным числом повторений (итерационных) используются операторы WHILE … WENDи DO … LOOP.
Оператор цикла с предусловием WHILE … WEND
Общий вид этого оператора:
WHILEусловие тело_цикла WEND |
где: условие – логическое выражение;
тело_цикла – последовательность операторов.
Пока условие истинно, выполняются все операции тела цикла. Еcлиусловие - “ложь” - то управление передается на оператор, следующий за WEND.Особенностиработы оператора:
- можно использовать при неизвестном заранее количестве повторений;
- можно использовать, если закон изменения параметров выражается формулой;
- в теле цикла должен быть оператор, изменяющий условие.
Ниже показана программа на языке QB по вычислению количества первых n натуральных чисел, сумма которых не больше 20.
DIM SUM as Integer, N as Integer SUM=0: N=0 WHILE SUM<=20 N=N+1 SUM=SUM+N WEND PRINT “количество таких чисел равно: “;N-1 END |
Оператор условного цикла DO ... LOOP
Данный оператор аналогичен оператору WHILE ... WEND, однако отличается от него большей гибкостью.Управляющее условие может быть размещено как в начале цикла, так и в конце.
Проверка вверху: DO WHILE условие DO UNTIL условие телоцикла телоцикла [EXIT DO] [EXIT DO] LOOP LOOP Проверка внизу: DO DO тело цикла тело цикла [EXIT DO] [EXIT DO] LOOP WHILE условие LOOP UNTIL условие |
где:условие – логическое выражение;
тело цикла – последовательность операторов.
Использование слова WHILE означает, что цикл будет выполняться до тех пор, пока условие будет иметь значение “истина“. При использовании слова UNTIL цикл выполняется только тогда, когда условие имеет значение “ложь”. При проверке вверху цикл может не выполниться ни разу. При проверке снизу цикл выполнится хотя бы один раз. Оператор EXIT DO может использоваться и при наличии конструкций WHILE и UNTIL для организации досрочного выхода из цикла по некоторому дополнительному условию.
Для демонстрации работы оператора DO …LOOP приведена программа решения следующей задачи: Некто купил мешок сахара. И решил для себя: каждый раз брать из этого мешка ровно одну десятую часть его содержимого до тех пор, пока в мешке не останется меньше 30 кг сахара. Первоначально в мешке было 50 кг. Написать программу, которая выдавала бы номер обращения к мешку и количество оставшегося в мешке сахара в виде:
Номер: Остаток:
45
40,5
36,45
DIM massa as Single, k as Integer massa=50: k=0 ? “Номер:”, “Остаток:” DO k=k+1 massa=massa-massa/10 ? k, massa LOOP UNTIL massa<30 |
