Урок 6 - Одномерные массивы

  Представьте себе поезд, у которого есть определенное количество вагончиков. У каждого вагона есть номер и внутри каждого, пронумерованного вагона можно хранить информацию. Дак вот массив примерно так и выглядит, только он не поезд :) Массив записывается туда же, куда мы записываем обычные переменные.

Синтаксис:

var имя массива: array[интервал] of тип;
Теперь открываем Delphi и кидаем на форму компонент Button, Label и Memo. Компонент Memo находится на 6 месте на вкладке Standard.

Form


Компонент Memo имеет свойство под названием Lines. Оно схоже со свойством Caption у компонента Label. Найдите это свойство в инспекторе объектов и нажмите на кнопочку с тремя точками:

Lines


После нажатия на кнопку с тремя точками появится редактор:

Окно редактора


Сотрите всё, что написано в редакторе и создайте событие OnClick на кнопке. Объявим массив с именем mas, интервалом от 1 до 3 и типом string. Да, и еще нам нужно объявить переменную i типа integer, она нам пригодиться позже.
procedure TForm1.Button1Click(Sender: TObject);
var mas: array[1..3] of string;
i:integer;
begin
...
Сейчас запишем в наши воображаемые вагоны массива значения:
mas[1]:='Первая строка';
mas[2]:='Вторая строка';
mas[3]:='Третья строка';
А сейчас выводим второй элемент массива в Label и все 3 элемента в Memo.

В лабел:
Label1.Caption:=mas[2]; //Лабел отобразит содержимое второго элемента массива
Теперь, для того чтобы вывести все 3 значения в Memo, нужно воспользоваться циклом For:
for i:=1 to 3 do
Memo1.Lines.Add(mas[i]);
Так как в теле цикла выполняется всего одна строка, то можно опустить ключевые слова begin и end.
Строка Memo1.Lines.Add(mas[i]); при первом круге цикла добавит в memo первый элемент массива, так как переменная i равна 1. При втором круге переменная i равна 2 и строка Memo1.Lines.Add(mas[i]); добавит второй элемент массива. Точно так же и с третьим.

Общий вид программы:
procedure TForm1.Button1Click(Sender: TObject);
var mas: array[1..3] of string;
i:integer;
begin
mas[1]:='Первая строка';
mas[2]:='Вторая строка';
mas[3]:='Третья строка';

Label1.Caption:=mas[2]; //Лабел отобразит содержимое второго элемента массива

for i:=1 to 3 do
Memo1.Lines.Add(mas[i]);
end;
Без цикла For вывод элементов массива осуществлялся бы таким образом:
Memo1.Lines.Add(mas[1]);
Memo1.Lines.Add(mas[2]);
Memo1.Lines.Add(mas[3]);
Нам придется долго копировать и изменять номер элемента, если их будет сто, а бывает и больше тысячи! Цикл же помогает справиться с этим, всего ценой двух строчек.

На этом я завершаю наш урок, но перед этим сохраните пожалуйста программу, потому что она нам понадобится в следующем уроке.

Задание на закрепление: заполните массив из 100 чисел при помощи цикла for, выведите в memo числа 20, 50, 70 из массива при помощи цикла for и условия в нём.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!




Добавил(а): delfiSkin Дата: 2013-05-18
почему я уже 2 раза пытаюсь отправить большой комментарий и у меня не получается?



Добавил(а): delfiSkin Дата: 2013-05-18
Что значит строка Memo1.Lines.Add(mas[i])?верней что значит lines и add? Допустим когда я пишу if then else я понимаю что пишу если то иначе а вот что значит та строка? я написал программу на закрепление но у меня выскачила ошибка,думаю из-за не знания перевода. вот код программы: procedure TForm1.Button1Click(Sender: TObject); var mas: array [1..100] of integer; i: integer; begin mas[1]:=20; mas[2]:=50; mas[3]:=70; for i:=1 to 3 do Memo1.Lines.Add(mas[i]); end; end.



