|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2020, 18:56 | #1 |
Новичок
Джуниор
Регистрация: 09.11.2020
Сообщений: 4
|
пишет Встречен конец файла, а ожидалось ';', на строчке где спрашивается "еще не учишься?", что делать?
begin
writeln('Напишите своё имя'); readln(a); writeln('Напишите дату рождения, год целиком'); readln(q); q:=2020-q; write(' - Привет,',a,'. '); if q<7 then begin writeln('еще не учишься?'); if (7<q)then; if(q<17) then begin writln (' в каком классе ты учишься?'); readln(l); if (l>=7) and (l<=8) then writeln('1 класс') else if (l>=8) and (l<=9) then writeln('2 класс'); if (l>=9) and (l<=10) then writeln('3 класс'); if (l>=10) and (l<=11) then writeln('4 класс'); if (l>=11) and (l<=12) then writeln('5 класс'); if (l>=12) and (l<=13) then writeln('6 класс'); if (l>=13) and (l<=14) then writeln('7 класс'); if (l>=15) and (l<=16) then writeln('8 класс'); if (l>=16) and (l<=17) then writeln('9 класс'); if 18<q then begin writeln ('уже не учишься?');end; end |
09.11.2020, 19:00 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Begin в коде 4 штуки, а end только 2. Ищите места, где забыли их.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.11.2020, 20:07 | #3 |
Новичок
Джуниор
Регистрация: 09.11.2020
Сообщений: 4
|
Теперь пишет ошибку " Нельзя считывать данные этого типа", на строке readlin('a'). Что делать? Что нужно исправь?
begin writeln('Напишите своё имя'); readln('a'); writeln('Напишите дату рождения, год целиком'); readln('q'); q:=2020-q; write(' - Привет,',a,'. '); if q<7 then begin writeln('еще не учишься?'); end; if (7<q)then; if(q<17) then begin writln (' в каком классе ты учишься?'); readln(l); if (l>=7) and (l<=8) then writeln('1 класс') else if (l>=8) and (l<=9) then writeln('2 класс'); if (l>=9) and (l<=10) then writeln('3 класс'); if (l>=10) and (l<=11) then writeln('4 класс'); if (l>=11) and (l<=12) then writeln('5 класс'); if (l>=12) and (l<=13) then writeln('6 класс'); if (l>=13) and (l<=14) then writeln('7 класс'); if (l>=15) and (l<=16) then writeln('8 класс'); if (l>=16) and (l<=17) then writeln('9 класс');end; if 18<q then begin writeln ('уже не учишься?');end; end. Последний раз редактировалось kiselek; 09.11.2020 в 20:26. |
09.11.2020, 20:43 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Что-либо в одинарных кавычках трактуется как строка, а считывать можно только в переменные. Добавьте секцию описания переменных и там объявите переменные a, q, l нужных типов.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.11.2020, 20:52 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
И вообще, чтоб код был читаем - для этого существуют тэги CODE
|
10.11.2020, 11:16 | #6 |
Новичок
Джуниор
Регистрация: 09.11.2020
Сообщений: 4
|
Программа запустилась, но там чисто вопросы и нельзя вписать данные. Что нужно дописать, чтобы можно было отвечать на вопросы, поставленные программой?
begin writeln('Напишите своё имя'); var a, q, l : integer; writeln('Напишите дату рождения, год целиком'); write(' - Привет,',a,'. '); if q<7 then begin writeln('еще не учишься?'); end; if (7<q)then; if(q<17) then begin write (' в каком классе ты учишься?'); if (l=7) and (l=8) then writeln('1 класс') else if (l=8) and (l=9) then writeln('2 класс'); if (l=9) and (l=10) then writeln('3 класс'); if (l=10) and (l=11) then writeln('4 класс'); if (l=11) and (l=12) then writeln('5 класс'); if (l=12) and (l=13) then writeln('6 класс'); if (l=13) and (l=14) then writeln('7 класс'); if (l=15) and (l=16) then writeln('8 класс'); if (l=16) and (l=17) then writeln('9 класс');end; if 18<q then begin writeln ('уже не учишься?');end; end. Последний раз редактировалось kiselek; 10.11.2020 в 11:57. |
10.11.2020, 12:13 | #7 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Код:
Код:
Код:
Точка с запятой разделяет операторы, см. вторую форму условного оператора. Там перед else точка с запятой не ставится. Вопрос: Что делает точка с запятой сразу после then? В этой строке проверяется условие 7 < q и если оно истинно, то ничего не делается, а если false, то тоже ничего не делается. Эту часть можно переписать так: if (7 < q) then <Ничего не делать>; Но ошибка возникает. Смотрим выше, тут: Код:
Закрывающаяся скобка - end. Тут точка является обязательной. Далее следует сообщение: 'Напишите своё имя' Непонятно в какой момент писать, так как следом идёт область описания переменных, которая должна быть выше тела программы, а значит выше первого слова begin. Затем следует сообщение: 'Напишите дату рождения, год целиком'. И с чем его связать? Так как тебе нужен только год рождения, то так и пиши: 'Введите год рождения [YYYY]: '. В квадратных кавычках указал формат вводимых данных. Можно попросить ввести 4- цифры года рождения. Если покороче: Посмотри как оформляется программа в Паскале. Какая область за какой следует? Посмотри как записывается условный оператор. Посмотри, с какой целью используется процедура readln(). Успехов. PS: Если написать подряд несколько точек с запятой, то ничего не произойдёт, поскольку отсутствие операторов между этими символами означает только одно - ничего не делать. PSS: И да! Вставляя код или набирая его ручками, сделай так: 1. Выдели код 2. Нажми на кнопку [CODE], которая находится над полем ввода. В этом случае код смотрится правильно, если он будет отформатирован. Код следует форматировать, а операторы лучше писать в отдельных строках.
Как-то так, ...
Последний раз редактировалось ViktorR; 10.11.2020 в 12:17. |
10.11.2020, 13:11 | #8 |
Новичок
Джуниор
Регистрация: 09.11.2020
Сообщений: 4
|
ViktorR, спасибо)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
pgAdmin 4 При сжатии окна по горизонтали некоторые кнопки "вылезли", но"save" или"Ok" не увидел все равно. Что делать ? | vadim_v | SQL, базы данных | 0 | 16.06.2020 20:44 |
Пишет "Нет диска в дисководе" и "Неопознаный диск" при установке ХР - Windows XP | lleonid | Операционные системы общие вопросы | 11 | 21.06.2017 19:41 |
[Pascal ABC] В 7-ой строке пишет,что ожидалось имя процедуры или функции,не понимаю как это исправить и что делать! | SMOKE SMOKE | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 16.06.2017 18:57 |
Чего делать с ошибкой "требуется имя файла"? | tsvigo | Visual C++ | 3 | 26.07.2016 19:18 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |