WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 |

«основы ИНФОРМАТИКИ И ЫЧИСЛИТЕЛЬНОЙ ;:. $БК 32.97я71 Б92 Бурибаев Б. и др. Б92 Основы информатики и вычислительной техники: Учебник для 9 классов общеобразовательных школ /Б. Бурибаев, Б. Накысбеков, Г. ...»

-- [ Страница 1 ] --

Б.Бурибаев Б.Накысбеков Г. Мадьярова

«МИНИН

основы

ИНФОРМАТИКИ И

ЫЧИСЛИТЕЛЬНОЙ

;:.

$БК 32.97я71

Б92

Бурибаев Б. и др.

Б92 Основы информатики и вычислительной техники: Учебник

для 9 классов общеобразовательных школ /Б. Бурибаев,

Б. Накысбеков, Г. Мадьярова.—Алматы: Издательство "Мектеп",

2005.— 272 с: ил.

ISBN 9 9 6 5 - 3 3 - 3 8 2 - 3 ВВК 32.97я72 „ 4306020500—063 1 П О / 1 ч п к В 404(05)-05 Ю8(1)-05 © Бурибаев Б„ Накысбеков В., Мадьярова Г., 2005 © Издательство "Мектеп", художественное оформление, ISBN 9 9 6 5 - 3 3 - 3 8 2 - 3 Все права защищены Имущественные права на издание принадлежат издательству "Мектеп"

ВВЕДЕНИЕ

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

В связи с поставленной целью в этом году будем изучать следующие темы:

1. Понятие алгоритма и программы.

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

3. Описание данных на языке Паскаль, разработка программ и способы их реализации на компьютере.

4. Запись различных операторов, процедур и способы их применения.

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

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

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

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

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

Г л а в а 1. ОСНОВЫ АЛГОРИТМОВ И ТЕХНОЛОГИЯ

ИХ РАЗРАБОТКИ

1.1. ПОНЯТИЕ АЛГОРИТМА И ПРОГРАММЫ

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

Что такое алгоритм? Для ответа на этот вопрос сделаем экскурс в историю. Слово алгоритм является латинской транскрипцией имени знаменитого восточного математика Абу Жафар Мухаммед ибн Муса аль-Хорезми (763—850 гг.). Он разработал правила нахождения результатов арифметических операций над многоразрядными числами в десятичной системе счисления. Эти правила состоят из последовательности необходимых операций и используются до сих пор.

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

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

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

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



Команды: арифметические или логические операции, команда передачи управления, команда сравнения чисел, команда вывода на экран или на принтер и т.д.

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

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

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

Например, вычисление значения функции у = (ах+Ъ)(сх - d) состоит из следующих простых действий:

1) а умножить на х, результат обозначить через iJx;

2) к Дх прибавить Ь, результат обозначить через R2;

3) с умножить на х, результат обозначить через R3;

4) из R3 вычесть d, результат обозначить через R4;

5) R2 умножить на i?4, результат обозначить через у.

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

Для ввода алгоритма в машину его нужно записать по определенному правилу в виде текста и ввести в память ком­ пьютера. Алгоритмы и система правил, которые применяются для точной записи и их выполнения на компьютере, являются програм­ мой.

Существуют особенности работы компьютера, связанные с алгоритмом и программой:

1) способ решения задач должен задаваться в виде алгоритма;

2) алгоритм записывается в виде программы;

3) программу нужно ввести в память компьютера и выполнять по порядку.

Приведем пример алгоритма из повседневной жизни. Чтобы стать студентом, нужно выполнить следующие шаги алгоритма:

1) закончить среднюю школу;

2) пройти тестирование или сдать выпускные экзамены, получив соответствующий вашему знанию суммирующий балл;

3) пройти конкурс;

4) сдать необходимые документы в выбранное учебное заведение.

Эти пункты менять нельзя. Они должны выполняться в указанной последовательности. Только тогда можно достичь нужного результата — стать студентом.

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

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

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

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

В алгоритме используются результаты предыдущих действий.

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

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

Ключ будем считать началом поиска, каждый следующий шаг искателя равен 1 м. Чтобы найти кл п, то НОД (т, п) = НОД (т - п, п), перейти к 1. > 3. Если т < п, то НОД (т, п) = НОД (т, п-т), перейти к 1. ± Теперь выполним алгоритм для конкретных значений т и т а) Положим т = 70, п = 42. В первом шаге т > п, тогда по алгоритму НОД (70,42) = НОД (70-42, 42) = НОД (28, 42); теперь т < п, тогда НОД (28, 42 - 28) = НОД (28, 14); теперь т >п, тогда НОД (28-14,14) = НОД (14, 14); теперь т = п.

Во многих случаях полезно записать алгоритм в виде таблицы:

б)та=105, n = 30.

Этот алгоритм называется алгоритмом Евклида.

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

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

Приведем простые примеры формального исполнения алгоритма.

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

Алгоритм:

1) острие циркуля поставить в точку 1 (в точку А);

2) раствор циркуля сделать равным с длиной отрезка;

3) начертить окружность;

4) острие циркуля поставить в точку 2 (в точку В);

5) начертить окружность;

6) провести прямую через точки пересечения окружностей;

7) найти точку пересечения прямой с отрезком, принять найденную точку в качестве середины о т р е з к а АВ.

П р и м е р 4. Напишем формулу соответственно следующему алгоритму:

1) возвести х в квадрат, результат сохранить в Kj 2) К1 умножить на а, результат сохранить в К2' 3) к К2 прибавить Ъ, результат сохранись в К2> 4) из Кг вычесть с, результат сохранить в К?

5) К2 разделить на Kv результат coxpai™Tb B У'> 6) конец алгоритма.

При вьшолнении этого алгоритма не наДО много думать, стоит только точно следовать указанным предписав:иям- В ходе реализации этих действий можно заметить явные свойства прерывности, понят­ ности и результативности алгоритма.

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

Во многих случаях составителем алгоритма и его исполнителем является один человек, поэтому в процессе составления алгоритма он проводит анализ и исследование; среди а/ДОР11™03' необходимых для решения конкретной проблемы, выбирает наиболее эффективный.

Если сказать по-другому, он выполняв? творческую работу.

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

Из вышесказанного можно сделать следующие выводы:

1. Алгоритм должен составляться для определенного исполни­ теля.

2. Если в алгоритме встречаются действия (команды), не понят­ ные исполнителю, то их нужно заменить командами, понятными Для исполнителя. Значит, команды, используемые в алгоритме, не Должны выходить из системы команд исполнителя.

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

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

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

Краткие выводы 1. Название алгоритма является латинской транскрипцией измени Мухаммеда аль-Хорезми.

2. Алгоритмы применяются для решения различных проблем 3. Каждый алгоритм состоит из конечного числа указаний для выполнения исполнителем полностью законченных действий.

4. Алгоритм разделяется на маленькие части.

5. Алгоритм описывается точно и понятно.

6. Для однотипных задач составляется один алгоритм.

7. Алгоритм после конечного числа шагов дает результат.

8. Алгоритм описывается на понятном для исполнителя языке.

9. Алгоритм исполняется формально.

Задания 1. Приведите несколько алгоритмов, известных вам, с которыми вы сталкивались в жизни.

2. По заданным формулам составьте алгоритм для вычисления значений у:

3. По следующим алгоритмам составьте формулы для вычисления значений у:

1) х умножил, на х, результат обозначить через o t ;

2) Oj умножить на 5, результат обозначить через а2;

3) из а2 вычеоть 6, результат обозначить через а3;

4 ) к о, прибавить 4, результат обозначить через а4;

5) а2 разделить на о4, результат обозначить через у;

1) к х прибавить 1, результат обозначить через Ьг;

2) 1 разделил, на Ъг, результат обозначить через Ь2;

3) из Ь2 вычесть 1, результат обозначить через bs;

4) к Ь2 прибавить 1, результат обозначить через Ь4;

5) Ъ3 разделить на 64, результат обозначить через 65;

6) из Ь5 вычесть 1, результат обозначить через у;

В) с помощью циркуля и линейки:

1) провести перпендикуляр через середину отрезка;

2) начертить окружность с диаметром, равным заданному отрезку;

3) найти биссектрису угла;

4) составить алгоритм нахождения точки пересечения медиан треугольника;

5) для целых чисел о = 100, 6 = 18 найти НОД и определить, сколько раз выполняются три шага (a -ib, а > Ь, а < Ь) алгоритма Евклида.

Контрольные вопросы и задания * 1.Что такое алгоритм? Откуда произошло это слово?

2. Каковы основные свойства алгоритма?

З.Как можно понять прерывность (дискретность) алгоритма? Приведите примеры.

4. Что означает однозначность алгоритма? Приведите примеры.

б.Что называется общностью алгоритма? Приведите примеры.

6. Что называется результативностью алгоритма? Приведите примеры.

7. Что такое понятность алгоритма'! Приведите призерыКак можно объяснить формальное исполнение алгоритма?

9. Приведите несколько алгоритмов, взятых из жизю*Что такое команда алгоритма?

11. Что называется системой команд исполнителя? Приведите примеры.

12. Могут ли быть исполнителями алгоритма автоматические устройства? Если да, то на основе какого свойства алгоритма?

13. Какие свойства алгоритма вы знаете? Объясните их значение.

14. Что вы понимаете под исполнителем алгоритма? Какая разница между исполнителем-человеком и исполнителем-машиной?

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

1) на естественном языке;

2) через определенные ключевые слова — термины, псевдокоды, i Иногда их можно называть простейшим алгоритмическим языком;

