Представление о программировании: язык программирования (на примере одного из языков высокого уровня); примеры несложных программ с линейной, ветвящейся и циклической структурой
Работа добавлена: 2016-01-10





10. Представление о программировании: язык программирования (на примере одного из языков высокого уровня); примеры несложных программ с линейной, ветвящейся и циклической структурой.

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

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

Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.

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

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

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

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

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

К языкам высокого уровня относится и QBasic. Разработан первый Бейсик в 1964 г. сотрудниками Дартмутского колледжа Дж. Кемени и Т. Курцем. Интересно происхождение названия языка. В прошлом веке один английский миссионер выделил из английского языка триста наиболее употребительных слов, назвал их Basic English и стал обучать туземцев. Создатели языка Бейсик стремились облегчить понимание между начинающими программистами и компьютерами. Аббревиатура BASIC  так и расшифровывается – “Beginner`s All purpose Symbolic Instruction Code”, что в переводе значит «многоцелевой язык символических команд для начинающих».

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

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

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

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

Этапы решения задач на ЭВМ

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

При работе на этом этапе необходимо ответить на вопросы:

  1.  Математическая модель.

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

3. Конструирование алгоритма.

4. Перевод алгоритма в программу.

5. Ввод и испытание программы.

6. Получение и анализ результатов решения задачи.

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

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

пример:
REM Это комментарий
можно и так:
' Это тоже комментарий

CLS - очистить экран. Вся информация, которая была на экране стирается.

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

INPUT (ввод) – оператор ввода. Используется для передачи в программу каких-либо значений.

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

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

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

Пример:
DIM a, b, chislo1 AS INTEGER

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

Операция

Обозначение

Пример

Результат

Сложение

+

2+5

7

Вычитание

-

10-8

2

Умножение

*

3*4

12

Деление

/

15/3

15/4

5

3.75

Целочисленное деление

\

15\4

3

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

^

2^3

8

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

MOD

13 MOD 5

3

 

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

 Корень

SQR(X)

 Модуль числа

ABS(X)

 Синус

SIN(X)

 Косинус

COS(X)

 Тангенс

TAN(X)

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

INT(X)

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

LOG(X)

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

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

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

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

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

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

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

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

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

или

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

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

Конструкция IF...THEN  позволяет в зависимости от справедливости условия либо выполнить  оператор, либо пропустить этот оператор.

Конструкция IF...THEN...END IF  позволяет в зависимости от справедливости условия либо выполнить группу операторов, либо пропустить эту группу операторов.

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

=

равно

<>

не равно

>

больше

<

меньше

>=

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

<=

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

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

Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция 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 "Введите коэффициент 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

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

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

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

Циклы со счетчиком.

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

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

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

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

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

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

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

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

Циклы с предусловием.

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

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

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

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

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

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

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

Стоит обратить внимание на то, что цикл может быть не выполнен ни разу (если условие первоначально не истинно, например, a=5, а chislo=4). И наоборот, если условие будет истинно при любых значениях переменный, то цикл будет выполнятся бесконечное число раз (произойдет зацикливание).

Циклы с постусловием.

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

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

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

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

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

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

Переменную s используем для хранения суммы цифр. До начала цикла в переменную a заносим значение переменной chislo. Все дальнейшие преобразования осуществляем с переменной а. В цикле берем остаток от деления на 10 (последняя цифра числа) и прибавляем к тому, что уже есть в переменной s; делим значение переменной а на 10, берем целую часть (т.е. отбрасываем последнюю цифру числа) и заносим в а. Цикл продолжается до тех пор пока значение переменной а не окажется равным нулю (перебрали все цифры числа). Результат выводим на экран.




Возможно эти работы будут Вам интересны.

1. Строки в программировании на языках высокого уровня

2. Языки программирования, их эволюция и классификация. Характеристики поколений языков программирования

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

4. Программирование на языках высокого уровня

5. Программирование на языке высокого уровня

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

7. Язык программирования Си лекции

8. Определение циклической поправки светодальномера СТ-5 «Блеск». Построение графика циклической поправки

9. Статистико-экономический анализ уровня инфляции (на примере Российской Федерации)

10. Программирование алгоритмов циклической структуры