- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Пример 4
Написать структурную схему для вычисления значения величины L:
Решение
Структурная схема представлена на рисунке 18.
Рис. 18
Структурная схема к примеру 4
Пример 5
Написать структурную схему для вычисления значения величины V:
Решение
Структурная схема представлена на рисунке 19.
После проверки условия блока 3, если условие истинно, то переходим к блоку 5 (имеем первый случай), если ложно – к шестому (второй случай). После проверки условия блока 4, если условие истинно, то переходим к блоку 7 (имеем третий случай), если ложно – к восьмому (четвертый случай).
Рис. 19
Структурная схема к примеру 5
Задания
№10. Написать структурные схемы для вычисления значений функций при любых значениях аргументов:
а)
б)
в)
№11. Составить структурные схемы для вычисления величин:
№12. Дано L и X. Если L=1, то Х - радиус круга;
если L=2, то Х - диаметр круга.
Найти площадь круга. Считать, что исходные данные введены правильно, и переменной L соответствует значение 1 или 2 (другие значения переменная L принимать не будет).
№13. Комиссия отбирает студентов в колхоз и на Семикаракорский консервный завод (СКЗ) по следующему признаку:
если студенту нет 18 лет, он едет в колхоз;
если же есть 18 лет - на СКЗ.
Куда поедут первые 20 студентов, пришедшие на комиссию?
№14. Определить значения функции
y(x)=Sin x + 5,3
на интервале [0,1] (х[0,1]) с шагом 0,1.
По составленным структурным схемам легко написать программы практически на любом языке программирования. В следующей главе мы с Вами приступим к изучению языка программирования PASCAL и научимся составлять программы по написанным простейшим структурным схемам.
Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
Швейцарский ученый Никлаус Вирт совместно с сотрудниками Швейцарского федерального института технологии в Цюрихе в 1968 году разработал версию языка Pascal (стандарт языка появился только в 1982 г.), названного так в честь великого французского математика и механика Блеза Паскаля, создавшего в 1642 г. первую счетную машину.
Из многочисленных реализаций языка для разных машинных архитектур наиболее удачной и популярной оказалась разработка фирмы Borland International для персональных IBM – совместимых ЭВМ. Эта реализация языка получила название Turbo/Pascal (Турбо/Паскаль) и имеет несколько версий. Мы познакомимся с версией 7.0.
Turbo/Pascal представляет собой систему программирования, включающую в себя текстовый редактор, компилятор, компоновщик, загрузчик, отладчик, файловую систему, системную библиотеку, справочную систему. Все эти компоненты объединены в интегрированную среду с многооконным интерфейсом и развитой системой меню.
Алфавит языка включает следующие группы символов:
Заглавные и строчные латинские буквы и символ подчеркивания:
A, B, C, …, X, Y,Z, a, b, c, …, x, y, z, _
Арабские цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Специальные символы: + - * / = > < . , ; : @ ( ) [ ] { } # $ ^
ИЗ СИ++
Знаки нумерации и специальные символы: + - * / = > < . , ; : ? ! | ' \ ( ) [ ] { } # ~ & " % ^ Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций
Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка
Максимальная длина строки – 128 символов.
Для обозначения переменных, констант, типов, процедур и функций используются имена, называемые идентификаторами. Каждое имя представляет собой последовательность букв и цифр, а также знака подчеркивания, который приравнивается к букве. Имя обязательно начинается с буквы. при условии, что первой стоит буква или символ подчеркивания.
Длина идентификатора может быть произвольной, однако компилятор воспринимает только первые 63 символа.хотя значимыми являются.первые 32 в си
Компилятор не делает различия между прописными и строчными буквами. Следующие три идентификатора имеют один и тот же смысл:
Kati, KATI, kati
Идентификатор не должен совпадать с ключевыми словами, с зарезервированными словами и именами функций библиотеки компилятора языка С++.
Идентификатор создается на этапе объявления переменной, функции, структуры и т.п. после этого его можно использовать в последующих операторах разрабатываемой программы.
Ключевые слова - это зарезервированные идентификаторы, которые наделены определенным смыслом. Их можно использовать только в соответствии со значением, известным компилятору языка С++.
Комментарии представляют собой произвольную последовательность символов, заключенную в фигурные скобки {}. Вместо них могут использоваться пары символов (* *). Вложенность комментариев друг в друга допускается только для комментариев, заключенных в различные пары скобок.
Алгоритм решения задачи (на языке Pascal) состоит из двух частей: описания данных, которые должны быть обработаны программой, и описания действий, с помощью которых эта обработка осуществляется.
В программе выделяются заголовок и «тело» программы, называемое блоком. Блок отделяется от заголовка точкой с запятой, а вся программа оканчивается точкой. Заголовок программы может отсутствовать.
Блок состоит из шести разделов:
Раздел объявления меток (Label);
Раздел определения констант (Const);
Раздел определения типов (Type);
Раздел описания переменных (Var);
Раздел описания процедур и функций;
Раздел операторов.
Любой из этих разделов, кроме последнего, может отсутствовать.
Раздел операторов (или выполняемая часть программы) начинается со слова
Begin
и заканчивается словом
End.,
после которого обязательно ставится точка.
Begin
………..
………..
End
(End без точки в конце) могут встретиться и в середине программы. Это составной оператор, или, как его еще называют, операторные скобки. Между Begin и End может находиться любое количество операторов.
Общий вид оператора присваивания:
R:=выражение
имя переменной
В результате выполнения оператора присваивания переменной присваивается значение некоторого выражения.
Обратите внимание, что в этом операторе стоит не знак равенства «=», а знак присваивания «:=», который состоит из двух символов. Например, следующее выражение:
S:=-5;
можно прочесть так: переменной S присвоить значение -5. А можно прочесть и так: S положить равным -5. Обратите внимание: «положить равным» - два слова; этим словам соответствуют два символа: «:=».
Раздел описания переменных начинается словом VAR. Вслед за ним идет список, записи которого имеют следующую структуру:
VAR
<список имен>:<тип>;
…………………...................
<список имен>:<тип>;
одно имя, либо несколько через запятую
Все переменные, присутствующие в программе, должны быть описаны в этом разделе. Компьютер выделяет ячейки памяти, в которых будут храниться значения описанных переменных. Если Вы в программе попробуете использовать переменную, которая не была описана, то при запуске программы на трансляцию на экране появится ошибка: «Переменная неизвестна».
Все переменные характеризуются своим типом, определяющим множество допустимых значений, которые могут иметь переменные, а также множество допустимых операций, которые применимы к переменным данного типа. Кроме того, тип определяет формат внутреннего представления и размер памяти, отводимой переменной данного типа.
Основные типы, которые мы будем использовать при описании переменных, следующие:
1. Целые (Integer, LongInt, Byte, ShortInt, Word);
2.Логический (Boolean);
3. Перечислимый;
4. Символьный (Char);
5. Ограниченный (тип-диапазон);
6. Вещественный (Real);
7. Массивы (Array [1..10] of);
8. Записи (Record);
9. Множества (Set of);
10. Строки (String);
11. Файлы (File of, Text, File).
Первые пять перечисленных выше типов относятся к порядковым типам, которые отличаются тем, что каждый из них имеет конечное число возможных значений, которые можно каким-либо образом упорядочить, т.е. каждому из них, в конечном счете, можно сопоставить некоторое целое число - порядковый номер значения.
Диапазоны целых и вещественных типов приведены в приложениях 1 и 2. Порядок вычислений – в приложении 3.
Над переменными целого и вещественного типов определены следующие операции:
+ - сложение;
- - вычитание;
* - умножение;
/ - деление (для вещественных чисел);
div - деление (для целых чисел);
mod - остаток от деления (для целых чисел).
Тип данных результатов арифметической операции зависит от типов данных участвующих в ней операндов. Правила здесь таковы:
а) для операций +, -, * результат является целочисленным в том случае, если оба операнда - целые числа, в противном случае, если один из операндов целого типа, а другой - вещественного, результат является вещественным;
б) для операций / результат всегда вещественный, даже когда оба операнда целые числа;
в) для операций div (целочисленное деление) и mod (остаток от деления) результат является целочисленным, а сами операции не могут употребляться с вещественными операндами.
Операция возведения в степень в языке PASCAL отсутствует, но можно пользоваться формулой:
ab=eb ln a ( exp(b*ln(a)) )
Приведенный ниже фрагмент программы демонстрирует некоторые ошибки, возникающие при неосторожном обращении с типами данных.
В этом фрагменте пытаются получить число, которое на единицу больше максимального целого числа (типа Integer). Это значение присваивают трем переменным вещественного типа: a, b и c, - и только для переменной с это сделано правильно (см. п. а), описанный выше):
var
i,j:integer;
a,b,c:real;
begin
i:=32767; {максимальное число типа INTEGER}
j:=1;
a:=i+j;
b:=i+1;
c:=i+1.0;
. . . . . . . .
end.
В языке PASCAL существуют стандартные функции и процедуры, предназначенные для записи математических выражений.