- •Алгоритмизация и основы программирования
- •1. Технология подготовки и решения задач на компьютере
- •Понятие об алгоритмических языках
- •2. Этапы решения задач на компьютере
- •Этапы процесса тестирования
- •Характерные ошибки программирования.
- •3. Основы языка программирования Паскаль
- •3.1. Алфавит языка программирования
- •Правила написания идентификаторов:
- •Константы
- •3.2. Выражения, операции
- •3.3. Операторы
- •3.3.1. Оператор присваивания
- •3.3.2. Операторы перехода
- •3.4. Использование комментариев для пояснений
- •3.5. Общая структура программ в Паскале
- •1. Раздел объявлений и соглашений
- •2. Раздел текстов процедур и функций
- •3. Раздел основного блока программы
- •3.6. Основные операторы модуля crt в turbo pascal
- •3.7. Типы данных
- •3.7.1. Целочисленный тип
- •3.7.2. Вещественные типы
- •3.7.3. Символьный тип
- •3.7.4. Логический тип (boolean)
- •Простые логические выражения
- •Составное логическое выражение
- •Перечисляемый тип
- •Интервальный тип
- •3.8. Ввод-вывод данных
- •Вывод данных
- •Способы представления вещественных чисел
- •Ввод данных
- •3.9. Математические функции и процедуры
- •Взаимные преобразования чисел
- •4. Конструкции языка программирования Паскаль
- •4.1. Организация ветвления
- •4.1.1. Условные операторы. Оператор if
- •4.1.2. Конструкция множественного выбора Case … Of
- •4.2. Операторы цикла
- •4.2.1. Оператор цикла For
- •4.2.2. Оператор цикла Repeat..Until
- •4.2.3. Оператор цикла While..Do
- •5. Структурированные типы данных
- •Одномерные массивы
- •Доступ к элементам массива
- •Заполнение массива
- •6. Подпрограммы пользователя. Назначение Преимущества модульности
- •Подпрограмма
- •Список используемой и рекомендуемой литературы
Взаимные преобразования чисел
Если переменной типа R присваивается значение типа Integer, то целое значение автоматически преобразуется в вещественный эквивалент, но переменной типа Integer нельзя присваивать вещественное значение. Таким образом, если Count — переменная типа Integer то каждый из приведенных в примере операторов присваивания вызовет ошибки вида «несоответствие типов»
Пример.
Count = 3.14
Count = SQRT(2)
Count = 0.5
Ясно, что переменная типа Integer не может принять значения 0,5, так как 0,5 не имеет соответствующего целочисленного эквивалента. Поэтому соответствующий оператор присваивания вызовет ошибку при выполнении программы (конечно, если Count описана как переменная типа Real, то оператор присваивания приемлем).
Чтобы обойти это ограничение, используют функции преобразования типов. Эти функции используют в качестве аргументов переменные типа Real и преобразуют их в целочисленные значения:
TRUNC(x) результат — целая часть х.
ROUND(x) результат — значение, округленное до ближайшего целого.
Различны ли эти функции? В некоторых случаях они дают одинаковые значения. При х = 3.2 и TRUNC, и ROUND дадут значение 3. Но при х = 3.6 функция TRUNC даст значение 3, в то время как ROUND возвращает значение 4. Это объясняется тем, что функция ROUND анализирует дробную часть аргумента, чтобы решить, округлять х до ближайшего большего или до ближайшего меньшего целого значения, в то время как TRUNC просто отбрасывает дробную часть.
Примеры:
TRUNC |
ROUND |
TRUNC (5.8) = 5 |
ROUND (5.8) = 6 |
TRUNC (3.14) = 3 |
ROUND (3.14) = 3 |
TRUNC (-7.7) = -7 |
ROUND (-7.7) = -8 |
Целые и вещественные переменные можно использовать одновременно в одном арифметическом выражении. Если некоторый операнд выражения имеет тип REAL, то и все выражение будет иметь тип REAL. Вещественные функции, подобные SQRT(x), всегда возвращают вещественный результат. Это означает, что функция SQRT(4) возвращает вещественное значение 2.0, а не целое 2.
Задача. Вычислить значение функции
var a,b,x,y:real;
begin
a:=1;
b:=1.71;
x:=42;
y:=sqrt(abs(cos(x)+ln(a)-b));
writeln('y=',y:8:5);
end.
|
Контрольные вопросы по теме «Основы языка программирования Паскаль» |
Какие типы величин используются в языке программирования Паскаль?
Какой тип данных используется для хранения целых чисел? А для дробных?
Укажите диапазон значений величин целого и действительного типов.
Какие имена переменных допустимы в программе? Как задать тип переменной в программе?
Что следует сделать, если в программе используется величина, не изменяющаяся за все время работы программы?
В чем отличие между операциями mod, div и /?
Зачем нужны функции trunc и round? В чем между ними разница?
Какое максимальное значение может принимать переменная типа integer? Что делать, если необходимо сохранить целое число, в 10 раз большее этого значения?
Как записать на Паскале «2,5 в степени 16,7»?
Что означает запись «1Е5», «ЗЕ-4», «.2Е7»?
Что нужно использовать, чтобы изменить приоритет выполнения математических операций?
Чему равно и какой тип данных имеет выражение trunc(sqrt(2+52 div 8))-sqr(15 mod 4/3)?
Указать имена стандартных функций для вычисления
Можно ли в качестве операнда в арифметическом выражении использовать:
а) имя массива;
б) имя стандартной функции, например Sin(y);
в) имя символьной переменной или переменной логического типа?
Назвать последовательность действий при выполнении арифметического оператора присваивания
Написать арифметический оператор присваивания для вычисления значения:
Указать старшинство выполнения операций при вычислении арифметического выражения.
Указать средства, имеющиеся в языке программирования для управления размещением данных на строке.
Как организовать вывод значений, сопровождая выводное числовое значение наименованием переменной? Как организовать пропуск одной, двух строк при выводе?
Как выбрать значения исходных данных для тестового варианта счета?