ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.12.2024

Просмотров: 3648

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Для школьников,Студентови начинающих 1999 с,н.Лукин __________________________________________________________ Все права защищены ©

Оглавление

Часть I. Необходимые сведения о компьютере и программе 8

Часть II. Программирование на Паскале – первый уровень 29

Часть III. Программирование на Паскале – второй уровень 102

Часть IV. Работа в Паскале на компьютере 158

От автора

Предисловие

Часть III.Программирование на Паскале – второй уровень. Цели этой части:

Последовательность работы человека с роботом

А теперь напишем программу:

Устройства вывода

Внешняя память

8 'Котят' 3*3 'щенят'

Три совета

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

Программа 1

Программа 2

Программа 3

Комментарии к списку типов

Что нужно знать и уметь к моменту выполнения первой программы?

Порядок работы в Паскале

(1) Запуск Паскаля

(2) Начало работы. Ввод программы. Выход из Паскаля

(3) Сохранение программы на диске. Загрузка программы с диска

(4) Выполнение программы

(5) Исправление ошибок. Отладка программы.

Пошаговый режим

Работа с окнами пользователя и отладчика

Отладка больших программ

Работа с несколькими окнами.

Копирование и перемещение фрагментов текста

Обзор популярных команд меню

Создание исполнимых файлов (exe)

Работа с одной строкой текста

Работа с несколькими строками

Собственно работа с несколькими строками.

П2. Файловая система магнитного диска

Имена файлов и каталогов

Пример структуры каталогов на диске

П3. Список некоторых операций, процедур и функций Паскаля

Математика

Модуль crt

Модуль Graph

Модуль dos

П5. Решения заданий

П6. Список литературы

П7. Предметный указатель

К сожалению, в выражениях разрешается писать только круглые скобки. Квадратные и фигурные запрещены. От этого сложные выражения с большим количеством скобок на глаз воспринимаются с трудом, так как трудно для конкретной скобки увидеть ее законную пару. В этом случае я могу посоветовать идти "от малого к большому", то есть сначала заметить самые малые из взятых в скобки фрагменты выражения (у нас это 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.


      1. Вещественные числа в Паскале

Вот ошибочная программа:

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. Выполняйте и сверяйте с ответом все задания. Это, конечно, главный совет из трех. Учтите, что сверенная с ответом правильно работающая программа – ваша победа, сверенная с ответом неправильно работающая программа – временное поражение, отказ от сверки - разгром.

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

      1. Порядок составления простой программы

Задача:

Известны размеры спичечной коробки: высота - 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;