Добавил(а): delfiSkin Дата: 2013-05-18
выскакивает вот такая ошибка :*********************** пишу звездочками потому что она не отправляется!! Я думаю что она намекает на то,что в Memo1.Lines.Add(mas[i]); в этой строке нужен тип стринг но мне же ведь надо вывести числа,мне кажется что дело в том что lines.add выводит только текст в мемо,а что надо писать для числа?Хотя возможно мне только кажется,вообще прошу помочь,указать на ошибку.



Добавил(а): Klesh Дата: 2013-05-18
Да параметром Memo1.Lines.Add() является строка, а тот массив который ты объявил (mas) имеет тип integer. Есть такая функция, IntToStr(a: integer), она переводит число в строку, также есть и обратная StrToInt(a: String), она в свою очередь переводит строку с число. Дак вот тебе нужно сделать так: Memo1.Lines.Add(IntToStr(mas[i]));



Добавил(а): delfiSkin Дата: 2013-05-19
Когда я писал 1 комментарий,я писал что возможно надо использовать функцию inttostr ,но я не стал этого делать так.как подумал что мне в мемо оно будет выводить двадцать пятьдесят и тд. а не 20 50.. Напутал я) .Спасибо за помощь) и отдельное спасибо за strtoint )об этом в уроках не упоминалось как я помню.



Добавил(а): delfiSkin Дата: 2013-05-19
Когда я писал 1 комментарий,я писал что возможно надо использовать функцию inttostr ,но я не стал этого делать так.как подумал что мне в мемо оно будет выводить двадцать пятьдесят и тд. а не 20 50.. Напутал я) .Спасибо за помощь) и отдельное спасибо за strtoint )об этом в уроках не упоминалось как я помню.



Добавил(а): Asyanya Дата: 2013-06-06
Так и не поняла, как выполнить задание с помощью цикла for...



Добавил(а): Tuxuman Дата: 2013-09-29
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btn1: TButton; mmo1: TMemo; lbl1: TLabel; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); var mas: array[1..100] of string; i:Integer; begin mas[1]:=IntToStr(20); mas[2]:=IntToStr(50); mas[3]:=IntToStr(70); for i:=1 to 1 do mmo1.Lines.add(mas[1]); mmo1.Lines.add(mas[2]); mmo1.Lines.add(mas[3]); end; end. мб так?



