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

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

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Одномерные массивы в Паскале

Объявление массива

Массивы в Паскале используются двух типов: одномерные и двумерные.
Определение одномерного массива в Паскале звучит так: одномерный массив — это определенное количество элементов, относящихся к одному и тому же типу данных, которые имеют одно имя, и каждый элемент имеет свой индекс — порядковый номер.
Описание массива в Паскале (объявление) и обращение к его элементам происходит следующим образом:

var dlina: array [1..3] of integer; begin dlina[1]:=500; dlina[2]:=400; dlina[3]:=150; .

Объявить размер можно через константу:

Инициализация массива

Кроме того, массив может быть сам константным, т.е. все его элементы в программе заранее определены. Описание такого массива выглядит следующим образом:

const a:array[1..4] of integer = (1, 3, 2, 5);

Заполнение последовательными числами:

Ввод с клавиатуры:

writeln (‘введите кол-во элементов: ‘); readln(n); <если кол-во заранее не известно, — запрашиваем его>for i := 1 to n do begin write(‘a[‘, i, ‘]=’); read(a[i]); . end; .


✍ Пример результата:

Вывод элементов массива

var a: array[1..5] of integer; <массив из пяти элементов>i: integer; begin a[1]:=2; a[2]:=4; a[3]:=8; a[4]:=6; a[5]:=3; writeln(‘Массив A:’); for i := 1 to 5 do write(a[i]:2); <вывод элементов массива>end.

Для работы с массивами чаще всего используется в Паскале цикл for с параметром, так как обычно известно, сколько элементов в массиве, и можно использовать счетчик цикла в качестве индексов элементов.

Функция Random в Pascal

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

var f: array[1..10] of integer; i:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); < интервал [0,9] >write(f[i],’ ‘); end; end.

Для вещественных чисел в интервале [0,1):

var x: real; . x := random;

Числа Фибоначчи в Паскале

Наиболее распространенным примером работы с массивом является вывод ряда чисел Фибоначчи в Паскаль. Рассмотрим его.

Получили формулу элементов ряда.

var i:integer; f:array[0..19]of integer; begin f[0]:=1; f[1]:=1; for i:=2 to 19 do begin f[i]:=f[i-1]+f[i-2]; writeln(f[i]) end; end.

На данном примере, становится понятен принцип работы с числовыми рядами. Обычно, для вывода числового ряда находится формула определения каждого элемента данного ряда. Так, в случае с числами Фибоначчи, эта формула-правило выглядит как f[i]:=f[i-1]+f[i-2] . Поэтому ее необходимо использовать в цикле for при формировании элементов массива.

Максимальный (минимальный) элемент массива

Псевдокод:

Поиск максимального элемента по его индексу:

Пример:

Поиск в массиве

Рассмотрим сложный пример работы с одномерными массивами:

var f: array[1..10] of integer; flag:boolean; i,c:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); write(f[i],’ ‘); end; flag:=false; writeln(‘введите образец’); readln(c); for i:=1 to 10 do if f[i]=c then begin writeln(‘найден’); flag:=true; break; end; if flag=false then writeln(‘не найден’); end.

Читайте также:  Адрес ячейки в microsoft excel идентифицируется

Рассмотрим эффективное решение:

Задача: найти в массиве элемент, равный X , или установить, что его нет.

Алгоритм:

  • начать с 1-го элемента ( i:=1 );
  • если очередной элемент ( A[i] ) равен X , то закончить поиск иначе перейти к следующему элементу.

решение на Паскале Вариант 2. Цикл While:

Поиск элемента в массиве

Предлагаем посмотреть подробный видео разбор поиска элемента в массиве (эффективный алгоритм):

Пример:

Циклический сдвиг

Программа:

Перестановка элементов в массиве

Рассмотрим, как происходит перестановка или реверс массива.

Решение:

Псевдокод:

Программа:

Выбор элементов и сохранение в другой массив

Решение:


Вывод массива B:

writeln(‘Выбранные элементы’); for i:=1 to count-1 do write(B[i], ‘ ‘)

Сортировка элементов массива

  • В таком типе сортировок массив представляется в виде воды, маленькие элементы — пузырьки в воде, которые всплывают наверх (самые легкие).
  • При первой итерации цикла элементы массива попарно сравниваются между собой:предпоследний с последним, пред предпоследний с предпоследним и т.д. Если предшествующий элемент оказывается больше последующего, то производится их обмен.
  • При второй итерации цикла нет надобности сравнивать последний элемент с предпоследним. Последний элемент уже стоит на своем месте, он самый большой. Значит, число сравнений будет на одно меньше. То же самое касается каждой последующей итерации.

Выполнение на Паскале:

for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с; end; end;

  • в массиве ищется минимальный элемент и ставится на первое место (меняется местами с A[1]);
  • среди оставшихся элементов также производится поиск минимального, который ставится на второе место (меняется местами с A[2]) и т.д.

Выполнение на Паскале:

for i := 1 to N-1 do begin min:= i ; for j:= i+1 to N do if A[j] i then begin c:=A[i]; A[i]:=A[min]; A[min]:=c; end; end;

    Выбирается и запоминается средний элемент массива (присвоим X):

  • Инициализируем две переменные (будущие индексы массива): L:=1, R:=N (N — количество элементов).
  • Увеличиваем L и ищем первый элемент A[L], который больше либо равен X (в итоге он должен находиться справа).
  • Уменьшаем R и ищем элемент A[R], который меньше либо равен X (в итоге он должен находиться слева).
  • Смотрим, если L X do R:= R — 1; if L
  • Posted in

    См. пузырьковая сортировка.
    При второй итерации цикла (согласно вашим рисункам и коду ) нет надобности сравнивать первый элемент со вторым. Снова вы всех путаете =)

    admin

    Именно поэтому в коде : for j:=N-1 downto i do

    downto i — то есть мы доходим сначала до первого элемента, потом до второго и т.д.

    Читайте также:  Создать электронную почту яндекс регистрация на русском

    Bronislav

    Смотрите. Ваш код работает. Но работает не так, как вы пишете перед этим. Он просеивает минимальный элемент с конца через весь массив до первой позиции (первого индекса если хотите). А не так как вы пишете: «При второй итерации цикла нет надобности сравнивать последний элемент с предпоследним. Последний элемент уже стоит на своем месте, он самый большой.» Соответственно вашему коду и вашим рисункам на второй итерации не сравнивается первый элемент (минимальный) со вторым, а не последний (который вообще не факт что максимальный) с предпоследним. Вот об чем речь. Или код меняйте или описание алгоритма перед кодом.

    Владимир

    А как насчёт странного способа поменки оандомням образом, конечно это долго , но все таки есть
    Var
    A: array[1..10] of integer;
    I,e,r,r1: integer;
    Begin
    While i at 02:05

    В сохранении в другой массив ошибка. Надо поменять местами счётчик и команду сохранения. В массиве В нет элемента 0.

    1. Составьте программу ввода и вывода массива: 5, -2, 3, -6, 7, 9, -4, 8, 1, 2, 7, -3.2. Составьте программу заполнения массива A(20) датчиком случайных чисел в диапазоне от -50 до 49 включительно. 3*. Составьте программу заполнения массива, не используя клавиатуру, числами: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.

    Лучший ответ:

    2.
    For i:=1 to n do
    begin
    A[i]:=-50 Random(49);
    Write(A[i]:3);
    end;
    3.
    For i:=1 to n do
    begin
    A[i]:=i;
    If not A[i] mod 2 = 0 then
    Write(A[i]:3);
    end;

  • Другие вопросы:

    Очень срочно на нити, которая разрывается, если модуль силы упругости превысит F=20H, поднимают груз массой m=1кг из состояния покоя вертикально вверх. движение груза равноускоренное. на какую максимальную высоту можно поднять груз за промежуток времени t=2c? ответ должен быть h=20м и последнее действие,желательно, должно быть приближено к : h=(F/m-g)*t‘2/2=20 t’2 — это t в квадрате

    В лагерь одна пята а оставшаяся одна вторая часть детей поехало в колхох все го 600 человек скок в колкох

    Урок из серии: «Язык программирования Паскаль»

    После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать идентификатор (имя) массива и индекс элемента в квадратных скобках.

    Например, запись Mas[2], A[10] позволяет обратиться ко второму элементу массива MAS и десятому элементу массива A. При работе с двумерным массивом указывается два индекса, с n-мерным массивом — n индексов.

    Например, запись Matr[4, 4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива M.

    Читайте также:  Как пользоваться айпадом мини

    Индексированные элементы массива называются индексированными переменными. За границы массива выходить нельзя. То есть, если в массиве Mas пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке.

    Рассмотрим типичные операции, возникающие при работе с одномерными массивами.

    Заполнение одномерного массива значениями

    Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего.

    Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.

    Способы заполнения одномерных массивов:

    1. Ввод значения с клавиатуры.
    2. Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
    3. Задание значений по формуле.
    4. Ввод элементов массива из файла

    1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.

    2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел — функцию random.

    3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:

    4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.

    Вывод значений элементов массива на экран

    Вывод значений элементов массива на экран выполняется, как и ввод, поэлементно в цикле. Для вывода будем использовать операторы Write или Writeln. В качестве входных параметров будем передавать процедуре не только массив, но и количество элементов, которые надо вывести, начиная с первого (это понадобится нам, когда мы будем удалять и добавлять элементы в массиве).

    Пример 1. Заполнить массив с клавиатуры и вывести его на экран.

    В программе будет использоваться две процедуры: процедура Init1 (заполнение массива с клавиатуры) и процедура Print (вывод массива на экран).

    Пример 2. Заполнить массив из текстового файла и вывести на экран. В текстовом файте несколько строк, в каждой строке по 30 чисел.

    Вы научились заполнять одномерный массив и выводить его на экран.

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

    Ссылка на основную публикацию
    Соевый соус стебель бамбука классический отзывы
    Всем доброго дня!Много мнений по этому поводу, как вы считаете, соевый соус или морская соль, что менее вредно для организма....
    Сколько секунд видео можно загрузить в инстаграм
    Обновлено - 27 января 2020 IGTV — функция, с помощью которой можно выложить длинное видео в Инстаграм продолжительностью от 15...
    Сколько символов на странице ворд
    Вы можете посмотреть пример стандартной страницы перевода в формате doc. В рынке переводов можно встретить разные варианты определения условной страницы:...
    Соевый соус ямаса отзывы
    Полное наименование: Соевый Соус классический (натурально сваренный) Изготовитель: Yamasa Corporation Все характеристики Соевый соус Yamasa: Результаты теста Достоинства Безопасный Не...
    Adblock detector