- •Информатика
- •Лабораторная работа «Представление и измерение информации в компьютере»
- •Краткие сведении из теории Содержательный подход к измерению информации
- •Алфавитный подход к измерению информации
- •Кодирование графической информации
- •Кодирование звуковой информации
- •Задачи для самостоятельного решения
- •Кодирование числовой информации
- •1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие действия производить в исходной системе счисления.
- •Задания для самостоятельной работы
- •Лабораторная работа «Логические основы эвм»
- •Краткие сведения из теории Основные логические операции
- •Логические элементы
- •Лабораторная работа «Работа в операционной системе Windows»
- •Краткие сведения из теории
- •1. Приемы управления с помощью мыши
- •1.1. Зависание
- •1.2. Щелчок
- •1.3. Двойной щелчок
- •1.4. Щелчок правой кнопкой
- •1.5. Перетаскивание
- •1.6. Протягивание
- •1.7. Специальное перетаскивание
- •2. Работа с окнами
- •2.1. Экран Windows
- •2.2. Типы окон и элементы окна
- •3. Управление объектами Windows
- •3.1. Основные объекты
- •3.2. Изучение свойств объектов
- •3.3. Исследование способов запуска программ
- •4. Файловая структура
- •4.1. Графическое отображение папок и файлов
- •4.2. Длинное имя файла (папки)
- •4.3. Полный путь к файлу
- •4.4. Атрибуты файла (папки)
- •4.5. Структура папок на диске
- •5. Проводник
- •6. Папка Мой компьютер
- •6.1. Окно Мой компьютер
- •7. Операции с файловой системой
- •7.1. Выделение объектов
- •7.2. Просмотр содержимого папки
- •7.3. Свойства объекта
- •7.11. Метод перетаскивания
- •7.12. Копирование файла / папки
- •7.13. Обновление информации о папке
- •7.14. Создание ярлыка
- •9. Калькулятор
- •10. Графический редактор Paint
- •Лабораторная работа «Моделирование в Microsoft Excel»
- •1 Группа. Моделирование полета тела, брошенного под углом к горизонту
- •2 Группа. Вычисление числа с помощью метода Монте-Карло
- •3 Группа. Моделирование экологических систем
- •4 Группа. Моделирование сосуществования двух соперничающих видов
- •Математическая модель
- •Лабораторная работа «Создание простого приложения на Delphi»
- •2. Освоить этапы разработки приложения на Delphi
- •Краткие сведения из теории
- •Под строкой Главного меню справа располагается Панель инструментов, содержащая пиктограммы управляющих элементов.
- •Этапы разработки приложения на языке Delphi
- •5. Компиляция проекта в приложение
- •Порядок работы
- •Лабораторная работа «Использование различных функций Delphi»
- •Краткие сведения из теории Типы данных Delphi
- •Линейный алгоритм
- •Инструкция присваивания
- •Стандартные функции
- •Функции преобразования
- •Пример 2. Разработать инженерный калькулятор для выполнения четырех арифметических операций, вычисления синуса, косинуса, квадрата, квадратного корня, логарифма.
- •Порядок работы
- •Лабораторная работа «Программирование на Delphi разветвляющихся алгоритмов»
- •Краткие сведения из теории
- •Порядок работы
- •Лабораторная работа 4 «Программирование на Delphi циклических алгоритмов»
- •Краткие сведения из теории
- •Порядок работы
- •Лабораторная работа «Работа с массивами на Delphi»
- •Краткие сведения из теории
- •Порядок работы
Лабораторная работа «Работа с массивами на Delphi»
Цель работы:
1. Усвоить правила работы с переменными типа
массив на языке программирования Delphi.
2. Научиться составлять алгоритмы и программы
для обработки одномерных и двумерных массивов.
Краткие сведения из теории
Массивом называется упорядоченная последовательность однотипных объектов, обозначаемая одним именем. Чтобы выделить один из объектов (элемент) массива, надо указать имя массива и номер элемента в нем. Номер элемента называется индексом, индекс указывается в квадратных скобах и может быть числом, переменной, выражением. Имя массива образуется по правилам образования имен переменных.
Например, А [10], B [I, J], SUM [1, J+5]
Если для выделения элемента нужен один индекс, массив называется одномерным, два – двумерным и т.д. Число элементов массива называется длиной или размером массива. Одномерный массив называется вектором.
Для описания массивов используется служебное слово array. Массив в Delphi можно описывать двумя способами:
а) в разделе описания переменных var:
var
<имя переменной>: array [тип индекса] of <тип компоненты>;
б) определить сначала тип, а затем описать массив этим типом
type
<имя типа>: array [тип индекса] of <тип компоненты>;
var
<имя переменной>: <имя типа>;
где <тип индекса> - порядковый тип;
<тип компоненты> - любой тип.
В Delphi есть лишь одна операция, которую можно делать с массивом целиком – это операция присваивания. Все остальные операции производятся только с отдельными элементами массива. С элементами массива можно делать все операции, которые разрешены для базового типа массива. Если массив числовой, то математические, если символьный или строковый, то, соответственно, операции с символьными или строковыми переменными.
Двумерный массив состоит из элементов с двумя индексами: один показывает номер строки в массиве, другой - номер столбца.
В Delphi возможны массивы и большей размерности. Для их описания возможны два подхода:
а) массив рассматривается как массив других массивов:
type
x = array[1..100] of real; y = array[1..2] of x;
б) массив рассматривается как многоиндексный
type y = array [ 1...100, 1...2 ] of real;
Оба описания равноценны.
Пример 11. В векторе найти номера и значения первого минимального и последнего максимального элементов.
Использованные компоненты:
Label3 – для вывода результата;
Edit1 – для ввода числа n;
BitBtn1 – для запуска программы;
BitBtn2 – для выхода из программы;
StringGrid1 – для вывода массива.
Рис. 19. Форма примера 11
Программный код
unitUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
StringGrid1: TStringGrid;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var a:array[1..100] of real;
n,i,nmin,nmax:integer;
amax,amin:real;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
n:=strtoint(edit1.Text);
randomize;
for i:=1 to n do
begin
a[i]:=random(81)- 30;
stringgrid1.cells[i-1,0]:=floattostr(a[i]);
end;
amin:=a[1]; nmin:=1;
amax:=a[1]; nmax:=1;
for i:=1 to n do
begin
if a[i]<amin then begin
amin:=a[i]; nmin:=i
end;
if a[i]>=amax then begin
amax:=a[i]; nmax:=i;
end;
end;
label3.Caption:='Минимальное= '+floattostr(amin)+#13+'Номер минимального= '+inttostr(nmin)+' '+#13+'Максимальное= '+floattostr(amax)+#13+'Номер максимального= '+inttostr(nmax);
end;
end.
Пример 12. Создать массив из n случайных целых чисел, равномерно распределенных в диапазоне от 0 до 100. Вычислить среднее арифметическое и количество четных чисел.
Использованные компоненты:
Label3 – для вывода результата;
Edit1 – для ввода числа n;
BitBtn1 – для запуска программы;
BitBtn2 – для выхода из программы;
StringGrid1 – для вывода массива.
Рис. 20. Форма примера 12
Программный код
unitUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
StringGrid1: TStringGrid;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const nmax=1000;
type x=array[1..nmax] of integer;
var m:x;
k,i,n:integer;
s:real;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
n:=strtoint(edit1.Text);
randomize;
for i:=1 to n do
begin
m[i]:=random(101);
stringgrid1.Cells[i-1,0]:=inttostr(m[i]);
end;
s:=0;
k:=0;
for i:=1 to n do
if not odd(m[i]) then begin
s:=s+m[i];
k:=k+1;
end;
s:=s/k;
label3.Caption:='Среднее арифметическое= '+floattostr(s)+#13+
'Количество четных чисел= '+inttostr(k);
end;
end.
Пример 13. Получить матрицу, элементами которой являются произведения номеров строк i и номеров столбцов j.
Использованные компоненты:
BitBtn1 – для запуска программы;
BitBtn2 – для выхода из программы;
StringGrid 1 – для вывода матрицы.
Рис. 21. Форма примера 13
Программный код
unitUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type mat=array[1..9,1..9] of integer;
var i,j:integer;
p:mat;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
for i:=1 to 9 do
begin
for j:=1 to 9 do
begin
p[i,j]:=i*j;
stringgrid1.Cells[j-1,i-1]:=inttostr(p[i,j]);
end;
end;
end;
end.