Читаем Описание языка PascalABC.NET полностью

На панели индикаторов, расположенной под информационной панелью, отмечено, что введен всего один элемент исходных данных (из трех), хотя в процедуре read нашей программы были указаны три переменные. Это объясняется тем, что при вводе первой из этих переменных (с1) была обнаружена ошибка несоответствия типа, поэтому задачник не стал анализировать остальные данные, которые программа пыталась ввести. Здесь проявляется еще одно правило задачника Programming Taskbook: при обнаружении первой ошибки ввода-вывода анализ оставшихся исходных данных и результатов не проводится.

Исправим нашу программу, изменив порядкок параметров в процедуре ввода:

read(n, c1, c2);

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

Данная ошибка, в отличие от предыдущей, связана не с вводом исходных данных, а с выводом результатов. Это отмечается в окне задачника двумя способами: цветной маркер ошибки располагается рядом с индикатором вывода, и этим же цветом выделяется заголовок раздела результатов (который в данном случае не содержит никаких данных).

Формирование и вывод требуемой строки

Для формирования нужной строки воспользуемся операцией + (сцепления строк):

uses PT4;

var

n, i: integer;

c1, c2: char;

s: string;

begin

Task('String9');

read(n, c1, c2);

s := '';

for i := 1 to n do

s := s + c1 + c2;

write(s);

end.

Заметим, что в операторе s := '' нет необходимости, так как все глобальные переменные в Паскале автоматически инициализируются нулевыми" значениями (для числовых данных это обычные нули, для символов -- это символ #0, для строк -- пустая строка '').

Результат выполнения этой программы будет следующим:

Красная звездочка, расположенная в конце выведенной строки, означает, что длина полученной строки превышает длину верной строки. Для того чтобы увидеть на экране всю полученную строку, достаточно подвести курсор мыши к строке со звездочкой; при этом полный текст строки появится во всплывающей подсказке:

Замечание. Красная звездочка может появиться и при выводе ошибочных числовых данных. Например, если ожидается целое число в диапазоне от 1 до 99, а получено число 10000, то на экране изобразится первая цифра этого большого числа, за которой будет указана красная звездочка: 1*.

Верное решение

Ошибка в предыдущей программе возникла из-за неверного указания количества итераций цикла. Действительно, на каждой итерации к строке добавляется по два символа, поэтому после n итераций строка будет содержать 2*n символов (а не n, как требуется в задании).

Для исправления ошибки достаточно вдвое уменьшить число итераций:

uses PT4;

var

n, i: integer;

c1, c2: char;

s: string;

begin

Task('String9');

read(n, c1, c2);

s := '';

for i := 1 to n div 2 do

s := s + c1 + c2;

write(s);

end.

После запуска этого варианта мы получим сообщение Верное решение. Тест номер 1 (из 5)", а после пяти подобных запусков -- сообщение "Задание выполнено!":

Замечание. Приведем другой, более быстрый, способ решения задания String9, в котором результирующая строка заполняется посимвольно, как обычный массив:

uses PT4;

var

n, i: integer;

c1, c2: char;

s: string;

begin

Task('String9');

read(n, c1, c2);

SetLength(s, n);

for i := 1 to n div 2 do

begin

s[2 * i - 1] := c1;

s[2 * i] := c2;

end;

write(s);

end.

Обратите внимание на процедуру SetLength(s, n), которая обеспечивает правильную настройку длины результирующей строки s. Без вызова этой процедуры программа работала бы неверно, так как любая глобальная строковая переменная инициализируется пустой строкой, а при работе с отдельными символами строки корректировка ее длины не производится.

Просмотр результатов выполнения задания

Щелкнув мышью на метке Результаты (F2)", расположенной в правом верхнем углу окна задачника, или нажав клавишу F2, мы можем вывести на экран окно результатов, в котором будет перечислены все наши попытки решения задачи:

String9 a08/09 11:17 Ознакомительный запуск.

String9 a08/09 11:18 Неверно указан тип при вводе исходных данных.

String9 a08/09 11:21 Выведены не все результирующие данные.

String9 a08/09 11:26 Ошибочное решение.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных