Прервана, потому что после оператора Goto v1 не поставлен разделитель. Правильная версия:
Код:
LABEL v1; 1. Изменен тип переменной а - незачем ей быть вещественной, если речь идет о числе монет, которое может быть только целым неотрицательным. 2. Убран ReadLn в конце - он не нужен, поскольку программа и без того зациклена на оператор ввода. Ну а теперь - самое главное. Я НАСТОЯТЕЛЬНО рекомендую, осваивая программирование, ЗАБЫТЬ об операторе GOTO и переходах по меткам. Работа с GOTO - сверхдурной стиль программирования. Это не мои измышления, это давно и прочно принятая у программистов концепция. Программы с GOTO презрительно называют "лапшой". Посмотрите, если интересно, моё решение Вашей задачи. Внесены следующие изменения: 1. Убран GOTO. 2. Предусмотрен выход из бесконечного цикла. 3. Надписи, во избежание проблем с кодировкой, сделаны на английском языке. Код:
VAR |
в строке с goto точки с запятой нет.
|
Vladimir_S спасибо! на счёт GOTO - я про циклы всё прочитал но так и не понял зачем они нужны и как их ставить, Repeat я просто не мог придумать куда поставить поэтому воспользовался способом который я больше всего понял - GOTO.
p/s/ я не собирался монетки я хотел сделать чтобы после сообщения о призе вылазило какое нить изображение, но для начала мне надо было заставить работать программу. p/p/s/ Real поставил потому что без него программа (без цикла естественно) не хотела запускатся. Она запустилась и потом решил запихнуть цикл. |
Бродяга
По другому циклы называются командами повторения. В Pascal известно три основных вида циклов: с предусловием, с постусловием, с параметрами. Циклы нужны для реализации многократного повторения последовательности действий до наступления события. К примеру, дан исполнитель, умеющий двигаться в указанном направлении. Чтобы он при движении не разбился о препятствие, для него предусмотрено логическое событие "в этом направлении свободно". При истинности можно продолжать движение, при ложности - нужно стоять на месте. Подобное событие называется условием, его можно использовать в качестве критерия для выхода из цикла. В теле цикла можно в данном случае прописать команду на движение. Другой пример: вам нужно вычислить факториал числа N. Факториал - произведение всех целых чисел от 1 до N включительно. Чтобы последовательно перемножать все числа, можно пойти двумя путями - первый: написать длинную формулу, содержащую все числа; второй - задать цикл с параметрами, в котором счетчик цикла будет изменяться от 1 до N с шагом 1, в теле цикла прописать короткую команду произведение:=произведение*счетчик_цикла. Первый путь может быть реализован, если заранее известно значение N и это число достаточно маленькое, в противном случае слишком длинная строка с формулой вызовет ошибку переполнения. Второй путь будет более грамотным и потребует меньших усилий, к тому же возможно вычисление факториала достаточно больших чисел. |
Вложений: 1
AlexZir спасибо. в учебнике всё написано на примерах и не всегда понятно что написано, да ещё спросить не у кого.
вот ещё ошибочка: решил усложнить прошлую программу - сделать так чтобы после сообщения о призе вылазила картинка подарка. подарок нарисовал (в тетради и потом перенёс координатами по расчётам) но почему то не запускается. и лог вылета мне не понятен (на скрине). p/s/ проблема исправлена. скажите для того чтобы впихнуть рисунок надо ставить подраздел? |
Похоже, в слове Device букву "с" вляпали в русском регистре. Во всяком случае, именно на нее он ругается. Перенабейте это слово.
|
в этой программе readln не нужен... у тебя тут бесконечный цикл..(не успел отписаться..) как удалить свое сообщение?
|
Vladimir_S я тоже подумал, но сначала принял за глупость. потом решил перестраховатся и исправил. но всё равно спасибо!
kreol я уже приучился везде ставить - если выдали бы ошибку тогда убрал но паскаль молчит. это главное |
Тогда уж ставьте readln после закрытия графического режима, а не до closegraph. При использовании readln в графическом режиме автоматически происходит переключение в текстовый режим и последующие команды модуля graph могут вызвать ошибки. Также попробуйте переменной device присвоить значение detect. Это позволит в автоматическом режиме определить тип видеодрайвера.
|
readln был в образце поэтому я его перед closegraph ставлю.
получилось вставить изображение после слова о призе. з.ы. Vladimir_S у меня англицкие буквы не распознаёт и просьба о числах появилась на англицком. |
Часовой пояс GMT +4, время: 12:16. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.