КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 8. Программирование
В качестве языка описания алгоритмов воспользуемся далее языком программирования Паскаль, так как он наиболее подходит для целей обучения и часто (обоснованно) используется в обучении. На алгоритмическом языке Паскаль любой алгоритм простой (не модульной, не составной) структуры имеет следующий стандартный вид: Program <имя (заголовок) алгоритма>; Uses <список необходимых подключаемых библиотек>; {комментарии} Label <список меток (имен участков программ)>; {комментарии} Const <список констант (не изменяемых величин)>; {комментарии} Type <список имен и типов структур данных>; {комментарии} Var <список имен и типов переменных>; {комментарии} { < условия задачи и применимости алгоритма >} { < цель составления и выполнения алгоритма >} Begin <команды ввода входных данных>; {комментарии } <тело алгоритма (команды управления и преобразования алгоритма)>; { комментарии } <команды вывода результатов (выходных данных)>; {комментарии } End. Рассмотрим базовые простые команды языка Паскаль. Команда описания (заголовка) алгоритма (программы): Program <имя алгоритма>; где <имя алгоритма> – имя, задаваемое составителем программы (краткое, полное, грамотное отражение сути алгоритма). Ввод – команда ввода в рассмотрение (в тело алгоритма) тех или иных входных параметров: Read (<список вводимых параметров>);или ReadLn (<список вводимых параметров>);. Первая команда вводит данные с текущей позиции экрана (где стоит курсор), вторая – с новой строки экрана. Вывод – команда вывода на экран тех или иных входных или выходных параметров алгоритма: Write (<список выводимых параметров>); или WriteLn (<список выводимых параметров>);. Первая команда выводит данные с текущей позиции экрана (где стоит курсор), вторая – с новой строки экрана. Присваивание – команда изменения текущего значения переменной вида: <идентификатор>:= <выражение>;, где <идентификатор> соответствует имени переменной, <выражение> – корректно записанное выражение. Знак ":=" означает последовательное выполнение двух действий: определение текущего значения <выражения> и замена текущего значения переменной, имя которой задано <идентификатором>, на новое значение, равное значению <выражения>. Команда начала алгоритма (блока) – команда Begin. Команда завершения алгоритма (блока) – команда End. Команда вставки комментариев в текст алгоритма имеет вид: <комментируемое в программе> {текст комментария}. Комментировать можно любой объект в программе. Обычно комментируют переменную, структуру данных, команду, группу команд. Пример. Программа вычисления объема v правильного цилиндра с радиусом основания r и высотой h. Program VСil; Uses Crt {подключение библиотеки ввода/вывода на экран "в звуке и цвете"} Const pi = 3.14; Var r, h, v: real; {для правильного цилиндра с радиусом основания r и высотой h} {вычислить и выдать на экран значение его объема v} Begin ClrScr; {команда очистки экрана (от данных предыдущей задачи)} ReadLn (r, h); {ввод входных параметров} v:=pi*r*r*h; {вычисление объема по формуле для цилиндра} WriteLn (‘Вычисленный объем цилиндра равен ’, v) {вывод результата } End. Порядок выполнения операций (старшинство операций – по убыванию) в языке Паскаль: вычисление выражений в скобках; вычисление стандартных функций; умножение и деление (обозначаются "*" и "/"); сложение и вычитание (обозначаются "+" и "–"). Приведем таблицу наиболее часто используемых в языке Паскаль функций и процедур:
Пример. Результаты применения этих функций: sqrt(9) = 3, abs(–5) = 5, sin(0) = 0, cos(0) = 1, ln(1) = 0, exp(1) =e, 23 mod 5 = 3, 20 mod 5 = 0, 23 div 5 = 4, 20 div 5 = 4, int(2.7) = 2, int(2) = 2, rnd(0) = 0.231356, length(‘информ’) = 6. Рассмотрим ряд задач, решаемых с помощью массивов. Пример. Составим алгоритм (программу) нахождения суммы и произведения всех элементов одномерного массива. Метод решения: начиная с нулевого значения суммы, добавляем поочередно новый элемент ряда и находим значение искомой суммы; начиная с начального, единичного произведения, находим искомое произведение, умножая текущее значение произведения на очередной элемент ряда. Алгоритм (программа) имеет вид Program SPM1; Uses Crt; Var x: array [1..100] of real; n, i: integer; s, р: real; Begin ClrScr; WriteLn('Введите размерность массива:'); { приглашение к вводу входного параметра } ReadLn(n); { ввод входного параметра } WriteLn('Введите элементы массива:'); { приглашение к вводу массива } for i:=1 to n do { цикл ввода элементов массива } begin write('x[',i,']='); { приглашение к вводу текущего элемента массива} readln(x[i]) { ввод текущего элемента массива } end; s:=0; { начальное значение суммы – нуль } p:=1; { начальное значение произведение – единица [u1]} for i:=1 to n do { цикл вычисления суммы и произведения } begin s:=s+x[i]; { добавление к сумме очередного слагаемого } p:=p*x[i] { домножение произведения на очередной множитель } end; WriteLn('Полученная сумма равна ', s: 3:3); { вывод полученной суммы } WriteLn('Полученное произведение равно ', p: 3:3); { вывод полученного произведения } End. Пример. Пусть необходимо находить сумму всех нечетных элементов натурального ряда чисел до тех пор, пока эта сумма не превысит значение n. Слагаемое, при котором эта сумма превысит n – включать в сумму. "Забудем" временно чисто математическое решение этой задачи – с использованием суммы арифметической прогрессии с шагом 2. Алгоритм (программа) имеет вид Program Summa; Uses Crt; { подключение библиотеки ввода/вывода на экран "в звуке и цвете"} Var i, n, s: real; { для ряда чисел 1, 3, 5, …, } {найти сумму s всех первых чисел ряда, для которых впервые s>n} Begin ClrScr; { команда очистки экрана (от данных предыдущей задачи) } ReadLn (n); { ввод входного параметра } s:=1; { начальное значение суммы до входа в цикл } i:=1; { количество просуммированных чисел в начале } while (s<=n) do { заголовок цикла (проверка условия выхода из цикла) } begin i:=i+2; { находим новое слагаемое } s:=s+i { добавили к предыдущему значению суммы новое слагаемое } end; WriteLn (‘Вычисленная сумма равна ’, s); { вывод результата } End.
Дата добавления: 2014-01-06; Просмотров: 635; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |