- •Отладка программ пользователя в 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;
- •Из чисел в строки
Вопросы - ответы
Можно ли и как копировать строки, чтобы не набирать по нескольку раз одно и то же?
Копирование строк осуществляется через буфер обмена, прямо как в Windows.
Для того, чтобы скопировать строку в буфер, необходимо сделать следующее:
1. Нажав и удерживая клавишу Shift, Вы передвигаете курсор клавишами-стрелками, вслед за ним текст выделяется белым цветом.
2. Выделенный фрагмент текста далее должен быть помешен в буфер: Для этого нажмите комбинацию Ctrl+Ins (Insert).
3. Теперь перемещайтесь в место, где хотите вставить текст и нажмите комбинацию Shft+Ins. (Вставка)
Таким образом можно копировать как одну строку, так и огромные блоки. Скажу сразу. что здесь нужны определенные навыки - но это приходит со временем (и быстрота работы и точность).
Как располагать вывод процедуры Write (см. выпуск 3) (например заголовок) по центру?
В принципе, не существует такой процедуры, которая ровняет выводымий текст по центру. Единственное, что я могу Вам пока предложить (самое оптимальное) - это дополнять начало строки пробелами. Вот пример:
Write( 'Заголовок');
Таким образом строка будет сдвигаться от начала экрана и выводиться к середине. Здесь можно посчитать, сколько пробелов сначала необходимо:
4. Ширина экрана (в символах) в DOS всегда 80 (а высота - 25 строк).
5. Берем длину строки (например, слово "Заголовок" - 9 символов).
6. Делим 80 (ширину экрана) на 2 - получаем 40.
7. Делим длину строки на 2 и отбрасываем остаток: 9/2 = 4.
8. Вычитаем из половины экрана (40 симовлов) половину длины строки: 40 - 4 = 36.
9. Это число и будет необходимым количеством пробелов.
Пока это единственный и самый разумный способ выравнивания строки посередине. Но есть и другой, который позволяет осуществлять это прямо в программе и с любой строкой, длина которой даже меняется все время. Но, к сожалению, он несколько сложен, используются процедуры подключаемых модулей и некоторые другие, с которыми я пока не знакомил Вас. Но после я к этому вернусь, а пока пользуйтесь приведенным примером
Структура программы
Вспоним, в программе есть несколько основных вещей - переменные и разного рода операторы, процедуры, выражения. Операторы и процедуры представляют собой непосредственно текст программы, так наз. тело программы.
Эти разные части оформляются в различных разделах отдельно друг то друга. То есть переменные находяться отдельно, тело программы - отдельно. Я думаю, Вы это знаете. Заметьте, я не говорю, что это все части, есть и другие, но об этом будем говорить позже. Итак, решили мы писать программу. Она будет использовать какие-нибудь данные, так ведь? Складывать числа, выводить строки. Для этого заводим переменные, чтобы хранить все эти значения.
Все переменные должны быть в разделе var, который всегда идет до раздела begin. Запомните это.
Все поцедуры, выражения, структуры и почее что взбредет в голову программисту - только в разделе begin, который соответсвенно заканчивается словом end. (с точкой на конце).
Продолжаем уточнения про разделы. Все слова, означающие названия разделов не имеют никаких символов после себя - ни ";", ни ":" ничего другого.
Итак, схема программы на Паскале:
|
Program Program_name; |
var |
- |
- |
описание_переменных |
- |
- |
begin |
- |
- |
тело_программы |
- |
- |
end. |
Вот, собственно и все. Я на этом теперь точно закончу эту тему, а то скоро большинству подписчиков надоест рассылка со своими разговорами об одном и том же. Если Вам непонятно что-то, разбирайтесь, читайте прошлые выпуски.
А нам пора двигаться дальше...