- •Введение
- •1Алгоритм. Разработка алгоритмов. Блок-схемы
- •3Операторы языка Delphi
- •3.1Оператор присваивания
- •3.2Оператор ввода-вывода
- •3.3Составные операторы
- •3.4Условный оператор
- •3.7Цикл с параметром (счетчик)
- •3.8Массивы
- •3.5Цикл с предусловием
- •3.6 Цикл с постусловием
- •3.9Строки
- •3.10Записи
- •3.11Множества
- •4Отладчик программы Debugger
- •5Среда Delphi
- •6Создание интерфейса приложения
- •7Подпрограммы
- •7.1Процедуры
- •7.2Функции
- •7.3Параметры и аргументы
- •8Особенности объектно-ориентированного программирования
- •9Работа с кнопкой
- •10Работа с текстом
- •10.1Работа с надписью
- •10.2Функции преобразования числа в строку и строки в число
- •10.3Работа в однострочном редакторе (Edit, LabeledEdit)
- •10.4Работа с многострочным редактором Memo
- •11Диалоги, сообщения
- •11.1Процедура ShowMessage
- •11.2Процедура MessageDlg
- •11.3Процедура InputBox
- •11.4Процедура InputQuery
- •11.5Стандартные диалоги
- •12Работа с компонентом StringGrid
- •13Построение графика функции
- •14Файлы
- •15Работа со списками и переключателями
- •15.1 Компонент ChekBox
- •15.2Компонент RadioButton
- •16Исключительные ситуации
- •17Работа с несколькими модулями
- •18Работа с формой
- •Содержание
- •Список использованных источников
3.5Цикл с предусловием
Цикл с предусловием выполняется до тех пор, пока условие истинно. С предусловием, потому, что условие стоит перед телом цикла.
Формат оператора:
while (условие) do (оператор);
Этот оператор работает следующим образом: перед тем как войти в сам цикл, проверяется условие. Если оно выполняется, то программа заходит в тело цикла, если же условие не выполняется, то программа переходит к следующему оператору, который идет после цикла. Выполнение условия проверяется после каждой итерации. Может получиться и так, что программа не попадет в тело цикла ни разу.
3.6 Цикл с постусловием
Бывает такая ситуация, что надо получить результаты первой итерации цикла, а только потом проверять выполнение условия. В этом случае можно воспользоваться оператором repeat…until.
Обеспечивается работа оператора repeat, пока не выполнится условие. Формат оператора:
repeat
(операторы)
until (условие);
Пример 2.
Вычислить сумму с точностью Е
Блок-схема:
Текст программы:
program Cikl;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x,e,znam,chisl,s:real;
znak,i:integer;
begin
writeln('Vvedite x i E (tochnost`)');
readln(x,e);
S:=1;
i:=0;
if x<>0 then
begin
znak:=1;
znam:=1;
chisl:=1/x;
repeat
inc(i);
chisl:= chisl*x*x;
znam:=znam*i;
znak:=znak*(-1);
S:=S+chisl/znam*znak
until ABS(chislitel/znamenatel) < e;
end;
writeln('Pri x= ',x:0:2,', E= ',E:0:6,
': S= ',S:0:6,' Kolicestvo iteraciy ',i);
readln;
end.
3.7Цикл с параметром (счетчик)
Когда нам требуется что-то посчитать определенное количество раз, циклы с предусловиями и постусловиями не удобны для реализации таких задач. Удобнее использовать цикл с параметром, который можно реализовать при помощи оператора for.
Формат оператора:
for (параметр):=(начальное значение) to/ downto (конечное значение) do(оператор);
Значения параметра могут быть только порядкового типа, и шаг изменения параметра может быть только +1 (to) или -1 (downto). Цикл выполняется до тех пор, пока параметр цикла меньше или равен конечному значению.
Пример 3. Вычислить сумму первых n членов ряда
Блок-схема:
3.8Массивы
Массив - упорядоченный набор данных, используется для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. Все элементы, входящие в массив, должны иметь один и тот же тип данных. Массив может быть одномерным и многомерным.
Примеры описания массивов:
Одномерные массивы
const
n=10;
var
mas: array [1..5] of real;
mas2: array [3..n] of integer;
Можно описать массив, вводя новый тип данных.
type
mas=array [10..20] of real;
var
massiv:mas;
Разберем пример на одномерный массив. Как вводить массив. Некоторые операции над массивом.
Пример 4. Посчитать среднеарифметическое всех положительных элементов массива.
Блок-схема
Текст программы:
program Odnomer_massiv;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
Nmax=20;
var
i,N,k:integer;
S,sr:real;
a: array [1.. Nmax] of real;
begin
writeln('vvedite kolichestvo elementov massiva');
readln(N);
for i:=1 to N do
begin
writeln('Vvedite ',i,' element massiva');
readln(a[i]);
end;
S:=0;
k:=0;
for i:=1 to N do
begin
if a[i]>0
then
begin
inc(k);
S:=S+a[i];
end;
end;
if k>0 then
begin
sr:=S/k;
writeln('Srednee arifmeticeskoe vseh polojitel`nih elementov massiva= ',sr:0:3)
end
else writeln(‘Net polojitel`nih elemenrov’);
readln;
end.
Двумерные массивы
const
m=10;
n=20;
var
mas: array [1..5,1..m] of real;
mas2: array [1..n,1..m] of integer;
Можно описать двумерный массив, вводя новый тип данных.
type
mas=array [1..10] of real;
massiv=array[1..5] of mas;
var
dvumer_mas:massiv;
или
type
mas=array [1..10,1..4] of real;
var
dvumer_mas:mas;
Пример 5.
Упорядочить строки вещественной матрицы по убыванию их наибольших элементов без использования вспомогательной матрицы.
(Каждая строка двумерного массива является одномерным массивом. Таким образом, необходимо упорядочить одномерный массив по убыванию столько раз, сколько строчек в двумерном массиве).
Блок-схема
Текст программы:
program Dvumer_mas;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=3;
m=4;
type
mas=array [1..n,1..m] of real;
var
i,j,ii:integer;
vspom:real;
a:mas;
begin
for i:=1 to n do
for j:=1 to m do
begin
write('Vvedite element matrici
a[',i,',',j,']: ');
readln(a[i,j]);
end;
writeln('Staraya matrica');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:10:1,' ');
writeln;
end;
for i:=1 to n do
begin
for ii:=1 to m-1 do
for j:=ii to m do
if a[i,ii]<a[i,j] then
begin
vspom:=a[i,ii];
a[i,ii]:=a[i,j];
a[i,j]:=vspom;
end;
end;
writeln;
writeln('Novaya matrica');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:10:1,' ');
writeln;
end;
readln;
end.
