Ваша первая программа на Паскале

Вид материалаПрограмма

Содержание


Вопросы - ответы
Подобный материал:
1   ...   4   5   6   7   8   9   10   11   ...   23

Вопросы - ответы


Можно ли программу, напечатанную в текстовом файле скопировать в Turbo Pascal? Если можно то как?




Можно только сохранить текстовый файл с расшрирением PAS и открыть в Паскале. Скопировать же через буфер (как в WINDOWS) нельзя, программы DOS не держат буфер друг между другом.

Итак, как всегда возвращаемся к Паскалю. В прошлом уроке мы начали изучение конструкций языка, освоили одну из них - if...then...else, которая дала нам возможность выбирать условия прямо в программе и влиять на ее выполнение.

Вроде бы по этой конструкции все, но нет - так быстро во всех тонкостях не разобраться. В ней существуют некоторые сложности, или просто нюансы - на которые нужно обратить внимание. Также надо двигаться дальше - пора заняться новыми типами и процедурами.

Хочу сказать, что нам осталось не так уж много теории, после чего начнется одна практика - мы будем стараться писать много программ, чтобы закреплять все пройденное и развивать алгоритмическое мышление, так необходимое программисту.

IF…THEN…ELSE


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

Это вложенность, или, если забыть про стандартные определения, просто ситуация, когда нужно после проверки условия выполнять не одно, а несколько действий если условие верно, после чего также выпонять несколько действий, если условие не верно.

Здесь нам не обойтись без примера, который я сейчас приведу.

Давайте напишем программу, которая будет:
  1. Читать два числа A, B с клавиатуры;
  2. Складывать их и если сумма больше 50, то:
    1. Читать A еще раз;
    2. Опять складывать A и B;
    3. Выводить ответ на экран (уже ничего не проверяя).
  3. Если сумма меньше 50, то:
    1. Читать B еще раз;
    2. Вычесть A и B;
    3. Выводить ответ на экран (уже ничего не проверяя).
  4. Конец программы.

Как мы здесь будет поступать? Заметили, нам нужно выполнять несколько действий, в ходе проверки.

Все это, в принципе могло бы выглядеть так (только алгоритм):




If A+B > 50 Then

Readln(A);

A := A + B;

Write(A);

else

Readln(B);

A := A - B;

Write(A);

Выглядит, вроде, без ошибок. Но попробуйте, напишите так программу. Ничего не выйдет, в конструкции if...then...else должно быть только по одному действию. Как же поступить?

Здесь нам на помощь приходит возможность вложенности. Как же это реализовать? На самом деле очень просто. Необходимо заключить все действия в отдельные служебные слова begin и end; - то есть сделать как бы маленькую программку в основной программе или сделать ее вложенной - отсюда и название "вложенность". Только запомните, после слова end, если вы его используете для обособленности оператора в конструкциях, ставиться точка с запятой - ";", а не точка! Точка ставиться только в конце программы. Без исключений.

Итак, модифицированный вариант нашей программы, уже полностью:




Program Primer;

var

A,B: Integer;

begin

Write('Введите A: ');

Readln(A);

Write('Введите B: ');

Readln(B);

If A+B > 50 Then

begin

Readln(A);

A := A + B;

Write(A);

end;

else

begin

Readln(B);

A := A - B;

Write(A);

end;

Readln;

end.

Вот, собственно и все. Этот метод применяется везде и повсеместно. Уверяю вас, скоро вы забудете про него и это уже будет получаться автоматически. А пока запомните это и вспоминайте при необходимости.

Теперь новая процедура, часто используемая в совокупности с конструкций if...then...else. Это процедура goto, о которой рассказываю подробно.