Скачать исходные коды примеров
После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать идентификатор (имя) массива и индекс элемента в квадратных скобках.
Например, запись Mas[2], A[10] позволяет обратиться ко второму элементу массива MAS и десятому элементу массива A. При работе с двумерным массивом указывается два индекса, с n-мерным массивом — n индексов.
Например, запись Matr[4, 4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива M.
Индексированные элементы массива называются индексированными переменными. За границы массива выходить нельзя. То есть, если в массиве Mas пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке.
Рассмотрим типичные операции, возникающие при работе с одномерными массивами.
Заполнение одномерного массива значениями
Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего.
Способы выводы элементов массива
Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.
Способы заполнения одномерных массивов:
- Ввод значения с клавиатуры.
- Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
- Задание значений по формуле.
- Ввод элементов массива из файла
1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.
Procedure Init1(Var m : myarray);
Var i : Integer; Begin Writen (‘введите’,n,’чисел’); For i:=1 To n Do Readln(m[i]); End;
2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел — функцию random.
Procedure Init2(a,b:integer; Var m : myarray); < Процедура заполнения массива случайными числами из интервала [a,b] и вывода на экран. a, b: границы интервала; m : массив. >Var i : Integer; Begin Randomize; For i:=1 To n Do begin m[i]:= a+random(b-a+1); write(m[i],’ ‘) end; writeln; End;
3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:
Procedure Init3(Var m : myarray);
Var i : Integer; Begin For i:=1 To n Do
a[i]:= i*3;
4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.
Что такое массивы в программировании.
Procedure Init4(Var m : myarray);
Var i : Integer; Begin Writen (‘введите’,n,’чисел’); For i:=1 To n Do Readln(f, m[i]); End;
Вывод значений элементов массива на экран
Вывод значений элементов массива на экран выполняется, как и ввод, поэлементно в цикле. Для вывода будем использовать операторы Write или Writeln. В качестве входных параметров будем передавать процедуре не только массив, но и количество элементов, которые надо вывести, начиная с первого (это понадобится нам, когда мы будем удалять и добавлять элементы в массиве).
Procedure Print(n: integer; m : myarray);
Var i : Integer; Begin For i:=1 To n Do Write(m[i]:3); Writeln;
Пример 1. Заполнить массив с клавиатуры и вывести его на экран.
В программе будет использоваться две процедуры: процедура Init1 (заполнение массива с клавиатуры) и процедура Print (вывод массива на экран).
Program primer1; Const n = 30;
Type myarray = Array [1. n] Of Integer; Var A : myarray; s : Integer; Procedure Init1(Var m : myarrfy); Var i : Integer; Begin Writen (‘Введите ‘,n,’ чисел’); For i:=1 To n Do Readln(m[i]); End; Procedure Print(m: myarray); Var i : Integer; Begin For i:=1 To n Do Write(m[i]:3); Writeln; End; Begin Init1(A); Print(n, A); Readln; End.
Пример 2. Заполнить массив из текстового файла и вывести на экран. В текстовом файте несколько строк, в каждой строке по 30 чисел.
Program primer2; Const n = 30; Type myarray = Array [1. n] Of Integer; Var A : myarray; F:text; Procedure Init4(Var m : myarray); Var i : Integer;
Begin For i:=1 To n Do Readln(f, m[i]); End;
Procedure Print(m: myarray); Var i : Integer; Begin For i:=1 To n Do Write(m[i]:3); Writeln; End; Begin Assign (F,’. ‘); Reset(F); While Not EOf (F) Do Begin
Init3(A); Print(A) readln(F); End; Readln; End.
Вы научились заполнять одномерный массив и выводить его на экран.
На следующем уроке продолжим знакомиться с алгоритмами обработки одномерных массивов.
Источник: gospodaretsva.com
Составьте программу заполнения массива из 100 чисел случайными значениями из диапазона от –20 до 20
Учебник по Информатике 9 класс Семакин
Составьте программу заполнения массива из 100 чисел случайными значениями из диапазона от –20 до 20. Подсчитайте в этом массиве количество положительных и количество отрицательных значений. program zad_4_nica;
var Rand: array[1..100] of integer;
i, plus, minus: integer;
begin
randomize;
for i:=1 to 100 do begin
Rand[i]:=-20+random(41);
write (Rand[i], ‘; ‘);
end;
plus:=0;
minus:=0;
for i:=1 to 100 do begin
if Rand[i]>0 then plus:=plus+1
else if Rand[i] Напишите нам
Источник: 5urokov.ru
Заполнение массива случайными числами в диапазоне (A, B) и определить кол-во элементов, у которых вторая цифра четная
Вот задача: Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [ A , B ] и определяет количество элементов этого массива, у которых вторая цифра в десятичной записи (число десятков) – чётная. Входные данные: Входная строка содержит три числа: границы диапазона случайных чисел A и B , а также размер массива N . Все числа разделены пробелами. Гарантируется, что 0 < N ≤ 10000 . Выходные данные: В первой строке программа должна вывести N элементов построенного массива, разделив их пробелами, а во второй строке – число элементов этого массива, у которых вторая цифра в десятичной записи (число десятков) – чётная. Вот мой код:
import random mas=[] k = 0 a, b, n = map(int,input().split()) for i in range(n): mas.append(random.randint(a, b)) print(mas[i], end=’ ‘) if(mas[i] >=10): if (((mas[i] // 10) % 10) % 2 == 0): k += 1 print() print(k)
Программа работает корректно, но сайт решение не принимает. Что можно изменить, чтобы программа работала быстрее?
Отслеживать
задан 1 дек 2019 в 7:48
201 1 1 золотой знак 2 2 серебряных знака 11 11 бронзовых знаков
Думаю нужна проверка введенного диапазона. Если я введу диапазон 0 1000. Например сгенерирует 4, тогда ((4 // 10) % 10) % 2 == 0 будет True и Ваш код выполнит k += 1
– user361068
1 дек 2019 в 8:20
Точно) Я как-то упустил этот момент)
1 дек 2019 в 8:25
хмм.. добавил проверку: if(mas[i] >=10): if (((mas[i] // 10) % 10) % 2 == 0): k += 1 Но сайт всё равно не принимает решение
1 дек 2019 в 8:32
А какой сайт? Скорее всего имеется ввиду написать функцию которая должна вернуть количество таких елементов в массиве. (но это не точно)
Источник: ru.stackoverflow.com