Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TURBO PASCAL.doc
Скачиваний:
41
Добавлен:
09.06.2015
Размер:
948.74 Кб
Скачать

Вопрос 1. Программа подсчитывает дискриминант! в конце запрос: "Вы хотите еще найти дискриминант? y/n" Как сделать чтобы при нажатии на "y" программа начаналась сначала, а при нажатии на "n" выходила?

uses crt;{подключаем библиотеку}

var

c:char;

...................{другие переменные}

begin

repeat

................... {считаем то, что нужно}

writeln('Хотите еще y/n');

c:=readkey; {ожидаем нажатия клавиши}

until(c='n')or(c='N'); {если буква N - прекращаем работу}

end.

Вопрос 3. Что можно использовать вместо программы Turbo Pascal 7.0 для изучения программирования? Так как эта программа работает под DOS, то очень не удобно одновременно читать Ваши уроки в Windows и делать упражнения в DOS.

Первое, что приходит в голову, это Borland Pascal for Windows (BPW). Он входит в стандартную поставку BP 7.0 (напомню, что в эту же стандартную поставку еще входят TP 7.0. и BP 7.0). При помощи BPW вы можете делать тоже, что и в ДОСе, во время выполнения программы вместо окна ДОСа открывается обычное окно Виндовс, а все остальное то же самое. Это если вы хотите иметь в windows Паскале то же, что и в ДОСе.

Если же вы хотите создать для своей программы красивый и удобный Виндовс интерфейс, то добро пожаловать в Дельфи и объектно-ориентированное программирование, однако, это несколько другая и более сложная песня.

Существуют и другие Паскали, правда я никогда с ними не имел дела, но слышал и читал много хорошего. Virtual Pascal 2.0. знающие люди очень хвалят (работает по Виндовс), поищите в сети. Free Pascal (http://www.ru.freepascal.org) (говорят, не хуже).

Вопрос 4. У меня вот такой вопрос- как в программе описать массив X, если заранее неизвестна его размерность (т.Е. Кол- во элементов, как я понимаю) ?

Два варианта:

  • Объявить массив заведомо большего размера и работать только с нужными элементами. Кушает много памяти, да и вообще ее может нехватить (сегмент статич. данных в Пасе только 64К).

  • Поможет динамическая память:

=============Начало программы===========================

{$R-}

type

mass=array[1..1]of integer {массив нужного типа}

Parr=^mass;

var

D:Parr;

i,n:integer;

begin

randomize;

write('Введите размер массива ');

readln(n);

GetMem(D,n*sizeOf(integer)); {выделяем память под массив}

for i:=1 to n do {запоняем случайными числами и}

begin {печатаем}

D^[i]:=random(100);

write(D^[i],' ');

end;

FreeMem(D,n*sizeOf(integer)); {освобождаем память}

end.

Вопрос 5. Как можно запустить программу?

Если имеется в виду запустить внешнюю программу из своей, то с помощью процедуры Exec из модуля DOS:

{$M 4096,0,10000}

uses Dos;

.......

.......

begin

............

............

SwapVectors;

Exec(Путь&ИмяВашейПрограммы, Доп_Параметры);

SwapVectors;

.....................

.....................

end.

Вопрос 6. а). Я пользуюсь программой Borland Pascal 7.0. При подключении дополнительных модулей (crt, graph) после запуска программы Pascal выдает сообщение: "Error 200: Division by zero" - деление на ноль. После запуска утилиты CPU Grabber, замедляющей работу процессора примерно на 60 %, программа выполняется нормально. Как можно исправить положение? Заранее спасибо.

б). При попытке в паскале использовать функцию очистки экрана, возникает сообщение "Error 200:Division by zero", а в пользовательском окне (ALT-F5) сообщение runtime error 200 at 0014:0091, что такое?

Эти два вопроса - одно и тоже.

В связи с кривизной модуля CRT на быстрых машинах типа iPentium II/III, iCeleron программы откомпиленные на BP7/TP7 при запуске вылетают с run-time error 200 - деление на ноль. Причём ошибка эта появляется при подключение модуля даже если вы и не вызывали процедуру Delay, которая там криво написана.

Суть проблемы состоит в том, что в этом модуле время измерялась через производительность процессора - в то давнее древнее время, как сами понимаете, не было столь быстрых процессоров и не было этой ошибки. Для того, чтобы ваши программы не вылетали вам нужно установить пропатченный вариант CRT, который Вы сможете скачать с сайта Библиотека программиста - http://prog.agava.ru

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]