Автор: Пользователь скрыл имя, 16 Января 2011 в 20:12, лекция
Delphi – это среда разработки программ, ориентированных на работу в операционной системе Windows. В основе Delphi лежит технология визуального проектирования, которая базируется на идеях объектно-ориентированного программирования. Программы в Delphi пишутся на языке Object Pascal, который является развитием языка Turbo Pascal. Слово “Object” особо подчёркивает, что язык поддерживает концепцию объектно-ориентированного программирования.
Оператор if может быть записан в сокращённой форме:
if <логическое выражение> then <оператор> ;
Пример 1. Даны два различных вещественных числа. Вывести на экран большее из них.
var x, y : real;
begin
readln(x, y);
if x>y then writeln(x:7:2) else writeln(y:7:2);
readln
end.
Пример 2. Даны два действительных числа x, y. Если x и y отрицательны, то каждое из чисел заменить его квадратом; если отрицательно только одно из них, то каждое из чисел увеличить в 10 раз; если оба числа неотрицательны, то каждое из них заменить корнем квадратным.
var x, y : real;
begin
readln(x, y);
if (x<0) and (y<0) then begin x:=sqr(x); y:=sqr(y) end
else
if (x<0) xor (y<0) then begin x:=x*10; y:=y*10 end
else begin x:=sqrt(x); y:=sqrt(y) end;
writeln('x=', x:6:2,' y=', y:6:2); readln
end.
Пример 3. Даны три различных вещественных числа a, b, c. Найти максимальное из этих чисел.
var a, b, c, max : real;
begin
readln(a, b, c);
if (a>b) and (a>c) then max:=a
else
if b>c then max:=b
else max:=c;
writeln('max= ', max:7:2); readln
end.
ЛЕКЦИЯ №4
Оператор выбора CASE
В отличие от оператора if, оператор case позволяет выбрать один оператор не из двух, а из нескольких операторов. В общем виде оператор case может быть записан следующим образом:
case <выражение> of
<список меток 1> : <оператор1>;
<список меток 2> : <оператор2>;
…………………………………..
<список меток N> : <операторN>
else
<оператор>
end;
Здесь <выражение> – это выражение порядкового типа. Вначале вычисляется значение этого выражения. Затем полученное значение последовательно сравнивается с константами из списков меток. Если значение выражения совпадает с какой-нибудь константой, то выполняется соответствующий оператор. Если значение выражения не совпадает ни с одной константой, то выполняется оператор, стоящий за словом else. Если слово else отсутствует, то выполняется оператор, стоящий за словом end.
Пример 11. По номеру дня недели определить название дня недели.
type week=1..7;
var day : week;
begin
readln(day);
case day of
1 : writeln(¢Понедельник¢);
2 : writeln(¢Вторник¢);
3 : writeln(¢Среда¢);
4 : writeln(¢Четверг¢);
5 : writeln(¢Пятница¢);
6 : writeln(¢Суббота¢);
7 : writeln(¢Воскресенье¢)
else writeln(¢Ошибка ввода¢)
end; readln
end.
ЛЕКЦИЯ
№5
Оператор цикла с параметром
Часто при решении задач необходимо многократно выполнять определённую последовательность действий. Такие повторяющиеся действия называются циклами. В языке Object Pascal возможна организация 3-х видов циклов.
Оператор цикла for организует выполнение последовательности операторов заранее известное число раз. Существуют два варианта оператора:
1. С увеличением счётчика:
for <счётчик> := <начальное значение> to <конечное значение> do <оператор>;
2. С уменьшением счётчика:
for <счётчик>:=<начальное значение>downto <конечное значение>do <оператор>;
Здесь
<счётчик> – переменная порядкового типа – параметр цикла;
<начальное значение> и <конечное значение> – выражения, которые должны быть совместимы с параметром цикла;
<оператор> – это оператор, который выполняется в цикле – тело цикла.
Если в цикле необходимо выполнить группу операторов, то её следует заключить в операторные скобки begin…end.
Оператор for действует следующим образом. Вначале вычисляются начальное и конечное значения счётчика. Далее счётчику присваивается начальное значение. Затем значение счётчика сравнивается с конечным значением. Далее, пока счётчик меньше или равен конечному значению ( в первом варианте ) или больше или равен ( во втором варианте ), выполняется очередная итерация цикла. В противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение тела цикла, а затем присвоение счётчику следующего большего значения (в первом варианте ) или следующего меньшего значения ( во втором варианте ). Если параметр цикла целого типа, то это означает увеличение либо уменьшение его на 1. В первом варианте начальное значение должно быть меньше конечного, а во втором варианте – больше конечного. В противном случае тело цикла не будет выполнено ни разу.
Пример 12. Напечатать столбиком все целые числа от 30 до 45.
var i : integer;
begin
for i:=30 to 45 do writeln(i);
readln
end.
Пример 13. Найти сумму всех целых чисел от 10 до 50.
var i, s : integer;
begin
s:=0;
for i:=10 to 50 do s:=s+i;
writeln(s);
readln
end.
Рассмотрим выполнение этой программы по шагам:
Пример 14. Вычислить сумму 22 + 23 + 24 + … + 210
Для решения этой задачи сначала ответим на вопрос: сколько слагаемых в этой сумме? Слагаемые – это степени двойки от 2ой до 10ой. Следовательно, имеем 9 слагаемых. Каждое следующее слагаемое получается из предыдущего умножением на 2. Пусть a – очередное слагаемое, s – сумма. Используя эти соображения, запишем решение:
var i, a, s : integer;
begin
a:=2; s:=0;
for i:=1 to 9 do
begin a:=a*2; s:=s+a end;
writeln(s);
readln
end.
Пример 15. Подсчитать количество двузначных чисел, кратных 7.
Решение. Двузначные числа – это все целые числа от 10 до 99. k – счётчик двузначных чисел, кратных 7.
var i, k : integer;
begin
k:=0;
for i:=10 to 99 do
if i mod 7=0 then inc(k);
writeln(k);
readln;
end.
Пример 16. Дано натуральное число n, которое вводится с клавиатуры. Вычислить сумму всех его натуральных делителей, за исключением самого числа.
Решение. Мы будем перебирать все числа от 1 до n div 2 (так как у числа n не может быть натуральных делителей, больших, чем n div 2) и складывать те из них, на которые число n делится без остатка.
var i, s, n : integer;
begin
readln(n);
s:=0;
for i:=1 to n div 2 do
if (n mod i =0) then s:=s+i;
writeln(s);
readln
end.
Пример 17. Дана последовательность из 10 действительных чисел, которые вводятся с клавиатуры. Подсчитать сумму тех из них, которые больше, чем 5,12.
Решение. На каждом из 10 шагов цикла мы должны: во-первых, прочитать очередное число a, во-вторых, если прочитанное число удовлетворяет условию a>5.12, добавить его в сумму.
var i : integer; a, s : real;
begin
s:=0;
for i:=1 to 10 do
begin
read(a);
if a>5.12 then s:=s+a
end;
writeln(s:5:2);
readln; readln
end.
После запуска приложения введём через пробел последовательность чисел
6.5 -0.4 2.01 12.8 -9.2 -0.15 10.7 3.98 -4.1 0.6
и нажмём Enter. Получим результат 30.00.
Пример 18. Дана последовательность из 10 действительных чисел, которые вводятся с клавиатуры. Найти максимальный элемент последовательности.
var i : integer; a, max : real;
begin
read(max);
Информация о работе Структура программы. Идентификаторы переменных, констант