Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Первый семестр / Лабалаторная работа №4 / Лаболаторная работа №4

.odt
Скачиваний:
1
Добавлен:
28.05.2022
Размер:
276.12 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра математического обеспечения и применения ЭВМ

отчет

по лабораторной работе №4

по дисциплине «Информационные модели и системы»

Тема: «Массивы »

Студент гр. 8802

Попов А.П.

Преподаватель

Сидоров Ю.Н.

Санкт-Петербург

2018

СОДЕРЖАНИЕ

Содержательная постановка задачи...........................................................................3

Формальная постановка задачи..................................................................................3

Алгоритмизация...........................................................................................................4

Типы структур данных................................................................................................5

Текст программы.........................................................................................................5

Пример исполнения программы................................................................................7

Содержательная постановка задачи

Требуется написать программу, которая формирует вектор B(b₁, b₂, … ,bₙ), из элементов вектора A (a₁, a₂, … ,aₙ), которые удовлетворяют условию с≤aₖ≤d, k ∈ N, n ∈ N, k≤n. Вектор A заполняется случайными значениями (с масштабизацией). Значения c и d задаются пользователем

Формальная постановка задачи.

Дано: Вектор A (a₁, a₂, … ,aₙ). Числа c и d – целые числа, c≤d.

Найти: Вектор B(b₁, b₂, … ,bₘ), где единственный элемент bₖ равен элементу aₗ, если с≤aₗ≤d. k, l, n, m ∈ N, k≤n, l≤m.

Алгоритмизация

Сообщения, выводимые на экран, сокращены.

Типы и структуры данных

A – исходный массив целого типа из N элементов, заполняется случайными числами с масштабированием

Bитоговый массив целого типа из N элементов, заполняется элементами массива A, удовлетворяющих условию с≤a[i]≤d

c, dпеременные целого типа, определяют новые элементы массива B

i, k – переменные целого типа, счетчики.

Текст программы.

program lab4; {программа формирует по вектору A (заполняется случайными целыми числами) вектор B, заполняемый числами в диапазоне, задаваемом пользователем}

const N=20; //N - размер массивов

var

A: array [1..N] of integer; //Начальный массив

B: array [1..N] of integer; //Итоговый массив

i,k,c,d:integer; //i,k - переменные-счетчики. c,d - переменные диапазона

begin

randomize;

//Ввод ограничений для нового вектора

write ('Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа). Введите C->'); readln(c);

write ('Введите d -> '); readln (d);

if (c>d) then //Если диапазон указан неправильно, программа поменяет значения местами

begin

i:=c; c:=d; d:=i;

writeln ('c>d, значения поменяны местами');

end;

//Заполнение массива значениями и вывод их на экран

k:=0;

for i:=1 to N do

begin

A[i]:=5000-random(10000); // рандомизация вводимых значений массива с масштабированием. Массив принимает значения от -5000 до 5000

//Вывод старого массива с табуляцией

write(A[i],#9);

if ((i mod 10)=0) then writeln('');

//Заполнение нового массива

if ((A[i]>=c) AND (A[i]<=d)) then

begin

k:=k+1; B[k]:=A[i];

end;

end;

//Вывод нового массива

writeln('');

Writeln('Вектор, составленный из элементов, удовлетворяющих значению');

if (k=0) then writeln ('Значений, удовлетворяющих условию, нет.')

else

begin

for i:=1 to k do

begin

write(B[i],#9);

if ((i mod 10)=0) then writeln('');

end;

end;

end.

Примеры выполнения программы

  1. Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа).

Введите C->-1000

Введите d -> 1000

-3551 4291 -2342 -3737 4845 132 -2854 1259 1930 -432

-745 -2789 2601 -885 709 -996 2675 -3556 801 1443

Вектор, составленный из элементов, удовлетворяющих значению:

132 -432 -745 -885 709 -996 801

2. Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа). Введите C->-1000

Введите d -> 1000

-3551 4291 -2342 -3737 4845 132 -2854 1259 1930 -432

-745 -2789 2601 -885 709 -996 2675 -3556 801 1443

Вектор, составленный из элементов, удовлетворяющих значению

132 -432 -745 -885 709 -996 801

3. Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа). Введите C->-5000

Введите d -> 5000

-3798 -2373 -4016 2131 1917 3719 -189 -2959 -1913 -4728

2040 4626 -4088 743 -1218 3517 -3744 -1688 479 -2106

Вектор, составленный из элементов, удовлетворяющих значению

-3798 -2373 -4016 2131 1917 3719 -189 -2959 -1913 -4728

2040 4626 -4088 743 -1218 3517 -3744 -1688 479 -2106

4. Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа). Введите C->50

Введите d -> -50

c>d, значения поменяны местами

-4423 -4731 -4148 2448 1838 2004 2731 4614 -1569 -996

1968 4399 1281 3843 2257 -3403 3086 3514 -4475 2423

Вектор, составленный из элементов, удовлетворяющих значению

Значений, удовлетворяющих условию, нет.

5. Введите значения c и d для вектора B. Условие: c<=B<=d (целые числа). Введите C->500

Введите d -> -500

c>d, значения поменяны местами

1581 2146 -152 -389 -1085 -2339 3513 3624 -2835 3441

1564 4114 -2945 3471 -1914 -3720 -4650 -3596 -3229 -2548

Вектор, составленный из элементов, удовлетворяющих значению:

-152 -389

Соседние файлы в папке Лабалаторная работа №4