- •Программирование на языке высокого уровня
- •230102 - Автоматизированные системы обработки информации и управления
- •230105 – Программное обеспечение вычислительной техники и автоматизированных систем
- •1. Цели и задачи дисциплины
- •2. Рабочая программа
- •3. Программа и методические указания
- •3.1. Введение в визуальное программирование
- •3.2. Введение в язык Паскаль
- •3.3. Типы данных
- •3.4. Операторы
- •3.5. Ввод/вывод данных.
- •3.6. Ветвления
- •3.7. Циклы
- •3.8. Массивы
- •4. Какие из приведенных операций допустимы в Паскале, если дано такое объявление переменных:
- •3.9. Подпрограммы
- •4. Допустимо ли обращение к функции аналогичное обращению к процедуре?
- •3.10. Основы объектно-ориентированного программирования
- •4. Для чего нужны абстрактные методы?
- •3.11. Событийно-ориентированный подход
- •4. Какие манипуляции на форме (Form1) приводят к автоматическому созданию события?
- •4.Темыпрактических занятий.
- •5. Задания на контрольные работы
- •5.1. Методические указания
- •5.2.Контрольная работа № 1.
- •5.3.Контрольная работа № 2.
- •6. Задания на лабораторные работы.
- •6.1 Лабораторная работа № 1.
- •6.2 Лабораторная работа № 2.
- •6.3 Лабораторная работа № 3.
- •6.4 Лабораторная работа № 4.
- •6.5 Лабораторная работа № 5.
- •7. Методические указания к курсовому проектированию
- •7.1 Общие требования к курсовому проекту
- •7.2 Построение пояснительной записки
- •8. Учебно-методические материалы по дисциплине.
- •Приложение
3.7. Циклы
Цикл — это выполнение определенного набора команд некоторое количество раз. Различают три вида команд циклов:с параметром, с предусловием и с после условием.
Команда цикла с параметром (for). В языке программирования Паскаль есть два вида командыfor. Рассмотрим первый
For <параметр> := <выражение 1>to< выражение 2>do < оператор 1>;
Параметр – это переменная целого, символьного, логического или перечислимого типов, а выражения 1 и 2 задают начальное и конечное значения параметра.
Действие команды. Параметру цикла присваивается значение выражения 1. Если оно меньше (равно), чем значение выражения 2, то выполняется оператор 1. После этого значение параметра автоматически увеличивается на единицу, и оно снова сравнивается со значением выражения 2 и т. д. Когда значение параметра станет больше, чем значение выражения 2, то выполняется следующий после цикла оператор.
Пример. Пустьs= 0. После выполнения команды
for i := 4 to 6 do begin s := s + i; z := 2 * i end;
переменная sполучит значение 0+4+5+6=15, а переменнаяz-12.
Рассмотрим второй вид команды цикла for:
for <параметр> := <выражение 1>downto <выражение 2>do <оператор 1>;
Эта команда действует, как и предыдущая, но шаг изменения параметра равен -1.
Значение параметра в середине цикла изменять нельзя!
Команда цикла с предусловием(while). Командаwhileвыглядит так:
while <логическое выражение>do <оператор 1>;
Действие команды. Пока значение логического выражения истинно, выполняется оператор 1. Истинность логического выражения определяет условие продолжения цикла.
Пример. Пусть переменные х,sравны х = 4,s= 0. После выполнения команды
whileх <= 8dobegins:=s+x;x:=x+ 1end;
они получат значения s=4+5+6+7+8= 30,x = 9.
Вопросы для самопроверки:
1.Вычислите x = 10! (факториал) с помощью трех различных операторов цикла.
2. Дано 100 вещественных чисел. Вычислить разность между максимальным и минимальным из них.
3. Вычислить S- сумму порядковых номеров всех букв, входящих в слово «Delphi»; в слово, введенное пользователем.
4. Подсчитать k-количество цифр в десятичной записи целого неотрицательного числаn.
3.8. Массивы
Массив (array) - это конечный набор элементов одного (базового) типа, которые сохраняются в последовательно размещённых ячейках оперативной памяти и имеют общее имя.
В математике понятию массив соответствуют понятия вектора и матрицы. Различают одно- и многомерные массивы. Двумерный массив данных — это таблица, которая состоит из нескольких строк.
Общий вид конструкции описания типа массива такой:
array [<размер>]of<имя базового типа>;
Размер (количество элементов) массива чаще всего задают в виде диапазона или именем некоторого перечислимого типа данных.
Описать массив можно в разделе описания типов type, в разделе константconst или в разделе объявления переменныхvar. Имена типов массивов и переменных-массивов указывает пользователь.
Пример. Опишем тип массиваmymas, объявим постоянный массив (массив-константу)zatratyтипаmymasи переменные — массивыA,alтипаmymasи массивB, состоящий из 7 элементов целого типа, массивC— из 100 элементов-символов.
type mymas = array [1..10] of real;
day = (mon, tue, wed, the, fri, sat, sun);
constzatraty: mymas =(1.2, 1, 1, 2, 8, 2.4, 8.7, 3, 7, 1.3);
var a, al : mymas;
b : array[day] of integer;
с : array [1..100] ofchar;
Над массивами определена единственная команда присваивания. Например, команда а := alвсе значения массиваalприсвоит соответствующим элементам массива а. Все остальные операции определены только над элементами массива. Доступ к элементам массива осуществляется так:
<имя массива> [ <номер элемента> ]
Номер (его часто называют индексом) записывают в квадратных скобках, например, а[1] - первый элемент массива a,b[tue] -второй элемент массиваB.
Пример. Элементам описанных выше массивов можно присвоить значения так:
а[1] := 15.1; b[tue] := 3; с[1] := ‘V’; с[2] := ‘b’
Элементы массива zatratyимеют такие значения:
zatraty[l] = 1.2; zatraty[2] = 1; ...; zatraty[10] =1.3.
Пример. Создать массив из первых ста положительных целых чисел и вычислить сумму всех его элементов (5050) можно так:
s := 0;
for i := 1 to 100 do
begin
a[i] := i;
s := s + a[i]
end;
label1.caption:=inttostr(s);
Задачи поиска в массиве конкретных данных решают методом сканирования всех элементов массива при помощи команд циклаfor, while илиrepeat и команды ветвления, в которой указывают условие поиска.
Двумерные массивы. Двумерные массивы предназначены для работы с табличными данными. В двумерном массиве элементы определяются именем массива и двумя индексами: первый индекс указывает на номер строки, а второй - на номер столбца, на пересечении которых находится элемент. Например, р[1, 2] - второй элемент первой строки массива р.
Рассмотрим примеры объявления массива-константы bal, который состоит из 2 строк и 4 столбцов, массиваsutki, содержащего 24 строки по 60 элементов целого типа, двухмерного массива р размером 9 на 9 (т.е. с 9*9=81 элементом).
const n = 9;
bal: array [1..2, 1..4] of integer=((4, 3, 5, 3), (4, 4, 5, 3));
var sutki: array [0..23] of array [0..59] of integer;
p : array [l..n, l..n] of integer;
Элементы массива balпринимают такие значения:
bal[l, 1] = 4, bal[l, 2] = 3, ..., bal[2, 3] - 5, bal[2, 4] = 3.
Равносильны следующие команды:
sutki[16][20]:=5; иsutki[16,20]:=5;
Вопросы для самопроверки:
1. Может ли массив содержать один элемент? А ни одного?
2. Можно ли во время выполнения программы изменять размер массива (количество элементов в нем)?
3. Приведите пример инициализации двумерного массива -константы.