- •Иванов и.Н. Паскаль История развития языка.
- •Как пишутся программы
- •Язык программирования
- •Методика решения задач
- •Структура паскаль-программы
- •Раздел описаний
- •Uses - подключение библиотеки данные и их типы
- •Переменные
- •Имена переменных
- •Константы
- •Синтаксис и семантика написания программ
- •Стандартные типы данных
- •Знакомство с интегрированной средой
- •Вход в интегрированную среду
- •Поля основного меню File - работа с файлами
- •Edit - редактирование
- •Search - поиск информации
- •Compile - компиляция программы
- •Debug - отладка программы
- •Tools - инструментальные средства
- •Options - параметры среды
- •Window - работа с окнами
- •Help - информационная помощь
- •Лабораторная работа №1 на тему
- •Запуск среды
- •1). Прежде всего, установите свой каталог, в котором будут содержаться ваши программы:
- •2). Ввод новой программы:
- •Редактирование программы
- •Копирование информации
- •Операторы паскаля: присваивания, ввода-вывода данных Оператор присваивания.
- •Оператор ввода данных.
- •Оператор вывода данных.
- •Модуль crt.
- •Выражения и функции в Паскале.
- •Возведение в степень
- •Практическая работа № 1 тема: "составление линейных и диалоговых программ"
- •Организация ввода-вывода в паскале.
- •Стандартные функции. Линейные программы
- •Ветвления и циклы в паскале. Оператор варианта Оператор ветвления (условный).
- •Оператор варианта.
- •Оператор цикла с параметром.
- •Вложенные циклы
- •Оператор цикла с предусловием. (Работает, пока истинно условие)
- •Оператор цикла с постусловием. (Работает, пока ложно условие)
- •Нестандартные типы данных: перечисляемый и ограниченный тип
- •Var имя переменной: имя типа;
- •Ограниченный тип данных
- •1 Октября 1994 года - 4 квартал – суббота
- •Символьные переменные и функции в паскале
- •Процедуры и функции в паскале
- •Графика паскаля
- •Практический зачет на тему:
- •Сложные типы данных тип массив. Одномерные массивы
- •Решение задач
- •IV. Домашнее задание.
- •Сложные типы данных. Тип массив двумерные массивы
- •Ввод-вывод элементов массива.
- •Решение задач
- •Файловый тип данных
- •Урок № 55-56
- •Ход урока.
- •I. Самостоятельная работа с теоретическим материалом.
- •II. Теоретический материал.
- •III. Домашнее задание.
- •Урок № 57-58
- •Ход работы.
- •Урок-исследование № 59-60
- •Ход урока.
- •Теоретический материал к уроку.
- •Var имя множества: set of базовый элемент;
- •Var имя множества: имя типа;
- •Задание для работы в группах по теме “Множества”
- •Урок № 61-62
- •Ход работы.
- •I. Консультация по билетам.
- •II. Решение задач.
- •III. Домашнее задание.
Сложные типы данных тип массив. Одномерные массивы
Переменные сложных типов отличаются от простых тем, что имеют более чем один компонент.
Множества значений или переменных с одним общим именем называются структурированными (составными) типами. Имеется несколько способов построения составных типов, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонент, входящих в данные структурированных типов.
По способу организации и типу компонент выделяют четыре основные разновидности структурированных типов:
регулярный тип (массивы – для однотипных данных);
комбинированный тип (записи – для разнотипных данных);
файловый тип (файлы);
множественный тип (множества).
МАССИВ – набор данных одинакового типа, упорядоченных по значениям индекса.
Массив характеризуется именем, размерностью, размером.
Размерность показывает количество «направляющих» массива.
Например, ARRAY[1..10] – одномерный массив-вектор размером на 10 элементов (компонент), ARRAY[1..5, 1..3] – двумерный массив-матрица размером на 15 элементов (5 столбцов на 3 строки).
Массив-вектор еще называется массивом-строкой, а массив-матрица – массивом-таблицей.
ОПИСАНИЕ МАССИВА:
1. VAR ИМЯ МАССИВА: ARRAY[T1] OF T2
где T1- тип индекса (любой, кроме real и неограниченного integer). Здесь указывается фактически количество элементов массива.
T2- тип элементов массива (базовый тип)
VAR a: array[1..10] of integer; {одномерный массив}
VAR b:array[1..5,1..7] of integer; {двумерный массив}
2. TYPE aaa=1..7; bbb=(zima, vesna, leto, osen)
VAR a:array[aaa] of integer; {массив ограниченного типа}
b:array[bbb, bbb] of integer; {массив перечисляемого типа}
ВВОД-ВЫВОД ЭЛЕМЕНТОВ МАССИВА.
I. Одномерный массив
FOR I:=1 TO N do {ввод}
READLN(X[I],Y[I]);
FOR I:=1 TO N do
WRITELN(X[I]:4,Y[I]:4); {вывод}
II. Двумерный массив
FOR I:=1 TO N do
BEGIN
FOR J:=1 TO N do
BEGIN
A[I,J]:=RANDOM(10); {или read(a[i,j];}
WRITE(A[I,J]:4);
END;
WRITELN;
END;
Решение задач
Задача №1
Вектор Х = {Х1,Х2,...,Хn} сдвинуть циклически на одну позицию влево, т.е. получить вектор Х={Х2,Х3, ...,Хn, Х1}.
Решение:
Чтобы все элементы массива сдвинуть на одну позицию влево, а первый элемент попал в конец, нужно организовать попарный обмен элементов, начиная с начала. То есть первый и второй элемент меняются местами (первая итерация цикла), затем второй и третий меняются местами (вторая итерация цикла) и так далее. Первый элемент при этом передвигается в конец, а все остальные сдвигаются влево на одну позицию.
Программа
program massiv;
var m:array[1..5] of integer;
i,tp:integer;
begin
for i:=1 to 5 do
m[i]:=i; {заполнили массив}
for i:=1 to 5 do
writeln('m',i,'=',m[i]); {вывели на экран}
writeln;
for i:=1 to 4 do {цикл для сдвига}
begin
tp:=m[i];
m[i]:=m[i+1];
m[i+1]:=tp;
end;
for i:=1 to 5 do
writeln('m',i,'=',m[i]); {вывели новый на экран}
writeln;writeln;
end.
Задача №2
Из массива Х, содержащего 15 элементов, в массив Y переписать подряд отрицательные элементы.
Программа:
program massiv;
var X:array[1..15] of integer;
Y:array[1..15] of integer;
i,k:integer;
begin
k:=0;
for i:=1 to 15 do
begin
X[i]:=i-7; {заполнили массив}
Y[i]:=0;
end;
for i:=1 to 15 do
writeln('X[',i,']=',X[i]); {вывели на экран}
writeln;
for i:=1 to 15 do
if X[i]<0 then
begin
k:=k+1; {счетчик для отр. элементов, чтобы они шли подряд}
Y[k]:=X[i];
end;
for i:=1 to 15 do
writeln('Y[',i,']=',Y[i]); {вывели новый на экран}
writeln;writeln;
end.
Задача №3
Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z(12).
Программа:
Program Mass3;
Var Z:array[1..12] of integer;
R:array[1..12] of integer;
i{для цикла},count{счетчик}:integer;
Begin
count:=0;
{заполнение массива Z}
For i:=1 to 12 do
If (i mod 2)=0 then Z[i]:=i else Z[i]:=-i;
{просмотр заполеннного массива Z}
For i:=1 to 12 do
WriteLn('Z[',i,']=',z[i]);
{собираем положительные в начало}
For i:=1 to 12 do
If z[i]<0 then
Begin
{считаем отрицательные}
count:=count+1;
r[count]:=z[i];
end;
{положительные после отрицательных}
For i:=1 to 12 do
If z[i]>0 then
begin
{положительные после отрицательных}
count:=count+1;
r[count]:=z[i];
end;
{просмотр заполненного массива Z}
WriteLn;
For i:=1 to 12 do
WriteLn('R[',i,']=',R[i]);
end.
Самостоятельная работа на 4 варианта (задачи N 1, 2, 3, 4).
Список задач:
N учащихся одного класса получили оценки за контрольную работу. Сколько учащихся получили "двойку".
Имеется массив Х. Определить индексы отрицательных элементов данного массива. Массив Х содержит m элементов.
Вычислить сумму элементов массива C, стоящих на нечетных местах. Массив С содержит 10 элементов.
Для целочисленного массива А, содержащего 10 элементов, определить, кратна ли сумма его элементов 7.
Вычислить среднее арифметическое и среднее геометрическое элементов массива С(n).
Для целочисленного массива Y вычислить среднее геометрическое элементов, кратных трем. Массив Y содержит К элементов.
Дан массив В из десяти элементов. Организовать новый массив, элементы которого расположены в обратном порядке.
Элементы массива А, удовлетворяющие условию А(i)>5.5, переписать в массив В, а элементы, удовлетворяющие условию А(i)<=5.5, переписать в массив С. В массиве А m элементов