1. 1 Что такое "программирование"
Вид материала | Реферат |
4.2 Составной оператор 4.3 Условный оператор Полная форма: if then 4.4 Оператор варианта 4.5 Операторы циклов Оператор цикла с предусловием Оператор цикла с постусловием Оператор цикла с параметром |
- Т. П. Возможно ли «объективистское» религиоведение?, 75.66kb.
- Десять нерешенных проблем теории сознания и эмоций. Эмоции, 306.48kb.
- Тема: Что такое вич? Что такое вич- инфекция? Что такое спид?, 31.26kb.
- 1. что такое нефтехимия, 823.72kb.
- Програма курсу за вибором Технологія програмування на С++, 340.55kb.
- Сочинение. Что такое словесный мусор?, 32.51kb.
- Для начала разберемся в базовых определениях. Разберем, что такое вычислительная сеть, 81.21kb.
- Павел Рогозин, 2063.97kb.
- Программа элективного курса по информатике «Программируем на языке Паскаль», 143.09kb.
- Задачи: образовательные: объяснить детям, что такое пожар; познакомить со средствами, 42.31kb.
4.2 Составной оператор
Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом ";", в начале ставится служебное слово begin, в конце – end.
Составной оператор применяется в тех случаях, когда синтаксис языка допускает использование только одного оператора, а смысл требует выполнения нескольких действий. Пример составного оператора:
begin x:=10; writeln(‘y=‘,x*sqr(x)) end |
Обратите внимание: перед служебным словом end разделитель (символ ";") не ставится.
4.3 Условный оператор
Очень часто так же, как и в жизни, при решении задач некоторые действия выполняются в зависимости от истинности каких-либо условий. Например, мы берем с собой зонт, если идет дождь или на небе тучи. Или часто встречающиеся в математике определения функций:
если x<0, то f(x)=x+1;
если x>=0, то f(x)=2x.
Здесь значение функции f вычисляется в зависимости от величины x по разным формулам.
Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.
Полная форма: if <условие> then <оператор1>
else <оператор2>;
В качестве условия используется значение логического выражения, в качестве операторов – любой простой или составной оператор, в том числе и сам условный оператор.
Если значение логического выражения – true, то выполняется оператор1, если false, то выполняется оператор2.
Часть условного оператора, начинающаяся со слова else, может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:
if <условие> then <оператор>;
Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.
Для примера полной формы рассмотрим определение функции f(x):
if x<0 then f:=x+1
else f:=2*x;
Если в нашем примере описать логическую переменную В, значение которой будет равно true, если x<0, и false иначе, то можно записать так:
B:=x<0;
If B then f:=x+1
else f:=2*x;
Пример краткой формы:
if not((x<3) and (x>1)) then y:=sqr(x);
При использовании вложенных условных операторов может возникнуть неоднозначность, например:
if <условие1> then if <условие2> then <оператор1> else <оператор2>.
В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if, которое еще не связано с else. А чтобы такая двусмысленность не возникала, лучше всего пользоваться составным оператором:
if <условие1> then
begin
if <условие2> then <оператор1>
else <оператор2>
end;
4.4 Оператор варианта
Более обобщенной формой условного оператора, учитывающей произвольное число альтернатив, является оператор варианта. Использование этого оператора позволяет задавать выполнение некоторых действий для нескольких различных значений одного выражения:
case <выражение> of
<значение1> : <оператор1>;
<значение2> : <оператор2>;
<значение3> : <оператор3>;
… …
else <операторN>
end
<операторN> выполнится только в том случае, если значение выражения не совпадет ни с одним из <значенийi>. В качестве <значения> можно также задать список и(или) диапазон значений. Например:
case x of
1..2 : f:=5;
3, 4, 10..20 : f:=10;
5, 6 : f:=15;
else writeln(‘Введен неправильный параметр!’)
end
4.5 Операторы циклов
Очень часто возникает необходимость выполнить один и тот же оператор (или группу операторов) несколько раз. Для этого в языке Pascal предусмотрены операторы циклов.
Оператор цикла с предусловием.
Блок схема такого оператора:
Форма записи:
while <условие> do <оператор>;
В качестве оператора может быть любой простой или составной оператор. Оператор здесь выполняется только в том случае и до тех пор, пока истинно условие, которое проверяется каждый раз после выполнения оператора. Если с самого начала условие имеет значение false, оператор цикла не выполнится ни разу.
Примеры:
Вычисление факториала:
while x <=N do
begin {начало цикла}
Fact := Fact*x;
x := x + 1
end; {конец цикла}
Вычислить у=х2 при х=2, 4, 6, 8, 10:
x:=2;
while x<=10 do
begin {начало цикла}
y:=sqr(x);
writeln(‘x=‘,x:3, ‘y=‘,y:5);
x:=x+2
end; {конец цикла}
Если в операторе цикла условие всегда истинно, то такой цикл называется бесконечным:
t:=true;
while t do x:=x+5;
Оператор цикла с постусловием
Блок-схема оператора:
Форма записи:
repeat
<оператор1>;
<оператор2>;
…
until <условие>;
Последовательность операторов может состоять из одного или нескольких любых операторов. В отличие от предыдущего, в этом цикле условие проверяется всегда после выполнения оператора (или последовательности операторов), если оно ложно – оператор снова выполняется, иначе цикл прекращается. При такой структуре оператор хотя бы один раз обязательно выполнится.
Примеры:
Вычислить у=х2 при х=2, 4, 6, 8, 10.
x:=2;
repeat {начало цикла}
y:=sqr(x);
writeln(x:3,y:5);
x:=x+2
until x>10; {конец цикла}
Вводить символы с клавиатуры до тех пор, пока не будет введен символ "!"
Repeat {начало цикла}
writeln(‘введите символ’);
readln(c)
until c=‘!’; {конец цикла}
Оператор цикла с параметром
Этот оператор используют, когда количество повторений цикла известно заранее или необходимо изменять какую-либо величину на одно и то же значение в определенном диапазоне. Форма записи оператора:
for <параметр> := <начальное значение> to <конечное значение> do <оператор>;
Служебное слово to указывает направление изменения параметра – увеличение на 1 (начальное значение меньше конечного значения; если это условие не выполнится, оператор в теле цикла не выполнится ни разу). Если необходимо, чтобы параметр уменьшался на 1, то используют слово downto (начальное значение больше конечного значения). В качестве оператора можно использовать любой простой или составной оператор.
При использовании этого оператора цикла нужно помнить следующие правила:
- в качестве параметра можно использовать простую переменную, описанную в этом же блоке;
- параметр должен иметь дискретный тип;
- начальное и конечное значения должны иметь тот же тип, что и параметр;
- в теле цикла (операторе) явное изменение значения параметра (например, оператором присваивания) может привести к бесконечному циклу;
- нельзя в теле цикла изменить начальное и конечное значения параметра, если они заданы переменными.
- после завершения работы цикла значение параметра становится равным конечному значению параметра, если цикл не был прерван оператором перехода.
Для каждого значения параметра между начальным и конечным оператор в теле цикла выполняется только один раз.
Примеры:
Вывести на экран все символы от ‘a’ до ‘z’:
for i := ‘a’ to ‘z’ do write(i, ‘ ‘);
Вычислить у=х2 при х=2, 4, 6, 8, 10.
x:=2;
for i:=1 to 5 do
begin
y:=x*x;
writeln(x:3,y);
x:=x+2
end;
0>