Помощь в написании студенческих работ
Антистрессовый сервис

Программы нахождения массивов

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Модуль 1. Сформировать одномерный массив, А (35), значения элементов которого располагаются произвольным образом в диапазоне от -32 до 45. Сформировать из массива, А новый массив В, элементы которого больше, чем значение максимального отрицательного элемента массива А. Записать массивы, А и В в файлы параллельного доступа с именами М1. txt и М2. txt соответственно. Модуль 4. Вывести данные… Читать ещё >

Программы нахождения массивов (реферат, курсовая, диплом, контрольная)

Министерство образования науки, молодежи и спорта Украины ДонГТУ Кафедра ЭК и ИТ Контрольная работа По дисциплине: «Информатика»

Вариант № 82

Выполнил: ст.гр. ЭПП-12−2з Крымцева А.Ю.

Проверил: Хмелев А.Г.

Алчевск, 2012

Контрольное задание № 7

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

(9,56; -4,6; -12,45; 0,45; 98; 233; 5,09; -5,1; 0,004) по убыванию Решение Вначале найдем минимальный и максимальный элементы массива, а затем упорядочим его по убыванию

Блок-схема

Листинг программы

Program zadanie7;

uses CRT;

var

i, j, i_max, i_min:integer;

a_max, a_min, buf: real;

A: array [1.9] of real;

begin

clrscr;

{Ввод исходного массива}

writeln ('Введите массив');

for i:=1 to 9 do

read (A[i]);

writeln ('Исходный массив:');

for i:=1 to 9 do write (A[i]: 6:3, ' ');

{Нахождение наибольшего, а наименьшего элементов}

a_max:=A[1];

a_min:=A[1];

i_max:=1;

i_min:=1;

for i:=2 to 9 do

begin

if (A[i]>a_max) then

begin

a_max:=A[i];

i_max:=i;

end;

