
- •Программирование на языке Turbo Pascal Материалы к урокам
- •Тема №1: этапы решения задач на эвм. Алгоритмизация. Основные понятия. Блок-схемы.
- •Свойства алгоритма
- •Элементы блок-схемы
- •Тема №2: работа в среде turbo-pascal. Транслятор. Набор текста программы. Справочная система. Выполнение и отладка программы.
- •Основные понятия:
- •Встроенные стандартные математические функции, используемые в Turbo Pascal.
- •Переменные. Описание переменных.
- •Тип переменных указывается после списка переменных через двоеточие (: ). Числовые переменные можно описать по-разному, в зависимости от вида (целые, вещественные) и значности чисел:
- •Простейшие операторы работы в текстовом режиме.
- •Нестандартный оператор очистки экрана:
- •Операторы ввода данных в переменные с клавиатуры:
- •Оператор ожидания нажатия на клавишу.
- •Целочисленные арифметические операции:
- •Функции, преобразования числовых переменных:
- •Получение случайных чисел.
- •Тема №4: программирование на языке turbo-pascal. Прорядковые типы данных. Ветвление. Операторы условного и безусловного перехода. Составление программ с использование ветвления и переходов.
- •Порядковые типы переменных (дополнительные сведения)
- •Функции, используемые для работы с порядковыми переменными.
- •Условный оператор (выбор одного из двух направлений)
- •Оператор 1, оператор 2 – какой либо оператор, в том числе и составной оператор, т.Е. Несколько операторов, объединенных операторными скобками begin end.
- •Ветвление на несколько направлений (оператор – переключатель, или оператор выбора или оператор варианта):
- •Операторы безусловного перехода goto и halt:
- •Тема №5: программирование на языке turbo-pascal. Организация циклов. Операторы циклов. Составление программ с использование операторов цикла.
- •Оператор цикла с параметром.
- •Цикл с предварительным условием
- •Цикл с последующим условием
- •Особенности и отличия операторов цикла
- •Примеры программ
- •Ответить на вопросы
- •Тема №6: программирование на языке turbo-pascal. Процедуры. Функции. Составление программ с использование процедур и функций. Рекурсия.
- •Тема №7: программирование на языке turbo-pascal. Основные графические операции языка turbo pascal. Составление программ с использование операторов графики.
- •Примеры программ:
- •Составить программу Абстракция, которая выводит на экран всевозможные графические фигуры.
- •Тема №8: программирование на языке turbo-pascal. Массивы, одномерные и вдухмерные. Составление программ с использованием массивов.
- •Задача MaxMin. Программа для поиска максимального и минимального элемента массива, с указанием их номеров (maxmin.Pas).
- •Сортировка массивов
- •Сортировка методом «пузырька»
- •Сортировка методом выбора
- •Поиск элемента в упорядоченном массиве
- •Тема №9: данные типа strung.
- •Тема №8: файлы. Типизированные файлы. Текстовые файлы.
- •Пример записи в текстовый файл:
- •Приложение 1. Структура типов данных
- •Приложение 2. Таблица кодов ascii
- •Назначение некоторых кодов ascii
- •Приложение 3. Расширенные ascii –коды клавиш
- •Приложение 4. Кодировка символов по модифицированной альтернативной кодировке символов госта (десятичный код-символ)
- •Содердание
Тема №8: программирование на языке turbo-pascal. Массивы, одномерные и вдухмерные. Составление программ с использованием массивов.
ПРОГРАММНО - ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. Turbo-Pascal 5.
ЦЕЛИ И ЗАДАЧИ: Знакомство с понятием массив и способами их обработки. Познакомиться с базовыми алгоритмами работы с массивами. Выработка навыков составления программ с использованием массивов.
ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:
Учащиеся должны знать:
Что такое массив;
Какие бывают массивы;
Чем отличаются одномерные и двухмерные массивы;
Как описываются массивы в программе;
Как обратиться к заданному элементу массива;
Алгоритм нахождения максимума или минимума среди элементов массива;
Простейший алгоритм сортировки элементов одномерного массива.
Учащиеся должны уметь:
Заполнять массивы с клавиатуры или случайными числами, произвольным или заданным образом;
Распечатывать одномерные массивы в виде строки;
Распечатывать двухмерные массивы в виде таблиц;
Находить заданные элементы массива;
Заменять заданные элементы массива или производить с ними арифметические операции;
Менять местами элементы массива;
Находить сумму, произведение или экстремальные элементы в массиве;
Сортировать одномерные массивы;
Составлять программы с использованием массивов.
ПЛАН-СОДЕРЖАНИЕ УРОКА
Основные понятия
В Паскале, кроме простых типов данных (integer, real, char и т.д.), имеются и сложные типы. К ним относятся массивы.
Массив (array, от французского – сплошной) – это область памяти, в которой размещается совокупность конечного числа данных одного типа с одним именем. Каждый элемент такой совокупности обозначается именем массива с индексом (номером элемента в массиве).
Элемент массива – отдельная переменная, входящая в массив;
Индекс (index) – это числовая константа или целочисленное арифметическое выражение (частный случай - целочисленная переменная), которым снабжаются элементы массива, чтобы отличать их друг от друга.
Индекс элемента массива – номер элемента в массиве.
Особенность массивов заключается в том, что все элементы массива являются данными одного типа (возможно и структурированного). При назначении массиву имени соблюдаются те же требования, какие предъявляются к именам переменных простых типов.
a11 |
a12 |
… |
a1n |
a21 |
a22 |
… |
a2n |
… |
… |
… |
… |
am1 |
am2 |
… |
amn |
Двухмерный массив
В одномерном массиве для указания местоположения элемента достаточно одного индекса,
В двухмерном массиве – два индекса, для строк и граф.
Размерность массива определяется количеством индексов.
Размер массива – диапазон изменения индексов массива.
Размер одномерного массива – количество элементов, которое содержит массив.
Размер двухмерного массива - количество элементов в сроках и графах таблицы и т.д.
Описание массивов:
-
Тип массива
Описание массива
1 способ
2 способ
одномерный:
Type t=array[1..n] of тип;
Var a:t;
Var a: array[1..n] of тип;
двухмерный
Type р=array[1..n,1..m] of тип; Var a:р;
Var а=array[1..n,1..m] of тип;
трехмерный
Type р=array[1..n,1..m,1..k] of тип; Var a:р;
Var a=array[1..n,1..m,1..k] of
Пример описания одномерного массива размерностью 20:
type mas=array[1..20] of integer; var a : mas; |
mas – имя типа, a – имя переменной типа массив. Границы изменения индексов - от 1 до 20, т.к. размерность 20 элементов |
const mas : array [1..7] of byte=(31,–7,4,3,25,–3,2); |
Массив, объявленный как константа, т.е. совмещается объявление массива и занесение в него констант. |
Следует помнить, что значением переменной a является весь массив!
Элемент массива обозначается указанием имени массива, за которым в квадратных скобках следует индекс массива. Например, a[1] – первый элемент одномерного массива; с[5] – пятый элемент одномерного массива; a[i] – i-тый элемент одномерного массива или для двухмерных массивов: с[1,5] – пятый элемент первой строки массива; a[i,j] – j-тый элемент i-й строки двухмерного массива.
В двухмерном массиве первый индекс - номер строки, второй - номер столбца.
Двухмерные массивы иногда называют матрицами. Двухмерные массивы могут быть прямоугольными (количество строк и столбцов разное) или квадратными (одинаковое количество строк и столбцов). В двухмерных массивах элементы, у которых номер строки совпадает с номером столбца, называются диагональными или элементами главной диагонали. Главная диагональ начинается с первой с роки первого столбца и заканчивается на последней строке последней графы. Кроме главной диагонали существует побочная диагональ - с последней графе первой строки до первой графы последней строки.
Базовые алгоритмы работы с одномерными массивами
Будем считать, что объявили массив из 10 элементов, тип элементов в данном случае значение не имеет:
заполнение одномерного массива:
заполнение с клавиатуры:
for i:=1 to 10 do
begin
writeln (‘Введите значение элемента’);
readln(a[i]);
end;
заполнение случайным образом:
for i:=1 to 10 do
a[i]:=random(n); {n должно быть задано заранее}
заполнение натуральными числами:
for i:=1 to 10 do
a[i]:=i;
поменять местами два заданных элемента массива:
c:=a[i]; a[i]:= a[j]; a[j]:=c;
заполнение по формуле (например, ai=sin i):
for i:=1 to 10 do
a[i]:=sin(i);
вывод массива на экран:
for i:=1 to 10 do
writeln (‘элемент ’, i, ‘ массива ’,a[i]);
нахождение суммы элементов одномерного массива:
s:=0;
for i:=1 to 10 do
s:=s+a[i];
подсчёт количества элементов, удовлетворяющих заданному условию (например, положительных элементов):
k:=0;
for i:=1 to 10 do
if a[i]>0 then k:=k+1;
поиск максимального элемента одномерного массива и его номера:
max:=a[1];
n:=1;
for i:=2 to 10 do
if a[i]>max then begin max:=a[i]; n:=i; end;