Добавил(а): adex348 Дата: 2013-10-22
Ты походу не правильно понял функцию цикла for, он запускает код внутри цикла с начальным значением которое ты задал и прибавляя по 1 каждый раз запускает его заново, до тех пор пока не достигнется конечное значение(которое тоже нужно задать). Цикл по заданию должен выглядеть примерно так: for i:=1 to 100 do begin mas[i]:=i;if (mas[i]=20) or (mas[i]=50) or (mas[i]=70) then Memo1.Lines.add(InttoStr(mas[i]); else continue; end;



Добавил(а): Shik007 Дата: 2013-10-29
Cделал вторую кнопку к этой программе с кодом для очистки содержимого компонента Memo после завершения работы цикла. Выглядит это так: procedure TForm1.Button2Click(Sender: TObject); begin memo1.Lines.Clear; end;



Добавил(а): sema- 2014 Дата: 2013-12-05
А я, что то вообще ничего не понял... зачем нужно было открыть редактор? ,чтоб стереть надпись Memo1? Всё перемешалось в голове и вошёл в ступор, еле, еле с циклами разобрался, а тут массив... в общем наступление остановлено, отброшен снова к началу, в голове каша, запутался окончательно.... может как то по подробней, без спешки?



Добавил(а): hess2222 Дата: 2015-05-14
Я не понял этого задания, хоть убейте(((



Добавил(а): hess2222 Дата: 2015-05-14
Разберите пожалуйста!!!!



Добавил(а): Aleksandr-Slah Дата: 2015-07-06
http://s019.radikal.ru/i634/1507/fd/3b5376d7dcac.png Вот сделал!



Добавил(а): Nester_Novopolotsk Дата: 2016-03-11
задачка на закрепление хорошая. не очень и сложная. немножко мозгами нужно пошевелить



Добавил(а): Lawren Дата: 2016-04-04
Очень хорошие уроки, большое спасибо автору. Давно искал что то подобное. Задания сначала стараюсь сделать сам, потом смотрю как делали другие. В этом создал два цикла for..do, в первом заполняю массив из 100 элементов через IntToStr, во втором произвожу выборку элементов по условию. for i := 1 to 100 do mas[i] := IntToStr(i); for i := 1 to 100 do if (i = 20) or (i = 50) or (i = 75) then Memo1.Lines.Add(mas[i]);


  1. SahnoMew
    SahnoMew 2 months ago
    Большое количество парней и девушек ищут магаз, где можно найти крутые UGG. Увы, далеко не всегда в ТЦ есть шанс подобрать из оригинальных материалов обувь для зимы. Если у вас есть желание заказать женские или мужские UGG, модные, которые прикольные и выглядят на любом человеке хорошо, вам следует зайти на оригинальный сайт UGG.

    Перейдя на [url=https://australia-msk.ru/]угги австралия[/url] вы найдете реально много аксессуаров, доступны в продаже симпатичные новинки УГГ. В дополнении к этому, портал регулярно обновляется. Каталог позиций с новинками и разными позициями манит любого покупателя. На веб-сайте есть возможность найти в ассортименте больше 55 мужских и тёплых уггов.

    С помощью фильтров реально выбирать по цвету, характеристикам и нужному размеру товары. Есть много трендовых моделей, которые сразу же покупают. К тому же, портал ежемесячно проводит скидки. Если вы стремитесь дешево и сердито обуться на зиму, UGG – оптимальное решение.

    По оценкам кое-каких парней и девушек, UGG – это на словах красивое название. Тем не менее, не каждый знает то, что UGG Australia изготовлены из специальных материалов, которые поддерживают тепло. Определённый процент моделей изготавливаются традиционно так.

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

    Реально, UGG – это оригинальная и красивая обувь. В случае если с вашим сапогом или ботинком что-то случится, например, разорвётся в нижнем углу замша, поддерживающая тепло функция не пропадёт и пальцы на ногах будут и дальше оставаться в тепле. Девушки оценивают зимние угги в самый высокий бал.

    Наиболее регулярными заказами в этом квартале считаются позиции UGG -DIOR STOCKTON II BLACK и UGG LIANA BOOT CHESTNUT. Мужчинам по вкусу UGG MENS HENDREN TL BLACK. Если вы собираетесь в интернет-магазине заказать крутые UGG, можно позвонить по телефону +74957489547 и узнать об ассортименте.

    Оставить заявку есть смысл через веб-страницу - [url=https://australia-msk.ru/]купить угги австралия москва[/url] . Выбрать метод оплаты разрешено на портале, или заплатить за угги по месту. Интернет-магазин находится по адресу г. Москва, Проспект мира, д. 102, к.1, куда вы можете приехать и забрать выбранную модель.

    Австралийские угги – это именно то, что нужно любому человеку на зиму. Даже в самые сильные морозы UGG согревают, а нога чувствует себя в тепле. Если вам нравится ботинки из натуральных материалов, от симпатичных по дизайну уггов с белой овчиной вы отказаться не сможете!
  2. JasonDaync
    JasonDaync 2 months ago
    Атлетические модели кроссовок [url=https://adidas-rus.com/]Adidas[/url] – это самые популярные в сравнении с другими транснациональными компаниями варианты кроссовок. Чаще всего молодые ребята заказывают модели из натуральной кожи. Кроме того, последние годы в тенденцию вышли кроссы из натуральной замши и разноцветных синтетических материалов.

    Покупатели часто останавливаются во время заказов на качестве обуви. Из-за этого разные модельки Adidas, которые вы можете купить на adidas-rus.com – качественные.

    Спортивная обувь [url=https://adidas-rus.com/]Адидас[/url] занимает у студентов первое место. Топовый гигант как Adidas прошивает кроссы с помощью эксклюзивных технологий. Немецкий бренд старается держаться на рынке в лидерах, в связи с этим он гарантирует разным заказчикам кросс адидас удобство для их стоп. Если вы желаете заниматься спортом или просто бегом заниматься, показатели защиты для ваших ног и комфорта будут в принципе на самом высоком уровне.

    Высокотехнологичные материалы, из которых сшиты men кроссовки ADIDAS TERREX CLIMAPROOF серые и ADIDAS TUBULAR SHADOW BROWN делают эти модели лидерами продаж этого года. Большинство моделей практичные для осени, из-за этого сегодня на веб-странице действует распродажа на прикольные осенние мужские модели.

    Про women коллекцию тоже не забыли. Осенняя распродажа затронула модельки кросс ADIDAS TUBULAR SHADOW RED и ADIDAS TUBULAR DEERUPT WHITE. Если вы предпочитаете ходить в качалку – это мега крутые варианты. Также адики удобно одевать для прогулок после учёбы.

    Обычные кроссовки фирмы Адидас рассчитаны на разные категории клиентов. С учётом того, что сегодня на сайте действует распродажа разных моделей, вы можете приобрести красного цвета кроссы по приемлемым ценам.

    Ожидается, что распродажа продлится еще какое-то время. Ведь на весь список позиций кросс существенный спрос. На веб-сайте есть список моделек для мужчин и женщин от 36 до 45 размера. Любой человек может выбрать кроссовки Adidas из подошвы из полиуретана.

    Также большой плюс представленных моделек Адидас на портале в том, что они не очень промокают во время дождей. Ребята предпочитают заказывать кроссы на длительный срок, так как они могут служить минимум 1 год.

    Купить кроссовки осеннего формата можно в РФ по адресу г. Москва, проспект Мира, 127, а если вам надо проконсультироваться или подсказать с выбором, сделать это можно по телефону +7(495) 532-35-45. Отправка кросс Адидас возможна в разные города.
  3. VarkaVoity
    VarkaVoity 2 months ago
    Лучше вам найти угги из линейки UGG Australia. Бренд UGG изготавливает уйму теплых вариантов ботинок. Много моделек шьются на зиму, но есть некоторые на осень и весну. Если вы интересуетесь как заказать сапоги из натуральной кожи, к тому же, где теплый материал, вам стоит изучить ассортимент на australia-msk.ru, где доступны мужские и женские UGG Australia.

    Сейчас на ресурсе проходят скидки на предыдущую коллекцию. Есть смысл подобрать UGG 2020 года по 60% sale. Выбрать вы можете разные модели: тёмные, рыжые и даже тёмно-бордовые. В нижней части уггов размещен прочный задник, который мягкий и удобный. К тому же, он уплотнённый и в мужских и женских UGG Australia есть возможность безопасно ходить по снегу.

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

    В зимнее время в них в кайф ехать в поезде или такси. Ножка в них не будет преть или потеть. Главная причина – инновационная технология подачи воздуха. В осеннее время ножки будут чувствовать себя хорошо, ведь циркулирует воздух в обуви по всему периметру.

    Официальный веб-сайт UGG Australia в России предлагает парочку блоков. Можно найти мужские и женские UGG классические, модели mini и даже с мини замком. В 2020 году очень ценятся кое-какие угги на липучке.

    Также, если еще 5 лет назад угги покупали исключительно жены, то в 2020 году охота на них и у парней. Среди мужских позиций особо популярна MENS CLASSIC SHORT GREY, а также UGG MENS HENDREN TL BLACK.

    Симпатичные угги будут великолепно смотреться как в учебной аудитории, так и на работе. Найти их можно на [url=https://australia-msk.ru/]australia-msk.ru[/url] где хватает разных вариантов. Основной плюс UGG в том, что их мех действительно греет и это не просто обман. Человек может легко найти отличную модель, которая понравится вам и в которую вы влюбитесь. Уже за разными ботиночками активно гоняются ребята, чтобы сделать презент своей любимой жене.

    Если вы хотите заказать UGG Australia, но не знаете, какие лучше выбрать для вашей второй половинки, вам лучше обратить внимание на коллекцию LUX. Подобные угги прочные и будут на ура смотреться. К примеру, UGG CLASSIC SHORT PEARL SILVER сегодня действительно в тренде. Если вы хотите задать какой-то вопрос, смело звоните по телефону +74957489547 или едьте по адресу Москва, Проспект мира, д. 102, к.1. В компании вам помогут с выбором и посоветуют оптимальный вариант!
  4. Barzaimrak
    Barzaimrak 15 days ago
    Сегодня не самое легкое время для граждан нашей страны, денежных средств постоянно не хватает на самое необходимое и быстрые займы без проверки имеют высокий спрос. Эта услуга с каждым годом накапливает популярность и ясно почему. Если коротко, это весьма удобно, выгодно и быстро. Заходите на наш онлайн ресурс, где мы опубликовали множество продуктивной информации.

    [url=https://xn----7sbevlsqpik9gc.xn--p1ai/]Займы онлайн[/url] быстро на карту сейчас нужны как никогда. Впереди много новогодних праздников и лучше позаботиться о сюрпризах родным заранее. Если у Вас сейчас не хватает финансовых средств, то советуем подать анкету в одну их микрофинансовых компаний.

    Новые МФО выложены на нашем сайте, где обрести деньги на банковскую карту может практически любой человек. Стоит при себе иметь паспорт, выданный на территории РФ, контактный телефон и наш онлайн ресурс. Мы изложили перечень из лучших новых МКК для Вас.

    На веб-сайте займы-быстро.рф возможно получить быстрый займ ведь мы регулярно пополняем новые займы, новые компании с более выгодными условиями для клиентов. Получить онлайн займ можно всего лишь за 5-15 минут.

    Выбирайте МФК, внимательно прочитав данные, жмите "подать заявку" и заполняйте анкету. необходимы будут Ваши персональные данные и номер контактного телефона. Следом ожидайте решение по Вашему запросу. Обычно это бывает очень быстро, 3-5 минут. Если пришел отрицательный ответ, не отчаивайтесь, просто отправляйте по этой же схеме анкеты в подобные компании, благо их сейчас очень много.

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

    Подумайте, а о финансовой части позаботятся новейшие займы онлайн на банковскую карту. Ведь если внимательно читать условия, процентные ставки, сумму оплаты и ежемесячного платежа, то возможно брать займы на очень выгодных условиях. А иногда и вовсе бесплатно. Как раз такие у нас есть в списке, переходите и оформляйте быстрый займ прямо сегодня.
  5. ZbgPK
    ZbgPK 10 days ago
    Drug information leaflet. Short-Term Effects. <a href="https://viagra4u.top">get viagra price</a> in USA. All about meds. Get here.
    [url=http://gallobakery.com/tell-you-how-to-eat-moon-cake-and-still-maintain-your-physique/#comment-60193]Some information about medicine.[/url] [url=https://dinhduongnet.com/san-pham/sua-de-dg-2-400gram/#comment-67257]Some trends of drug.[/url] [url=http://healthybyit.circlecamp.com/index.php?page=webboard-showtopic&amp;topic_id=143]Best what you want to know about medicines.[/url] 10bd897
  6. QyiHP
    QyiHP 9 days ago
    Medication information leaflet. What side effects can this medication cause? <a href="https://viagra4u.top">cost of cheap viagra without rx</a> in USA. Some what you want to know about meds. Read information here.
    [url=http://culturia.nl/node/63#comment-4677]Some information about pills.[/url] [url=https://www.lombaoestudios.com/recursos/noticias/03232017-1503/promoci%C3%B3nate-ya-con-lombad-pro?page=1014#comment-611394]All news about medication.[/url] [url=https://www.cbd-health.uk/page/productdetails/24]Some about pills.[/url] 0550b19
Отменить.