Песни о Паскале | страница 138




>var S: string;

>begin

> Assign(Input,’MyText.in’); Reset(Input);

> Assign(Output,’MyText.out’); Rewrite(Output);

> While not Eof do begin

> Readln(S);

> Writeln(S);

> end;

> Close(Input); Close(Output);

>end.


Что дальше?

Мы изучили фундамент языка Паскаль, который составляют простые типы данных и управляющие структуры. Впереди интересные и серьезные проекты, в основе которых лежат сложные типы данных. Вы осилите их, если пройденный материал надежно закрепился в вашей голове. Вы чувствуете это? Нет? Тогда без ложного стыда вернитесь к началу книги, ведь повторение – мать учения!

Итоги

• Основу программ составляют три базовые управляющие структуры: линейная последовательность, альтернатива и цикл.

• Альтернатива организуется условными операторами и оператором выбора.

• Для циклов в Паскале предусмотрено три оператора: 1) цикл с проверкой в начале, 2) цикл с проверкой в конце и 3) цикл со счетчиком.

• Программа состоит из ряда секций. Секции описания констант, типов и переменных нужны для размещения данных. Исполняемые секции содержат процедуры, функции и главную программу.

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

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

• Основная нагрузка по обработке данных возлагается на процедуры и функции – подпрограммы. Из тела одних подпрограмм вызывают другие подпрограммы, – такие вызовы называют вложенными.

• Передачу данных между подпрограммами предпочтительней выполнять через параметры и имена функций.

А слабо?

А) Найдите две ошибки в следующей программе.

>var X : TNum;

>type TNum = integer;

>const A = 10;

>begin

>X:= A+B;

>end.

Б) Напишите булеву функцию Test и программу для её демонстрации. Функция должна проверять, делится ли без остатка первое число на второе, например:


>Writeln( Test(20, 4) );       { true }

>Writeln( Test(21, 5) );       { false }


В) Напишите целочисленную функцию Division для деления первого числа на второе без применения операции DIV. Вот примеры вызовов:


>Writeln( Division(20, 4) );       { 5 }

>Writeln( Division(21, 5) );       { 4 }


Подсказка: внутри функции вычитайте второе число из первого. Предотвратите деление на ноль (как результат возвращайте ноль). Сделайте два варианта: 1) деление положительных чисел, 2) деление чисел с учетом знака.

Г) Пусть ваша программа распечатает все множители (кроме единицы) введенного пользователем целого положительного числа, например: