Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Установка размеров динамического массива выполняется с помощью процедуры





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

SetLength(var MAS; NL1,NL2: integer),

где MAS - имя массива,

NL1 - количество строк,

NL2 - количество столбцов.

 

Нумерация в динамическом массиве начинается с нуля.

Примеробнуления элементов двумерного массива, имеющего 5 строк и 5 столбцов:

varMAS: array of array of real; ij: integer;

SetLength(MAS,5,5);

for i:=0 to 4 do

for j:=0 to 4 do

MAS[ij]:=0;

Пример программирования с использованием двумерного массива

 

Задание:Подсчитать сумму всех элементов в двумерном мас­сиве А[4,5].

Разработка алгоритма

Входные данные

А - вещественный массив размером 4x5. Выходные данные

sum - вещественная переменная - сумма всех элементов массива. Промежуточные данные

i, j - индексы массива, целочисленные переменные.

 


 


 

Таблица 6.1 Используемые компоненты

 

 

 

 

Имя ком­понента Страница палитры компонент Настраи­ваемые свойства Значения
Forml   Caption Лабораторная работа №6
Label 1 Standard Caption Введите элементы матрицы
Label2 Standard Caption Сумма элементов равна
Label3 Standard Caption  
Button 1 Standard Caption Расчет
StringGridl Additional FixedCols
RowCount
FixedRows
Options [goEditing, goTabs]

 

6.3.3. Текст программы

unit Unit 1; interface

uses

Windows, Messages, SysUfils, Classes, Graphics, Contro Forms, Dialogs,

StdCtris, Grids;

type TForml = class(TForm)

StringGridl: TStringGrid;

Label 1: TLabel;

Button1:TButton;

Label2: TLabel;

Label3: TLabel;

procedure ButtonlClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var Forml: TForml; implementation

{$R *.DFM} ?

procedure TForml.ButtonlClick(^ender: TObject); const m=4; n=5;.'

type.

mas=array [l..m,l..n] of real; var ijrinteger; a:mas; sum:real; begin

fori:=0to m-1 do

forj:=0 to n-1 do

a[i+l,j+l]:=strtofloat(stringgridl.cells[j,i]);

sum:=0;

for i:=l to m do

forj:=l to ndo

sum:=sum+a[ij];

label1 .caption:=floattostr(sum);

end;

end.

6.4. Контрольные вопросы

1. Написать фрагмент программы ввода двумерного целочисленно­го массива, в котором 5 строк и 10 столбцов.

2. Написать фрагмент программы вывода двумерного веществен­ного массива, в котором 5 строк и 6 столбцов.

3. Дать описание трехмерного целочисленного массива.

4. Дать описание четырехмерного целочисленного массива с ис­пользованием разделов описания type и var.

5. Заданы массивы:

var

А, В: аггау[1.Л5Д.8] of real;

t: boolean;

Какие операции над этими массивами как над единым целым допустимы в системе Delphi?

6. Ввести квадратную вещественную матрицу 4-го порядка, эле­-
менты которой заданы построчно, и распечатать ее по столбцам.

7. Сколько элементов содержит каждый из описанных ниже ком­-
понентов?

var MB: array [ А .. С ,2..5] of real;

var MC: array [FALSE..TRUE] of array [1..5] of char;

var MD: array [1..5,2.-8] of integer;

8. Присвоить нулевые значения всем элементам массива

A: array [ К .. Z ] of real

9. Для чего предназначается компонент TStringGrid?

10. Какими свойствами обладает компонент TStringGrid?

6.5. Задания к лабораторной работе6

1. Дана вещественная матрица размером NxM. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.

2. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов.

3. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию суммы их элементов.

4. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию наибольших элементов.

5. Определить, является ли заданная целочисленная квадратная матрица порядка N симметричной относительно главной диаго­нали.

6. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке, и одновременно наибольшим в сво­ем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целочисленной матрицы размером NxM напечатать индексы ее седловых точек.

7. Определить, является ли заданная целочисленная квадратная матрица 9-го порядка магическим квадратом, то есть такой, в котором суммы элементов во всех строках и столбцах одинако­вы.

8. Даны целые числа А1…А10, целочисленная квадратная матрица порядка N. Заменить нулями в матрице те элементы, для кото­рых имеются равные числа среди A1...,A110.

9. Дана действительная квадратная матрица порядка N. Преобразо­вать матрицу по правилу: первую строку сделать первым столб­цом, вторую строку сделать вторым столбцом и т.д.

10.Даны две действительные квадратные матрицы порядка N. По­лучить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из элементов соответствующей строки второй матрицы.

11.Даны две действительные квадратные матрицы порядка N. По­лучить новую матрицу прибавлением к элементам каждого столбца первой матрицы минимального элемента соответст­вующего столбца второй матрицы.

