- •Оглавление
- •Этапы разработки программы
- •Оформление решения
- •Структура программы
- •Характеристики программы
- •Типы данных
- •Целые числа
- •Вещественные числа
- •Лабораторная работа № 2 Алфавит языка Паскаль. Операторы языка
- •Теоретические сведения Алфавит языка
- •Контрольные вопросы
- •Специальные символы
- •Составные символы
- •Зарезервированные слова
- •Стандартные функции и процедуры языка
- •Комментарии и директивы
- •Операторы
- •Простые операторы
- •Структурные операторы
- •Полезные формулы
- •Запись числовых констант, переменных и выражений
- •Контрольные вопросы
- •Лабораторная работа № 3 Программирование алгоритмов линейной структуры
- •Теоретические сведения
- •Задание к работе
- •Пример выполнения работы
- •Варианты заданий
- •Задание 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Примеры задач Программа 1
- •Программа 2
- •Программа 3
- •Варианты заданий
- •Задание2
- •Примеры задач Программа 1
- •Программа 2
- •Программа 3
- •Варианты заданий
- •Алгоритм цикла с предусловием – While
- •Алгоритм цикла с постусловием Repeat
- •Алгоритм цикла со счетчиком For
- •Практические примеры Задачи с использованием оператора while
- •Задачи с использованием оператора repeat
- •Задачи с использованием оператора for
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование алгоритмов со структурой вложенных циклов
- •Теоретические сведения
- •Практические примеры
- •Задачи для решения
- •Лабораторная работа № 8 Обработка одномерных массивов
- •Теоретические сведения
- •Обработка массивов
- •Действия с одномерными массивами
- •Практические примеры
- •Варианты заданий
- •Контрольные вопросы
- •Что представляет собой массив в Pascal'е?
- •Лабораторная работа № 9 Обработка двумерных массивов, матрицы
- •Теоретические сведения
- •Описание массива
- •Заполнение массива данными (ввод элементов)
- •Вывод массива
- •Обработка массивов
- •Квадратная матрица
- •Транспонирование матрицы
- •Практические примеры
- •Варианты заданий
- •Сформировать матрицу по следующему правилу
- •Контрольные вопросы
- •1. Как можно описать следующий массив?
- •2. В какой ячейке находится элемент d[2,6] ?
- •3. Каким образом выведется массив на экран монитора?
- •4. Сколько элементов находится в массиве х(4;7):
- •Метод линейной сортировки
- •Сортировка методом «пузырька»
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Шифрование и дешифрование текста
- •Варианты заданий
- •Контрольные вопросы
- •Порядок выполнения лабораторных работ
- •Содержание пояснительной записки
- •Литература
Структурные операторы
Структурные (сложные) операторы представляют собой конструкции, содержащие простые операторы. К этой группе операторов относятся: составной оператор, оператор условного перехода, операторы цикла (For, repeat, while), оператор выбора, оператор присоединения в записях.
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точками с запятой, и ограниченную операторными скобками begin и and.
begin
Оператор1;
Оператор2;
...
ОператорN;
end;
Обратите внимание – составной оператор воспринимается как один оператор и обычно используется в том месте, где по правилам языка может стоять только один оператор, а требуется использование нескольких.
Полезные формулы
Вычисление степени числа: ax =x*ln(a)=exp(x)*ln(a)); Таким образом, нельзя возвести в степень отрицательное число. Для этого можно использовать операторы циклов.
Для вычисления логарифма с основанием а используем: loga(x) = ln(x)/ln(a)
В Turbo Pascal определены только три тригонометрические функции: sin, cos, arctg. Для вычисления остальных тригонометрических функций необходимо использовать известные соотношения:
tg(x)=sin(x)/cos(x);
ctg(x)=cos(x)/sin(x);
csc(x)=1*sin(x);
);
;
.
Запись числовых констант, переменных и выражений
Целые числа в Паскале записываются в обычном виде, например: 0, +100,-56498. Вещественные числа в Паскале представляются в одной из двух форм, которые называются: запись числа с фиксированной точкой и запись с плавающей точкой. Первая из них – это запись числа в виде целой и дробной частей, разделенных точкой, например: -3.15 , 0.1 , +23.0125.
Вторая форма – с плавающей точкой – это запись числа с мантиссой и десятичным порядком, разделенными латинской буквой E. Такая запись означает, что мантисса (которая может быть целым числом или вещественным числом в форме с фиксированной точкой) умножается на 10 в степени, задаваемой порядком (который всегда должен быть целым числом), например -18.7Е+3 , 2.123Е4, 2.34Е-2 , 6Е-1.
В языке программирования Паскаль запрещается запись вещественных чисел в виде .5 или 5. Их необходимо записывать как 0.5 и 5.0 соответственно. Если в записи числа содержится точка, то по крайней мере одна цифра ей должна предшествовать и следовать за ней.
Основным требованием к записи выражений в Паскале является размещение всех его элементов в одной строке (на одном уровне). В выражениях допускается использовать константы (неизменяемый объект программы), переменные (объект программы, который может изменять свое значение), операции ( + , – , / , * , . . . ) и функции.
Пример 1.
Записать выражение на Паскале
.
Решение:
((6 – x) * x + 10 * (x * y – 6 * x * y * z)) / (x * y – y * z – z * x).
Пример 2.
Записать выражение
( Sqrt (Sin(x * x) + Cos(y * y ))) / Exp (Sqr( 2 * x – 5 ))
в общепринятой форме.
Решение:
.
Контрольные вопросы
Укажите имена стандартных функций для вычисления
.
Чему равно числовое значение выражения при е = 4, ф = 3? E+sqrt(e)*1e1/2*a.
Чему равно значение выражения (a and not b or c), где a,b,c – величины типа Boolean, имеющие значения true, false, false соответственно?
Укажите допустимые способы записи выражения
.
Какие выражения не содержат синтаксических ошибок:
Sin(abs(0,6e3*yt).
A div b / c*mod.
$EF01*1.34E-02/_i7_17.
1_2i-exp(y)/2*t.
Cos(3*x)+0.2.
Выберите правильные утверждения:
Все числовые величины описываются в разделе описания констант.
В разделе описания констант описываются константы, имеющие имя.
Величины описанные в разделе описания констант без указания типа не могут изменить свои значения.
В разделе описания констант можно описать и константы и переменные.
Раздел описания констант должен располагаться перед разделом описания переменных.
Выберите правильные ответы. Можно ли присвоить:
Целую переменную вещественной.
Вещественную переменную целой.
Символьную переменную целой переменной.
Целую переменную булевой переменной.
Целой переменной целую константу.
Выберите все правильные ответы. При использовании в программе оператора read требуется разделять числовые значения величин при вводе с помощью:
Только одного пробела.
Произвольного количества пробелов.
Запятой.
Нажатия клавиши ENTER.
Нажатия клавиши Tab.
Найдите операторы вывода, не содержащие синтаксических ошибок:
Write(‘’’*’,x:4,k,y:k:2,’*’).
Write(’*’,x,k,y*x*k:4:2,’*’).
Write(‘k:4:2,y:4:2,’*’).
Write(’*x-k’,,y:k:2,’*’).
Write(‘*’,x,k:2,y:4:2,’*’:5:2).
Что из перечисленных ниже вариантов будет выведено на экран в результате работы программы?
Var k:byte; x:real;
Begin
K:=2; x:=1;
Write(‘*’, ‘*’, x:3:1,k:k,’**’;
End.
**1.0 2* *
* *1.0 2**
**1.02* *
**1.02**
**1.02* *.
Записать следующие числа без десятичного порядка:
-0.00027Е+4;
666Е-3;
1Е1.
Указать неправильные записи чисел:
|
|
|
Есть ли разница (с точки зрения языка Паскаль) между числами 100 и 100.0, между 20 и 2Е1? По какому признаку (величине или форме записи) целые числа отличаются от вещественных?
Почему при записи формул на Паскале их "вытягивают в линию"? Почему знак умножения всегда выписывают явно (например, пишут a*t , а не at )?
Почему в Паскале аргумент функции всегда записывается в скобках?
Почему в Паскале факториал от 10 нельзя записать в виде 10! или 1* 2* 3* . . .* 10 ?
Записать на Паскале следующие формулы:
a)
;
b)
;
c) cos2x2;
d) tg(x);
e) x--2;
f)
;
g)
;
h) x100;
i)
;
j) log2x.
Записать в общепринятой форме следующие выражения:
(p + q) / (r + s)- p * q / (r * s) ;
1E3 + beta / (x2 – gamma * delta) ;
(-b + sqrt ( sqr (b) – 4 * a * c)) / (2 * a) ;
a / b * (c + d) – (a – b) / b / c + 1E – 8 ;
x1 + arctan (y2 – alpha) / 2 * abs (x4 – ln (5) * y5) / exp(-1) ;
(cos (sqrt (x + y))/sin (sqrt (x + y)) – exp( abs (y))) / x * 6 * y;
(7E + 8 * y – 5E – 4 + sin (x) / cos (y)) / (5 – x) / (y – x). \
Вычислить значения выражений и определить их тип:
а) Trunc(6.9); b) Round(6.9); c) Trunc(6.2); d) Round(6.2); e) 20 Div 6; f) 20 Mod 6; g) 3*7 Div 2 Mod 7/3 – Trunc(Sin(1)); h) Sqr(x)+Sqr(y)<=4, при x=0.3, y=-1.6 ; i) k Mod 7 = k Div 5 – 1,
при k=15 ; j) Odd(Trunc(10*p)), при p=0.182 .
Выберите все правильные утверждения. В процедуре write для величин вещественного типа можно задавать формат вида А:К:М, где А – переменная или выражение,
К – общее количество позиций, отводимое под А.
К – количество позиций, отводимое под целую часть А.
К и М могут быть только константами.
К и М могут быть выражениями целого типа.
К – количество позиций, отводимое под дробную часть А.
Объяснить ошибки в следующих зяписях:
а) (9.0-3) Div 4 + x Mod 3, при x=7.0 ;
b) Odd(Sqr(Trunc(7/2)))-5 ;
c) 5 Mod 2 <> 6 Div 5 Or Odd(7) .
22. Нарисовать на плоскости (x, y) область, в которой и только в которой истинно указанное выражение:
а) (y >= x) And (y+x>=0) And (y<=1) ;
б) (Sqr(x)+Sqr(y)>1) And y>0) And (Abs(x)<=1) .
24. Записать на Паскале выражение, зависящее от x и y, которое принимает значение True, когда точка с координатами x и y принадлежит заштрихованной области.
a).
б).
в).
25. Что будет выведено на экран программой?
Program pr;
Var a : Integer;
Begin
a := 2;
Writeln('a+1')
End.
26. Что будет напечатано в результате работы следующего фрагмента:
Write(1); Write(2); Writeln(3,4); Write(5,6);Writeln; Writeln(7,8).
27. Написать программу, которая для заданного целого числа a печатает следующую таблицу значений:
.
28.Что будет выведено на экран программой, если для ввода заданы числа 1.5 и –0.8?
Program aba; Var x : Real; t : Boolean; Begin Read(x); t := x < Round(x); Read(x); t := t And (x < Trunc(x)); Writeln(t) End.
