Программы нахождения массивов
Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 30.04.2013 |
Размер файла | 1,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Министерство образования науки, молодежи и спорта Украины
ДонГТУ
Кафедра ЭК и ИТ
Контрольная работа
По дисциплине: «Информатика»
Вариант №82
Выполнил: ст.гр. ЭПП-12-2з
Крымцева А.Ю.
Проверил: Хмелев А.Г.
Алчевск, 2012
Контрольное задание № 7
Составить программу для нахождения минимального и максимального элементов массива, а также индексов этих элементов. Ранжировать (упорядочить) одномерный массив по заданному признаку.
(9,56; -4,6; -12,45; 0,45; 98; 233; 5,09; -5,1; 0,004) по убыванию
Решение
Вначале найдем минимальный и максимальный элементы массива, а затем упорядочим его по убыванию
Блок-схема
Листинг программы
Program zadanie_7;
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]<a_min) then
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 Zadanie_8;
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 Zadanie_9;
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 Zadanie_10;
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]<s then s:=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]<v[i] then
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<n do
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.
Результат выполнения программы
Размещено на Allbest.ru
Подобные документы
Разработка программы для нахождения минимального и максимального элемента массива, вычисления среднего арифметического строк и столбцов транспортирования матриц. Характеристика основных программных средств. Описание программы, руководство пользователя.
курсовая работа [2,4 M], добавлен 26.04.2015Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Программы линейной структуры. Составление программы, которая по заданному номеру и значению соответствующего элемента вычисляет значение всех остальных элементов треугольника. Формулирование одномерного массива с помощью генератора случайных чисел.
отчет по практике [1,2 M], добавлен 01.12.2012Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Изучение элементов языка С++, программирование разветвлений и циклов с использованием операторов условного и перехода. Обработка одномерных массивов. Поиск максимального элемента массива с заданной размерностью. Листинги программы и результатов.
курсовая работа [647,7 K], добавлен 05.02.2013Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.
курсовая работа [1,1 M], добавлен 20.05.2014Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.
курсовая работа [116,2 K], добавлен 21.02.2008Разработка программы для нахождения корней нелинейных уравнений несколькими методами: методом хорд, касательных, половинного деления, итераций. Реализации программы с помощью системы программирования Delphi 7. Методика работы пользователя с программой.
курсовая работа [1,3 M], добавлен 11.02.2013