рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

For i:=0 to High(r)-1 do

For i:=0 to High(r)-1 do - раздел Образование, Работа с массивами динамические массивы R[I]:=I*i; Setlength(R,20); For I:=10 To Hi...

r[i]:=i*i;

SetLength(r,20); for i:=10 to High(r)-1 do r[i]:=i*i;

for i:=0 to High(r) do ListBox1.Items.Add(IntToStr(i)+' в квадрате ='+IntToStr(r[i]));

Эта процедура выполняет похожие действия, но с небольшими особенностями. В начале я объявляю новый тип: TDynArr=array of integer. После этого конструкция r:TDynArr; будет означать, что r относится к типу TDynArr, а тот относится к array of integer; . Это тоже самое, что мы писали в первой процедуре r:array of integer; , только такая конструкция удобней, если ты захочешь объявить несколько динамических массивов. Тебе не приходится сто раз писать громоздкую строку r:array of integer; , ты объявляешь новый массив как TDynArr.

Далее идёт всё та же очистка строк и выделение памяти под массив.

for i:=0 to High(r)-1 do r[i]:=i*i;

Эта конструкция заполняет десять элементов квадратами числа i. После этого я снова вызываю функцию SetLength(r,20);, в которой говорю, что массив теперь будет состоять из 20-и элементов. Таким способом можно как увеличивать количество элементов, так и уменьшать.

for i:=10 to High(r)-1 do r[i]:=i*i;

Здесь я заполняю квадратами числа i элементы начиная с 10 по последний. И в конце я снова заполняю ListBox1 значениями элементов массива.

На компакт диске, в директорииПримерыГлава 10DynArraysты можешь увидеть пример этой программы.

 

10.2 Многомерные массивы.

ы уже разобрались с массивами, но пока это только одномерные массивы, в которых данные располагаются в виде строки. Для Delphi это не предел и он может работать и с несколькими измерениями массива.

Например, допустим, что тебе надо держать таблицу из данных. Таблица будет состоять из пяти колонок и четырёх строк. В этом случае ты можешь завести четыре массива, в каждом из которых будут храниться по 5 элементов. Но это же не солидно!!! Вот тут на встречу приходят многомерные массивы.

Объявляются такие массивы практически так же как и одномерные, разница только в том, что когда ты в квадратных скобках указываешь длину массива, нужно указывать размеры строк и столбцов данных.

Рассмотрим пример объявления двухмерного массива из четырёх строк и пяти столбцов:

var t:array[0..3, 0..4] of integer;

Как видишь, в квадратных скобках перечислены через запятую размеры строк и столбцов. Заметь, что я объявил массив от 0 до 3 – это будет четыре элемента и от 0 до 4, что будет 5 элементов.

Работа с таким массивом тоже достаточно простая:

var t:array[0..3, 0..4] of integer;

begin t[0][0]:=1; t[1][0]:=2; t[2][0]:=3; t[3][0]:=4; t[1][1]:=5;

end;

После выполнения этого примера наша таблица будет иметь вид:

1 5 0 0 0
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0

Двухмерность не предел и ты можешь создавать и 3-х мерные массивы. Давай молча посмотрим на следующий пример:

var t:array[0..3, 0..4, 0..2] of integer;

begin t[0][0][0]:=1; t[1][0][0]:=2; t[2][0][0]:=3; t[3][0][0]:=4; t[1][1][0]:=5;

end;

 

10.3 Работа с файлами.

этой части я познакомлю тебя, как можно работать с файлами. Мы научимся открывать их, записывать и читать из них данные, ну и, конечно же, закрывать.

Для работы с файлами многие предпочитают использовать WinAPI. Не пугайся этого слова, потому что работа с WinAPI в Delphi очень даже прозрачна и ты не ощутишь никаких проблем. Я тоже любил так работать, пока не нарвался на одну неприятность. В самых первых окнах для чтения из файла использовалась функция _lread. В Windows 95 появилась ReadFile. А сейчас рекомендуют использовать ReadFileEx, которая может работать с файлами большего размера. После каждого изменения функций WinAPI приходится переделывать весь код проги, потому что нет гарантии, что старые функции будут работать в новых версиях Windows.