3) графическое изображение с помощью блок-схем;

4) запись на языке программирования.

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

1.5. ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ АЛГОРИТМА

Графическое изображение алгоритма —широко распространенный способ. Этот вид записи является точным, наглядным, понятным (рис. 1.1). Для того чтобы его начертить, требуется определенное время.

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

Схема алгоритма составляется с помощью изображенных на рис. 1.1 блоков. На схеме алгоритмов определяются этапы обработки информации и порядок выполнения операций. Часто схему алгоритмов называют блок-схемой.

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

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

1) Должны быть обязательно блоки, указы­ „ 2) Не должно быть блоков, не соединенных / Ввод о, b / вательно друг за другом.

4) В блоках, где выполняются арифметические 1^ У действия, должна быть одна линия входа и выхода.

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

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

Примеры графических записей алгоритмов.

Напишем схему вычисления алгоритма по заданной формуле у = а + Ь. Схема алгоритма показана на рис. 1.2. Здесь вычисление формулы изображается в виде четырехугольника в блоке процесса (3-й блок). Там знак равенства записывается в виде знака присваивания (:=), а результат изображается в виде многоугольни­ ка для документа (4-й блок). Внутри блока записываются названия результатов. Для вычисления по вышеуказанной формуле нужно ввести в память компьютера числовые значения о и Ъ (2-й блок), затем выполняется операция сложения, в конце осуществляется вывод у на бумагу, и работа заканчиватся.

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

1.6. ПОНЯТИЕ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

И ЯЗЫКА ПРОГРАММИРОВАНИЯ

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

Алгоритмический язык, с одной стороны, близок к естествен­ ному язЖу~:Ш1=^зштеьваежйй=-в виде простого текста. В состав а^П'оритмичес^йШЯ^зыкаавйойят числа, наименования величин и функций, знаки арифметических операций, скобки операций, а также термины с определенной функцией и/ некоторые символы.

Как и любой язык, алгоритмический язык состоит из алфавита, соответствующего его функции. В алгоритмическом языке элементарные знаки, используемые /для составления его текста, называются символами, а множество этих символов — его алфавитом, Искусственные языки, предназначенные для записи алгоритмов и последовательности операций, составленные на алгоритмическом языке, понятном для компьютера, называются языками програм­ мирования. Языки программирования, такие, как Паскаль, Си, Дельфи, Пролог, при записи алгоритмов широко используют некоторые английские слова. В алгоритмическом языке на русском языке применяются те же ключевые слова. Алгоритм сначала составляется на простом алгоритмическом языке, затем переводится на язык программирования и потом выполняется программа, переведенная на машинный язык. В каждом компьютере есть свой машинный язык, его называют языком команд, или автокодом (языком кодов). В любой ЭВМ операции выполняются только на своем языке, поэтому для выполнения алгоритма на компьютере последовательность операций должна быть переведена на машинный язык. Составление программы является утомительным и трудоемким процессом, и вместе с тем серия программных кодов, записанных на одном языке, непригодна для другой машины.

В связи с вышесказанным в настоящее время выполняемые действия пишутся с помощью ключевых слов естественного языка на простом алгоритмическом языке на всех компьютерах. Затем переводятся на язык программирования на основе английского языка. Оба эти языка относятся к алгоритмическим языкам. Писать программу на алгоритмическом языке и на языке програм­ мирования легко и удобно. Для их выполнения на машине (компьютере) должна быть программа, которая переводит программу автоматически на машинный язык; такая программа называется транслятором. Трансляторы делятся на три вида: интер­ претаторы, компиляторы и ассемблеры. Интерпретатор — это транслятор, который переводит каждую строку (команду) программы по отдельности. Компилятор — это транслятор, который переводит полностью текст программы на машинный язык в виде одного модуля, записывает в память компьютера и выполняет ее по нашему запросу. Ассемблеры переводят только автокоды, значит, переводят только те программы на машинный язык, которые записаны на ассемблере.

В настоящее время распространенными языками програм­ мирования являются Бейсик, Фортран, Си, Дельфи, Паскаль и т.д.

В основном выполнение программы на компьютере соответствует следующей схеме (рис. 1.3).

языке програм­ —*• (переводчик), переведенная на В настоящее время во всем мире существует более трехсот алгоритмических языков. Каждый из них употребляется в определенных целях. Например, Фортран — для научно-технических (инженерных) задач, Паскаль — на производстве, в образовании, Бейсик — для начинающих пользователей на персональных компьютерах. Это разделение является условным согласно их практическому приспособлению. Однако если их правильно использовать, то на каждом из них можно решать любую задачу.

Мы рассмотрим сведения из правил алгоритмического языка, в частности, широко распространенного языка программирования в нашей стране — Паскаль.

1.7. ОБЩИЕ ПРАВИЛА АЛГОРИТМИЧЕСКОГО ЯЗЫКА

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

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

Группа команд, выполняемых друг за другом, в результате которых выдается определенный результат, называется серией.

иногда серия состоит из одной команды, но чаще из нескольких команд. Если команда не помещается в одной строке, то ее можно продолжить на второй строке. И наоборот, в одной строке раз­ решается писать несколько команд. Если в одной строке пишется несколько команд, то после каждой команды ставится знак ";".

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

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

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

Здесь переменной величине присваивается значение выражения, или переменной у присваивается значение выражения а*х - Ь, ":=" — знак присваивания, слева от этого знака пишется переменная величина, справа — любое выражение.

Команда г/:=5 показывает, что переменной у присваивается значение 5. Это числовая величина. Если вычислить значение выражения в команде присваивания х. = 5 * 9 - 7, то переменная х получает значение 38. Команда присваивания в блок-схеме изображается в виде четырехугольника блока процесса.

П р и м е р 1. Составим алгоритм вычисления значения у для любого значения х по формуле у = (а*х - Ъ)*(с*х + d):

алг вычисление по формуле Здесь Rlt R2, которые не входят в состав аргумента, называются промежуточными величинами, так как они используются временно для промежуточного вычисления.

Заключение 1. Существуют четыре способа^записи алгоритма: на естественном языке; на простом алгоритмическом языке; на графическом (с помощью блок-схемы); на языке программирования.

2. При графическом изображении алгоритма операция изобра­ жается через геометрические фигуры. Они называются фигурами, или блоками операции, или символами операции.

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

4. Блок начала цикла, изображенного шестиугольной фигурой, имеет две линии входа и две линии выхода.

5. К основным блокам относятся блоки обработки (процесс, арифметическая операция), логические блоки (проверка условий), блоки ввода и вывода.

6. К вспомогательным блокам алгоритма относятся комментарий (пояснение), начало и конец алгоритма, а также линии связи.

7. Алгоритмический язык близок к естественному языку, поэтому он пишется и читается как простой текст.

8. Искусственные языки, предназначенные для записи последо­ вательности операции, составленной на алгоритмическом языке в виде текста команд, понятного для компьютера, называются языками программирования.

9. Паскаль, Си, Дельфи — языки программирования, которые используют английские слова для составления алгоритма.

Количество этих слов небольшое, они называются ключевыми.

10. Алгоритм сначала составляется на простом алгоритмическом языке, затем пишется на языке программирования и, наконец, выполняется после преобразования на машинный язык.

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

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

13. Для обозначения начала и конца команд алгоритма исполь­ зуются ключевые слова: начало и конец.

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

15. Часть алгоритма, расположенная после заголовка, называется телом алгоритма, ограничивается ключевыми словами начало 16. Команда присваивания пишется следующим образом:

Задания 1. Составьте блок-схему алгоритма вычисления значений у для любого значения х по формуле у = (ах3 + Ъ)/(сх* - d).

2. Опишите выполняемые действия на алгоритмическом языке при кипя­ 3. Опишите на алгоритмическом языке и составьте блок-схемы этапов вычислений значений у для любого значения х по формуле Контрольные вопросы и задания 1. Перечислите способы записи и описания алгоритмов.

2. Назовите особенности изображения алгоритма с помощью графика.

3. Какие блоки относятся к основным и вспомогательным?

4. Что называется простым алгоритмическим языком, языком программиро­ 5. Что относится к ключевым словам?

6. Что такое транслятор"!

7. Как вы понимаете термин серия'?

8. Какова структура команды присваивания, как пишется?

В зависимости от условий задачи команды алгоритма состоят из простых и сложных команд.

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

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

Они имеют по одной линии входа и выхода (рис. 1.4).

Сложные команды состоят из линейных, циклических и раз­ ветвляющихся команд. Сложная команда состоит из простых ко­ манд и их выполнение зависит от заданных условий. В зависимости от заданных условий определяется порядок выполнения команд.

1. Линейные алгоритмы. Они состоят из последовательных простых команд, блок-схемы — из блоков, расположенных на одной линии. Линейным алгоритмом называется алгоритм, в котором все действия (операции) выполняются один раз и последовательно друг за другом. Теперь приведем примеры:

алг записать домашнее задание выполним домашнее задание Команды линейного алгоритма состоят из команд (блоков), которые выполняются в указанной последовательности. Такое выполнение операций друг за другом назовем естественным поряд­ ком. Например, напишем алгоритм вычисления числового значения функции z по формуле Для вычисления значения этой функции нужно сначала вычислить многочлен в скобке, так как он вычисляется три раза и на это тратится машинное время. После вычисления значение функции z должно выводиться на экран или на принтер. Значе­ ния переменных вводятся в память компьютера заранее.

