- •Отладка программ пользователя в turbo pascal.
- •Ваша первая программа на Паскале.
- •Синтаксис выражений.
- •Тестирование программы.
- •Что теперь?
- •Использование программы Turbo Pascal 7.0
- •Проверка на ошибки - "компиляция".
- •Запуск программы - "выполнение".
- •Программирование на Паскале
- •Целые типы
- •Пишем программу
- •Домашнее задание по Паскалю
- •Арифметические процедуры
- •Вопросы - ответы
- •Структура программы
- •Новые типы данных
- •If…then…else - Важная конструкция языка
- •Процедура goto
- •Повторить действие? (y/n):
- •Практика
- •Вопросы - ответы
- •Цикл for
- •Задание №1
- •Задание №2
- •Задание №3 (обширное)
- •2.По теме "строки": напишите программу, присваивающую переменной Char последний символ введенной строки
- •Вопрос 3. Может ли Паскаль считывать данные до нажатия "Ввода" (Например, как в Windows: нажмите Esc для отмены)?
- •Вопрос 4. Можно ли сделать ввод данных скрытым звёздочками (***), например, как при вводе пароля?
- •Вопрос 5. Есть ли в Паскале функция, с помощью которой внутренний динамик может "бипнуть" (Примерно, как при загрузке компьютера)?
- •Звездное небо (аналог экранной заставки Norton Commander)
- •Обработка строк
- •А можно и так:
- •Вопрос 1. Программа подсчитывает дискриминант! в конце запрос: "Вы хотите еще найти дискриминант? y/n" Как сделать чтобы при нажатии на "y" программа начаналась сначала, а при нажатии на "n" выходила?
- •Вопрос 4. У меня вот такой вопрос- как в программе описать массив X, если заранее неизвестна его размерность (т.Е. Кол- во элементов, как я понимаю) ?
- •Вопрос 5. Как можно запустить программу?
- •Вопрос 7. При запуске Паскаля всё время появляется старая программа и приходится закрывать окно с этим текстом и открывать свежее. Как от этого избавится?
- •Вопрос 8. В рассылке n11 Вы рассказывали про форматный вывод .Чтобы реализовать это, мы приписывали к переменной, стоящей в процедуре два числа, разделив их двоеточием: Write('Real: ', a:5:2);
- •Список_переменных: тип
- •Оформление процедуры
- •Write(Add(n1, n2)); - печатаем значение, возвращаемое функцией Add;
- •Из чисел в строки
Домашнее задание по Паскалю
Все задачи представлены в порядке возрастания сложности.
Напишите программу, которая будет печатать сумму числа, введенного с клавиатуры с числом 10.
Сделайте программу, читающую пять переменных, а после выводящих их в порядке, обратом порядку их чтения.
Программа должна читать переменные A, B, C, D, а после реализовывать следующее условие и выводить его по действиям, нумируя каждое из них.
Условие такое:
A=A-B+C-(A+A+B-(C+A))+D;
разберем несколько маленьких арифметических процедур и напишем небольшую программку, использующую их. Это будет простой урок, реализующий всего пару новых процедур. Но, поверьте, эти процедуры сильно упростят вам жизнь в дальнейшем - и стоит посвятить время, чтобы их освоить. Итак, поехали...
Арифметические процедуры
Давайте возьмем для примера такую ситуацию:
1. У нас есть переменная-число, которую мы используем как счетчик. То есть, где-то в программе постоянно увеличиваем ее на 1, нумерую какие-либо действия или ход программы. Называется и описывается она, скажем, так:
Counter: Integer;
2. Теперь мы начинаем нумеровать действия: каждый раз, когда совершаем новое, увеличиваем ее на единицу. Что делаем? Пишем в программе:
Counter := Counter + 1;
Увеличивается? Конечно. Каждый раз при совершении такого действия переменная будет работать как полноценный счетчик. Но разве это приятно, каждый раз писать Counter := Counter + 1;?
Для того, чтобы увеличивать переменные-числа на определенные величины существует замечательная операция - Inc. Рассматриваем ее подробно (хотя, конечно, это не очень серьезная процедура):
Процедура Inc - (от англ. Increment - увеличение).
Эта процедура увеличивает переменную на заданное число или на другую переменную.
Синтаксис:
1. Inc(переменная, заданное_число (другая_переменная) );
2. Inc(переменная); - при отсутсвии 2-го параметра увеличиывает переменную на единицу (это как бы по умолчанию).
Вам случайно не показалось это сложным? Если да, то зря. Смотрите пример, все очень просто:
1. Имеем переменную Count. Так увеличиваем ее на единицу:
Inc(Count);
2. Таже переменная Count, но увеличиваем ее на 10:
Inc(Count, 10);
Разобрались? Замечательно!
Продолжаем, и следующая операция Dec. Что же она делает? Она наоборот, уменьшает значение переменной.
Процедура Dec - (от англ. Decrement - увеличение).
Эта процедура уменьшает переменную на заданное число или на другую переменную.
Синтаксис:
1. Dec(переменная, заданное_число (другая_переменная) );
2. Dec(переменная); - при отсутсвии 2-го параметра уменьшает переменную на единицу.
И примеры использования процедуры:
1. Имеем переменную Count. Так уменьшаем ее на единицу:
Dec(Count);
2. А так уменьшаем на 7:
Dec(Count, 7);
Ну а теперь напишем небольшую программку.
Сначала определимся с условием. Нам нужно сделать что-нибудь до минимума простое. Давайте так:
Нам нужно сложить два числа A и B и вычесть из получившейся суммы C. Здесь получиться 2 действия, мы их все пронуменруем - то есть после каджого действия будем увеличивать еще одно число-счетчик на единицу. Итак, определяем план действий, который называется "алгоритм" - последовательность выполнения действий. Пишем алгоритм:
1. Заводим 3 переменных - A, B, C и переменную-счетчик для нумерации действий - Count.
2. Складываем А и В; При этом увеличиваем счетчик Count на единицу.
3. Вычитаем С. Увеличиваем Count на единицу.
Текст программы:
Program First; var A,B,C,Count: Integer; begin A := A + B; Inc(Count); A := A - C; Inc(Count); end.
Если вы читали предыдущие уроки, то без труда разберетесь в этой программе и все поймете. Но если все же нет, то специально для вас разбираем программу по строкам:
1. Program First;
Название программы. Program - это служебное слово, ничего не выполняет и в принципе необязательно. Если используется, то всегда стоит самой первой строкой в программе. В общем, это простой заголовок. Ничего не выполняющий и никому не нужный, но с ним как-то приятнее...
2. var
Это начало раздела описания переменных (см. пред. выпуски). Программа на Паскале состоит из двух самых важных частей - раздела описания переменных и тела самой программы. var - это служебное слово, ничего не выполняющее, но показывающее Паскалю, что начался раздел описания переменных. В этом разделе мы описываем все переменные, которые будут использоваться в программе. Что такое переменная? Это несколько долгий разговор, смотрите предыдущие выпуски.
3. A,B,C,Count: Integer; - это и есть описание переменных. Integer - это их тип. Описание переменных сводиться к озаглавливанию переменнной (приданию ей имени) и приравниванию ее к какому либо типу. Integer означает, что переменная является числом.
4. begin
Служебное слово, показывающее начало тела программы. После слова begin находиться весь текст программы - опрераторы, присваивания, действия. Заканчивается раздел begin служебным словом end.
5. A := A + B;
Складываем А и В, одновременно помещая результат вычисления в переменную А.
6. Inc(Count);
Увеличиваем переменную-счетчик на единицу.
7. A := A - C;
Вычитаем из результата сложения переменную С.
8. Inc(Count);
Опять увеличиваем переменную-счетчик на единицу - ведь выполнено еще одно действие.
9. end.
Это означает конец программы.
Вот и вся программа! Разберитесь в ней, она очень проста. Это программка пока ничего не делает - не читает данные с клавиатуры и не выводит их на экран.