if (A[i]

begin

a_min:=A[i];

i_min:=i;

end;

end;

{Ранжировка по убыванию}

for i:=1 to 8 do

for j:=i+1 to 9 do

if A[j]>A[i] then

begin

buf:=A[j]; A[j]: =A[i]; A[i]: =buf;

end;

{Вывод результатов}

writeln;

writeln ('Максимальный элемент = A[', i_max,']=', a_max:6:3);

writeln ('Минимальный элемент = A[', i_min,']=', a_min:6:3);

writeln ('Массив после сортировки:');

for i:=1 to 9 do write (A[i]: 7:3,' ');

end.

Результат работы программы

Контрольное задание № 8

Составить программу вычисления корней квадратных алгебраических уравнений

(ax2 + bx + c = 0), используя функцию пользователя.

Примечание: в данных уравнениях значения коэффициентов a, b, c таковы, что дискриминант D = b2 — 4ac > 0

Решение

Блок-схема

Часть блок-схемы (вычислительные блоки) для процедуры Сv_u — решения квадратного уравнения с заданными коэффициентами a, b, c

Листинг программы

program Zadanie8;

uses CRT;

var

a, b, c, k1, k2: real;

{Процедура вычисления корней квадратного уравнения}

procedure kv_ur (var a: real; b: real; c: real; k1: real; k2: real);

var

d:real;

begin

d:=b*b-4*a*c;

d:=sqrt (d);

k1:=(-b+d)/2/a;

k2:=(-b-d)/2/a;

writeln ('Коэффициенты a=', a:6:2,' b=', b:6:2,' c=', c:6:2);

writeln ('Корни квадратного уравнения:',' k1=', k1:8:4,' k2=', k2:8:4);

end;

begin

clrscr;

{Первый вариант коэффициентов }

write ('Введите коэффициенты a, b, c: ');

readln (a, b, c);

kv_ur (a, b, c, k1, k2);

{Второй вариант коэффициентов}

writeln;

write ('Введите коэффициенты a, b, c: ');

readln (a, b, c);

kv_ur (a, b, c, k1, k2);

end.

Результат выполнения программы

Контрольное задание № 9

Элементы двумерных массивов выбрать произвольно. Вывести их на печать в формате и с заголовком. Для решения данной задачи использовать подпрограмму типа FUNCTION.

В матрицах У (2,8) и О (4,3) определить сумму элементов третьего столбца матрицы. программа массив одномерный уравнение Решение

Блок-схема

Массивы формируются с помощью встроенной функции random ().

Функция Pechat () осуществляет печать массива в прямоугольном виде.

Функция Sred (,,, k) подсчитывает среднее значение элементов k-го столбца матрицы.

Листинг программы

Program Zadanie9;

Uses CRT;

type

mm = array [1.10, 1.10] of real;

var

l, i, j, n1m, n2m, n1p, n2p: integer;

b:real;

my, mo: mm;

{Функция печати массивов}

Function Pechat (n1:integer; n2: integer; h: mm):real;

var

i, j: integer;

begin

writeln (' Массив размерности ', n1,'x', n2);

write (' ');

for l:=1 to n2*9 do write ('_');

writeln;

for i:=1 to n1 do

begin

for j:=1 to n2 do

write (' I ', h[i, j]: 6:3);

writeln (' I ');

write (' ');

for l:=1 to n2*9 do write ('-');

writeln;

end;

writeln;

end;

{Функция подсчета среднего значения j-го столбца}

Function Sred (n1:integer; n2: integer; h: mm; j: integer): real;

var

k:integer;

s:real;

begin

s:=0.0;

for k:=1 to n1 do

s:=s+h[k, j];

Sred:=s/n1;

end;

begin

clrscr;

{Формирование массива У}

writeln ('Введите размерность массива У');

read (n1m, n2m);

for i:=1 to n1m do

begin

for j:=1 to n2m do

begin

my[i, j]: =random (100)*0.2;

end;

end;

{Формирование массива О}

writeln ('Введите размерность массива О');

read (n1p, n2p);

for i:=1 to n1p do

begin

for j:=1 to n2p do

begin

mo[i, j]: =random (100)*0.3;

end;

end;

{ Печать массивов }

Pechat (n1m, n2m, my);

Pechat (n1p, n2p, mo);

writeln;

{ Подсчет средних значений 1-го и 3-го столбцов}

b:=Sred (n1m, n2m, my, 1);

writeln ('Среднее значение элементов первого столбца массива У=', b:7:3);

b:=Sred (n1m, n2m, my, 3);

writeln ('Среднее значение элементов третьего столбца массива У=', b:7:3);

b:=Sred (n1p, n2p, mo, 1);

writeln ('Среднее значение элементов первого столбца массива O=', b:7:3);

b:=Sred (n1p, n2p, mo, 3);

writeln ('Среднее значение элементов третьего столбца массива O=', b:7:3);

end.

Результат выполнения программы

Контрольное задание № 10

Задать два одномерных массива значений, чтобы величины элементов массивов попадали в заданный интервал на всем диапазоне (значения выбрать произвольно). Для решения данной задачи применить подпрограмму типа Procedure.

Т (15), L (8) Определить среднегеометрическое значение

(-1;3) положительных элементов двух массивов

Решение

Блок-схема

Массивы Т (15), L (8) формируются с помощью встроенной функции random. Для этого используется подпрограмма-процедура fmas.

Для замены определения среднегеометрического значения положительных элементов в массиве используется процедура kp

Листинг программы

Program Zadanie10;

Uses CRT;

type mm=array [1.20] of real;

var mg, mk: mm;

n1,n2,k:integer;

s1,s2,x1,x2,p, sg: real;

{Процедура формирования массива}

procedure fmas (n:integer; x1: real; x2: real; var b: mm);

var k: integer;

begin

for k:=1 to n do

b[k]: =x1+(x2-x1)*random;

for k:=1 to n do

write (b[k]: 6:3,' ');

writeln;

end;

{Процедура подсчета среднегеометрического значения положительных элементов }

procedure kp (b:mm; n: integer; var k: integer; var p: real);

var i, l: integer;

begin

k:=0; sg:=0;

p:=1;

for i:=1 to n do

begin

if b[i]>0 then

begin

k:=k+1;

p:=p*b[i];

end;

end;

if k=0 then p:=0;

sg:=exp (ln (p)*k);

end;

{}

begin

clrscr;

writeln ('Введите размеры массивов T и L');

read (n1,n2);

writeln ('Введите интервал');

read (x1,x2);

writeln ('Массив T');

fmas (n1,x1,x2,mg);

writeln;

writeln ('Массив L');

fmas (n2,x1,x2,mk);

writeln;

kp (mg, n1, k, p);

writeln ('Массив T:');

writeln ('среднегеометрическое значения положительных элементов в массиве ', sg);

writeln;

kp (mk, n2, k, p);

writeln ('Массив L:');

writeln ('среднегеометрическое значения положительных элементов в массиве ', sg);

end.

Результаты работы программы

Контрольное задание № 11

Составить программу из 4 модулей.

Модуль 1. Сформировать одномерный массив А (35), значения элементов которого располагаются произвольным образом в диапазоне от -32 до 45. Сформировать из массива, А новый массив В, элементы которого больше, чем значение максимального отрицательного элемента массива А. Записать массивы, А и В в файлы параллельного доступа с именами М1. txt и М2. txt соответственно.

Модуль 2. Вывести данные из файлов М1. txt и М2. txt на экран и принтер в 5 столбцов с заголовками МАССИВ, А и МАССИВ В. Массивы должны быть выведены с индексами (индексы изменяются по строке).

Модуль 3. Выполнить сортировку данных в файле М1. txt по возрастанию, а в файле М2. txt по убыванию. Для сортировки использовать подпрограмму типа SUB. Сортировать не элементы массивов, а записи в файлах.

Модуль 4. Вывести данные из файлов М1. txt и М2. txt на экран и принтер в 3 строки с заголовками ОТСОРТИРОВАННЫЙ МАССИВ, А и ОТСОРТИРОВАННЫЙ МАССИВ В. Массивы должны быть выведены с индексами (индекс изменяется по столбцу)

Решение

Структурная блок-схема

Листинг программы

{ Головная программа}

Program modul;

Uses CRT, Mod1, Mod2, Mod3, Mod4;

var

a, b: mas;

n_b, n: integer;

begin

clrscr;

begin form_a (a);

form_b (a, b, n_b);

end;

Pec1(1,35);

writeln;

Pec1(2,n_b);

writeln;

Sort_v (1,35);

Sort_u (2,n_b);

Pec2(1,35);

writeln;

Pec2(2,n_b);

end.

Unit Mod1;

INTERFACE

type

mas = array [1.35] of real;

var

fa, fb: file of real;

s:real;

Procedure form_a (var a: mas);

Procedure form_b (a:mas; var b: mas; var n: integer);

IMPLEMENTATION

{Формирование массива, А и запись его в файл М1. txt}

Procedure form_a (var a: mas);

var i, k: integer;

begin

assign (fa,'M1.txt');

rewrite (fa);

s:=100;

for i:=1 to 35 do

begin

a[i]: =-32+(45+32)*random;

write (fa, a[i]);

if a[i]

end;

writeln ('максимальный отрицательный элемент масссива А=', s:6:2);

writeln;

close (fa);

end;

{Формирование массива В и запись его в файл М2. txt}

Procedure form_b (a:mas; var b: mas; var n: integer);

var

i, i_f: integer;

pol:real;

begin

assign (fb,'M2.txt');

rewrite (fb);

n:=0;

for i:=1 to 35 do

begin

if a[i]>s then

begin

n:=n+1;

b[n]: =a[i];

write (fb, b[n]);

end;

end;

close (fb);

end;

end.

Unit Mod2;

Interface

Procedure Pec1(k_p:integer; n: integer);

IMPLEMENTATION

{Процедура печати массивов в 7 столбцов}

Procedure Pec1(k_p:integer; n: integer);

var i, j, d, k: integer;

f: file of real;

c:char;

p:real;

begin

if k_p=1 then

begin

writeln ('Массив A');

c:='A';

assign (f,'M1.txt');

end

else

begin

writeln ('Массив B');

c:='B';

assign (f,'M2.txt');

end;

reset (f);

d:=0; k:=1;

while not eof (f) do

begin

read (f, p);

write (c,'[', k:2,']=', p:6:2,' ');

d:=d+1;k:=k+1;

if d=5 then

begin

writeln;d:=0;

end;

end;

close (f);

end;

end.

Unit Mod3;

INTERFACE

Procedure Sort_v (k_p:integer; n: integer);

Procedure Sort_u (k_p:integer; n: integer);

IMPLEMENTATION

{Сортировка массива по возрастанию}

Procedure Sort_v (k_p:integer; n: integer);

var

i, j: integer;

c:char;

p, max: real;

v:array [1.35] of real;

f:file of real;

begin

if k_p=1 then

begin

c:='A';

assign (f,'M1.txt');

end

else

begin

c:='B';

assign (f,'M2.txt');

end;

reset (f);

for i:=1 to n do

begin

read (f, p);

v[i]: =p;

end;

close (f);

for i:=1 to n-1 do

for j:=i+1 to n do

if v[j]

begin

max:=v[j]; v[j]: =v[i]; v[i]: =max;

end;

rewrite (f);

for i:=1 to n do

write (f, v[i]);

close (f);

end;

{Сортировка массива по убыванию}

Procedure Sort_u (k_p:integer; n: integer);

var

i, j: integer;

c:char;

p, min: real;

v:array [1.35] of real;

f:file of real;

begin

if k_p=1 then

begin

c:='A';

assign (f,'M1.txt');

end

else

begin

c:='B';

assign (f,'M2.txt');

end;

reset (f);

for i:=1 to n do

begin

read (f, p);

v[i]: =p;

end;

close (f);

for i:=1 to n-1 do

for j:=i+1 to n do

if v[j]>v[i] then

begin

min:=v[j]; v[j]: =v[i]; v[i]: =min;

end;

rewrite (f);

for i:=1 to n do

write (f, v[i]);

close (f);

end;

end.

Unit Mod4;

Interface

Procedure Pec2(k_p:integer; n: integer);

IMPLEMENTATION

{ Процедура печати массива в 6 строк}

Procedure Pec2(k_p:integer; n: integer);

var i, j, d, k, i1:integer;

f: file of real;

c:char;

m: array [1.35] of real;

p:real;

begin

if k_p=1 then

begin

writeln ('Отсортированный массив A');

c:='A';

assign (f,'M1.txt');

end

else

begin

writeln ('Отсортированный массив B');

c:='B';

assign (f,'M2.txt');

end;

for j:=1 to 3 do

begin

i:=j-1; reset (f);

while i

begin

seek (f, i);

read (f, p);

write (c,'[', i+1:2,']=', p:6:2,' ');

i:=i+6;

end;

writeln;

close (f);

end;

end;

end.

Результат выполнения программы

Показать весь текст
Заполнить форму текущей работой