(вещ о, Ъ, x,z) арг а, Ь,х мером линейного алгоритма (рис. 1.5). Здесь 2-й 6 Конец блок — блок ввода значений переменных с клавиа­ блок —блок вычисления значения z, 5-й блок выво­ дит на принтер значения переменной х и функции z.

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

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

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

1.6) имеет следующий вид:

Рис. 1.6. Полная команда разветвления Для выполнения алгоритмов в команде разветвления сначала проверяются условия. Если условия вьшолняются, то вьшолняются команды 1-й серии, заключенные между ключевыми словами если и иначе. Если условия не вьшолняются, то вьшолняются команды 2-й серии, заключенные между ключевыми словами иначе и все. В схему этого вида разветвляющегося алгоритма обязательно входит блок проверки условия. Он изображается в виде ромба и связывается с другими блоками с помощью одной линии входа и двух линий выхода.

В полном виде разветвляющегося алгоритма осуществляется выбор только одной серии из двух (рис. 1.6). Если высказывание истинно, тогда выполняется 1-я серия, затем осуществляется переход к следующим операциям. Если высказывание ложно, то выполняется 2-я серия, только затем производятся следующие действия алгорит­ ма. Итак, в зависимости от истинности или ложности высказывания выполняется 1-я или 2-я серия.

Если алгоритм состоит из неполной формы команды раз­ ветвления, то в случае выполнения условия выполняется "серия" и дальше продолжается выполнение алгоритма. Если условие не вы­ полняется, то не выполняется ни одна команда из "серии", осуществляется действие перехода (рис. 1.7).

Рис. 1.7. Неполная форма команды разветвления Теперь приведем примеры.

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

Здесь в зависимости от знака переменной х (положительный, отрица­ тельный) выбираем верхнюю или нижнюю формулы и по ней находим значение функции у.В процессе вьшолнения блока 2 переменной х задаются определенные значения. Эти значения должны задаваться через команду ввода (рис.1.8).

Следующая проверка введенного значения осуществляется через 3-й блок проверки условия. В зависимости от истинности (да) или ложности (нет) условия осуществляется выбор, т. е. выполняется только один из блоков: 4-й или 5-й блок; 6-й блок осуществляет вывод на экран или на бумагу введенного значения переменной х и значение функции у (рис. 1.8).

П р и м е р 2.Рассмотрим алгоритм решения квадратного урав­ нения ах2 + Ьх+с = 0. Здесь, если его дискриминант больше 0, т. е.

положительный, тогда найдем действительные корни (х^ х2) урав­ нения. Если дискриминант отрицательный, тогда элементы корней Уравнения вычислим через другую ветвь, числа а и р" вьшодим на экран или на печать. Итак, способ составления алгоритма можно математически выразить следующим образом:

В этом алгоритме основное проверяемое условие — знак диск­ риминанта. Теперь решение алгоритма квадратного уравнения выразим через схему (рис. 1.9). 1-й блок и 11-й блок изображают начало и конец алгоритма, во 2-м блоке осуществляется ввод значений а,Ь,св программу, в 3-м блоке вычисляется дискриминант, 4-й блок является блоком проверки условия. Если условие исполняется (да), то выполняются 6-8-10-й блоки и определяются значения корней; если условие не выполняется (нет), тогда находим параметры (а, |3) комплексного корня и результат выводим на бумагу. Итак, в разветвляющемся алгоритме выполняется только одна из двух возможностей.

Рис. 1.9. Алгоритм решения квадратного уравнения алг рацион животных (вещ а, Ъ, max) алг определение наибольшего из дву%даеел;#»|?

2.1. Сложные ветвления. Нередко Й задачах проверяются условия, соответствующие трем и более вь^одам. Например, если выполнение условий х>0, х=0, х (J Если альтернатив больше трех, то в таких случаях, как правило, используют конструкцию "выбор" или "выбор-иначе".

Ветвление типа "выбор": Ветвление •ГИпа "выбор-иначе":

выбор В соответствии с рассмотренными на алгоритмическом языке вариантами ветвлений изображаются и блок-схемы. Ниже приведены пример записи и блок-схема (рис. 1.11) алгоритма решения задачи для варианта "выбор-инаце".

выбор при 1-м месте: золотая медаль при 2-м месте: серебряная медаль при 3-м месте: бронзовая медаль иначе грамота участника все (Золотая медаль| Серебряная медаль [Бронзовая медаль] | Грамота участника Рис. 1.11. Блок-схема алгоритма "выбор-иначе" 2.2. Применение сложных условий. Условия, содержащие знаки отношения ( >, <, =, <, >), рассматриваются как логические переменные, которые могут принимать значение ИСТИНА, если условие выполняется, или ЛОЖЬ — в противном случае. В блоксхемах выходы блока "решение", соответствующие вьшолнению или невыполнению условия, помечаются словами и знаками "да" (1, +) — истина и "нет" (0, - ) — ложь.

Алгоритмы многих задач записываются намного проще, если в них используются сложные, составные условия. Для связи простых условий будем применять служебные слова И, ИЛИ, НЕ.

Например, если требуется задать проверку условия нахождения величины z в границах отрезка [а, Ъ\ то это можно записать так:

то z находится в границах отрезка [а, Ъ\.

Если, например, нужно проверить, находится ли z хотя бы в одном из отрезков [а, Ь] и [с, d], то запись будет следующей:

то z находится в одном из отрезков [а, Ь] или [с, d] Рассмотрим пример решения задачи с использованием сложного условия.

Заданы длины а,Ъ и с трех отрезков прямой (а, Ъ и с — целые положительные числа). Можно ли использовать эти отрезки в качестве сторон треугольника?

Условие, при выполнении которого треугольник построить нельзя, следующее:

Поэтому алгоритм решения задачи можно записать так:

алг Построение треугольника (цел о, &, с, лит г) яач если НЕ(а>6+с ИЛИ Ь>а+с ИЛИ оа+Ь) то 2 := "Можно" иначе z := "Нельзя" 3. Циклические алгоритмы. Во многих алгоритмах определенная последовательность действий повторяется несколько раз. В мате­ матике, часто при решении задач используется одно уравнение, и в зависимости от значений переменной уравнение вычисляется несколько раз. Процесс вычисления, когда определенная часть алгоритма повторяется многократно, называется циклическим процессом. Алгоритм с повторяющейся частью называется циклическим алгоритмом. Применение циклических алгоритмов позволяет написать программу сокращенно в виде команд цикла.

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

пока, нц (начало цикла), кц (конец цикла). Здесь после слова пока пишется условие, а между словами нц и кц — повторяющиеся команды. Ключевые слова нц и кц позволяют понимать текст алгоритма и порядок выполнения команд, команды пишутся сдвину­ тыми направо относительно ключевых слов цикла. Ниже приводятся описания команды повторения в алгоритмическом языке и графическом виде (рис. 1.

пока условие Рис. 1.12. Описание циклического алгоритма В зависимости от того, известно или не известно количество Повторений, цикл делится на два вида. Цикл, в котором количество повторений известно заранее, называется арифметическим, если количество повторений не известно, то такой цикл называется пошаговым (итерационным).

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

Перед выполнением цикла его параметр-аргумент должен иметь свое начальное значение и, меняясь в процессе повторения на постоянную величину шага, должен достичь своего заданного конеч­ ного значения. В процессе выполнения алгоритма параметр цикла, например х, начиная со своего начального значения х0 до своего конечного значения хк, меняется на постоянную величину dx.

В результате переменная х принимает следующие значения: х0, х0 + +dx, x0 + 2 dx,...,xQ+ (га - 1) dx, xk; здесь п—число повторений цикла, определяемое следующим образом:

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

Для облегчения записи программы и схемы алгоритма циклические алгоритмы пишутся в сокращенном виде с использованием блоков "модификатор" или блоков "начало" цикла.

В этой программе команда арифметического цикла пишется следующим образом:

алг ариф.

Часто вместо указанных блоков 3,4,7 размещается блок "начало" цикла. Он состоит из геометрической фигуры в форме шестиугольника и имеет обязательно две линии входа и две линии выхода. На рис. 1. приведенный выше алгоритм изображен с помощью этого блока.

Если начальное значение параметра х0 меньше хк, тогда его шаг dx будет положительным. Наоборот, если начальное значение параметра больше его конечного значения, тогда шаг будет отрицательным.

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

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

Пример. Даны два положительных числа о и Ь. Не применяя операцию деления, нужно найти остаток от деления о на 6.

Алгоритм этого деления изображен на рис. 1.15.

алг итерационный цикл (цел а, Ь) начало 1.10. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ Процесс решения задач на компьютере считается сложным, он состоит из следующих этапов:

0. Словесное описание задачи.

1. Математическое описание задачи (постановка задачи).

2. Определение и выбор численных методов для решения задачи на ЭВМ.

3. Составление алгоритма решения задачи.

4. Разработка программы решения задачи на компьютере и отладка программы (исправление ошибок).

5. Подготовка нужных данных для задачи.

6. Решение задачи на компьютере, анализ и применение результата.

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

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

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

Данные для решения задачи, предварительно отобранные, записываются на магнитный диск и вводятся в память компью­ тера по порядку. Принятие решения после получения результата задачи и применение его в жизни — это дело специалистов. Только они могут принять полезное и нужное определенное решение. При обучении некоторые этапы, описанные выше, опускаются, задачи задаются сразу в виде формул, численные методы решения: задач указаны в формулах, достаточно получить результат и показать учителю. Все указанные шесть этапов решения задач часто встречаются при решении сложных производственных задач, а для написания простых учебных программ используются только 3-, 4- и 6-й пункты этапов решения задачи.

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

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

2. Сложные команды состоят из линейных, разветвляющихся и циклических структур.

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

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

5. В циклических алгоритмах определенная его часть повторяется несколько раз. Циклы делятся на арифметические и 6. Процесс решения задач на компьютере является сложным и состоит из следующих этапов:

а) математическое описание задачи (постановка задачи);

б) определение численных методов решения задач, удобных для их решения на компьютере;

в) описание способа решения задачи в виде алгоритма, т.е.

разработка алгоритма решения задачи;

г) составление программы, решение задачи на компьютере и ее отладка (исправление ошибок программы и проверка соответствия программы поставленной задаче);

д) сбор сведений и данных, нужных для решения задачи;

