Файл: Практическая работа 1. Образовательные информационные ресурсы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.12.2023

Просмотров: 370

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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.

    1. Дан массив из 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 элементов по формуле . Вывести элементы массива. Найти максимальный элемент массива.


Практическая работа №7.

Решение задач с использованием двумерных массивов.
Цель работы: закрепление навыков решения задач с использованием двумерных массивов на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:

  1. Инструктаж по технике безопасности

  2. Выполнение практического задания


Теория.

На прошлом занятии мы с вами рассматривали таблицу, содержащие значения температуры за определенный год. Теперь представим, что нам требуется собрать информацию о среднемесячных температурах за 10 лет. Например, с 2000 по 2010 год. Очевидно что для этого удобна прямоугольная таблица, в которой столбцы соответствуют годам, а строки месяцам.



Год

1

2

3

4



12

2000

-23

-17

-8

6,5



-18

2001

-16

-8

7,1

8,4



-13

2002

-9,8

-14

-9,2

4,6



-16















2010

-25

-9

-4

9



-14

Для значений хранящихся в такой таблице удобно использовать двухиндексные обозначения. Например: Н2000,2 обозначает температуру в феврале 2000 года. А совокупность данных, составляющих таблицу, обозначается так: {Тi,j}, i = 2000, …, 2010, j =1,…,12.

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

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

Описание двумерных массивов:

Переменная типа двумерный массив описывается в разделе описания переменных в следующем виде:

var имя массива: array[1..n,1..m] of тип;

n – количество строк матрицы; m – количество столбцов матрицы.

Пример: var T:array[1..10,1..12] of real;

Действия над массивом, как единым целым:

Такие действия допустимы лишь в двух случаях:

  1. присваивание значений одного массива другому;

  2. операции отношения «равно», «неравно»;

В обоих случаях массивы должны иметь одинаковые типы (тип индексов и тип элементов).

Например, если в массиве требуется девятой строке присвоить значение первой строки, то это можно сделать так: Т[9]:=Т[1].

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


При работе с двумерными массивами организуется два цикла по строке и по столбцу.

Ввод матрицы (чтение матрицы):

writeln(‘введите матрицу размера ’,n,‘ на’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘строки’);

for j:=1 to m do

read(a[i,j]);

end;

Вывод матрицы:

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j]:0:2,‘ ’);

writeln

end;

Примеры задач.

    1. Дана матрица размера 3 на 4 целого типа. Найти сумму отрицательных элементов 3-й строки матрицы.

Program summa;

Const n=3;

m:=4;

Var a:array[1..n,1..m] of integer;

i, j, s:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘строки’);

for j:=1 to m do

read(a[i,j]);

end;

{нахождение суммы}

s:=0;

for j:=1 to m do

if a[3,j] <0

then s:=s+a[3,j];

{печать суммы}

writeln (‘сумма отрицательных элементов 3 строки=’,s);

end.

    1. Дана матрица размера 4 на 4. Найти количество положительных элементов главной диагонали матрицы.

Program summa;

Const n=4;

m:=4;

Var a:array[1..n,1..m] of real;

i, j, k:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘строки’);

for j:=1 to m do

read(a[i,j]);

end;

{нахождение количества положительных элементов главной диагонали}

k:=0;

for i:=1 to n do

if a[i,i] >0

then k:=k+1;

{печать количества}

writeln (‘количество положительных элементов главной диагонали=’,k);

end.

    1. Получить матрицу размера 5 на 5 по следующим формулам . Вывести полученную матрицу. Сосчитать сумму отрицательных элементов матрицы.

Program summa;

Const n=5;

m:=5;

Var a:array[1..n,1..m] of integer;

i, j, k:integer;

Begin {получение матрицы}

for i:=1 to n do

for j:=1 to m do

if i>j

then a[i,j]:=i-sqr(j)

else a[i,j]:=abs(i-j);

{вывод матрицы}

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j],‘ ’);

writeln

end;

{нахождение суммы отрицательных элементов матрицы}

k:=0;

for i:=1 to n do

for j:=1 to m do

if a[i,j] <0

then k:=k+a[i,j];

{печать суммы}

writeln (‘сумма отрицательных элементов матрицы=’,k);

end.

    1. Дана матрица размера 4 на 3 вещественного типа. Найти минимальный элемент матрицы.

Program minimum;

Const n=4;

m:=3;

Var a:array[1..n,1..m] of real;

i, j:integer;

min:real;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘строки’);


for j:=1 to m do

read(a[i,j]);

end;

{нахождение минимального элемента матрицы}

min:=a[1,1];

for i:=1 to n do

for j:=1 to m do

if a[i,j]
then min:=a[i,j];

{печать минимума}

writeln (‘минимум=’,min:0:2);

end.

    1. Дана матрица размера 3 на 5 целого типа. Заменить все положительные числа на 1, а отрицательные на -1. Вывести полученную матрицу.

Program zamena;

Const n=3;

m:=5;

Var a:array[1..n,1..m] of integer;

i, j:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘строки’);

for j:=1 to m do

read(a[i,j]);

end;

{замена}

for i:=1 to n do

for j:=1 to m do

if a[i,j] >0

then a[i,j]:=1

else a[i,j]:=-1;

{вывод матрицы}

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j],‘ ’);

writeln

end;

end.
Задания.

Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.

Вариант 1

  1. Дана матрица размера 4 на 4 целого типа. Найти сумму положительных элементов главной диагонали матрицы.

  2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

  3. Дана матрица размера 3 на 3 действительного типа. Найти максимальный элемент матрицы.

  4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти количество отрицательных элементов матрицы.

Вариант 2

  1. Дана матрица размера 3 на 4 действительного типа. Найти сумму отрицательных элементов 3-й строки матрицы.

  2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

  3. Дана матрица размера 3 на 3 целого типа. Найти минимальный элемент 2-го столбца матрицы.

  4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти количество положительных элементов матрицы.

Вариант 3

  1. Дана матрица размера 4 на 3 действительного типа. Найти количество положительных элементов 2-й строки матрицы.

  2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

  3. Дана матрица размера 3 на 3 целого типа. Найти минимальный элемент матрицы.

  4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти сумму отрицательных элементов матрицы.