Практическая работа №6.
Решение задач с использованием одномерных массивов.
Цель работы: закрепление навыков решения задач с использованием одномерных массивов на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:
1. Инструктаж по технике безопасности
2. Выполнение практического задания
Теория.
В повседневной и научной практике часто приходится встречаться с информацией, представленной в табличной форме. Вот, например, таблица, содержащая значения температуры, за определенный год.
|
Месяц |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
|
Температура |
-21 |
-18 |
-7,5 |
5,6 |
10 |
18 |
22,2 |
24 |
17 |
5,4 |
-7 |
-18 |
Такую таблицу называют линейной. Она представляет собой последовательность упорядоченных чисел. Если требуется какая-то математическая обработка данных, то для их обозначения вводят индексную символику.
Например:
Т1 – температура января;
Т5 – температура мая;
В общем виде множество значений, содержащихся в таблице, можно обозначить так: { Ti }, I = 1,2,3, …,12.
Порядковые
номера элементов называются индексами. Индексированные величины удобно
использовать для записи их математической обработки:
. По данной формуле можно
подсчитать среднегодовую температуру.
В языке Паскаль для записи линейных таблиц используют структурированный тип данных, который называется одномерным массивом. Одномерный массив представляет собой совокупность пронумерованных однотипных значений, имеющих общее имя. Элементы массива обозначаются переменными с индексами. Индексы записывают в квадратных скобках после имени массива.
Например: T[1], T[5], T[I] и т.п.
Описание одномерных массивов:
Переменная типа одномерный массив описывается в разделе описания переменных в следующем виде:
var имя массива: array[1..n] of тип;
n – количество элементов массива.
Пример: var T: array [1..12] of real;
Обработка массивов в программах производится поэлементно. Обращаются к элементам массива, указывая индекс.
Ввод массива (чтение массива):
writeln(‘введите ’,n,‘ элементов массива’);
for i:=1 to 12 do
readln (t[i]);
Вывод массива:
writeln(‘массив’);
for i:=1 to 12 do
writeln (‘t[’,i,‘]=’, t[i]:0:2);
Примеры задач.
1. Известны данные о среднемесячной температуре за год. Требуется вычислить среднегодовую температуру, а также ежемесячные отклонения от этой величины.
Program Example;
Const n=12;
Var t, dt:array[1..n] of real;
ts:real;
i:integer;
Begin {ввод исходных данных}
writeln (‘введите температуру за ’,n,‘ месяцев’);
for i:=1 to n do
readln (t[i]);
{вычисление средней температуры}
ts:=0;
for i:=1 to n do
ts:=ts+t[i];
ts:=ts/n;
{вычисление таблицы отклонений от среднего}
for i:=1 to n do
dt[i]:=t[i]–ts;
{вывод результатов}
writeln (‘среднегодовая температура =’ , ts:0:2);
writeln (‘отклонения от среднегодовой температуры:’);
for i:=1 to n do
writeln (i,‘ – месяц: ’, dt[i]:0:2);
End.
2. Дан массив из 8 элементов целого типа. Найти сумму положительных элементов массива.
Program summa;
Const n=8;
Var a:array[1..n] of integer;
i,s:integer;
Begin {ввод исходных данных}
writeln (‘введите ’,i,‘ целых чисел’);
for i:=1 to n do
readln (a[i]);
s: =0;
for i:=1 to n do
if a[i]>0
then s:=s+a[i];
writeln (‘сумма положительных чисел =’,s);
End.
3.
Задать массив B из 12 элементов по следующей
формуле:
.
Вывести полученный массив. Найти максимальный элемент массива.
Program maximum;
Const n=12;
Var b:array[1.. n] of integer;
i,max:integer;
Begin {получение массива}
for i:=1 to n do
if i<6
then b[i]:=sqr(i)-15
else b[i]:=i+8;
{вывод массива}
writeln(‘массив’);
for i:=1 to n do
writeln (‘b[’,i,‘]=’, b[i]);
{поиск максимального элемента массива}
max:=b[1];
for i:=1 to n do
if b[i]>max
then max:=b[i];
writeln (‘максимум=’,max);
End.
4.
Получить массив C из 10 элементов следующего
вида:
. Вывести
полученный массив. Сосчитать количество отрицательных элементов массива.
Program kolvo;
Const n=10;
Var c:array[1.. n] of real;
i,k:integer;
Begin {получение массива}
for i:=1 to n do
c[i]:=(i*sqr(i)-10*i)/3;
{вывод массива}
writeln(‘массив’);
for i:=1 to n do
writeln (‘с[’,i,‘]=’, с[i]:0:2);
{подсчет количества отрицательных}
k:=0;
for i:=1 to n do
if c[i]<0
then k:=k+1;
writeln (‘количество отрицательных чисел=’,k);
End.
5. Дан массив из 10 элементов целого типа. Заменить отрицательные элементы массива на их квадрат, положительные оставить без изменения. Вывести полученный массив.
Program zamena;
Const n=10;
Var a:array[1.. n] of integer;
i:integer;
Begin {ввод исходных данных}
writeln (‘введите ’,i,‘ целых чисел’);
for i:=1 to n do
readln (a[i]);
{замена отрицательных чисел}
for i:=1 to n do
if a[i]<0
then a[i]:=sqr(a[i]);
{вывод массива}
writeln(‘массив’);
for i:=1 to n do
writeln (‘a[’,i,‘]=’, a[i]);
End.
Задания.
Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.
Вариант 1
1. Дан массив из 10 целых чисел. Найти количество отрицательных элементов массива.
2. Дан массив из 8 чисел. Заменить все положительные числа на 0. Отрицательные числа оставить без изменения. Вывести элементы массива.
3.
Дано натуральное число n. Задать массив из n элементов по формуле
. Вывести элементы массива. Найти
минимальный элемент массива.
Вариант 2
1. Дан массив из 8 чисел. Найти максимальный элемент массива.
2. Дан массив из 6 целых чисел. Умножить все отрицательные числа на 5. Вывести элементы массива.
3.
Дано натуральное число n. Задать массив из n элементов по формуле
. Вывести элементы массива. Найти
сумму положительных элементов массива.
Вариант 3
1. Дан массив из 10 целых чисел. Найти минимальный элемент массива.
2. Дан массив из 7 чисел. Заменить все отрицательные числа на их модуль. Вывести элементы массива.
3.
Дано натуральное число n. Задать массив из n элементов по формуле
. Вывести элементы массива. Найти
количество отрицательных элементов массива.
Вариант 4
1. Дан массив из 7 чисел. Найти сумму положительных элементов массива.
2. Дан массив из 6 целых чисел. Умножить все положительные числа на -2. Вывести элементы массива.
3.
Дано натуральное число n. Задать массив из n элементов по формуле
. Вывести элементы массива. Найти
максимальный элемент массива.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.