е) решение задачи на компьютере и применение полу­ ченного результата на практике.

Контрольные вопросы и задания 1. В чем сходство и отличия между программой и алгоритмом?

2. Перечислите свойства алгоритмов, выполняемых на компьютере.

3. Какие способы описания алгоритмов вы знаете?

4. Какими могут быть этапы решения задач на компьютере?

5. Перечислите виды блоков в схеме алгоритма, их изображения и связи.

6. Что вы знаете о линейных, разветвляющихся и циклических алгоритмах?

7. Назовите итерационные циклы и их особенности.

Упражнения 1. Заданы три натуральных числа. Вывести "нет", если среди чисел нет равных;

"да", если есть одна пара равных, и "все равны", если все числа равны.

2. Известны стороны двух треугольников а, Ь, с и d, e, f. Определите, какой треугольник (первый или второй) имеет большую площадь.

3. Заданы три положительных числа а, Ь и с. Определите, являются ли они последовательно стоящими элементами арифметической или геометрической прогрессии. Если да, то напечатайте значение разности (знаменателя) прогрессии.

4. Заданы три стороны треугольника х, у и г. Определите, является ли треугольник прямоугольным. Если да, то напечатайте, какая сторона служит гипотенузой.

5. Заданы длины а,Ь, с и d четырех отрезков прямой. Проверьте, могут ли отрезки быть сторонами квадрата, прямоугольника.

Г л а в а 2. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ В 1968—1971 гг. швейцарский профессор Никлаус Вирт пред­ ложил язык Паскаль в качестве удобного учебного языка про­ граммирования. Стандарт этого языка был утвержден позже, он считался более совершенным и удобным для работы, чем широко распространенные в то время языки продраммирования АЛГОЛ, Фортран, Бейсик. Язык Паскаль благодаря своей простоте и эффективности получил быстрое распространение в мире.

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

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

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

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

2.1. ОСНОВНЫЕ ЭЛЕМЕНТЫ ЯЗЫКА ПАСКАЛЬ

Программы предназначены для решения задач и определенной проблемы. В процессе решения задач необходимые начальные сведения вводятся в память компьютера, указываются способы их обработки и описывается, с помощью какого устройства и в каком виде осуществляется вывод результата. Программа состоит из отдельных строк. Их набор и исправление осуществляются через специальный текстовой редактор. В одной строке можно писать несколько операторов, они разделяются между собой зна­ ком ";", но желательно писать по одному оператору, так как это удобно для чтения и можно легко исправлять ошибки. Программа на языке Паскаль состоит из трех разделов: заголовка, раздела описания и раздела операторов. Первая строка любой программы начинается с заголовка PROGRAM. Затем пишется раздел описа­ ния внутренних объектов программы. Этот раздел помогает пред­ варительно выделить общие свойства таких объектов, как пере­ менные и постоянные. В зависимости от сложности программы Program BASTAU:

Раздел описания основной частью программы на Паскале begin Раздел операторов Рис. 2.1. Структура строках, и заканчивается ключевым словом программ на языке Паскаль e n ( j Структуру программы можно изо­ В разделе операторов команды располагаются по порядку.

Некоторые из них выполняются в зависимости от условия, а некоторые — в виде цикла или вспомогательной программы (под­ программа, процедура). Рассмотрим основные действия, выполняемые в разделе операторов.

Данные — это постоянные (константы), переменные и другие подобные структуры или их адреса, которые принимают числовые значения и последовательность символов в виде текста и т.д.

Ввод данных — осуществляет ввод начальных данных с клавиатуры, с дисков или с портов ввода и вывода.

Операции — выполняет операции присвоения, обработки, сравнения вычисленных и заданных значений.

Получение результата (вывод) — производит запись промежу­ точных или заключительных результатов на диск или выводит их на экран и порты ввода-вывода.

Условное выполнение—в зависимости от выполнения указанного определенного условия (истинно) выполняется определенная серия команд.

Цикл—если вьшолняются определенные условия (иногда, если не выполняются), то указанное множество команд многократно по­ вторяется. Количество повторений задается с помощью целого числа.

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

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

П р и м е р 1.Требуется найти длину окружности радиусом г= 5,5.

Для определения длины окружности воспользуемся формулой I = 2пг.

Program dlina; {заголовок программы} const pi:=3.14159; {задание значения var r, I: real; {описание значений переменных г, I Й=2*р1*г;{вычисление длины окружности} write ('длина окружности радиуса 5,5 см =', I);

end. {конец программы} Здесь ключевые слова программы написаны жирным шрифтом, справа в фигурных скобках — текст комментариев. Комментарии к тексту на программу не влияют, они облегчают понимание, поэтому каждая программа дополняется комментариями.

Конечно, длину окружности можно быстро подсчитать и без помощи этой программы. Но если нужно будет вычислить длину 200—300 окружностей, то программа на компьютере является эффективной и быстро дает результаты. Для этого необходимо внести в программу коррективы.

Для составления программы решения сложных задач следует сначала научиться решать простые задачи. Чтобы написать программу без ошибок, нужно сначала изобразить алгоритм решения задачи в виде блок-схемы или на алгоритмическом языке (с помощью естественного языка). Словарный элемент программы составлен на английском языке. Его можно перевести на русский язык. С алгоритмическим языком поступили именно так, но во всех странах ключевые слова используются без перевода, на английском языке их немного (60—70 слов), выучить их наизусть не составляет труда. Их можно считать своим начальным словарным запасом при изучении английского языка. Они приведены в приложениях.

Теперь изучим фундаментальные понятия языка про­ граммирования.

Алфавит языка состоит из множества символов, используемых при составлении элементов программы. К ним относятся буквы, цифры и специальные знаки (символы). В зависимости от особенности языка символы условно можно разделить на следующие группы:

— имена (идентификатор);

— цифры;

— разделительные знаки;

— специальные символы.

В качестве имен применяются 26 букв латинского алфавита и арабские цифры.

а) В качестве букв используются следующие прописные и строчные буквы латинского алфавита:

ABCDEFGH IJKLMNOPQRSTU VWXY Z

и знак подчеркивания (_). Прописные и строчные буквы считаются равнозначными, например X и х не различаются, считаются именем одной переменной; точно так же ALFA1, aLfAl и alfal означают имя одной переменной. В имени можно использовать цифры, но начинаться оно должно только с буквы, например VES1, D L I N A 2, Rost_5, cena7, T7S25, ART25var8 и т.д.

Символы из национальных букв (русские, казахские, арабские и т.д.) в качестве имени не применяются. Их можно использовать в комментариях как значения символьных переменных или символьных постоянных величин, взятых в апострофы ( " ).

б) Десятичные цифры: 0, 1, 2, 3, 4, 5, 6, 7,8, 9.

Шестнадцатиричные цифры состоят из десятичных цифр и шести латинских букв от А до F.

К специальным символам относятся знаки пунктуации и арифметических операций.

в) Знаки арифметических операций:

DIV — целая часть от деления, например, результат 10 div равен 3;

MOD — остаток от деления, например, результат 10 mod равен 1;

знаки логических операций:

AND —И (логическое умножение);

OR —ИЛИ (логическое сложение);

NOT —НЕ (отрицание);

XOR — арифметическая операция ИЛИ;

SHL — сдвиг последовательности битов влево;

SHR — сдвиг последовательности битов вправо.

г) К разделительным знакам относятся пробел, все управляющие символы, знак клавиши ENTER и комментарий. Разделительные знаки употребляются для отделения друг от друга чисел, имен, ключевых слов. Комментарии (пояснения) отделяются от текста программы фигурными скобками { и } или скобками со звездочками (* и *).

Комментарии могут располагаться на одной или нескольких строках.

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

Итак, разделительные знаки:

пробел,, (запятая),. (точка),: (двоеточие),; (точка с запятой), ' (апостроф), (,), [, ], {, }.

Функции знаков пунктуации, состоящих из этих символов, изображены в табл. 2.1.

{и} или (*и*) Для комментариев.

'(апостроф) Знаки разделения выражения и списка параметров.

— Знак присваивания значения переменным или ; Знак для метки операторов и разделения объектов = Знак сравнения и указания значения констант.

Обозначение конца программы, знак разделения Обозначение адресов переменных, констант указанных Указание знака шестнадцатиричного числа или д) Знака отношения, или равнения:

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

Символьные величины могут принимать в качестве значения только один символ, взятый в апострофы, например 'R', 'Л','%' и т.д. Здесь можно использовать в качестве значения коды символьных величин.

Простые типы данных являются стандартными. Все стандарт­ ные типы, кроме real, называются упорядоченными, они упорядочены согласно их коду, числа — согласно их возрастанию.

Стандартные типы. Как показано на схеме, в Паскале исполь­ зуются следующие типы:

— целые типы - SHORTINT, INTEGER, LONGINT, BYTE, WORD;

— вещественные типы — REAL, SINGLE, DOUBLE, EXTENDED, COMP;

