ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.12.2024
Просмотров: 3648
Скачиваний: 1
СОДЕРЖАНИЕ
Часть I. Необходимые сведения о компьютере и программе 8
Часть II. Программирование на Паскале – первый уровень 29
Часть III. Программирование на Паскале – второй уровень 102
Часть IV. Работа в Паскале на компьютере 158
Часть III.Программирование на Паскале – второй уровень. Цели этой части:
Последовательность работы человека с роботом
Что нужно знать и уметь к моменту выполнения первой программы?
(2) Начало работы. Ввод программы. Выход из Паскаля
(3) Сохранение программы на диске. Загрузка программы с диска
(5) Исправление ошибок. Отладка программы.
Работа с окнами пользователя и отладчика
Копирование и перемещение фрагментов текста
Создание исполнимых файлов (exe)
Собственно работа с несколькими строками.
П2. Файловая система магнитного диска
Пример структуры каталогов на диске
К сожалению, в выражениях разрешается писать только круглые скобки. Квадратные и фигурные запрещены. От этого сложные выражения с большим количеством скобок на глаз воспринимаются с трудом, так как трудно для конкретной скобки увидеть ее законную пару. В этом случае я могу посоветовать идти "от малого к большому", то есть сначала заметить самые малые из взятых в скобки фрагменты выражения (у нас это 3+aи2+a*b). После этого будет уже легче заметить более крупные фрагменты, такие как1 + a / (2+a*b), и т.д.
Запись десятичных дробей. Почти во всех языках программирования и уж, конечно, в Паскале, в десятичных дробях принято вместо запятой ставить точку. Пример:62.8- шестьдесят две целых восемь десятых.
Математические функции.Кроме четырех действий арифметики Паскаль может выполнять и другие математические действия, например, возведение в квадрат, для чего имеется специальная функция -Sqr. На уроке математики мы обозначаем показатели степени маленькими цифрами и буквами. На компьютере такие цифры и буквы вводить не всегда возможно, поэтому в Паскале принято другое обозначение. Например, пять в квадрате обозначается так -Sqr(5), a+b в квадрате так -Sqr(a+b). ЗдесьSqr- сокращение от английского слова square - квадрат. То, что нужно возвести в квадрат, записывается в скобках.
Приведу неполный список математических функций Паскаля:
|
ДЕЙСТВИЕ |
РЕЗУЛЬТАТ |
СМЫСЛ |
|
Sqr (5) |
25 |
возведение в квадрат |
|
Sqrt (25) |
5 |
корень квадратный |
|
Pi |
3.1415... |
число пи |
|
Frac (23.192) |
0.192 |
дробная часть числа |
|
Int (3.98) |
3.0 |
целая часть числа |
|
Round (5.8) |
6 |
округление |
|
Abs ( -20) |
20 |
абсолютная величина (модуль) числа |
|
Random |
0.73088 |
случайное число из диапазона (0 - 1) |
|
Random (200) |
106 |
случайное целое число из диапазона (0 - 199) |
Кроме этого, имеются функции sin, cos, arctan, exp, lnи процедураRandomize. К сожалению, в Паскале нет специальной функции для возведения в произвольную степень.
Примеры:
Выражение Sqr(2+1) при вычислении даст9Выражение 10+Sqr(2+1) при вычислении даст19Выражение1+Abs(5-8) при вычислении даст4Выражение Sqr(2)+Sqrt(35+1) при вычислении даст10ВыражениеSqrt(8+Int(41.5)) при вычислении даст7Выражение21 div (Round(Pi+1))при вычислении даст5
Задание 11:Определите без компьютера, что напечатает данная программа:
VAR a,b: Integer; BEGIN a:=(Sqr(2)+1)*(20- Sqr(2*2))-11; b:=11 div (a-4); WriteLn (Sqr(a)+b-1) END.
Вещественные числа в Паскале
Вот ошибочная программа:
VAR a,b,y : Integer; BEGIN a:=10; b:=6; y:= a / b; WriteLn (y) END.
Паскаль откажется выполнять эту программу, так как знает, что при делении целого на целое результат может получиться дробный, а это значит, что в ячейку y придется записывать дробное число. Но описание VAR a,b,y : Integer запрещает это делать. Вот вам еще один пример придирчивости Паскаля. Если бы мы даже вместоb:=6написалиb:=2, все равно Паскаль отказался бы делить.
Что же делать? Конечно же, Паскаль предлагает простой выход. Программист имеет право любую переменную описать не как целую (Integer), а как вещественную (Real). В этом случае переменная имеет право принимать любые целые и дробные значения. Вот правильная программа:
VARa,b :Integer;
y :Real;
BEGIN
a:=10; b:=6;
y:=a / b;
WriteLn (y)
END.
По-английски Realчитается " 'риэл", переводится "вещественный". Под переменную типа Real Паскаль отводит в памяти ячейку размером в 6 байтов.
Что мы увидим на экране в результате выполния оператора WriteLn (y)? Если вы думаете, что 1.666666 , то ошибаетесь. Переменные, описанные как Real, Паскаль выводит на экран в так называемом экспоненциальном формате (виде), с первого взгляда непонятном. Более подробно об этом и других форматах мы поговорим в 3.5, а пока, чтобы заставить Паскаль выводить вещественные числа в обычном, понятном виде, допишем кое-что в оператор вывода -WriteLn (y :8:3). Это значит, что мы хотим численное значение переменнойyтипа Real видеть на экране в привычном виде с 3 знаками после десятичной точки, а всё изображение числа не должно занимать больше 8 символов, включая целую часть, дробную часть, знак и десятичную точку. Этот оператор напечатает на экране 1.667. Здесь напечатано действительно 8 символов (три пробела, предшествующие единице, видны вам, как пустое место). Вместо 8 и 3 в операторе программист может писать любые имеющие смысл числа.
Поэкспериментируйте: (y :38:3), (y :20:10), (‘Результат равен’, y :8:3).
Три совета
Дорогой читатель! Если у вас под рукой есть компьютер, то вот вам три моих совета, по своей силе приближающихся к непререкаемым приказам:
1. Программы, которые вы видите в книге, вводите в компьютер и выполняйте их, даже если они кажутся вам почти понятными. В ряде случаев вы получите неожиданные результаты, из чего сделаете вывод, что программы эти вы поняли не до конца.
2. В каждой из этих программ экспериментируйте, то есть разными способами изменяйте в них то, что я как раз в этот момент объясняю. Например, если я объясняю оператор fori:=1to5, пробуйте fori:=1to10.
3. Выполняйте и сверяйте с ответом все задания. Это, конечно, главный совет из трех. Учтите, что сверенная с ответом правильно работающая программа – ваша победа, сверенная с ответом неправильно работающая программа – временное поражение, отказ от сверки - разгром.
Если вы пожалеете времени и пренебрежете этими советами, то через несколько страниц можете обнаружить трудности в понимании материала и вскоре не сможете правильно составить большинство программ.
Порядок составления простой программы
Задача:
Известны размеры спичечной коробки: высота - 12.41 см., ширина - 8 см., толщина - 5 см. Вычислить площадь основания коробки и ее объем .
Порядок составления программы:
1. Программист сам должен знать решение задачи.Ведь программа - это инструкция по ее решению. Нельзя давать инструкцию, не зная, как решать.
В нашем случае программист должен знать формулы для вычисления площади основания коробки и ее объема : площадь = ширина х толщина , объем = площадь х высота .
2. Нужно придумать имена переменным.Имя переменной должно говорить о ее смысле. Если смыслом является ширина коробки, то не ленитесь и не называйте ееа, потому что через полгода, разбираясь в своей полузабытой программе, вы будете долго тереть лоб и думать – Что, черт возьми, я обозначил череза? Называйте ееshirina (если вы не знаете английского) или, к примеру,width(если знаете). Так делают все профессиональные программисты (а они, как известно, терпеть не могут трудиться зря, значит, зачем-то это им нужно).
Удовлетворимся такими именами:
shirina - ширина tol - толщина visota - высота pl - площадь V - объем
3. Нужно определить, какого типа будут переменные.Поскольку ширина и толщина - целые, то и площадь будет целой. Высота и, следовательно, объем - вещественные. Первые две строки программы будут такими:
VAR shirina,tol,pl : Integer;
visota,V : Real;
4. Перед вычислениями нужно задать исходные данные решения задачи. Вот следующие две строки программы:
BEGIN
shirina:=8; tol:=5; visota:=12.41;