Вниз  MIDlet Pascal
- 7.01.2013 / 01:45
gtasase
  Пользователь

gtasase 
Сейчас: Offline
BegzoDchik, сдесь лучше будет цикл "repeat until"
- 7.01.2013 / 01:48
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Циклы.
Итак, изучив условия, перейдем к
следующему типу операторов – циклы.
Циклы тоже очень полезные операторы
MIDlet Pascal. Циклы используют для
повторения выполнения операторов. В
играх без циклов – никуда. Ведь надо
каждый раз обновлять экран. С помощь
циклов можно реализовать движение
объектов, например, когда движется
герой игры – все это происходит с
помощью циклов. А вы что думали, что
сказку попали? Очнитесь! Вы в реально
мире!
Всего в MIDlet Pascal существует три
оператора циклов:
· Цикл for … to … do
· Цикл while … do
· Цикл repeat … until
Начнем с цикла for … to … do. Этот
оператор цикла называется счетчиком.
Синтаксис цикла for … to …do:
Forсчетчик:=
начальное_значениеto
конечное_значениеdo
Begin
Операторы;
End;
Для цикла for нужно объявить
переменную-счетчик. Приведем пример
цикла:
Fori:=0to10d
begin
x:=x+2;
End;
В этом примере цикл выполнит код
находящийся в операторных скобках
begin … end десять раз (цикл сложит 10
раз выражение x:=x+2). Если, например
будет равен 0, то при выполнении цикл
к переменной x будет прибавляться 2.
Когда цикл окончится, x будет равен 20.
Чтобы показать на примере, как будет
работать цикл, напишем небольшую
программку, которая будет выводить
цифры на экран от 0 до 100:
Program
NewProject;
Var
i:integer;
Begin
Fori:=0to
100dobegin//
начинаемсчетчик
setColor
(255,255,255);//белы
цвет
fillRect
(0,0,getWidth,getHeigh
setColor
(0,0,0); //черны
цвет
drawText
(integerToString(i),
20,20);
repaint;
delay
(200);//задерживаем
end;
delay(2000);
end.
В этом примере код внутри цикла будет
выполняться 100 раз и счетчик i будет
увеличиваться на 1. Процедура DrawTex
будет использовать значение счетчика
выводить это значение на экран. С
помощью задержки мы регулируем
ско��ость выполнения цикла: чем
меньше задержка, тем быстрее
выполняется код внутри цикла.
Последняя задержка, идущая после цик
задерживает программу на две секунды
Если вам нужно сделать обратный отсче
то вместо to применяйте downto. Ниже
приведен тот же код с использованием
downto, который будет реализовывать
обратный отсчет:
ProgramNewProject
Var
i:integer;
Begin
Fori:=100
downto0dobegin//
начинаемсчетчик
setColor
(255,255,255);//белы
цвет
fillRect
(0,0,getWidth,getHeigh
setColor
(0,0,0); //черны
цвет
drawText
(integerToString(i),
20,20);
repaint;
delay(200);//
задерживаем
end;
delay(2000);
end.
Объяснять я этот пример не буду, здесь
практически так же как и в предыдуще
примере.
Рис. 11. Цикл с предусловием while … do
условие
   Тело цикла
Теперь ознакомимся с циклом while … d
циклом с пре
если проверя
Сначала пров
истинно, то ц
опять провер
выполняется
показано на р
является беск
будет выполн
проверяемое
или пока не п
Синтаксис опе
предусловие
wh
условиеdobegin
en
Условие – это проверяемое условие. Есл
оно истинно, то цикл выполняется. Если
внутри цикла больше чем один операто
то их нужно заключить в операторные
скобки begin … end.
Напишем для демонстрации небольшу
программку, которая будет выводить н
экран число, которое будет возрастать,
при нажатии клавиши 5, счет будет
закончен и программа завершится.
ProgramNewProject;
var
a:integer;
Begin
a:=0;
whiletruedobegin
setColor(0,0,0);
drawText
(integerToString
(a),5,5);
repaint;
a:=a+1;
setColor
(255,255,255);
fillRect
(0,0,getWidth,getHeigh
ifgetKeyClicked
KE_KEY5thenbreak;/
прерываемцикл
end;
End.
Начну объяснять пример с цикла. В
условии цикла стоит булево значение
true, в таком случае условие истинно и и
за этого запускается цикл, который буде
выполнять код внутри цикла до
бесконечности, пока вы не нажмете
кнопку пять на клавиатуре своего
телефона. При нажатии на клавишу пять
запускается оператор break и цикл
прерывается.
Если цикл не прервать оператором brea
или не остановить его ложным условие
то произойдет зацикливание и
приложение “зависнет”.
Рис.12. Цикл с постусловием.
repeat … until
Тело цикла
условие
Теперь познак
оператором ци
цикл так же на
постусловием,
выполняется к
потом проверя
Хотел бы замет
цикла с постусл
иметь булево з
например усло
тело цикла все
только один ра
тело цикла буд
пока условие н
прервется опе
может так же с
рисунке 12 гра
цикл с постусловием.
Предыдущий пример можно было бы
записать с циклом с постусловием таки
образом:
ProgramNewProject;
var
a:integer;
Begin
a:=0;
repeat
setColor(0,0,0);
drawText
(integerToString
(a),5,5);
repaint;
a:=a+1;
setColor
(255,255,255);
fillRect
(0,0,getWidth,getHeigh
ifgetKeyClicked
KE_KEY5thenbreak;/
прерываемцикл
untilfalse;
End.
Объяснять думаю, не придется.
__________________
 знает толк
- 7.01.2013 / 01:52
ВитаминКО
  Супермодератор

ВитаминКО 
Сейчас: Offline
Психанул?:-)
__________________
 わからない!!
- 7.01.2013 / 01:57
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
ВитаминКО, Я учебник хороший нашел по мидлет паскалю, вот и ему написал, чтоб вопросов не было
__________________
 знает толк
- 7.01.2013 / 02:15
gtasase
  Пользователь

gtasase 
Сейчас: Offline
vl@volk, у меня такойже :gg:
- 7.01.2013 / 02:22
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
gtasase, midletpascal.docx - этот:)
я его здесь вроде скачал
кстате https://viewer.zoho.com/ онлай офис открывает доки пдф и еще кучу разных
__________________
 знает толк
- 10.01.2013 / 07:56
Helltar
  Пользователь

Helltar 
Сейчас: Offline
vl@volk (07.01.2013/01:48)Циклы.Итак, изучив условия, перейдем кследующему типу операторов – циклы.Циклы тоже очень полезные операторыMIDlet Pascal. Циклы используют дляповторения выполнения операторов. Виграх без OMG. Ты копировал оперой мод штоле?
- 10.01.2013 / 13:00
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Helltar, Обычной 7.1
__________________
 знает толк
- 10.01.2013 / 14:32
BegzoDchik
  Пользователь

BegzoDchik 
Сейчас: Offline
хочу сделать чтобы КАРТИНКА САМА ДВИГАЛАСЬ,но не получается.вот код
program test;
var
a,b,c,d:integer;
begin
c:=1;
d:=2;
drawimage('\logo.png',a,50);
while (c<d) do begin
a:=a+1;
end;
  end.

А если так делаю
program test;


var

a,b,c,d:integer;
begin
c:=1;
d:=2;
while (c<d) do begin
a:=a+1;
drawimage('\logo.png',a,50);
end;
  end.
То картинок рисуется бесконечно, я хочу чтобы вывелать тока 1 картинка и сама по себе двигалась
- 10.01.2013 / 14:33
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
BegzoDchik, Сейчас я чего нибудь попробую, учебник повторю
__________________
 знает толк
Наверх  Всего сообщений: 1594
Фильтровать сообщения
Поиск по теме
Файлы топика (72)