— логический — BOOLEAN;

— символьный — CHAR;

— перечисляемый тип;

— ограниченный тип.

Типы целых величин. На языке Паскаль для целых величин определены пять стандартных типов, ниже приводится их описание (табл. 2.5).

Типы вещественных величин. Десятичные числа записываются с фиксированной и плавающей запятой. Форма записи десятичных чисел с фиксированной запятой пишется, как обычно в математике, но вместо запятой ставится точка. Например: 25.48; -127.25; 0.67;

-8.0. Десятичные числа с плавающей запятой записываются в экспоненциальной форме, с указанием показателя степени, например:

-1.25Е+12 (1.25П0 12 ), 1.3Е-5 (1.3*10 5 ) и т.д.

Приведем таблицу диапазона вещественных чисел (табл. 2.6).

Величины логического типа (BOOLEAN) принимают только два значения — TRUE (истина) и FALSE (ложь). Для величин логического типа в памяти компьютера отводится один байт.

Величины символьного типа (CHAR) в качестве значения могут принимать только один знак. Для указания того, что принимаемое значение относится к символьному типу, знак берется в апострофы, например: 'а',Ъ','5', '*' и т.д. Величины строкового типа (STRING) в качестве значения могут принимать последовательность символов, взятую в апострофы. Например:

'компьютер', 'университет', 'main',' #&*' и т.д.

Перечисляемые типы не относятся к стандартным. Пере­ числяемый тип состоит из списка идентификаторов, соответствую­ щих значениям параметров. Имена различаются между собой запятыми и берутся в круглые скобки. В общем виде перечисляемые величины можно описать следующим образом: имя = (идентификатор-1, идентификатор-2,..., идентификатор-/!).

Идентификаторы нумеруются целыми числами начиная с нуля, согласно их расположению.

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

Dni_nedeli= 1..7; Dnimesiatsa = 1..31.

Величины этого типа могут принимать любое значение или любую часть из этого интервала.

В языке Турбо Паскаль заранее написанные программы вычисления часто применяемых математических и других функций собраны в виде внутреннего модуля и записаны в стандартной библиотеке под названием System. Их можно использовать в нуж­ ные моменты как стандартные функции и процедуры. Стандарт­ ные функции используются для вычисления часто встречающихся математических и других функций. В записи стандартных функ­ ций нужно обязательно привести имя функции и указать в скобках аргументы функций. Стандартные функции: abs(*) — абсо­ лютное значение величины x;sqr(x) — квадрат числа х; sin(#), cos(*), ехр(лг), ln(#), sqrt(#) — квадратный корень числа x',mi(x) —целое от числа ж; pi (3.14159) и т.д. Некоторые стандартные функции при­ ведены в табл. 2.7. При вычислении функций нужно учитывать, что не всегда совпадают типы аргумента и функций.

Теперь рассмотрим функции, часто применяемые в программах.

1. Арифметические функции. В арифметических функциях используются целые и действительные величины. Они приведены в табл. 2.7.

Матема­ Запись на языке тическая запись 2. Функции изменения типов. Эти функции применяются для изменения типов функций, например для перевода вещественного числа в целое, последовательности символов в виде цифр в целые числа и т.д. Приведем некоторые из них:

Chr(x) — переводит число х (код) в символы. Здесь тип аргумен­ та должен быть целым числом в интервале (0... 255).

Uigh(x) — максимум величины х. Например, если величина задана в виде множества, то эта функция выдает наибольшее значение индекса. Если величина является последовательностью символов, то функция выдает размерность строки.

LOW(JC) — вычисляет минимум величины х.

Ord(x) — определяет порядковый номер символа в наборе символов, переводит перечисляемый тип в целый, например аргу­ мент в ограниченном типе (логический, символьный, перечисля­ емый), тогда результат получится типа Longint A.

Round(x) — вещественное число округляется до целого.

Trunc(x) — целая часть вещественного числа.

3. Функции, применяемые к упорядоченным типам. Эти функции применяются для величин ограниченного типа, например определение предыдущего или последующего элемента для заданного элемента. Ниже приведены некоторые из этих функций:

Odd(x) — проверка числовой величины х на четность. Здесь, если аргумент типа longint, а число является нечетным, то результат будет true (истина); если будет четным, то результат функции — false (ложь).

Pred(x) — нахождение предшествующего элемента х в списке упорядоченных значений.

Succ(x) — нахождение последующего элемента х в списке упорядоченных значений.

Если эту функцию применить к последнему элементу, то выдается сообщение об ошибке. Рассмотрим более подробно применение функции двух последовательных групп.

Операции, применяемые к стандартным типам.

Типы целых величин. Имена (идентификаторы), принимающие значения целого типа, описываются следующим образом: Имя 1, Имя 2,..., Имя п: тип; здесь вместо типа используется одно из ключевых слов, описывающее целый тип. Например: integer, byte,...

К целому типу применяются следующие операции: +, -, *, /, div, mod. В табл. 2.8 приведены эти операции и типы их операндов и результаты.

Операции сложения, вычитания, умножения, деления вы­ полняются как в математике. Приведем примеры к последним Двум операциям:

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

abs(x)— абсолютное значение целого числа х;

sqr(x) — квадрат целого числа х;

trunc(x) — целая часть вещественного числа х (результат не округляется), например trunc(52.9) = 52;

round(x) — округляет вещественное число х до целого, например:

round(a:) = trunc(jc+ 0.5), х > = 0; например: х= 3,7, round(x) = round(x) = trunc(x- 0.5), х< = 0; например: д^-3,7, round(x) = - Pred(x) — дает целое число, предшествующее х, например pred(5)=4.

Succ(x) — дает следующее за х целое число, например succ(5)=6.

Применение к целым числам операций not, or, shl, chr, and, xor является операциями над битами.

Операция SHL. Эта операция сдвигает число, написанное в двоичном коде, на указанное число разрядов влево, например 128 shl 3 = 1024, так как 0000000010000000 = 0000010000000000.

Операция SHR сдвигает число, написанное в двоичном коде, на указанное число разрядов вправо, например:

1024 shr3 = 128(0000010000000000 = 0000000010000000).

Вещественный тип. Имена (идентификаторы), принимающие значения целого типа, описываются следующим образом. Имя 1, Имя 2,..., Имя п: тип. Здесь вместо типа используется одно из ключевых слов, описывающее целый тип, например real, single. Как отмечено выше, для величин этого типа в памяти отводится по и 4 байта соответственно. Если значение данных превышает верхнюю границу, тогда выдается сообщение об ошибке и выполнение программы прекращается. Если значение данных ока­ жется ниже нижней допустимой границы, то переменной присва­ ивается значение "ноль" (0) и выполнение программы продол­ жается. К величинам вещественного типа применяются обычные арифметические операции: (+) — сложение, (-) — вычитание, (*) — умножение, (/) — деление. В этих операциях операнды могут быть целыми числами, однако результат всегда является вещественным числом, например 5/2 = 2,5; 12/6 = 2,0.

Следующие стандартные функции дают только вещественное значение: sin(a:), COS(JC), arctan(^), 1п(дс), exp(jc), sqrt(#). Если число х является вещественным, то результаты функций abs(je) и sqr(«) также будут выражаться вещественными числами.

Логический тип. Величины этого типа описываются следующим образом:

имя 1, имя 2,..., имя п: boolean.

Величины этого типа могут принимать только одно из двух значений: true( истина) или false (ложь). К величинам логического типа применяются следующие операции:

and — (и), or — (или), not — (нет), хог — (исключающее ИЛИ).

Операция OR (ИЛИ) выполняет логическое сложение операндов в двоичной форме в соответствии с таблицей истинности:

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

Операция XOR (исключающее ИЛИ) выполняет сложение операндов в двоичной форме в соответствии с таблицей истинности:

Результат преобразовывается в десятичную форму счисления.

Операция NOT. При применении этой операции каждый бит меняется на обратный, т.е. 1 заменяется на 0, а 0 —на 1, например в десятичном коде not 12 = - 1 3, а в соответствующем двоичном коде not 0000000000000110 = 1111111111111001.

15 or 12 = 15 (1111 or 1100 = 1111) not true = false not false = true 15 xor 12 = 3 (1111 xor 1100 = 0011).

Операция AND (И) производит логическое умножение операндов |чисел) в соответствии со следующей таблицей истинности:

Операнды записываются в десятичной форме, но во время выполнения переводятся в двоичную форму. Результат представляется в десятичной форме.

К логическим величинам применяется только одна стандарт­ ная функция odd(x). Если х — четное число, то ее значение — true;

если х — нечетное число, то ее значение — false.

Символьный тип. Величины символьного типа описываются следующим образом:

имя 1, имя 2,..., имя п: char.

Как сказано выше, значения символьных величин берутся в апострофы. Символьные переменные и их значения в арифмети­ ческих выражениях использовать нельзя. У каждого символа имеет­ ся порядковый номер согласно их коду ASCII, он возрастает в порядке расположения, например 0,1,..., 9, А, В, С,..., Z, а, Ь, с,..,2,....

К символьным величинам можно применить операции отношения: <,, >, >=. При выполнении этих операций сравниваются не сами символы, а их соответствующие коды (номера). К символьным величинам применяются следующие стандартные функции:

ord(x) — дает порядковый номер (код) символа х, например ord('?')=63, ord('5')=53;

chr(x) — дает символ, соответствующий порядковому номеру х, например chr(53) = 5, chr(73) = 1.

Pred(x) — дает символ, предшествующий символу х, например pred('M') = Ъ';

Suce(x) — дает символ, следующий за х, например Succ('M')= 'N'.

Вышеприведенные стандартные функции позволяют автомати­ чески получить значение символьных величин.

2.8. ВЫРАЖЕНИЯ И СПОСОБЫ ЗАПИСИ ВЫРАЖЕНИЙ

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

Последовательность выполнения арифметических операций в выражении определяется их порядком расположения. В случае необходимости для изменения порядка их вьшолнения используются скобки. В простейшем случае выражение мР ж е т состоять только из переменных, постоянных и функций. Например (5 + 7**)/1.8, (sin(x) + 5*cos(2 + x))/\n(x) и т.д.

Ниже приводятся примеры записей выражения в математике и на языке программирования:

аь-> ехр(&* 1п(а)); Vl+V*-> sqrt(l + sqrt(*));

а» ехр (1п(а)*ехр ((* + 1)*1п(Ь))).

В алгоритмических языках (Паскаль, Бейсик, Си и т.д.) арифметические операции выполняются ка к в математике, т.е.

сначала осуществляются операции, заключенные в скобки, затем умножение, деление, сложение, вычитание и Т-Д- Ниже приводится тадядок. выполнения, ^аапинных. атхе^ввдай. (табл. 2.10), 3. Напишите следующие выражения на языке Паскаль:

3.4.2. Оператор перехода. Оператор перехода, или оператор условного перехода, позволяет выполнить помеченный оператор, нарушая естественный порядок вьшолнения в программе. Этот оператор начинается с ключевого слова GOTO с указанием метки, описанной в разделе LABEL. Формат оператора перехода:

здесь — одна из меток, описанных в разделе LABEL.

Как отмечено выше, в программе метка от помечаемого опера­ тора разделяется двоеточием. Например, если задана в разделе описания меток последовательность: LABEL 20, SUM, тогда в операторе GOTO можно использовать только эти метки. Например:

GOTO 20;

GOTO SUM;

В общем случае по правилу структурированного программи­ рования желательно избегать использования оператора безусловМетка Рис. 3.5. Синтаксическая диаграмма оператора перехода ного перехода. Он затрудняет чтение и понимание текста про­ граммы. Советуем придерживаться следующих правил.

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

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

3.4.3. Пустой оператор. Пустой оператор указывает, что ника­ кое действие не выполняется. Он позволяет, не выходя из блока, опустить несколько строк без выполнения и перейти к концу блока. В таком случае перед словом end пишется метка с двоето­ чием, например:

goto znak; {переход к концу блока} znak: end; {метка пустого оператора} Иногда пустой оператор состоит из слов begin, end или из ничего не меняющего выражения, например:

10: BEGIN END; {здесь 10 является меткой} Пустой оператор не выполняет никаких действий. Он исполь­ зуется для обозначения отсутствия оператора. Обычно вместо пустого оператора можно ставить знак ";". Например:

Здесь на второй строке приведен пример пустого оператора.

3.4.4. Процедура ввода числовых значений. Для присваи­ вания заданных значений переменной можно использовать опера­ тор присваивания. Например, А:= - 1 5 ; ВЕС:= 16.4; и т.д. Однако в этом случае в программе не соблюдается свойство массовости, и вычисление производится для указанных значений величин, а для других значений программа может не дать правильных результатов. Чтобы программа была универсальной и работала правильно, нужно писать переменные с изменяющимися значени­ ями и осуществлять ввод их значений с клавиатуры. У нас появляется возможность проверить программу для любых значе­ ний переменных.

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

Заданные значения программа получает из файла Input и записы­ вает полученный результат в файл Output. Стандартными файла­ ми ввода считается клавиатура, а вывода — экран дисплея. Для этого применяется процедура ввода и вывода: READ, READLN, WRITE, WRITELN.

На языке Паскаль формат процедуры ввода READ (READ — по-английски "читать") записывается следующим образом:

READ(al, а2,..., an);

READLN(al, a2,..., an);

READLN;

здесь al, a2,.... an — имена переменных, их называют параметрами процедуры ввода. Первый оператор после ввода значений переменных через пробелы не переводит курсор на следующую строку. А процедура readln (read line — "читать строку") после ввода значения данных переводит курсор на следующую строку.

Процедура readln без параметра переводит курсор на следующую строку без ввода данных.

Значение вводимых данных может быть одним из следующих типов: integer, real, char или string. Значения логических перемен­ ных не вводятся, значения переменных вводятся, согласно правилу языка Паскаль, соответственно своему типу. Если нарушено это условие (например, если ol типа integer, а вводится значение типа char), то выводится сообщение об ошибке ввода-вывода следующе­ го формата:

I/O error XX, здесь XX — код ошибки.

При выполнении процедуры READ параметры принимают соот­ ветствующие значения. Это обязательство осуществляется через файлы ввода INPUT. При получении параметрами новых значений их старые значения стираются. Вместо них пишутся новые значе­ ния. Программа работает с новыми значениями параметров.

Например:

J: integer;

К: char;

begin Read (/, J, K);

В программу вводятся начальные значения: 212.5 38 'п\ Затем следующие значения: 'л' 121.35 25.

В первом варианте ввод данных работает правильно, так как введенные значения соответствуют типу (/, J, К). Во втором случае выдается сообщение ошибки кода 10, так как переменной / типа real вводится значение типа char.

Если ввод осуществляется не через клавиатуру, а с диска или с файла, тогда в скобках сначала пишется имя файла:

READ (FN, al, a2,..., an);

READLN (FN, al, al,..., an);

READLN (FN);

здесь FN — имя файла на диске, где записаны вводимые значения;

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

При вводе значений в файл значения данных вводятся через пробелы.

В конце ввода нужно нажать клавишу Enter.

Процедуру READ можно применять для ввода чисел, символь­ ных данных и строковых данных. Числовые значения параметров отделяются друг от друга знаком пробела. После окончания ввода данных нужно нажать клавишу Enter. Например, если оператор ввода задан в виде READ (А, В, С), тогда параметрам задаются следующие значения: 5_6.2_4.5 Enter. В таком случае А = 5, В = 6.2, С = 4.5. После выполнения программы с этими значениями параметров для выполнения программы с другими значениями нужно выполнить программу сначала.

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

Если переменная описана в виде действительной, то можно при­ своить в качестве значений и целые, и действительные значения.

Например:

BEGIN Если для переменных А, В выполнить действие ввода 4 5 Enter, тогда машиной это воспринимается как А = 4.0, В = 5.0.

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

При вводе значений для перехода в новую строку нужно применить READLN;, READLN (al, a2...,an) с параметром или без параметра. Вместо двух операторов READ (al, a2> —, an), READLN можно использовать один оператор READLN (al, а2..., are).

3.4.5. Процедура вывода. Для вьшода результата на экран применяется процедура вьшода WRITE (писать). Иногда он назы­ вается оператором вывода:

здесь в скобках — простые переменные или заключенная в апострофы строка символов. Например, если В =* 17,15 и выполня ется команда:

WRITE ('значение В =', В);

то на экран выводится:

значение В = 1.715Е+01.

Вид выводимых данных определяется типом переменных. Для вьшода можно использовать переменные типов integer, real, boolean (true, false), char, string. Выводимые параметры отделяются друг от друга запятой и пишутся после ключевого слова WRITE в круглых скобках.

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

Например, вывод значения переменной Ъ в виде целого числа осуществляется через оператор:

WRITE (b :re)или WRITE ф : 5).