12.В данной действительной квадратной матрице порядка N найти наибольший по модулю элемент. Получить квадратную матрицу порядка N-1 путем выбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найден­ным значением.

13.В данной действительной квадратной матрице порядка N найти наименьший по модулю элемент. Получить квадратную матрицу порядка N-1 путем выбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найден­ным значением.

14. Дана действительная матрица размером NxM, в которой не все
элементы равны нулю. Получить новую матрицу путем деления
всех элементов данной матрицы на ее наибольший по модулю
элемент.

15. Дана действительная матрица, в которой не все элементы равны
нулю. Получить новую матрицу путем деления всех элементов
данной матрицы на ее наименьший по модулю элемент.

 

16. Дана действительная квадратная матрица порядка N. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

17. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные значениям средних арифметических элементов строк.

18. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные значениям средних арифметических элементов столбцов.

19. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные среднему арифметическому значению макси­мального и минимального элементов каждого столбца.

20. Все элементы с наибольшим по модулю значением в целочис-­
ленной квадратной матрице порядка N, заменить нулями.

21. В данной действительной квадратной матрице порядка N найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единст­венный.

22. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные произведениям элементов строк.

23. Дана действительная матрица размером NxM. Определить числа
В1..,Вn, равные произведению минимального и максимального
элементов столбцов матрицы.

24. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные произведению минимального и максимального элементов строк матрицы.

25. Дана действительная матрица размером NxM. Определить числа В1…Вn равные максимальным значениям элементов строки

С1-.,Сn, равные минимальным значениям элементов столбцов.

 

Раздел 7. СИМВОЛЫ И СТРОКИ

Компьютер может обрабатывать не только числовую информацию, но и символьную. Язык Delphi оперирует с символьной информацией, которая может быть представлена как отдельными символами, так и строками (поcледовательностью символов).

 

Символы

 

Для хранения и обработки символов используются переменные типа Ansicharи WideChar. Тип Ansichar представляет собой набор ANSI-символов, в котором каждый символ кодируется восьмиразрядным двоичным числом (байтом). Тип wideChar представляет собой набор символов в кодировке Unicode, в которой каждый символ кодируется двумя байтами.

Для обеспечения совместимости с предыдущими версиями поддерживается тип Char, эквивалентный AnsiChar.

 

Значением переменной символьного типа может быть любой отображаемый символ:

 

· буква русского или латинского алфавитов;

· цифра;

· знак препинания;

И специальный символ, например, "новая строка".

 

Переменная символьного типа должна быть объявлена в разделе объявления переменных. Инструкция объявления символьной переменной в общем виде выглядит так:

 

Имя: char;

где:

· имя — имя переменной символьного типа;

· char — ключевое слово обозначения символьного типа.

Примеры:

otv: char; ch: char;

 

Строки

 

Строки могут быть представлены следующими типами: shortstring, Longstring и widestring. Различаются эти типы предельно допустимой длиной строки, способом выделения памяти для переменных и методом кодировки символов.

Переменной типа shortstringпамять выделяется статически, т. е. до начала выполнения программы, и количество символов такой строки не может превышать 255. Переменным типа Longstring и widestring память выделяется динамически — во время работы программы, поэтому длина таких строк практически не ограничена.

Помимо перечисленных выше типов можно применять универсальный cтроковый тип String. Тип String эквивалентен типуShortstring.

Переменная строкового типа должна быть объявлена в разделе объявления переменных. Инструкция объявления в общем виде выглядит так:

Имя: String;

или

Имя: String [длина]

где:

· имя — имя переменной;

· string — ключевое слово обозначения строкового типа;

· длина — константа целого типа, которая задает максимально допустимую длину строки.

 

Примеробъявления переменных строкового типа:

 

name: string[30];

buff: string;

 

Если в объявлении строковой переменной длина строки не указана, то ее длина задается равной 255 символам, т. е. объявления

 

stroka: string [255]; stroka: string;

эквивалентны.

 

В тексте программы последовательность символов, являющаяся строкой (строковой константой), заключается в одинарные кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:

 

parol:= 'Большой секрет';

 

или

parol:= '2001';

 

Следует обратить внимание, что инструкция parol:=2001; неверная, т.к. тип константы не соответствует типу переменной. Во время компиляции этой инструкции будет выведено сообщение: incompatible types: 'Char' and 'Integer' (типы Char и Integer несовместимы).

Используя операции =, <, >, <=, >= и о, переменную типа string можно сравнить с другой переменной типа string или со строковой константой. Строки сравниваются посимвольно, начиная с первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. В табл. 3.1 приведены примеры сравнения строк.

 

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.