Другие языки программирования и технологии

Помогите найти ошибку в программе.

program STIX;

var
a: char;
b, c: string;

begin
b := 'Береза';
c := 'Барка';
writeln('Какое произведение вас интересует? ');
read(a);
if a = b then begin
writeln(' ');
writeln('Белая береза');
writeln('Под моим окном');
writeln('Принакрылась снегом, ');
writeln('Точно серебром. ');
writeln('На пушистых ветках');
writeln('Снежною каймой');
writeln('Распустились кисти');
writeln('Белой бахромой. ');
writeln('И стоит береза');
writeln('В сонной тишине, ');
writeln('И горят снежинки');
writeln('В золотом огне. ');
writeln('А заря, лениво');
writeln('Обходя кругом, ');
writeln('Обсыпает ветки');
writeln('Новым серебром. ');
end
else begin
writeln(' ');
writeln('Барка жизни встала');
writeln('На большой мели. ');
writeln('Громкий крик рабочих');
writeln('Принакрылась снегом, ');
writeln('Слышен издали. ');
writeln('Песни и тревога');
writeln('На пустой реке. ');
writeln('Входит кто-то сильный');
writeln('В сером армяке. ');
writeln('Руль дощатый сдвинул, ');
writeln('Парус распустил');
writeln('И багор закинул, ');
writeln('Грудью надавил. ');
writeln('Тихо повернулась');
writeln('Красная корма, ');
writeln('Побежали мимо');
writeln('Пестрые дома. ');
writeln('Вот они далёко, ');
writeln('Весело плывут. ');
writeln('Только нас с тобою, ');
writeln('Верно, не возьмут! ');
end;
end.
read(a); для чара даст ошибку. Более того, в общем виде нельзя сравнивать строчку и чар.
Асанов Эмиль
Асанов Эмиль
34 701
Лучший ответ
МОЖНО ТАК

var
a: string;
b, c: string;

begin
b := 'Береза';
c := 'Барка';
writeln('Какое произведение вас интересует? ');
read(a);
if a = b then
begin
writeln(
'Белая береза' + #13 +
'Под моим окном' + #13 +
'Принакрылась снегом, ' + #13 +
'Точно серебром. ' + #13 +
'На пушистых ветках' + #13 +
'Снежною каймой' + #13 +
'Распустились кисти' + #13 +
'Белой бахромой. ' + #13 +
'И стоит береза' + #13 +
'В сонной тишине, ' + #13 +
'И горят снежинки' + #13 +
'В золотом огне. ' + #13 +
'А заря, лениво' + #13 +
'Обходя кругом, ' + #13 +
'Обсыпает ветки' + #13 +
'Новым серебром. '
)
end
else begin
writeln(' ');
writeln('Барка жизни встала');
writeln('На большой мели. ');
writeln('Громкий крик рабочих');
writeln('Принакрылась снегом, ');
writeln('Слышен издали. ');
writeln('Песни и тревога');
writeln('На пустой реке. ');
writeln('Входит кто-то сильный');
writeln('В сером армяке. ');
writeln('Руль дощатый сдвинул, ');
writeln('Парус распустил');
writeln('И багор закинул, ');
writeln('Грудью надавил. ');
writeln('Тихо повернулась');
writeln('Красная корма, ');
writeln('Побежали мимо');
writeln('Пестрые дома. ');
writeln('Вот они далёко, ');
writeln('Весело плывут. ');
writeln('Только нас с тобою, ');
writeln('Верно, не возьмут! ');
end;
end.
Сергей Сергеев
Сергей Сергеев
72 191
writeln('Принакрылась снегом, ');
Второй экземпляр.
Явно не из той оперы
А вот после end надо ли ставить точку с запятой? Не знаю.
Где ставите, где не ставите, это что волюнтаризм такой?
Я понимаю, что могут быть исключения из правил, но вы-то их должны знать блестяще по данной теме.
Полагаю, что для сравнения строк в Паскале должна быть специальная функция
a=b
не годится. Главная суть программы в этом сравнении.
Почему вы не объяснили, что вас не удовлетворило? Чтобы мы голову ломали?
По моему слишком много эндов - меня учили, например ставить один и в конце
Николай Константинов И в каком же классе вы учитесь?
Асанов Эмиль Нет, это чушь.