Здесь Ъ — имя переменной; п — количество позиций для вьшода числа Ъ в виде целой константы.

Если задан формат Ъ: 5, а Ь = 56, тогда в результате выполнения оператора WRITE (b : 5) на экран выводится " 56", слева от числа 5 — три пробела.

Для действительных чисел нужно указать количество пози­ ций дробной части, поэтому после имени переменной через знак двоеточия пишутся два целых числа. Первое число — количество мест для числа в целом, второе число указывает количество мест дробной части числа. В операторе WRITE (Y:5:2) для перемен­ ной Y отводятся в целом 5 позиций, в дробной части — 2 позиции.

Например, если С = -145.7865, то оператор WRITE (C:8:3) выводит на экран число в виде -145.786, а так как для дробной части отводятся всего три позиции, то последняя цифра 5 не выводится на экран. Чтобы вывести на экран полные значения числа С, нужно задать оператор вывода в следующем виде: WRITE (C:9:4).

Общий вид оператора вывода на экран:

здесь п — количество позиций для числа С; т — количество пози­ ций для дробной части числа. Учитывая позицию знака числа и запятой (точки), можно сказать, что здесь должно быть п > т + 2.

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

Число 4 показывает количество пробелов между числами b и с.

Если число задано форматом: WRITE ('У = ', У : 8 : 3), тогда при У = 1.76, на экран выводится У = 1,760. Если в операторе не указан формат, то на экран выводится столько позиций, сколько позиций содержится в результате или число выводится в экспоненциальном виде.

На языке Паскаль оператор вывода WRITELN без параметра применяется для перехода в новую строку. Если применяется оператор WRITELN (al, a2..., an), тогда после вывода значений (al, a2..., an) на экран курсор переходит в следующую строку.

Оператор WRITE можно применить для вывода пояснений и комментариев. Например:

WRITE ('введите значения А, В, С);

READ (А, В, С);

Здесь на экран выводится сообщение:

введите значения А, В, С.

После этого сообщения нужно ввести значение трех чисел.

Например:

Здесь после вывода значения N через 4 пробела выводится значение М.

Пусть X = 7, У = 15, Z = 11, R = 450,08.

Рассмотрим различные способы вывода их значений на экран (табл. 3.2).

Write (X, У);

Write ('конец');

Например:

PROGRAM Al(input, output);

VARx,y,z: string[10];

BEGIN z: = 'jan';

b : = 23.456789;

ra.: 1444;

WRITELN(x:2,y:2,z:5,a:6:2,b:ll:6,m:6,n:6);

END.

В результате работы этой программы будет выведена строка следующего вида: f_j_ _jan_23.50_ _23.456789_ _1444_ _6785.

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

Слова (input, output) в заголовке программы показывают, что данные вводятся с клавиатуры, результат выводится на экран.

Хотя в стандарте языка Паскаль их запись в программе обяза­ тельна, в Турбо Паскаль разрешено их опустить, поэтому в дальнейшем в примерах мы писать их не будем.

П р и м е р 1. Нужно составить программу вычисления длины объема окружности с радиусом г.

Блок-схема этого примера показана на рис. 3.6, а программа выглядит следующим образом:

PROGRAM Bl(INPUT,OUTPUT) ;

{Вычисление длины окружности} Рис. 3.6. Блок-схема вычисления объема введите значение радиуса — г : 0. результат:

длина окружности радиуса — г, L= 1. На языке Паскаль нет операции возведв1п1я в степень, поэтому возведение в степень вьшолняется с помощыо отдельной программы или с помощью записи выражения exp^ln^)), которое означает х".

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

а:= ехр(я*1п(1 + х)); y:=(s*x*a)/(15*a - 1).

Ha алгоритмическом языке (и на язы^ е Бейсик) определена операция возведения в степень, которая обозначается знаком '.

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

П р и м е р 2. Нужно составить программу нахождения остатка деления целочисленного числа k на п и значения вычисления выражений у = -Jx, г = sin(x + к*(у/2)).

PROGRAM B2(INPUT,OUTPUT) ;

{Вычисление остатка от деления и значения х под корнем} const pi = 3.14159;

г, х : real; {r,x - любые смешанна числа} у : real; (у - результат подкорен^ ого выражения} k, n : integer; {к - делимое, п - делитель} s : integer; {s - остаток} Begin writeln('Здравствуйте ! ' ) ;