Вот поэтому я стал использовать специализированный в Delphi объект TFileStream. Я и тебе советую делать это, потому что если Microsoft снова введёт какие-то нововведения, то Borland учтёт их в объекте и тебе нужно будет только перекомпилировать свои проги. Никаких изменений в код вносить не надо. Ты один раз изменяешь объект (или это делает Borland) и компилируешь все свои проги с новыми возможностями. И в любом случае, использование объекта намного проще.

Итак, давай взглянём на объект TFileStream. Для работы с ним, ты должен объявить какую-нибудь переменную типа TFileStream.

– Конец работы –

Эта тема принадлежит разделу:

Работа с массивами динамические массивы

Глава Основные при мы кодинга...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: For i:=0 to High(r)-1 do

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

For i:=0 to High(r)-1 do begin
r[i]:=i*i; ListBox1.Items.Add(IntToStr(i)+' в квадрате ='+IntToStr(r[i])); end; В области объявлений VAR я объявил две перем

Var f:TStringList; //Переменная типа объект TStringList.
begin f:= TStringList.Create(); f.Free; end; В этом примере я только создал новый объект и сразу уничтожил, не используя его. Давай снов

Var f:TStrings; //Переменная типа объект TStringList.
begin f:= TStringList.Create(); f.Free; end; В этом примере я объявил переменную типа TStrings, но при создании проинициализировал её объе

F.Add(‘Прощай’);// Добавляю новую строку
f.SaveToFile(‘c:filename.txt’); // Сохраняю результат f.Free; end; На всякий случай, прежде чем изменить пятую строку я проверяю, есть ли в файле эти пять строк. Ес

Преобразование целых чисел в строку и обратно
Начну я с рассмотрения специальных функций для преобразования несовместимых типов. Самое частое, что может тебе понадобиться – преобразование строк в число и обратно. Допустим, что тебе нужно напис

Begin ch:=StrToInt(Edit1.Text); // Преобразовываю Edit1.Text в число ch:=ch+1; Edit1.Text:=IntToStr(ch); // Преобразовываю сh в строку
end; Когда ты преобразовываешь строку в число, ты должен быть уверен в том, что строка содержит число. Если в строке будет хоть один символ не относящейся к цифре, то во в

Преобразование даты в строку и обратно
Теперь познакомимся с преобразованием даты. Для этого есть несколько функций: 1. 1. DateToStr – преобразовывает дату в строку. Единственный параметр, который надо указать – переменн

Преобразование вещественных чисел
Теперь перейдём к числам с плавающей точкой. Когда ты строишь математику в своей программе, то можешь столкнуться с вещественными числами. Например, если у тебя есть какая-то формула, в которой исп

Преобразование строк
Допустим, что у тебя есть строка типа String и ты хочешь её преобразовать в PChar. Для такого преобразования нужно написать требуемый тебе тип и в скобках указать свою строковую перем

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Var p:Pointer
Для того, чтобы получить адрес переменной или объекта, необходимо перед его именем поставить знак @. Например, у тебя есть строка Str и чтобы присвоить её а

Begin ws:=New(PWindowSize); // Выделяем память ws.Left:=10; // Изменяем одно свойство Dispose(ws); // Уничтожаем память
end; В этом примере я объявил переменную ws типа PWindowsSize. Это значит, что ws – это всего лишь указатель и в самом начале он нулевой. Теперь нам н

Закрываем поиск
FindClose(SearchRec); end; На компакт диске, в директорииПримерыГлава 10FindF

If WindowState=wsNormal then
begin FIniFile.WriteInteger('Option', 'Width', Width); FIniFile.WriteInteger('Option', 'Heigth', Height); FIniFile.WriteInteger('Option', 'Left', Left); FIniFile.WriteIn

Procedure TForm1.LoadProgParam; var
FIniFile: TRegIniFile; begin FIniFile := TRegIniFile.Create('Software'); FIniFile.OpenKey('VR',true); FIniFile.OpenKey('VR-Online',true);

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги