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

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

Читайте также:
  1. V) Массивы и функции
  2. Автоматизация поиска информации. Категория «Ссылки и массивы».
  3. Двумерные массивы
  4. Динамические массивы
  5. Дисковые массивы RAID
  6. Какие бывают массивы
  7. Лекция 6: массивы и строки, библиотечные функции ввода-вывода.

1. Назначение

Для решения задач с набором данных одного типа (integer, real, string, char и др.) используются массивы.

Например, у нас есть данные ежедневной средней температуры воздуха в январе:

i 1 2 3 4 5 6 31
A[i]         -9 -8 -17

3; 5; 2; 7; -9; -8; …; -17

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

Назовем получившуюся последовательность массивом и присвоим ему имя (аналогично имени переменной), например, А. Теперь к каждому элементу массива можно обратиться по его порядковому номеру (аналогично строковой переменной). Например, температура 5-го января: А[5]= – 9, а 31-го: А[31]= – 17.

Тогда сумму всех элементов массива можно вычислить с помощью цикла For:

s:=0;

for i:=1 to 31 do

s:=s+a[i];

2. Описание массива

Массив описывается в разделе описания переменных (после слова Var).

A: array[1..31] of integer;

Мы описали массив (слово array) из 31 элемента (1, две точки, 31), состоящий из переменных целого типа (integer).

Несколько одинаковых по величине и типу массивов можно описывать в одной строке:

b,c:array[1..37] of char;

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

d:array[1..50] of real;

3. Инициализация (заполнение, чтение, ввод элементов) массива

Заполнение массива нулями: for i:=1 to n do A[i]:= 0; Заполнение массива случайными числами от X до Y: for i:=1 to n do A[i]:= random(Y–X+1)+X;
Ввод массива A с клавиатуры:

write('Введите количество элементов массива: ');

readln(n);

for i:=1 to n do

begin

write('A[', i, ']=');

Заполнение массива А из n элементов значением 0: Fillchar(a,n+1,0);
Чтение массива из файла: readln(n); for i:=1 to n do read(a[i]);
readln(a[i]);

end;

 

Внимание!!! Изучите формат входных данных и пример! Чаще всего количество элементов массива указывается в первой строке, а во второй строке – сам массив через пробел. Поэтому в цикле for пишем read(A[i]).

Если же массив в столбик – читать его будем с помощью readLn(A[i]). Настоятельно рекомендуем прочитать массив из файла и сразу же вывести его экран или в файл, чтобы проверить правильно ли ваш массив прочитался. Убедившись, что массив читается правильно, не забудьте убрать вывод массива.

Вывод массива в столбик: for i:=1 to n do writeLn(A[i]);  
Вывод массива в строку через пробел: for i:=1 to n do write(A[i], ’ ‘); writeln;
4. Вывод массива

 

 

Обратите внимание, что при выводе в строку после последнего элемента выводится пробел и курсор остается в той же строке. Поэтому при необходимости перевода курсора на следующую строку мы добавили оператор writeLn.

5. Примеры решения задач


Пример 1. Вычислите среднее арифметическое элементов одномерного массива, заполненного целыми числами.

Примеры: input.txt output.txt
  5 2 5 0 3.00
  1 1 2 1.33

program p1;

var a:array[1..50] of integer;

n,i:integer; s:real;

begin

assign(input, ’input.txt’);

assign(output, ’output.txt’);

reset(input);

rewrite(output);

{ Читаем массив из файла }

readln(n);

for i:=1 to n do

read(A[i]);

{Вычисляем сумму элементов массива}

s:=0;

for i:=1 to n do

s:=s+a[i];

{ Вычисляем среднее арифметическое }

s:=s/n;

{ Выводим результат в файл }

writeln(s:0:2);

close(input);

close(output);

end.


Пример 2. Замените в одномерного массиве, заполненном целыми числами, все элементы, кратные 3, нулями.

Примеры: input.txt output.txt
  6 9 4 -12 0 0 4 0

program p2;

var a:array[1..50] of integer;

n,i:integer;

begin

assign(input, ’input.txt’);

assign(output, ’output.txt’);

reset(input);

rewrite(output);

{ Читаем массив из файла }

readln(n);

for i:=1 to n do

read(A[i]);

{Заменяем элементы кратные 3 нулями}

for i:=1 to n do

if a[i] mod 3=0

then a[i]:=0;

{ Выводим результат в файл }

for i:=1 to n do

write(A[i], ’ ’);

close(input);

close(output);

end.

 


6. Решение задач

INPUT.TXT OUTPUT.TXT
  3 1 2 3 3 2 1

1. Дано натуральное число N и последовательность из N элементов. Требуется вывести эту последовательность в обратном порядке.

Входные данные: В первой строке входного файла INPUT.TXT записано натуральное число N (N ≤ 103). Во второй строке через пробел идут N целых чисел, по модулю не превосходящих 103 - элементы последовательности.


Дата добавления: 2015-11-13; просмотров: 40 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
The Last Leaf| Выходные данные

mybiblioteka.su - 2015-2024 год. (0.009 сек.)