write('Введите числа:х - любое поло% ите льное, {х - любое положительное число, к,п - делитель и Делимое} readln(x, к, п ) ; {ввод значений х, к, п } у:= sqrt(х); {вычисление у} r:= sin(x+pi*y/2); {вычисление г} s:= к mod n; {вычисление остатка s 0 т деления к на п} writeln; {переход к следующей строке} writeln('у =', у:6:2); {вывод у} writeln('г =', г:6:2); {вывод г} writeln('s =', s:3); {вывод s} writeln('До свидания!'} readln {задержка экрана пользователя до нажаФия Enter} END.

П р и м е р 3. Составить программу вычисления объема и пло­ щади полной поверхности цилиндра с высотой h, с радиусом основания R.

Площадь полной поверхности цилиндра определяется следую­ щей формулой:

Программа:

PROGRAM SI (INPUT,OUTPUT);

{Вычисление полной поверхности прямого цилиндра} const p = 3.14159;

Begin S:.= 2*p*R* (R+h) ; {вычисление полной поверхности цилиндра} w r i t e l n ( ' п о л н а я поверхность цилиндра при (R=2.5, h = 4. 7 ), END.

П р и м е р 4. Составьте программу для определения произведе­ ния цифр заданного четырехразрядного числа.

{Вычисление произведения цифр ч е т ы р е х р а з р я д н о г о числа} :gin readln(x);

d:= x div 10; {определение младшего разряда числа х:= d; {определение старших 3-х разрядов числа х - целочисленным делением x-d на 10} d:= х div 10;

х:= d; {определение старших 2-х разрядов числа х - целочисленным делением x-d на 10} d:.= х div 10; {определение следующего разряда числа х - остатка от деления старших 2-х разрядов х на 10} р:= р*(x-d*10);

p:=p*d;{умножаем цифру следующего р а з р ) я д а н а произведение 2-х младших р а з р я д о в х} END.

З а м е ч а н и е. Блок-схемы примеров 2, 3» 4 похожи на блоксхему примера 1.

Контрольные вопросы и задания 1.Что такое оператор? На какие группы делятся о п е Р а т о Р Ы 2.Какова функция оператора присваивания?

З. Д л я чего нужен оператор перехода?

4. Что такое пустой оператор?

5.Как организуется составной оператор?

6. Какие процедуры применяются и какие существу1 о т способы их записи для 7.Назовите способы вывода результата на экран.

8. Какую роль выполняют процедуры ввода, в ы в о ^ " параметров?

9. Как выводится на экран последовательность сло^ в качестве пояснения/ 10. Как можно указать длину чисел и количество п р С " е л о в П Р И в в ° Д е и выводе?

1 1. Зачем нужно пропускать пустые строки?

12.Каковы основные функции операторов ввода и в ы в о д а / 13. Могут ли иметь параметры оператор ввода к о й с т а н т ' 14. Существуют ли ограничения количества параметр 0 8 в операторах ввода и 1 5. К а к пишется комментарий программы?

Упражнения 1. Запишите программу ввода значений следующих переменных:

2. Какая информация появится на экране при выво^ е з н а ч е н и и (*. х + \)h есяв 3. Определите ошибки следующих операторов в ы в о ^ н а я з ы к е Паскаль:

в) WRITE (У1, У2); е) WRITE (А, В/ЮСоставьте программу для вычисления значений следующих выражении:

Рис. 3.10. Синтаксическая диаграмма условного оператора (IF читается —иф, THEN — зен, ELSE —эле). Здесь операторы и и серии могут быть простыми или составными.

Сначала вычисляется выражение, заданное в виде условия пос­ ле слова IF, его результат является логическим типом (boolean — "булевый"). Если значение условия TRUE (истина), т.е. условие выполняется, тогда выполняетежоператор 1> (серия 1), а (серия 2), расположенный после слова ELSE, не вьшолняется. Во втором случае, когда значение вьфажения FALSE (ложь), т.е. условие не соблюдается, то вьшолняется (серия 2), а (серия 1) не вьшолняется.

Оператор If может выполняться во вложенном друг в друга виде.

Обычно для записи условия часто применяются операции от­ ношения, соединенные с помощью знаков: =, >,>=, abs(i/) 14. Напишите программу для вычисления значений следующих функций с помощью способов программирования многоветвленных алгоритмов:

Очень часто приходится повторять определенную часть алгорит­ ма для различных значений аргумента. Для организации таких процессов используются алгоритмы с циклической структурой. На языке программирования — операторы повторения. Они составля­ ются по правилам на основе различных закономерностей. Для вьшолнения процессов повторения на язьше Паскаль предусмотрены три вида операторов цикла: арифметический цикл — FOR, цикл с предусловием — WHILE и цикл с постусловием — REPEAT. Если заранее не известно количество повторений оператора (или состав­ ного оператора) и задано только условие повторения, то применя­ ются операторы WHILE, REPEAT. Оператор FOR применяется, если заранее известно количество повторений цикла.

Оператор WHILE. Оператор WHILE осуществляет повторение по предварительной проверке условий, а также с помощью ключевых слов WHILE (переводится —"пока", читается — "уайл") и DO (переводится — "выполнить", читается — "ду"). Его синтакси­ ческая диаграмма изображена на рис. 3.18.

Рис. 3.18. Синтаксическая диаграмма оператора WHILE Формат его записи:

WHILE < условие повторения > DO < тело цикла>;

Здесь условие повторения — логическое выражение, показанное в диаграмме, тело цикла — простой или составной оператор, который выполняется с повторением. Перед каждым повторением тела цикла вычисляется значение условия повторения. Если его значение истинно — true, то тело цикла выполняется, затем снова повторя­ ется условие цикла. Если значение условия ложь — false, то прекращается выполнение тела цикла, а управление передается оператору, расположенному после оператора While.

Выполнение оператора Whne легко можно изобразить с помо­ щью следующей блок-схемы (рис. 3.19). Здесь вместо тела цикла может стоять составной оператор. На языке Паскаль составной оператор располагается внутри операторных скобок BEGIN и END. Поэтому можно представить формат записи оператора WHILE в следующем виде:

З а м е ч а н и е. Если условие при первой проверке окажется лож­ ным, то цикл не выполняется. Приведем примеры оператора While.

П р и м е р 1. Нужно наштсаль программу Д^я в х о ж д е н и я сум­ мы любых десяти чисел, вводимых с клавиатуры.

begin sum := 0;{присваивается начальное значение сумме, равной 0} write('введите:',count, '-oe очередного числа с клавиатуры} чисел = ', sum) end.

В этом примере постоянная вели­ чина limit в разделе описания выпол­ няет роль ограничения количества родимых чисел. Переменные count, Рис. 3.19. Блок-схема выполне­ в виде целого числа. В начале программы переменной count (счетчик), которая считает количество вводимых чисел с клавиатуры, присваивается значение 0, вводится 10 чисел, затем осуществляются подсчет вводимых чисел в счетчике и их сложение (суммирование).

Оператор While предварительно проверяет условие count4;

END.



Pages:     || 2 |


Похожие работы:

«ГОСУДАРСТВЕННАЯ ПРОГРАММА Российской Федерации Развитие лесного хозяйства на 2012 - 2020 годы ПАСПОРТ государственной программы Российской Федерации Развитие лесного хозяйства на 2012 - 2020 годы Ответственный - Федеральное агентство лесного хозяйства исполнитель Программы Подпрограммы Программы - Охрана лесов от пожаров; Защита лесов от вредных организмов и неблагоприятных факторов; Воспроизводство лесов; Обеспечение использования лесов, ведения государственного лесного реестра, а также...»

«1 Учреждение образования Белорусский государственный технологический университет УТВЕРЖДЕНА Ректором БГТУ профессором И.М. Жарским 22.03.2010 г. Регистрационный № УД-285/баз. ТЕПЛОТЕХНИЧЕСКИЕ УСТАНОВКИ И АГРЕГАТЫ ПРЕДПРИЯТИЙ ПРОИЗВОДСТВА СТЕКЛА Учебная программа для специальности 1-48 01 01 Химическая технология неорганических веществ, материалов и изделий специализаций 1-48 01 01 06 Технология стекла и ситаллов и 1-48 01 01 10 Технология эмалей и защитных покрытий УДК 666.1.04(073) ББК 35.41я...»

«Государственное бюджетное общеобразовательное учреждение средняя общеобразовательная школа с. Переволоки муниципального района Безенчукский Самарской области СПРАВКА о наличии учебной, учебно-методической литературы и иных библиотечно-информационных ресурсов и средств обеспечения образовательного процесса, необходимых для реализации заявленных к лицензированию образовательных программ Раздел 1. Наличие учебной и учебно-методической литературы по заявленным к лицензированию образовательным...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Уральский государственный университет путей сообщения (ФГБОУ ВПО УрГУПС) ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ 190401 Эксплуатация железных дорог _ (указывается код и наименование специальности) Организация перевозок и управление на транспорте (железнодорожном): – Магистральный транспорт – Грузовая и...»

«ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ ЦЕНТРАЛЬНОЕ ОКРУЖНОЕ УПРАВЛЕНИЕ ОБРАЗОВАНИЯ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СОШ № 1262 им. А.Н.ОСТРОВСКОГО Утверждаю Согласовано Директор ГОУ СОШ № 1262 Зам.директора ГОУ СОШ № 1262 им.А.Н.Островского им.А.Н.Островского _Г.А.Шурыгина _П.В.Кузьмин _ 2012 г. _ 2012г. ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА дополнительного образования детей Ускоренное обучение детей игре на гитаре Направленность - художественно-эстетическая Форма организации образовательной...»

«1 СОДЕРЖАНИЕ 1 ОБЩИЕ ПОЛОЖЕНИЯ 1.1 Основная профессиональная образовательная программа высшего образования (ОПОП ВО) бакалавриата, реализуемая вузом по направлению подготовки 050100.62 Педагогическое образование и профилю подготовки Русский язык. 1.2 Нормативные документы для разработки ОПОП бакалавриата по направлению подготовки 050100.62 Педагогическое образование. 1.3 Общая характеристика вузовской ОПОП ВО бакалавриата 1.4 Требования к абитуриенту 2 ХАРАКТЕРИСТИКА ПРОФЕССИОНАЛЬНОЙ...»

«3 Пояснительная записка Современная иммунология как самостоятельная научная отрасль выдвинулась на одно из центральных мест среди медико-биологических дисциплин. Возросший интерес к проблемам иммунологии в последние десятилетия определяется рядом факторов. Одной из особенностей здоровья населения в настоящее время является существенный рост патологии, ассоциированной с нарушениями деятельности иммунной системы (иммунодефицитные состояния, аллергические заболевания, аутоиммунные, опухолевые...»

«КОМИТЕТ ПО КУЛЬТУРЕ И ИСКУССТВУ МУРМАНСКОЙ ОБЛАСТИ ПРИКАЗ 18 марта 2013 г. № 69 г. Мурманск О проведении международной научно-практической конференции Роль библиотек в обеспечении доступа к государственной и социально значимой информации В соответствии с Планом работы Комитета по культуре и искусству Мурманской области на 2013 год, в рамках реализации ведомственной целевой программы Библиотечное дело Мурманской области на 2012-2016 годы приказываю: 1. Провести с 15 по 18 апреля 2013 года на...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный аграрный университет имени Н.И. Вавилова СОГЛАСОВАНО УТВЕРЖДАЮ Заведующий кафедрой Декан факультета _ /Трушкин В.А./ /Камышова Г.Н./ _ 2013 г. _ _2013 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ (МОДУЛЯ) Дисциплина МАТЕМАТИКА Направление подготовки 110800.62 Агроинженерия Профиль подготовки / Технические системы в...»

«Федеральное агентство по образованию ГОУ ВПО Алтайский государственный университет Кафедра востоковедения Учебно-методический комплекс по дисциплине Экономика и экономическая география Китая Для направления/специальности регионоведение (код и наименование специальности по Классификатору специальностей высшего профессионального образования) Рассмотрено и утверждено на заседании кафедры от _ _ 200 г. Барнаул 2010 Федеральное агентство по образованию ГОУ ВПО Алтайский государственный университет...»

«1. Информация из ФГОС, относящаяся к дисциплине 1.1. Вид деятельности выпускника Дисциплина охватывает круг вопросов относящиеся к следующим видам деятельности выпускника: расчетно-экономическая, аналитическая, научно-исследовательская. 1.2. Задачи профессиональной деятельности выпускника В дисциплине рассматриваются указанные в ФГОС задачи профессиональной деятельности выпускника: 1. Расчетно-экономическая деятельность: подготовка исходных данных для проведения расчетов налоговой базы...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ РОСТОВСКАЯ ОБЛАСТЬ МУНИЦИПАЛЬНОЕ ОБРАЗОВАНИЕ ГОРОД ТАГАНРОГ АДМИНИСТРАЦИЯ ГОРОДА ТАГАНРОГА ПОСТАНОВЛЕНИЕ № 771 г. Таганрог 28.03.2014 Об утверждении отчета о ходе работ в 2013 году по долгосрочной целевой программе Развитие муниципальной службы в городе Таганроге на 2012-2014 годы В соответствии с постановлением Администрации города Таганрога от 20.08.2009 № 3789 О городских долгосрочных целевых программах и ведомственных целевых программах постановляю: 1. Утвердить отчет о...»

«Белорусский государственный университет УТВЕРЖДАЮ Декан* ФДО_ факультета В.М. Молофеев (подпись) (И.О.Фамилия) (дата утверждения) Регистрационный № УД-/р.** _ География (название дисциплины) Учебная программа для специальности***: _ _ (код специальности) (наименование специальности) _ _ (код специальности) (наименование специальности) Факультет _доуниверситетского образования_ (название факультета) Кафедра Учебный центр дополнительного образования_ (название кафедры) Курс (курсы) _ Семестр...»

«1 2 Пояснительная записка Рабочая программа по предмету Литературное чтение 4 класс создана на основе: • Федерального и регионального компонентов Государственного стандарта начального общего образования; • Примерной Программы начального общего образования. М., Просвещение, 2004 год; • Программы курса Литературное чтение под редакцией Климановой Л.Ф., Виноградской Л.А., Горецкого В.Г. М., Просвещение, 2009 год; • Инструктивно-методическое письмо по разработке учебных планов на 2014учебный год от...»

«Министерство образования и науки Российской Федерации Учебно-методическое объединение по профессионально-педагогическому образованию ФГБОУ ВПО Стерлитамакская государственная педагогическая академия им. Зайнаб Биишевой Рекомендовано И.о. ректора Кызыргулов И.Р. _201 г. Основная образовательная программа высшего профессионального образования Направление подготовки 051000 – Профессиональное обучение (по отраслям) Профиль подготовки – Экономика и управление Квалификация выпускника – бакалавр...»

«1. Цели учебной профильной практики Учебная профильная практика по гидрологии включает три последовательных этапа: гидрометрический, лимнологический и горный гидрологический. Гидрометрическая практика имеет целью закрепление теоретических основ учебного курса Гидрометрия и техника безопасности при работе на водных объектах и привитие студентам навыков самостоятельной работы на плавсредствах в условиях судоходной реки. Целями лимнологической практики являются обучение полевым лимнологическим...»

«Embarcadero® Delphi® XE5 — это простая в освоении среда разработки native-приложений для индивидуальных программистов и команд, которая помогает создавать приложения для Android и iOS и быстро загружать их в магазины приложений и предоставлять предприятиям. Создавайте приложения с помощью одной и той же базы исходного кода, не жертвуя качеством приложений, возможностями подключения или производительностью. Благодаря native-поддержке Android и iOS вы сможете выйти на крупнейшие из доступных...»

«Государственное образовательное учреждение высшего профессионального образования Московской области Международный университет природы, общества и человека Дубна (университет Дубна) ИСАУ кафедра системного анализа и управления УТВЕРЖДАЮ проректор по учебной работе С.В. Моржухина __20 г. Программа дисциплины Вычислительные системы, сети и телекоммуникации Направление подготовки 080500 Бизнес-информатика Профиль подготовки Электронный бизнес Квалификация (степень) выпускника Бакалавр Форма...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ Факультет управления Кудряков 2013 г. Рабочая программа дисциплины Управление государственной и муниципальной собственностью Направление подготовки 081100 Государственное и муниципальное управление Квалификация (степень) выпускника Бакалавр Форма обучения Очная, заочная Краснодар 1. Цели...»

«Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Председатель приёмной комиссии _Е.А. Ваганов 31 января 2014 г. ПРОГРАММА вступительного испытания в магистратуру в форме устного экзамена Направление 16.04.01 Техническая физика Магистерская программа 16.04.01.04 Физические основы создания информационных спутниковых систем Красноярск Содержание...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.