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

Turbo pascal пишет error in statement в операторе else, помогите разобраться

Вот текст программы program karavan1_45; uses crt; begin clrscr; gotoxy(5,3); write('Практическая работа N4'); gotoxy(5,4); write('Тема: "Линейность"'); gotoxy(5,7); write('Выполнил ученик 9-Ми класса'); gotoxy(5,8); write('Бачурин Алексей Александрович'); gotoxy(5,23); write('Для продолжения нажмите ENTER'); readln; clrscr; program; var x,y,z:integer; sum:real; begin x:=3; y:=5; z:=1; sum:=x*1+y*1.3+z*1.15; WriteLn(Trunc(sum)); WriteLn(sum*100:0:1); readln; end.
Мне ни хрена непонятно, где тут элзе, но в одной программе ты два раза пишешь "программ" - за каким? Или это две разные программы? Короче, возможно вот так она заработает, но, т. к. условие неизвестно, возможна некорректная работа.
И не стала бы я применять uses crt и gotoxy для вывода текстовой шапки, достаточно было обойтись WriteLn с параметром и без параметра для пустой строки. Зачем усложнять.. .

program karavan1_45;
uses crt;
var x,y,z:integer;
sum:real;
begin
clrscr;
gotoxy(5,3); write('Практическая работа N4');
gotoxy(5,4); write('Тема: "Линейность"');
gotoxy(5,7); write('Выполнил ученик 9-Ми класса');
gotoxy(5,8); write('Бачурин Алексей Александрович');
gotoxy(5,23); write('Для продолжения нажмите ENTER');

readln;
clrscr;

x:=3;
y:=5;
z:=1;
sum:=x*1+y*1.3+z*1.15;
WriteLn(Trunc(sum));
WriteLn(sum*100:0:1);
readln;
end.
Руслан Газзаев
Руслан Газзаев
87 482
Лучший ответ
Во-первых, у тебя тут 2 программы, одна karavan1_45, вторая без названия.
Но у karavan1_45 есть оператор begin, но нет оператора end.
Во-вторых, непонятно, как они связаны между собой. По идее, у тебя karavan1_45 отработает, выведет заглавие, end нет, и после второго clrscr встретит новый оператор program и вылетит с ошибкой.
А если ты вставишь end после второго clrscr, то он на этом end и закончит.
Значит, надо:
1) убрать оператор program;
2) оператор var и все объявления переменных поставить сразу после program karavan1_45;
3) второй begin тоже убрать
Вот тогда будет более-менее правильно: программа выведет заголовок, потом посчитает sum и выведет её.
> в операторе else

В каком конкретно ?
Их, этих операторов else, в приведенном тобой коде так много что не понятно про какой идет речь)
ЖЖ
Женя Жданюк
32 502
ты издеваешься? если это вообще запуститься когда-нть, снимаю перед тобой шляпу.
ну во 1-х у тебя тут две программы в одной.

вот так попробуй:
uses crt;
var x,y,z:integer;
sum:real;
begin
x:=3;
y:=5;
z:=1;
sum:=x*1+y*1.3+z*1.15;
WriteLn(Trunc(sum));
WriteLn(sum*100:0:1);
readln;
end.
только этот код, больше ничего.
VT
Valeriy Tsoy
20 920
тут че то я else не нашел. Но перед else точку с запятой НЕ НАДО СТАВИТЬ
AM
Alex M
872
А где элзе?